Вы находитесь на странице: 1из 66

PROGRAMACIÓN

ESTRUCTURADA

Unidad I.
Elementos básicos
de la programación
estructurada

M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 Loslenguajes de programación se utilizan


para escribir programas.

– Lenguajes máquina
– Lenguajes de bajo nivel
– Lenguajes de alto nivel

2 M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 Cada lenguaje de programación tiene un


conjunto de instrucciones que la
computadora podrá entender directamente
en su código máquina o bien se traducirán a
dicho código máquina.

3 M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 Lasinstrucciones básicas y comunes en casi


todos los lenguajes de programación son:

– Instrucciones de entrada/salida
– Instrucciones de cálculo
– Instrucciones de control

4 M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 El lenguaje C: Historia y características


– La popularidad, eficacia y potencia de C, se ha
producido porque este lenguaje no está
prácticamente asociado a ningún sistema
operativo, ni a ninguna máquina en especial.

– Esta es la razón fundamental, por la cual C, es


conocido como el lenguaje de programación de
sistemas por excelencia.

5 M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 El lenguaje C: Historia y características


– Nació en 1978
– Es un lenguaje de alto nivel
– Es un lenguaje de programación estructurado de
propósito general
– Potente y Flexible
– Diferentes tipos de compiladores (UNIX, Linux,
MacOS, Solaris, etc.)

6 M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 Ventajas de C
– Es poderoso y flexible
– Es utilizado por programadores profesionales
– Se puede utilizar para desarrollar sistemas
operativos, compiladores, sistemas de tiempo
real y aplicaciones de comunicaciones
– Portabilidad
– Velocidad de ejecución

7 M. en C. Jorge Ochoa Somuano


1.1. Lenguajes de programación:
características básicas

 Características técnicas de C
– Una nueva sintaxis para declarar funciones
– Asignación de estructuras y enumeraciones
– Preprocesador más sofisticado
– Una nueva definición de biblioteca
 Acceso al SO
 Asignación dinámica de memoria
 Manejo de cadenas de caracteres

8 M. en C. Jorge Ochoa Somuano


1.2. Codificación de algoritmos y
diseño de programación

 Una vez que se han realizado el análisis y el


diseño del algoritmo, se debe pasar a un
lenguaje de programación para su ejecución
en una computadora.

 Lo único que se requiere es el conocimiento


de algún lenguaje de programación para una
traducción correcta.
9 M. en C. Jorge Ochoa Somuano
1.2.1. Estilos de programación

 Unbuen estilo para programar deberá tener


una estructura de código fácil de entender.

– Nombres significativos para variables, controles, y


procedimientos.
– Identación (sangrías) y espacios apropiados en el código.
– Documentar el código (poner comentarios para aclarar).
– Módulos adaptables.
– Minimizar el acoplamiento
– Minimizar alcance de los datos hasta donde sea posible.

10 M. en C. Jorge Ochoa Somuano


1.2.2. Estructura general de un
programa

 Un programa en C se compone de una o más


funciones.

 Una de las funciones debe ser obligatoriamente


main.

 Una función en C en un grupo de instrucciones que


realizan una o más acciones.

11 M. en C. Jorge Ochoa Somuano


1.2.2. Estructura general de un
programa

 Así mismo un programa contendrá una serie


de directivas #include que permitirán incluir
en el mismo archivos de cabecera que a su
vez constarán de funciones y datos
predefinidos en ellos.

12 M. en C. Jorge Ochoa Somuano


1.2.2. Estructura general de un
programa

#include --- Directivas del procesador

#define --- Macros del procesador

Declaraciones globales
prototipos de funciones
variables

Función principal main


main () {
declaraciones locales
sentencias
}

Definiciones de otras funciones


tipo1 func1 (…)
{

}
13 M. en C. Jorge Ochoa Somuano
1.2.2. Estructura general de un
programa

 Deun modo más explicito, un programa en


C puede incluir:
– Directivas de procesador
– Declaraciones globales
– La función main; int main ();
– Funciones definidas por el usuario
– Comentarios del programa

14 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

C no soporta un gran número de tipos de


