Está en la página 1de 23

Fundamentos de

Programación

Capítulo 1
Fundamentos de programación
Objetivos del capítulo
 Recordar la estructura de un computador y sus sistemas de
representación de información.
 Comprender para qué sirve la programación estructurada.
 Asimilar el ciclo de desarrollo de un programa.
 Comenzar con los rudimentos de la programación en lenguaje C.
 Desarrollar las habilidades básicas con el entorno de programación
usado.

Fundamentos de programación 2 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Contenido del capítulo
 Presentación de la estructura de un computador y de las formas
básicas de representar la información.
 Aspectos básicos del software y de los lenguajes de programación.
 Conceptos de programación estructurada.
 Aspectos básicos del lenguaje C.
 Solución de problemas de programación.
 Errores de programación frecuentes.

Fundamentos de programación 3 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Arquitectura de un computador

Fundamentos de programación 4 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Dispositivos de entrada/salida

 Los dispositivos de entrada/salida (E/S)


constituyen la base de la comunicación
entre el computador y el resto del mundo.
 Los PC incluyen dispositivos típicos para
llevar a cabo tres tareas de entrada/salida:
• interfaz con el usuario,
• conexión con sistemas de almacenamiento
• conexiones a redes.

Fundamentos de programación 5 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Representación de la información
 Sistema binario [0,1].
 Valor decimal de un número binario:

 Valor binario de un número decimal:


1. divida el número por 2.
2. El resto es el valor del bit de la posición binaria más baja (0).
3. Divida el cociente por 2.
4. El resto es el valor del bit de la posición binaria siguiente.
5. Repita los pasos 3 y 4 hasta que no se pueda dividir más, es
decir el cociente es 0.
Fundamentos de programación 6 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón
Representación de números y caracteres
 Números con signo:
 Signo-magnitud
 Complemento a 2
 Números con decimales
 Números en coma flotante
 Caracteres: ASCII
 32 caracteres de control,
 Caracteres del alfabeto inglés en mayúsculas y minúsculas.
 Números del 0 al 9
 Signos de puntuación y caracteres especiales

Fundamentos de programación 7 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Software de sistema y de aplicación

Fundamentos de programación 8 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Lenguajes de programación

 Máquina

 Ensamblador

 Alto nivel

 Scripting

Fundamentos de programación 9 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Principios de la programación estructurada
 Dividir la aplicación en módulos autocontenidos conectados entres
sí.
 Dividir la funcionalidad de cada módulo usando funciones y
procedimientos.
 Programar las funciones usando una estructura de bloques.
 Cada bloque de código debe tener un punto único de entrada y de
salida.
 No se deben usar sentencias de salto incondicional (goto).
 Cuando el computador finaliza la ejecución de un bloque, continúa
con otro o finaliza.

Fundamentos de programación 10 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Símbolos de diagrama de flujo

Fundamentos de programación 11 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Diagrama de flujo para sumar los 20 primeros números

Fundamentos de programación 12 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Bloques en programación estructurada

Fundamentos de programación 13 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


El lenguaje de programación C
 A principios de 1970 en los laboratorios Bell, de ATT:
 Brian Thompson -> UNIX
 Dennis Ritchie -> C
 Características:
 Es un lenguaje adecuado para programación de sistemas.
 Es adecuado también para cualquier otro tipo de aplicación.
 Es un lenguaje relativamente pequeño y transportable.
 No ofrece mecanismos de E/S (entrada/salida)
o Bibliotecas
 Permite programación estructurada y diseño modular.

Fundamentos de programación 14 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Más características

 No es un lenguaje fuertemente tipado.

 Es bastante permisivo con la conversión de datos.

 Sin una programación metódica puede ser propenso a errores


difíciles de encontrar.

 La versatilidad de C permite crear programas difíciles de leer


 C “ofuscado”

Fundamentos de programación 15 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Programa C ofuscado

Fundamentos de programación 16 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Ciclo de desarrollo de un programa

Fundamentos de programación 17 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Primer programa en C

Fundamentos de programación 18 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Compilación y ejecución desde DevCpp

Fundamentos de programación 19 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Entrada/Salida básica

 printf (formato, arg1, arg2, ... argN);

printf (”\n Hola aprendi z de programador en C. %s ” , nombre ) ;

 scanf (formato, arg1, ..., argN);

printf (” Es c r iba un numero r e a l f l o t a n t e : ” ) ;


scanf (”%f ” , &f ) ;

Fundamentos de programación 20 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Pasos de solución de problemas de programación

 Análisis de requisitos
 Diseño del programa
 Codificación en lenguaje C
 Prueba del programa
 Validación del programa
 Optimización del programa

Fundamentos de programación 21 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Diseño de alto nivel de agenda electrónica

Fundamentos de programación 22 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón


Errores de programación comunes
 Omisión del punto y coma. Todas las sentencias de C deben
terminar con punto y coma.
 Comentarios anidados. Recuerde que los comentarios no se
pueden anidar, es decir, dentro de un comentario no puede
aparecer el símbolo /*.
 Comentarios mal finalizados. Un comentario debe comenzar con el
símbolo /* y finalizar con */.
 Olvido de declarar la función main. Todos los programas C deben
tener una función main en su programa principal.
 Olvido de las llaves de la función main. Todas las sentencias de la
función main, y en general de todos las funciones, deben ir
encerradas entre { y }.

Fundamentos de programación 23 © J. Carretero, F. García, J. M. Pérez, J. Fernández, A. Calderón

También podría gustarte