Introducción a la programación en C++
Enviado por palomaarmendariz • 10 de Septiembre de 2012 • 16.967 Palabras (68 Páginas) • 485 Visitas
Introducción a la programación en C++
Algoritmos, diagramas de flujo y programas
Problemas y algoritmos :
Casi inconscientemente, los humanos efectuamos cotidianamente una serie de pasos, procedimientos y acciones que nos permiten alcanzar un resultado o resolver un problema.
Esta serie de pasos, procedimientos o acciones, comenzamos a aplicarlas muy temprano en la mañana cuando, por ejemplo, decidimos tomar un baño. Posteriormente cuando pensamos en desayunar también seguimos una serie de pasos que nos permiten alcanzar un resultado específico : tomar el desayuno. La historia se repite innumerables veces durante el día. Continuamente seguimos una serie de pasos o conjunto de acciones que nos permiten alcanzar un resultado. Estamos en realidad aplicando un algoritmo para resolver un problema.
“Formalmente definimos un algoritmo como un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema”.
Muchas veces aplicamos el algoritmo de manera inadvertida, inconsciente o automáticamente. Esto generalmente se produce cuando el problema que tenemos enfrente lo hemos resuelto con anterioridad un gran número de veces.
Supongamos que simplemente tenemos que abrir una puerta. Lo hemos hecho tantas veces que difícilmente nos ponemos a enumerar los pasos para alcanzar este objetivo. Lo hacemos de manera automática. Lo mismo ocurre cuando queremos subirnos a un automóvil, cuando tenemos que lustrar nuestros zapatos, cuando nos calzamos, cuando nos vestimos, cuando tenemos desafortunadamente que cambiar la llanta de un automóvil o, simplemente cuando queremos tomar un vaso con agua.
Por otra parte, existe una gran cantidad de problemas que requieren de un análisis profundo y de un pensamiento flexible y estructurado para su solución. En estos apuntes nos interesa abordar ese tipo de problemas. Invariablemente surgen ciertas preguntas :
• ¿Podemos enseñar a resolver un problema?
• ¿Podemos enseñar a analizar el mismo?
• ¿Podemos enseñar a pensar……?
Lógicamente las respuestas a estas interrogantes son difíciles de obtener. No existen reglas específicas que nos permitan resolver un problema. Sin embargo, que se pueden ofrecer un conjunto de técnicas y herramientas metodológicas que permiten flexibilizar y estructurar el razonamiento utilizado en la solución de un problema. Eso provocará finalmente la construcción de algoritmos eficientes.
Ejemplo :
Construye un algoritmo para preparar “Pechugas de pollo en salsa de elote y chile poblano”.
Ingredientes (para 6 personas) :
3 pechugas deshuesadas, sin piel y partidas a la mitad.
1 diente de ajo.
4 gramos de pimienta negra.
Sal .
6 cucharadas de aceite.
5 chiles poblanos asados limpios.
½ taza de leche.
¼ taza de crema ligera.
1 lata de crema de elote.
Algoritmo (preparación) :
• Muele el ajo, la pimienta y un poco de sal y úntaselo a la pechuga.
• Calienta el aceite y dora las pechugas.
• Licua los chiles con leche y crema, y mézclalos con la crema de elote.
• En una fuente coloca las pechugas y báñalas con la mezcla anterior.
• Cubre el platón con papel aluminio y hornea a 200º c, durante 15 minutos.
Nota :
El algoritmo fue probado repetidas veces y siempre arrojó el mismo resultado : un platillo exquisito.
En la siguiente figura podemos observar las etapas que debemos seguir para la solución de un problema :
Etapa 1 Etapa 2 Etapa 3
Etapas de solución del problema
Nota :
Precisión : los pasos a seguir en el algoritmo deben ser precisos claramente.
Determinismo : El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe arrojar los mismos resultados.
Finitud : El algoritmo, independientemente de la complejidad del mismo, siempre debe ser de longitud finita.
Por otra parte, un algoritmo consta de tres secciones o módulos principales.
En la figura siguiente podemos observar las secciones que constituyen un algoritmo :
Módulo 1 Módulo 2 Módulo 3
Diagramas de flujo :
Un diagrama de flujo representa la esquematización gráfica de un algoritmo. En realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque a partir del mismo se escribe un programa en algún lenguaje de programación. Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo.
Existen varios símbolos, pero aquí, nada más usaremos los siguiente para explicar el proceso de solución de un problema :
O
Ejemplo : Calcular el promedio de tres números :
Ejercicios :
1. Determina un procedimiento paso-a-paso (enumera los pasos) para efectuar las siguientes tareas. El ejercicio se ha diseñado para que practiques la conversación de comandos de tipo intuitivo a algoritmos equivalentes y que efectúe el cambio entre los procesos mentales involucrados entre las dos maneras diferentes de pensar).
a. Cambiar una llanta desinflada.
b. Hacer una llamada por teléfono.
c. Acceder una computadora.
d. Hornear un pavo.
2. Determine y escriba un algoritmo (mostrando los pasos a seguir) para intercambiar el contenido de dos tazas de líquido. Supón que una tercera taza está disponible para depositar el contenido de cualquier taza, temporalmente. Cada taza deberá enjuagarse antes de vaciar cualquier líquido nuevo en ella.
Conceptos fundamentales
En esta sección trataremos algunos conceptos que son fundamentales para la construcción de algoritmos, diagramas de flujo y programas. Primero analizaremos los tipos de datos, luego estudiaremos los conceptos de identificador, constantes y variables, más adelante
...