datos predefinidos, pero tiene la capacidad
para crear sus propios tipos de datos.
 Todos los tipos de datos simples o básicos
de C son, esencialmente números.
– Enteros
– Números de coma flotante (reales)
– Caracteres

15 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

Tipo Ejemplo Tamaño Rango


en bytes Mín .. Máx
char ‘C’ 1 0 .. 255
short -15 2 -128 .. 127
int 1024 2 -32768 .. 32767
unsigned int 42325 2 0 .. 65535
long 262144 4 -214748648 .. 2147483647
float 10.5 4 3.4*(10-38) .. 3.4*(1038)
double 0.00045 8 1.7*(10-308) .. 1.7*(10308)
long double 1e-8 8 igual que double
16 M. en C. Jorge Ochoa Somuano
1.2.2.1. Tipos de datos y operadores

 Operador de asignación
– El operador = asigna el valor de la expresión
derecha de la variable situada a su izquierda
 codigo = 3467;
 fahrenheit = 123.456
 coordX = 25
 coordY = 75

– Permite realizar asignaciones múltiples:


a = b = c = 45;

17 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operador de asignación
– Proporciona cinco operadores adicionales

Símbolo Sent. Abrev. Sent. No abrev.


= a = b; a = b;
*= a *= b; a = a * b;
/= a /= b; a = a / b;
%= a %= b; a = a % b;
*= a += b; a = a + b;

18 -= a -= b; a=
M. en C. a - b;Ochoa Somuano
Jorge
1.2.2.1. Tipos de datos y operadores

 Operadores aritméticos
– Sirven para realizar operaciones aritméticas
básicas

– Siguen las reglas algebraicas típicas de jerarquía


o prioridad

– Las expresiones interiores a paréntesis se


evalúan primero

19 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operadores aritméticos
– Precedencia de operadores

Operador Operación Nivel de


precedencia
+,- +25, -6.75 1
*, /, % 5 * 5 es 25
25 / 5 es 5 2
25 % 6 es 1
+, - 2 + 3 es 5 3
20 2 – 3 es -1 M. en C. Jorge Ochoa Somuano
1.2.2.1. Tipos de datos y operadores

 Operadores aritméticos - Asociatividad


– La asociatividad determina el orden en que se
agrupan los operadores de igual prioridad.

x – y + z se agrupa como (x – y) + z
 Tiene asiciatividad de izquierda a derecha

x = y = z se agrupa como x = (y = z)
 Tiene asociatividad de derecha a izquierda

21 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operadores aritméticos – Uso de paréntesis


– Se pueden utilizar para cambiar el orden usual de
evaluación de una expresión determinada por su
prioridad y asociatividad.

– En caso de existir se evalúan primero los


paréntesis más internos.

– Ejemplo: (7 * (10 – 5) % 3) * 4 + 9

22 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operadores de Incremento Decremento


incremento y
decremento n++ n--
– Suman o restan 1 a su
argumento,
respectivamente cada n += 1 n -= 1
vez que se aplican a
una variable.
n=n+1 n=n-1

23 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operadores de incremento y decremento


– Estos operadores tienen la propiedad de que
pueden utilizarse como sufijo o prefijo

– El resultado de las expresiones puede ser


distinto, dependiendo del contexto.

Ejemplo: m = n++;
m = ++n;

24 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operadores relacionales
– C no tiene tipos de datos lógicos para representar
los valores verdadero y falso.

– Se utiliza el tipo int para este propósito, con el


valor entero 0 que representa falso y distinto de
cero a verdadero.

25 M. en C. Jorge Ochoa Somuano


1.2.2.1. Tipos de datos y operadores

 Operadores relacionales
– Normalmente se utilizan en sentencias de selección o
iteración.

Operador Significado Ejemplo


== Igual a a == b
!= No igual a a != b
> Mayor que a>b
< Menor que a<b
>= Mayor o igual que a >= b
<= Menor o igual que a <= b
26 M. en C. Jorge Ochoa Somuano
1.2.2.1. Tipos de datos y operadores

 Operadores lógicos
