Programación Estructurada: Tema 1. El lenguaje de programación...
Transcript of Programación Estructurada: Tema 1. El lenguaje de programación...
Programación Estructurada:
Tema 1. El lenguaje de
programación ANSI CDavid Martínez Torres
Instituto de Computación
Universidad Tecnológica de la Mixteca
Oficina 37
Contenido
1. Introducción a la programación estructurada
2. Estructura de un programa
3. Tipos de datos
4. Operadores
5. Ejemplos de instrucciones de entrada y salida
6. Referencias
1. Introducción a la programación estructurada
• Crisis del Software [OTAN,1968]
• La programación estructurada se convirtió en
sinónimo de “eliminación de goto”.
10 CLS
20 A=10
30 INPUT B
40 IF B=A THEN GOTO 50 ELSE GOTO 70
50 PRINT “A Y B SON IGUALES”
60 GOTO 100
70 IF A>B THEN GOTO 80 ELSE GOTO 90
80 B=B+1; GOTO 40
90 B=B-1; GOTO 40
100 END
1. Introducción a la programación estructurada
Bohm y Jacopini [1][2][3] 1966,
demostraron que todos los programas
podrían ser escritos usando solo tres
estructuras de control:
• De secuencia
• De selección y,
• De repetición.
1. Introducción a la programación estructurada
Importante seguir un ciclo de vida:
• Análisis (entradas, salidas, proceso)
• Diseño (algoritmo, seudocódigo, diagrama de
flujo)
• Codificación
• Compilación
• Pruebas
• Mantenimiento.
2. Estructura de un programa
#include <stdio.h> //librerías
tipo func(tipo1, … ); //prototipos de función
tipo nombre; //declaración de v. globales
int main() { //función principal
declaraciones; //declaración de v. locales
instrucciones;
return 0;
}
tipo func(arg1,… ) { //definición de función
declaraciones //declaración de v. locales
instrucciones
return valor;
}
2. Estructura de un programa
/* Función main con argumentos */
int main(int argc, char *argv[])
A continuación ver ejemplos de la
estructura de un programa.
Estructura básica de un programa
Estructura de un programa con la inclusión de archivos realizados por el desarrollador.
Estructura de un programa utilizando un proyecto.
3. Tipos de datos
Existen 5 tipos básicos: char, int, float, double y void.
Modificadores de tipo: signed, unsigned, short, long El tamaño y rango de cada uno depende
del IDE del compilador. La función sizeof() permite conocer el tamaño en bytes de cada tipo.
3.1 Tipos y modificadores de tipo
3.1 Tipos y modificadores de tipo
int sizeof(tipoDeDato o nombre de una variable)
3. Tipos de datos
1. Arreglos
4. Enumeraciones2. Apuntadores
3. TDA: estructuras, uniones.
5. Archivos
4. Operadores
Operadores matemáticos
• Suma (+), resta (-), multiplicación (*), división (/) y
módulo ( % )
• La división entera trunca el resultado (no lo redondea).
El operador módulo no se puede utilizar con números
con punto flotante.
• Notación abreviada para operación y asignación al
mismo tiempo. Ejemplo x +=4;
• Tomar en cuenta la precedencia de operadores.
Ejemplo: A = X + Y - 2/2 + Z;
• Incremento (++), decremento (--)
4. Operadores
• Operadores relacionales
menor que (<), mayor que (>), menor o igual a (<=),
mayor o igual a (>=), equivalente (==), y distinto (!=).
• Operadores lógicos
and () y or (||)
4. Operadores
4. Operadores
Operadores unarios
• Not lógico (!), menos unario (-) y mas unario (+)
• De dirección (), indirección (* y ->)
• Ejemplos x = -a;
Operador ternario
• (a>b)? printf(“ a es mayor”) : printf(“a no es mayor”);
• Operador coma (,)
4. Operadores [6]
5. Ejemplos de instrucciones de entrada y salida
Entrada/Salida estándar <stdio.h>
• Obtener un carácter getchar()
• Imprimir un carácter putchar(car)
• Imprimir con formato printf(“formato”, arg1, …)
• Leer con formato scanf(“formato”, arg1, …)
• Leer línea en cadena s gets(s)
• Imprimir cadena s puts(s)
E/S de archivos
• Obtener un carácter fgetc(fp)
• Escribir un carácter putc(car,fp)
• Escribir en fichero fprintf(fp,“formato”, arg1, …)
• Leer de archivo fscanf(fp, “formato”, arg1, …)
5. Ejemplos de instrucciones de entrada y salida
5. Ejemplos de instrucciones de entrada y salida
Enteros:
En base 10: %d o %i (%ld ó %li para enteros largos)
En base 8: %o
En base 16: %x
Reales:
%f reales de precisión simple (float)
%lf para reales de precisión doublé
%e notación científica
%g redondea la parte fraccionaria a 3 dígitos significativos
Carácter:
%c variable tipo carácter
%i o %d para imprimir el valor del código ASCII del carácter en base 10
%o imprime el valor del código ASCII del carácter en base 8
%x imprime el valor del código ASCII del carácter en base 16.
Cadenas %s, se requiere uso de arreglos de caracteres.
Depurar en dev-c
Insertar un punto deinterrupción
Depurar en dev-c
Iniciar la depuración
Depurar en dev-c
6. Referencias
1. Bohm, C y G. Jacopini “Flow Diagrams, Turing Machines, and Languages with Only Two Formation Rules”, Communicationsof the ACM, Vol. 9, No. 5, Mayo 1966, pp. 336-371.
2. Joyanes Aguilar, Luis (1993) Metodología de la programación : diagramas de flujo, algoritmos y programación estructurada. McGraw-Hill, México.
3. Deitel & Deitel (2001) C++ Como programar en C/C++.Prentice Hall
4. Kerrighan y Ritchie “El lenguaje de programación”. Prentice Hall
5. Gottfried, Byron (1999) “Programación en C” McGrawHill, México.
6. J. H. Silverman (2002) Tarjeta de referencia ANSI C. (2002) Math. Dept., Brown Univ., Providence, RI 02912 USA. Traducido por F. Abad, C.D. Martínez, D. Picó, J.A. Sánchez.