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

26
Programación Estructurada: Tema 1. El lenguaje de programación ANSI C David Martínez Torres Instituto de Computación Universidad Tecnológica de la Mixteca dtorres@mixteco .utm.mx Oficina 37

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

Page 1: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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

[email protected]

Oficina 37

Page 2: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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

Page 3: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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

Page 4: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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.

Page 5: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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.

Page 6: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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;

}

Page 7: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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.

Page 8: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

Estructura básica de un programa

Page 9: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

Estructura de un programa con la inclusión de archivos realizados por el desarrollador.

Page 10: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

Estructura de un programa utilizando un proyecto.

Page 11: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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.

Page 12: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

3.1 Tipos y modificadores de tipo

Page 13: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

3.1 Tipos y modificadores de tipo

int sizeof(tipoDeDato o nombre de una variable)

Page 14: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

3. Tipos de datos

1. Arreglos

4. Enumeraciones2. Apuntadores

3. TDA: estructuras, uniones.

5. Archivos

Page 15: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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 (--)

Page 16: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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 (||)

Page 17: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

4. Operadores

Page 18: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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 (,)

Page 19: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

4. Operadores [6]

Page 20: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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, …)

Page 21: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

5. Ejemplos de instrucciones de entrada y salida

Page 22: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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.

Page 23: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

Depurar en dev-c

Insertar un punto deinterrupción

Page 24: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

Depurar en dev-c

Iniciar la depuración

Page 25: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

Depurar en dev-c

Page 26: Programación Estructurada: Tema 1. El lenguaje de programación …dtorres/cursos/programacionestructurada/Tema... · 2019-10-10 · Programación Estructurada: Tema 1. El lenguaje

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.