– Estos operadores se utilizan con expresiones
para devolver un valor verdadero o un valor falso.
– Los operadores lógicos se denominan también
operadores booleanos.
– Los operadores lógicos de C son:
! (not)
 && (and)
 || (or)

27 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 En C existen cuatro tipos de constantes


– Constantes literales

– Constantes definidas

– Constantes enumeradas

– Constantes declaradas

28 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes literales
– Se clasifican en cuatro grupos
 Constantes enteras

 Constantes caracteres

 Constantes de coma flotante

 Constantes de cadena

29 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes literales - enteras


– Requieren seguir unas determinadas reglas
 No utilizar nunca comas ni otros signos de puntuación
 Para forzar un valor al tipo long terminar con una letra l o L
– 1024 1024L
 Para forzar un valor al tipo unsigned, terminarlo con una letra
mayúscula U
– 4253U
 Para representar un entero en octal, debe estar precedido de 0
– 0777
 Para representar un entero en hexadecimal, debe estar precedido de
0x
– 0xFF3A
 Se pueden combinar sufijos
– 3456UL

30 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes literales – reales


– Siempre tienen signo y representan
aproximaciones en lugar de valores exactos.
 82.345 .87 42e4 3E-5
– La notación científica se representa con un
exponente positivo o negativo
 2.5E4 equivale a 25000
 5.435E-3 equivale a 0.005435
– Existen tres tipos de constantes
 float double long double
31 M. en C. Jorge Ochoa Somuano
1.2.2.2. Constantes, variables y
expresiones

 Constantes literales – carácter


– Una constante carácter es un carácter del código
ASCII encerrado entre apostrofes.
 ‘a’ ‘B’ ‘c’

– Se pueden también representar caracteres que


no están en el teclado
 char sigma = ‘\xE4’;

32 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes literales – cadena


– Una constante cadena también llamada literal
cadena, es una secuencia de caracteres
encerrados entre dobles comillas.
– En memoria, las cadenas se representan por un a
serie de caracteres ASCII más un 0 o un nulo.
– Para representar valores nulos, C define el
símbolo NULL como una constante.

33 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes definidas (simbólicas)


– Las constantes pueden recibir nombres
simbólicos mediante la directiva #define
 #define NUEVALINEA \n

 #define PI 3.1416

 #define VALOR 54

– Las líneas anteriores no son sentencias.

34 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes enumeradas
– Permiten crear listas de elementos afines
 enum Colores {Rojo, Naranja, Amarillo, Verde, Azul};

 enum Boolean { False, True };

– Después de declarar un tipo de dato enumerado,


se pueden declarar variables de ese tipo.
 enum Boolean Interruptor = True;

35 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Constantes declaradas
– La palabra reservada const permite dar nombres
a constantes y especifica que el valor de dicha
variable no se puede modificar durante el
programa.
– La palabra volatile actúa como const, pero su
valor puede ser modificado no solo por el
programa, sino también por el HW o SW del
sistema.

36 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Diferencias entre const y #define


– Las definiciones const especifican tipos de datos,
terminan con punto y coma y se inicializan como
las variables.

– La directiva #define no especifica tipos de datos,


no utiliza el operador de asignación y no termina
con punto y coma.

37 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 En C una variable es una posición con


nombre en memoria donde se almacena un
valor de un cierto tipo de dato.
 Toda variable utilizada en un programa debe
ser declarada previamente.
 La definición en C debe situarse al principio
del bloque, antes de toda sentencia
ejecutable.
38 M. en C. Jorge Ochoa Somuano
1.2.2.2. Constantes, variables y
expresiones

 Una declaración de una variable es una sentencia


que proporciona información de la variable al
compilador.
 Sintaxis:
– tipo variable
tipo es el nombre de un tipo de dato en C
variable es un identificador válido en C
 Ejemplos:
– Long dNumero
– Double HorasAcumuladas
– Float NotaMedia

39 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 El formato general de una declaración de


inicialización es:
– Tipo nombre_variable = expresión;
expresión es cualquier expresión válida cuyo
valor es del mismo tipo que tipo
char respuesta = ‘s’;
int contador = 1;
float peso = 86.3;

