Programación Estructurada: Tema 1. El lenguaje de programación...

Post on 30-Mar-2020

16 views 0 download

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

dtorres@mixteco.utm.mx

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.