0% encontró este documento útil (0 votos)
3 vistas23 páginas

Tema 2 ConceptosBasicosProgramacion

Cargado por

fgyhr5rn4c
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas23 páginas

Tema 2 ConceptosBasicosProgramacion

Cargado por

fgyhr5rn4c
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

FUNDAMENTOS DE INFORMÁTICA

1º Grado en Ingeniería en Tecnologías Industriales

Tema 2:
Conceptos básicos de programación
CONTENIDO
1 Metodología de la programación.

2 Programación estructurada.
1. Metodología de la programación.
Pasos a seguir para el desarrollo de un programa (fases):

Análisis del problema.


Diseño de el/los algoritmos.
Codificación del programa.
Compilación.
Verificación/depuración.
Documentación.
1. Metodología de la programación.

Análisis del problema

ANÁLISIS DEL
PROBLEMA

DATOS DE DEFINICIÓN DATOS DE


ENTRADA PROBLEMA SALIDA (Resultados)
1. Metodología de la programación.
Análisis del problema
• Ejemplo
– Leer el radio de un círculo y calcular e imprimir su superficie y la
longitud de la circunferencia.

• Análisis
– Entradas: Radio del círculo (variable RADIO).
– Salidas: Superficie del círculo (variable AREA), Circunferencia del
círculo (variable CIRCUNFERENCIA).
– Variables: RADIO, AREA, CIRCUNFERENCIA (tipo real).

5
1. Metodología de la programación.
Diseño de el/los algoritmos
– Conjunto preescrito de operaciones (reglas o instrucciones) bien definidas para resolver un problema en un número finito
de pasos.

– Un algoritmo: Finito (Resultado en el tiempo), Definido (No puede ser ambiguo), Preciso (ejecución paso a paso).

– El diseño del algoritmo es bastante independiente del lenguaje de programación

– Definir paso a paso con detalle.

– Diseño descendente o modular:


División del problema en subproblemas

PROBLEMA

DATOS DE DEFINICIÓN DATOS DE


ENTRADA PROBLEMA SALIDA

Problema 1

Dato 1. Dato 2. Salida 1. Salida 2.


Subproblema 1. 1 Subproblema 1.2
1. Metodología de la programación.
Diseño de el/los algoritmos
INICIO

Diagrama de flujo
Acumuladores a cero s=0

Contador a cero n=0

Introducir un número en a

a=0 NO
SI

Promedio p=s/n Contarlo n=n+1

Imprimir Acumulativo s=s+a


Promedio

Introducir un número
FIN
1. Metodología de la programación.
Diseño de el/los algoritmos
Diagrama de flujo
TERMINAL

ENTRADA-SALIDA SUBRUTINA

PROCESO PANTALLA

DECISIÓN
SI
IMPRESORA
NO

CONECTOR

COMENTARIOS

8
1. Metodología de la programación.
Diseño de el/los algoritmos
Pseudocódigo Se trata de un lenguaje imitación del de un ordenador.
No está estandarizado.

 Cada programador tiene el propio.

 Mezcla de lenguaje natural, símbolos, términos y


características de varios lenguajes de programación.
Ejemplo:

Definición de variables_componentes.
Inicio
Escribir_texto (‘entrada de dato’);
Leer_Dato(dato);
Proceso
salida = dato * 2;
Escribir_resultado_proceso (salida);
Fin
1. Metodología de la programación.
Codificación del programa
– Escribir el algoritmo en un lenguaje de programación
• Permite ser leído y ejecutado por el ordenador.
– Tipos de lenguajes:
• De bajo nivel (dependen de la máquina sobre la que se ejecuta):
– Lenguaje Máquina (escritura en binario)
– Ensambladores: (escritura simbólica)
• De alto nivel (no dependen de la máquina):
– Imperativos:
Estructurados Orientados a Objeto
» FORTRAN  Java
» C  C++
» PASCAL  Python
– Declarativos:
» LISP / PROLOG
– La salida de la fase de codificación son los programas fuente (que todavía no se pueden
ejecutar directamente sobre el ordenador)
– Un programa se compone de un conjunto de instrucciones que indican las operaciones
elementales a ejecutar y la manera en que se encadenan.
1. Metodología de la programación.
Compilación y enlace
– Salvo que el programa se escriba directamente en lenguaje máquina (muy
improbable) siempre debe existir un traductor.

– La fase de compilación y enlace permite leer el programa escrito en lenguaje


de alto nivel y traducirlo a lenguaje maquina.

– Hay tres tipos de traductores:


– Compiladores (el que vamos a usar en esta asignatura)
– Interpretes.
– Ensambladores.

Traductor

PROGRAMA Compilador PROGRAMA


FUENTE OBJETO
1. Metodología de la programación.
Compilación y enlace: usando el Compilador Codelite
Archivos
Errores de Compilación Archivos de Biblioteca
(léxicos, sintácticos y incluídos
semánticos)

Programa Programa Objeto


Fuente Compilador Enlazador
(texto)
Otros programas objetos

Programa
Ejecutable
1. Metodología de la programación.

Verificación/depuración
– Errores en tiempo de ejecución
• división por cero, apertura de ficheros inexistentes,...

– Errores lógicos (los más difíciles de detectar)


• Resultados incorrectos

– Optimización del algoritmo.


1. Metodología de la programación.
Compilación y enlace +
Verificación y depurado
Archivos
Errores de Compilación Archivos de Biblioteca
(léxicos, sintácticos y incluídos
semánticos)

Programa Compilador Programa Objeto Enlazador


Fuente
(texto)