40 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Duración de una variable


– El ámbito o alcance de una variable se extiende
hasta los limites de la definición de su bloque.
– Los tipos básicos de variables en C son:
Variables locales
Variables globales
Variables dinámicas

41 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Variables locales
– Son aquellas definidas en el interior de una
función y son visibles sólo en esa función
específica. Las reglas son:
 No pueden ser modif. por ninguna sentencia externa
 Los nombres no han de ser únicos
 No existen en memoria hasta que se ejecuta la función
 Se liberan automáticamente cuando termina la función

42 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Variables locales - Ejemplo

#include <stdio.h>

main () {
int a, b, c, suma, numero; /* variables locales */
printf (“Cuantos números a sumar:”);
scanf (“%d”, &numero);

suma = a+b+c;

}

43 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Variables globales
– Son aquellas que se declaran fuera de la función y por
defecto son visibles a cualquier función, incluyendo main ().
#include <stdio.h>

int a, b, c; /* declaración de variables globales */

main () {
int valor; /* declaración de una variable local */
printf (“Tres valores: ”);
scanf (“%d %d %d”, &a, &b, &c);
valor = a+b+c;

}

44 M. en C. Jorge Ochoa Somuano


1.2.2.2. Constantes, variables y
expresiones

 Variables dinámicas
– Al igual que una variable local, una variable
dinámica se crea y libera durante la ejecución del
programa.
– La diferencia entre una variable local y una
dinámica es que la variable dinámica se crea tras
su petición.
– Al igual que una variable global se pueden crear
variables dinámicas que son accesibles desde
múltiples funciones.

45 M. en C. Jorge Ochoa Somuano


1.2.2.3. Identificadores y palabras
reservadas

 Un identificador es una secuencia de caracteres,


letras, dígitos y subrayados (_). El primer carácter
debe ser una letra o _. Las letras mayúsculas y
minúsculas son diferentes.
– Nombre_clase
– Indice
– indice
– i
– a

46 M. en C. Jorge Ochoa Somuano


1.2.2.3. Identificadores y palabras
reservadas

 Recomendaciones al escribir identificadores:

– Escribir identificadores de variables en letras


minúsculas.

– Escribir constantes en mayúsculas.

– Escribir funciones con tipo de letra mixto

47 M. en C. Jorge Ochoa Somuano


1.2.2.3. Identificadores y palabras
reservadas

 Una palabra reservada (keyword) es una


característica del lenguaje C asociada con algún
significado especial.
 Una palabra reservada no puede utilizarse como
nombre de identificador o función.

void void () {

int char;

}
48 M. en C. Jorge Ochoa Somuano
1.2.2.3. Identificadores y palabras
reservadas

 Palabras reservadas en C

auto double int struct


break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

49 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Tokens
– Identificadores, palabras reservadas, literales,
operadores y otros separadores.
 Comentarios
 Signos de puntuación y separadores
– !%^&*()-+={}~[]\;‘:<>?,./“
 Archivos de cabecera
 Tipos de datos
 Entradas y salidas

50 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Salida
– La función printf () visualiza en la pantalla datos
del programa.

suma = 0;
suma = suma + 10;
printf (“%s %d”, “Suma= “, suma);

51 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 La forma general qque tiene la función


printf () es:

printf (cadena_de_control, dato1, dato2, …);

cadena_de_control contiene los tipos de los datos y forma de mostrarlos


dato1, dato2, … variables, constantes, datos de salida

52 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Suponiendo que:

i = 11; j = 12; c = ‘A’; n = 40.791512

printf (“%x %3d %c %.3f”, i, j, c, n);

Visualizaría en pantalla:
B 12 A 40.792

53 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Los códigos de formato más utilizados


 %d El dato se convierte a entero decimal.
 %o El dato entero se convierte a octal.
 %x El dato entero se convierte a hexadecimal.
 %u El dato entero se convierte a entero sin signo.
 %c El dato se considera de tipo carácter.
 %e El dato se considera de tipo float. Se convierte a notación científica.
 %f El dato se considera de tipo float. Se convierte a notación decimal.
 %g El dato se considera de tipo float. Se conv. según el código %e o %f.
 %s El dato ha de ser una cadena de caracteres.
 %lf el dato se considera de tipo double.

