5/11/08
Programación 1 (03) Unidad IV: Introducción al lenguaje de programación C
Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes
Programación estructurada Programación estructurada Enfoque disciplinado que permite escribir programas estructurados, uClizando las siguientes tres estructuras de control bien definidas: Secuencial (asignación, lectura, escritura) Decisión o selección (simple, doble, múlCple) RepeBción (repita‐mientras, hacer‐mientras, repita‐para)
Los programas estructurados son fáciles de probar, depurar y modificar
Prof. Flor Narciso
Programación 1 Semestre B-2008
2
1
5/11/08
Lenguaje de programación C Diseñado e implementado por Brian Kernighan y Dennis Ritchie en 1973, a parCr de los lenguajes BCPL (1965) y B (1969). Su desarrollo está estrechamente vinculado al del sistema operaCvo UNIX Lenguaje de nivel intermedio: Combina caracterísCcas de los lenguajes de alto nivel (sentencias de control y manipulación de datos) y de los lenguajes de bajo nivel (manejo de bits) Independiente del hardware Todo está consCtuido a base de funciones Prof. Flor Narciso
Programación 1 Semestre B-2008
3
Lenguaje de programación C • Brian Kernighan Department of Computer Science Princeton University Princeton, NJ 08544 h^p:// www.cs.princeton.edu/ ~bwk/
Prof. Flor Narciso
Programación 1 Semestre B-2008
4
2
5/11/08
Lenguaje de programación C • Dennis Ritchie Bell Labs, Rm 2C‐517 600 Mountain Ave. Murray Hill, New Jersey 07974‐0636, USA h^p://inferno.bell‐ labs.com/who/dmr/
Prof. Flor Narciso
Programación 1 Semestre B-2008
5
Lenguaje de programación C • • • • • • • •
Quick C C++ Turbo C Turbo C ++ Borland C Borland C++ Microsoft C C#
Prof. Flor Narciso
❃ Elementos sintác7cos ➙ Palabras reservadas ➙ IdenCficadores ➙ Delimitadores ➙ Comentarios
Programación 1 Semestre B-2008
6
3
5/11/08
Lenguaje de programación C Palabras claves o palabras reservadas
Tienen un significado especial para el compilador y están reservadas para uso especial del lenguaje de programación auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
register
Prof. Flor Narciso
Programación 1 Semestre B-2008
7
Lenguaje de programación C Iden7ficadores Nombres que permiten señalar, mencionar o hacer referencia a los diferentes objetos manipulados por un programa Deben resultar significaCvo, sugiriendo lo que representan No pueden ser palabras reservadas
Prof. Flor Narciso
Programación 1 Semestre B-2008
8
4
5/11/08
Lenguaje de programación C Iden7ficadores Se componen de una serie de caracteres que pueden ser letras (mayúsculas y minúsculas), dígitos o el carácter de subrayado (_) Las letras mayúsculas y las minúsculas son diferentes El primer carácter debe ser una letra o el caracter de subrayado. NO PUEDE SER UN DÍGITO
Prof. Flor Narciso
Programación 1 Semestre B-2008
9
Lenguaje de programación C Ejemplos: IdenBficadores válidos A1, a1, sueldo_base, sueldoBase, entero1, entero2, NOMBRES, nombres, Nombres, notas, Contador, P, Q, bandera_Venezuela, sueldoNeto, cedulaIdenBdad, mostrarDescripcion, cambiarEstado, archivoDelSistema
IdenBficadores inválidos
1A, 1a, #sueldo_base, 1_entero, +NOMBRES, ;Contador, =bandera, while, int, float, 1registro, “nv”
Prof. Flor Narciso
Programación 1 Semestre B-2008
10
5
5/11/08
Lenguaje de programación C Delimitadores Signo
Significado
; (punto y coma)
Terminación, es necesario cuando finaliza cada una de las sentencias o declaraciones
, (coma)
Separa dos elementos consecutivos de una lista
( ) (paréntesis)
Enmarca una lista de parámetros, expresiones o condiciones
[ ] (corchetes)
Enmarca la dimensión o el subíndice de un arreglo
{ } (llaves)
Enmarca un bloque de sentencias o una lista de valores iniciales
Prof. Flor Narciso
Programación 1 Semestre B-2008
11
Lenguaje de programación C Comentarios • Permiten que el programador documente sus programas • Sirven para facilitar la legibilidad de un programa • Un comentario largo se debe dividir en varias líneas y se deben alinear las líneas subsecuentes
Tipos de comentarios ➙ Comentarios iniciales: ObjeCvo general del programa ➙ Comentarios en cada línea: Pasos cruciales del programa
Prof. Flor Narciso
Programación 1 Semestre B-2008
12
6
5/11/08
Lenguaje de programación C Comentarios en C En C los comentarios empiezan por los caracteres /* y terminan con los caracteres */ Pueden comprender varias líneas y estar distribuidos de cualquier forma, pero todo aquello que está entre el /* (inicio del comentario) y el */ (fin del comentario) es simplemente ignorado por el compilador
Prof. Flor Narciso
Programación 1 Semestre B-2008
13
Lenguaje de programación C Comentarios en C /* Esto es un comentario simple. */ /* Esto es un comentario más largo, distribuido en varias líneas. El texto se suele alinear por la izquierda. */ /********************************* * Esto es un comentario de varias * * líneas, encerrado en una caja para * * llamar la atención. * **********************************/
Prof. Flor Narciso
Programación 1 Semestre B-2008
14
7
5/11/08
Programas en C Ejemplo:
/* Ejemplo1.c Mayo, 2008 Autora: Flor Narciso Sumar dos valores a y b, asignar el resultado a c */ int main() { int a, b, c;
/* Declaración de variables locales */
a = 3; b = 7; c = a + b; return 0; }
/* Calcular la suma */
Programación 1 Semestre B-2008
Prof. Flor Narciso
15
Programas en C Sintaxis formal /* Comentarios inicial */ Inclusión de archivos
/* Opcional */
int main() { variables locales
/* Opcional */
Sentencias return 0; } Prof. Flor Narciso
Programación 1 Semestre B-2008
16
8
5/11/08
Programas en C Ejemplo /* Ejemplo2
Mayo, 2008 Autora: Flor Narciso Imprime el mensaje "BIENVENIDO AL CURSO DE PROGRAMACIÓN 1” */ #include <stdio.h> int main() { priny("BIENVENIDO AL CURSO DE PROGRAMACIÓN 1”); return 0; }
Programación 1 Semestre B-2008
Prof. Flor Narciso
17
Lenguaje de programación C • Declaración de importación (inclusión de archivos): Consiste en la llamada a la o las bibliotecas donde se encuentran definidas las funciones de C que se están uClizando en el programa Ejemplo: #include <stdio.h> Función
Prof. Flor Narciso
Descripción
printf
Usada para imprimir salidas de datos
scanf
Usada para introducir datos de entrada
Programación 1 Semestre B-2008
18
9
5/11/08
Conjunto de sentencias Estructuras de control El proceso de diseño del algoritmo y posterior codificación del programa consiste en definir las acciones o sentencias que resolverán el problema Por lo general, en un programa las sentencias son ejecutadas una después de la otra, en el orden en que aparecen escritas
Programación 1 Semestre B-2008
Prof. Flor Narciso
19
Conjunto de sentencias La programación estructurada utiliza tres estructuras de control. Todos los programas pueden ser escritos en términos de estas estructuras de control (Bohm y Jacopini) ➙ Secuenciales ➙ Decisión o selección ➙ Repetición
Prof. Flor Narciso
Programación 1 Semestre B-2008
20
10
5/11/08
Estructuras secuenciales – Se ejecutan en secuencia sin posibilidad que la sentencia siguiente a ejecutar pueda ser otra diferente de la que sigue en la secuencia
Sentencia
Prof. Flor Narciso
Pseudocódigo
Código en C
Comienzo
Inicio
{
Fin
Fin
}
Entrada (lectura)
Leer
scanf
Salida (escritura)
Escribir
printf
Asignación
A ← 5 ó A = 5 A = 5
Programación 1 Semestre B-2008
21
Sentencia de entrada (lectura)
Prof. Flor Narciso
Programación 1 Semestre B-2008
22
11
5/11/08
Sentencia de entrada (lectura)
Prof. Flor Narciso
Programación 1 Semestre B-2008
23
Sentencia de salida (escritura)
Prof. Flor Narciso
Programación 1 Semestre B-2008
24
12
5/11/08
Sentencia de salida (escritura)
Prof. Flor Narciso
Programación 1 Semestre B-2008
25
Ejercicios • Dados tres números enteros, calcular su producto • Calcular el perímetro del siguiente polígono
Prof. Flor Narciso
Programación 1 Semestre B-2008
26
13
5/11/08
Ejercicios • Calcular el perímetro del siguiente polígono
1 cm
P = 2l1 + 2l2
Programación 1 Semestre B-2008
Prof. Flor Narciso
27
Ejercicios • Calcular el perímetro del siguiente polígono
5m
5m
P = 4l1 Prof. Flor Narciso
Programación 1 Semestre B-2008
28
14
5/11/08
Ejercicios • Calcular el perímetro del siguiente polígono
10 dm
10 dm
10 dm
P = 3l1 Programación 1 Semestre B-2008
Prof. Flor Narciso
29
Ejercicios • Calcular el perímetro del siguiente polígono
5m 3m 4m
P = l1 + l2 + l3 Prof. Flor Narciso
Programación 1 Semestre B-2008
30
15
5/11/08
Ejercicios • Calcular la circunferencia del siguiente círculo
5m
C = 2Πr Programación 1 Semestre B-2008
Prof. Flor Narciso
31
Ejercicios • Calcular el área del siguiente rectángulo 5 cm
3 cm
A=axb
Prof. Flor Narciso
Programación 1 Semestre B-2008
32
16
5/11/08
Ejercicios • Calcular el área del siguiente paralelogramo
A=bxh
6 cm
3 cm
Programación 1 Semestre B-2008
Prof. Flor Narciso
33
Ejercicios • Un paralelogramo Cene una altura de 5.6 m y un área de 70 m2. Calcular la longitud de la base 5.6 m
A=bxh
b=?
Prof. Flor Narciso
Programación 1 Semestre B-2008
34
17
5/11/08
Ejercicios • Calcular el área del siguiente trapecio 8 in. 4 in.
A=
15 in.
1 h(b + B) 2
€ Programación 1 Semestre B-2008
Prof. Flor Narciso
35
Ejercicios • Suponga que una habitación Cene a cm de ancho y de largo b cm mas dos veces el ancho. Calcular cuántos metros cuadrados de alfombra necesita para cubrir el área a cm A=axb
b cm
Prof. Flor Narciso
Programación 1 Semestre B-2008
36
18
5/11/08
Ejercicios • Descuento: Cantidad que se reduce del precio regular u original de un producto
Descuento = precio original x porcentaje de descuento
Programación 1 Semestre B-2008
Prof. Flor Narciso
37
Ejercicios • Hallar el precio de venta dado el precio original y el descuento para cada uno de los valores dados en la siguiente tabla
Precio original (P)
Porcentaje de Descuento (M)
175 Bs.
20%
175 x 20/100 = 35 Bs.
95 Bs.
15%
95 x 15/100 = 14.25 Bs.
59 Bs.
1/3
Prof. Flor Narciso
Descuento (D)
59 x 1/3 ≈ 19.67 Bs.
Programación 1 Semestre B-2008
38
19
5/11/08
Ejercicios • Durante una oferta de 50% de descuento un artículo cuesta 17.500 ¿cuál es el precio original? • Durante una oferta del 20% de descuento, un artículo cuesta 52.000 Bs. ¿cuál es el precio original? Precio de venta = precio original - descuento
Prof. Flor Narciso
Programación 1 Semestre B-2008
39
Ejercicios • La fuerza de atracción entre dos cuerpos es igual al producto de una constante k por el cociente que resulta de dividir el producto de las masas de los cuerpos por el cuadrado de su distancia. Realice el análisis E‐P‐S, diseño y codificación para resolver este problema. Pruebe su programa para los valores de k = 0,1, la masa del cuerpo 1 es 3 kg., la masa del cuerpo 2 es 5 kg., y la distancia entre los dos cuerpos es 2,5 m
Prof. Flor Narciso
Programación 1 Semestre B-2008
40
20