Errores de ejecución
Errores lógicos Programa
Ejecutable
Verificación y
Resultados Depurado
Correctos
1. Metodología de la programación.
Documentación
– Se genera a lo largo de todas la fases
– Debe permitir acceder al programa a una persona distinta al
programador.
– Interna:
– Código de programa fuente
– Comentarios
– Externa:
• Especificación de requisitos
• Listado de programa fuente
• Explicación de los algoritmos (CLARO y CONCISO)
• Diagramas de flujo o pseudocódigo.
• Especificación de datos, formatos de pantalla,...
• ...
1. Metodología de la programación.
Definición del División modular
Problema Problema del Problema
Análisis Diseño (Pseudocódigo,
Datos de Entrada
Diagrama de Flujo)
Datos de Salida
DE, DS

Codificación
Programa
Fuente
Documentación Errores de
Programa fuente Compilación Compilar y
Pseudocódigo Enlazar
Diagrama de Flujo Errores de Ejecución Programa
Manual de Usuario Errores de Lógica Ejecutable
Especificación de los Datos
... Verificar y
Depurar
2. Programación estructurada.
• Un programa estructurado se basa en la aplicación sistemática de las siguientes reglas:
– Diseño modular: descomponer un módulo complejo en otros submódulos más simples 
Diseño Descendente
– Programar cada módulo de manera lo más independiente posible.
– Razonamiento de lo general a lo particular.
– Ventajas:
• Mejora la legibilidad del programa
• Facilita el entendimiento del programa
• Simplifica el mantenimiento
• Minimiza la complejidad
• Cada módulo puede ser programado por personas diferentes
• Utilización de una metodología de programación disciplinada
• Favorece el trabajo en equipo
– Problema: No existe un método estándar para dividir en módulos un programa
• Teorema de la Programación Estructurada
Todo algoritmo puede ser descrito utilizando solamente tres tipos de estructuras
de control: secuencial, alternativa, y repetitiva.
2. Programación estructurada.
Acción 1
• Secuencia
Todas las acciones se ejecutan
sucesivamente, una a continuación Acción 2
de otra sin posibilidad de
bifurcaciones.
Acción 3

Falso Cierto
• Sentencias Alternativa
Falso Cierto
Una estructura
Condición Condición alternativa bifurca el
Acción Acción 1 Acción 2 flujo de un algoritmo
según se cumplan una
o varias condiciones.
2. Programación estructurada.
• Sentencias Repetitivas:
Una estructura de control repetitiva permite ejecutar una o varias acciones un número de
veces que puede estar definido a priori o indefinido hasta que se cumpla una determinada
condición.
PARA

Falsa
Índices
Tipos de sentencias de control repetitivas: Ciert
a
Acción
– PARA: El nº de repeticiones se conoce
antes de iniciar el bucle.
– MIENTRAS: Repite las acciones mientras la HACER MIENTRAS
MIENTRA
condición se cumple. S
Falso
– HACER MIENTRAS: Se realiza siempre una Acción Condición
vez la acción y luego se vuelve a realizar
mientras la condición se cumpla Ciert Ciert
a Condici a
Acción
ón
Falsa
2. Programación estructurada.
Ejemplos
• Diseñar un algoritmo que resuelva una ecuación de segundo grado:
– Datos de entrada:
• Coeficientes a,b,c
– Datos de salida:
• Soluciones de la ecuación si las hay
– Nota:
• El algoritmo únicamente resolverá la ecuación en el caso de
existir 2 soluciones diferentes (opción 1)
• En cualquier otro caso mostrara un mensaje de error.
• Diseñar el algoritmo para hacer una tortilla de patata
• Diseñar el algoritmo que resuelva la ecuación de segundo grado dando
todas las posibles soluciones (opción 2).
2. Programación estructurada.
INICIO
Ecuación de Segundo Grado – Entrada de
Diagrama de flujo datos: a , b , c

NO
a!= 0
SI

SI DECISIÓN NO
b*b >= 4*a*c
No ecuación
de 2º grado
x1=(-b+sqrt(b*b-4*a*c))/2*a Solución
imaginaria

FIN x2=(-b-sqrt(b*b-4*a*c))/2*a

Salida
x1, x2
FIN

FIN
2. Programación estructurada.
Ecuación de Segundo Grado – Pseudocódigo
Algoritmo ‘Ecuación de segundo grado’
{Cálculo de una ecuación de segundo grado}
Variables
a, b, c; /*Introducir las constantes con sus signos*/
x1, x2 /*Valores de Salida*/
Inicio
Escribir (“Introduzca dato A:”); /*Entrada de Datos*/
Leer (a);
Escribir (“Introduzca dato B:”);
Leer (b);
Escribir (“Introduzca dato C:”);
Leer (c);
Si (a != 0) entonces
Si (b2-4*a*c > 0) /*Condición para evitar la raíz cuadrada de
un nº negativo*/
x1:=(-b+sqrt((b*b)-(4*a*c)))/(2*a);
x2:=(-b-sqrt((b*b)-(4*a*c)))/(2*a);
Escribir (‘Valor x1=‘,x1,’y Valor x2=‘,x2);
sino /* Raíz negativa */
Escribir (“Solución imaginaria”);
fin_si
sino
Escribir (“ No se trata de una ecuación de 2º grado”)
fin_si
Fin
Escuela Técnica Superior de Ingeniería ICAI
Alberto Aguilera 25
28015 Madrid
Tel +34 91 542 28 00
Fax + 34 91 542 31 76
Iwww.icai.comillas.edu

www.comillas.edu

También podría gustarte