54 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Caracteres de secuencias de escape


 \a alarma
 \b Retroceso de espacio
 \f Avance de página
 \n Retorno de carro y avance de línea
 \r Retorno de carro
 \t Tabulación
 \v Tabulación vertical
 \\ Barra invertida
 \? Signo de interrogación
 \” Comillas dobles
 \000 Número octal
 \xhh Número hexadecimal
 \0 Cero o nulo

55 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Ejemplos

printf (“\n”);

printf (“\n Tabla de números \n”);

printf (“\nNum1 \t Num2 \t Num3 \n”);

printf (“%c”, ‘\a’);

56 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Funcionamiento de las secuencias de escape.


#include <stdio.h>

main () {
char sonidos = ‘\a’;
char bs = ‘\b’;

printf (“%c%c”, sonidos, sonidos);


printf (“ZZ”);
printf (“%c%c”, bs, bs);
getch ();
}
57 M. en C. Jorge Ochoa Somuano
1.2.2.4. Sintaxis del lenguaje de
programación

 Entrada
– La función scanf () acepta información del
teclado.
– La forma general que tiene la función scanf ()
es:
scanf (cadena_de_control, var1, var2, var3, …);

cadena_de_control contiene los tipos de los datos y si se desea su anchura


var1, var2, var3, … variables del tipo de los códigos de control.

Los argumentos var1, var2, … necesitan el operador de dirección &.


58 M. en C. Jorge Ochoa Somuano
1.2.2.4. Sintaxis del lenguaje de
programación

 Ejemplos
printf (“Introduzca v1 y v2: “);
scanf (“%d %f”, &v1, &v2); /*lectura de valores*/

printf (“Precio de venta al público”);


scanf (“%f”, &precio_venta);

printf (“Base y altura: ”);


scanf (“%f %f”, &b, &h);

59 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Funcionamiento

#include <stdio.h>
main () {
char primero, ultimo;

printf (“Introduzca su primera y última inicial: ”);


scanf (“%c %c”, &primero, &ultimo);
printf (“Hola, %c. %c. \n”, primero, ultimo);
getch ();
}

60 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Salida de cadena de caracteres


La función puts () escribe una cadena de
caracteres en la salida estándar y añade el fin
de línea. Sólo tiene un argumento.

Ejemplo:
puts (nombre);
printf (“%s\n”, nombre);

61 M. en C. Jorge Ochoa Somuano


1.2.2.4. Sintaxis del lenguaje de
programación

 Entrada de cadena de caracteres


La función gets () capta una cadena de
caracteres del dispositivo estándar de entrada.
Termina la entrada con un retorno de carro.

Ejemplo:
gets (nombre);
scanf (“%s”, &nombre);

62 M. en C. Jorge Ochoa Somuano


Temas vistos sin diapositivas

1.3 Captura de programas


1.3.1. Entorno de edición
1.4 Compilación y ejecución
1.4.1. Corrección de errores
1.4.2. Depuración y puesta a punto del programa

63 M. en C. Jorge Ochoa Somuano


1.5. Documentación de programas

 Interna
– Se incluye dentro del código del programa
fuente mediante comentarios que ayudan a la
comprensión del código.

– Se recomienda que se incluya el mayor número


de comentarios posibles, pero, que sean
significativos.

64 M. en C. Jorge Ochoa Somuano


1.5. Documentación de programas

 Comentarios
– Los comentarios se encierran entre /* y */

/* Titulo: Ejemplo de un comentario */

/* Este es un ejemplo con varias líneas


de texto para el comentario */

65 M. en C. Jorge Ochoa Somuano


1.5. Documentación de programas

 Encabezado para sus programas

/*--------------------------------------------
Archivo:
Nombre:
Fecha:
Descripción:
----------------------------------------------*/

66 M. en C. Jorge Ochoa Somuano

Вам также может понравиться