Lenguaje de máquina
Evolución de los lenguajes de programación Lenguaje Ensamblador
Lenguajes de Alto/Bajo Nivel
Programación modular La programación descendente o "Top – Down”
Teorema del programa estructurado
Estructuras de control
ALGORITMO, DIAGRAMA DE FLUJO, PSEUDOCODIGO
PROCESAMIENTO EN UN ENTORNO C++
Uso de variables Globales, locales, constantes
Sentencias
Operadores
Transferencia de Control
Estructuras de Control
•Programación modular
Uno de los métodos más conocidos para resolver un problema es dividirlo
en problemas más pequeños, llamados subproblemas.
De esta manera, en lugar de resolver una tarea compleja y tediosa,
resolvemos otras más sencillas y a partir de ellas llegamos a la solución.
Esta técnica se usa mucho en programación ya que programar no es más
que resolver problemas, y se le suele llamar diseño descendente,
metodología del divide y vencerás o programación top-down.
Es evidente que si esta metodología nos lleva a tratar con subproblemas,
entonces también tengamos la necesidad de poder crear y trabajar con
subprogramas para resolverlos.
A estos subprogramas se les suele llamar módulos, de ahí viene el nombre
de programación modular. En Pascal disponemos de dos tipos de módulos:
los procedimientos y las funciones.
Veamos un ejemplo de cómo emplear el diseño descendente para resolver
un problema.
•La programación descendente o "Top – Down”
Un problema se descompone en una serie de
niveles o pasos sucesivos de refinamiento (stepwise).
Relación entre las sucesivas etapas de estructuración jerárquica de
modo que exista una relación entre ellas mediante entradas y salidas
de información.
Las estructuras desde los dos puntos de vista se representan de la
siguiente forma:
El diseño descendente se representa así
•Teorema del programa estructurado
Establece que toda función computable puede ser implementada en un
lenguaje de programación que combine subrutinas en únicamente tres
formas.
Esas tres formas (también llamadas estructuras de control) son:
Ejecutar una subrutina y luego otra subrutina (secuencia)
Ejecutar una de dos subrutinas, dependiendo del valor de una variable
booleana (selección o IF-THEN-ELSE)
Ejecutar una subrutina mientras una variable booleana sea 'verdadera'
(iteración, ciclo o bucle)
Este teorema demuestra que la instrucción GOTO no es estrictamente
necesaria y para todo programa existe un programa equivalente que no
hace uso de dicha instrucción.
•Transferencia de control
el programador puede especificar que las siguientes
instrucciones a ejecutarse tal vez no sea la siguiente en
secuencia
Hay que tener en cuenta que la instrucción goto es una palabra
reservada pero no se utiliza ni se recomienda. Un programa
bien estructurado no necesita de esta instrucción. Si sabes
programar no utilizaras goto.
•Estructuras de control
Métodos de especificar el orden en que las instrucciones de
un algoritmo se ejecutaran, el orden de ejecución de las
sentencias o instrucciones determinan el flujo de control
Básicamente Son :
Secuencia
Selección
Repetición
En lenguajes de programación, las estructuras de control
permiten modificar el flujo de ejecución de las instrucciones de
un programa.
Con las estructuras de control se puede:
De acuerdo a una condición, ejecutar un grupo u otro de
sentencias (If-Then-Else y Select-Case)
Ejecutar un grupo de sentencias mientras exista una condición
(Do-While)
Ejecutar un grupo de sentencias hasta que exista una condición
(Do-Until)
Ejecutar un grupo de sentencias un número determinado de
veces (For-Next)
Etc
ALGORITMO:
Es una secuencia de pasos o procesos lógicamente relacionados
entre sí a fin de obtener la solución a un problema planteado.
Conjunto “FINITO” de pasos o instrucciones, seguidas en un
orden lógico, los cuales nos llevan a la solución de un problema
específico.
Una serie de instrucciones colocadas en cierta secuencia,
necesarias para la descripción de las operaciones que llevan a la
solución de un problema.
PASOS PARA PLANTEAR LA SOLUCIÓN A UN PROBLEMA:
1.- Análisis del problema.
2.- Identificar las entradas, procesos y salidas del problema,
declaración de variables.
3.- Diseño del Algoritmo: Describe la secuencia ordenada de los
pasos, sin ambigüedad, es decir, siendo preciso y veraz en la
búsqueda de la solución al problema.
4.- Codificación del Algoritmo: Es la expresión en un lenguaje de
programación de los pasos definidos en el algoritmo.
5.- Ejecución y validación del programa por el computador.
•DIAGRAMA DE FLUJO
Indica el inicio y el final de nuestro diagrama
de flujo.
Indica la entrada y salida de datos.
Símbolo de proceso y nos indica la asignación de un valor en la
memoria y/o la ejecución de una operación aritmética.
Indica la salida de información por
impresora.
Conector dentro de página. Representa la continuidad del diagrama dentro de la misma
página.
Conector fuera de pagina. Representa la continuidad del diagrama en otra
pagina.
Indica la salida de información en la pantalla o monitor
Símbolo de decisión. Indica la realización de una comparación
de valores.
Símbolo de Selección Múltiple. Dada una
expresión permite escoger una opción de
muchas.
Símbolo del Mientras. Dada una expresión al principio de la
iteración esta es evaluada; si la condición es verdadera realizará
el ciclo, si es falsa la repetición cesará.
Símbolo del Para. Esta estructura de control repetitiva se usa
generalmente cuando se conoce de antemano el numero de
iteraciones.
Símbolo Repita Hasta. funciona igual que la estructura Mientras,
con la diferencia que al menos una vez hará el grupo de
instrucciones y luego evaluará una condición. Si la condición
evaluada es falsa continua dentro del ciclo y si es verdadera
termina la iteración.
Líneas de flujo o dirección. Indican la secuencia en que se
realizan las operaciones.
Recomendaciones para el diseño de Diagramas de Flujo
Se deben usar solamente líneas de flujo horizontales y/o verticales.
Se debe evitar el cruce de líneas utilizando los conectores.
Se deben usar conectores sólo cuando sea necesario.
No deben quedar líneas de flujo sin conectar.
Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el
uso de muchas palabras.
1 Leer los datos del archivo de la empresa, hasta que se encuentre la
ficha final del archivo (horas, precio-horas, nombre)
2 Si horas <= 40 entonces salario es el producto de horas por precio-hora
3 Si horas > 40, entonces salario es la suma de 40 veces precio-hora mas
1,5 veces precio hora por (horas-40)
+
*
Desde un punto de vista histórico, el C es anterior al C++, aunque
el estándar C++ fuera publicado antes que el de C [2], de modo,
que paradójicamente el hijo influyó en el estándar del padre. Así
pues, la propuesta de ANSI C recogió algunas de las normas del C+
+. Ambos nacieron en los prestigiosos laboratorios Bell de la AT&T
(American Telephone and Telegraph) en Murray Hill (New Jersey
USA) [3]. El primero de la mano de Brian W. Kernighan y Dennis
M. Ritchie (la "K" y la "R" de K&R, siglas con las que se les conoce),
el segundo es de Bjarne Stroustrup.
#include <iostream.h>
main()
{
int x, y, Valor;
cout << " mete 2 valores enteros \n" ;
cin >> x >> y ;
Valor = x + y;
cout << "Sum of " << x << " and " << y << " is : "
<< Valor << endl;
return 0;
#include <iostream.h>
main()
{
int x, y, Valor;
cout << " mete 2 valores enteros \n" ;
cin >> x >> y ;
cout << "Sum of " << x << " and " << y << " is : "
<< x + y << endl;
return 0;