1. Estimados alumnos, el material que se presenta a continuación
está diseñado para apoyar la asignatura de Fundamentos de
Programación que tienen como objetivo el lograr resolver
problemas simples mediante un programa escrito en algún
lenguaje de programación.
El objetivo general es resolver problemas básicos a través de la
construcción de programas basados en algoritmos.
2. INTRODUCCION
Presentamos los siguientes ejemplos: Si
alguna vez dimos a una persona
Instrucciones para:
Supongamos que queremos enseñar a una persona a elaborar un sándwich de jamón con queso que
tendríamos que hacer:
Instrucciones para hacer un sándwich
3. RECETA PARA PREPARAR UNA SANDWICH
Podemos observar que el proceso de elaborar un sándwich es una secuencia de pasos que
se siguen en orden uno tras de otro
4. CAMBIAR EL FOCO QUEMADO DE UNA LAMPARA
El proceso lo podemos hacer de forma segura de la siguiente manera:
5. INSTRUCCIONES PARA CAMBIAR EL FOCO QUEMADO DE UNA LAMPARA
CON LAS ESTRUCTURAS DE CONTROL
CONSTRUIMOS LOS PROGRAMAS
6. Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad, ¿Qué debe
hacer el estudiante?
1. Dormir
2. Hacer 1 hasta que suene el despertador
3. Mirar la hora
4. Hay tiempo suficiente
4.1 Si hay entonces
4.1.1 Bañarse
4.1.2 Vestirse
4.1.3 Desayunar
4.2 Sino
4.2.1 Vestirse
5. Cepillarse los dientes
6. Despedirse de la familia
7. Hay tiempo suficiente?
7.1 Si hay entonces
7.1.1 Caminar al paradero
7.2 Sino
7.2.1 Correr al paradero
8. Hasta que pase un bus para la universidad hacer:
8.1 Esperar el bus
8.2 Ver a las demás personas que esperan un bus
9. Tomar el bus
10. Mientras no llegue a la universidad hacer
10.1 Seguir en el bus
10.2 Leer mis cuadernos
10.3 Utilizar el celular
11. Timbrar
12. Bajarse
13. Entrar a la universidad
7. INTRODUCCION
ALGORITMOS
Diariamente el ser humano trata de dar solución a cada problema que se le presenta;
algunas veces la solución de éstos se obtiene de seguir una serie de acciones de
manera ordenada, otras veces la solución depende del estado de ánimo de la persona
o de las condiciones de su entorno, mientras que en otras ocasiones no se puede
llegar a solución alguna.
8. Resolución De Problemas
• Resolver un problemas muchas veces no es trivial, ya que es
necesario comprender qué se quiere resolver, encontrar las
herramientas adecuadas para resolver el problema, y luego
implementar la solución con las herramientas disponibles.
Problema Solución Problema
Resuelto+ =
Muchas veces existe mas de un algoritmo para resolver un problema,
veamos el siguiente ejemplo
9. EJEMPLO
Deseamos dar al turista las instrucciones para
llegar a la estación del tren: Proponga 2 algoritmos
para el turista
Solucion No 1
10. EJEMPLO
Deseamos dar al turista las instrucciones para
llegar a la estación del tren: Proponga 2 algoritmos
para el turista
Solucion No 2
11.
12. Los algoritmos anteriores pueden adopter varias formas, o de hecho algunos pueden o no ser
representados en un programa. El algoritmo del mapa puede ser representado por:
13. Ejemplos de algoritmos
En cada problema planteado debemos
tomar en cuenta suposiciones.
Las instrucciones del algoritmo deben ser
claras.
Realice la siguiente actividad
19. Un algoritmo lo podemos definir como un conjunto de pasos lógicamente ordenados,
escritos a través de símbolos o en lenguaje natural. Lo podemos comparar con una
receta de cocina, o con las instrucciones para armar un mueble, las instrucciones que
vienen en un manual de un grabador de CD, por mencionar algunos ejemplos. La
diferencia está en la precisión que deben tener cada una de las instrucciones de un
algoritmo. Por ejemplo, no podemos indicar en un algoritmo, agregue sal a gusto, o
apreté esta tuerca pues son indicaciones poco precisas, que no pueden ser traducidas a
una instrucción escrita en un lenguaje de programación.
En el diseño e implementación de los algoritmos debemos indicar agregue 10 grs. de sal,
o apreté esta tuerca dando diez giros a la derecha. Es decir las instrucciones dadas en un
algoritmo deben de ser precisas y no ambiguas
GENERALIDADES
20.
21. ALGORITMOS
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la
computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de
programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo.
Así, por ejemplo, en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en
español, inglés o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se
realizarán sin importar el idioma del cocinero.
En la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes
de programación o las computadoras. Un lenguaje de programación es tan sólo un medio para expresar un
algoritmo y una computadora es sólo un procesador para ejecutarlo.
Tanto el lenguaje de programación como la computadora son los medios para obtener un fin: conseguir que el
algoritmo se ejecute y se efectúe el proceso correspondiente.
El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos profundos de la técnica de la
programación. En esencia, la solución de un problema se puede expresar mediante un algoritmo.
22. CONSIDERACIONES A SEGUIR EN LA ESCRITURA
DE UN ALGORITMO
El sistema para escribir un algoritmo consiste en realizar una descripción paso a paso con un lenguaje
natural del citado algoritmo.
Recordemos que Algoritmo es un método o conjunto de reglas para solucionar un problema, las mismas que
tienen las siguientes propiedades:
Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un resultado
coherente.
Solo puede ejecutarse una operación a la vez..
27. ESTRUCTURA BASICA DE UN ALGORITMO
DATOS INSTRUCCIONES ESTRUCTURAS DE CONTROL
Lo que el algoritmo recibe, procesa y
entrega como resultado
Las acciones o procesos que el
algoritmo realiza sobre los datos
Las que determinan el orden en que
se ejecutarán las instrucciones del
algoritmo
35. Pseudocódigo
Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el
paso de codificación final relativamente fácil.
El Pseudocódigo nació como un lenguaje similar al lenguaje natural y era un
medio para presentar básicamente las estructuras de control de programación
estructurada.
Se considera un primer borrador, dado que el pseudocódigo tiene que
traducirse posteriormente a un lenguaje de programación.
La ventaja del pseudocódigo es que en su uso en la planificación de un
programa, el programador se puede concentrar en su lógica y en las estructuras
de control y no preocuparse de las reglas de un lenguaje específico.
El pseudocódigo utiliza para representar las acciones sucesivas palabras
reservadas a sus homónimos en los lenguajes de programación, tales como
inicio, fin, si-entonces, mientras…..,etc.
36. PSEUDOCÓDIGO
• Es una forma de representar un algoritmo, que se acerca a los lenguajes de
programación y con elementos del lenguaje natural.
• El pseudocódigo se compone de:
- Cabecera
- Declaraciones
- Cuerpo
• La cabecera es la parte del algoritmo que posee el nombre de éste.
• Las declaraciones son las variables y constantes que utilizará el algoritmo
para resolver el problema.
• El cuerpo son el conjunto de instrucciones o acciones que están entre el
Inicio y el Fin.
38. LENGUAJE NATURAL
Problema: Sumar 2 números.
Representación mediante Lenguaje natural:
- Inicio Suma
- Ingresar primer número
- Guardar número en variable a
- Ingresar segundo número
- Guardar número en variable b
- Sumar a y b
- Guardar resultado en R
- Mostrar R
- Fin
• Desventajas:
-Ambiguo
-Extenso
39. PSEUDOCÓDIGO
• La estructura del pseudocódigo es la siguiente:
• La sección “Proceso SinTitulo” es la cabecera del algoritmo
• La sección “acción 1, acción 1,…” es el cuerpo del algoritmo
• En este caso como utilizaremos el Pseint la sección de declaraciones del
algoritmo no se toma en cuenta, ya que el software se encarga de asignarle
el tipo de dato a cada variable dependiendo del uso que se le dé.
44. PSEINT – ACCIONES SECUENCIALES
• Asignación: nos permite guardar un valor en una variable.
• c <- 2; por lo tanto c=2.
• Leer: nos permite recibir valores por teclado y guardarlos en variables.
• Leer a; recibe el valor y lo almacena en a.
• Leer a, b, c; recibe 3 valores y los guarda en la variable que
corresponda.
45. PSEINT – ACCIONES SECUENCIALES
• Escribir: nos permite mostrar en pantalla algún tipo de dato, o varios
separados por ‘,’.
• Escribir ‘hola mundo’;
• Escribir ‘hola mundo’, ‘hola’, 2, c;
62. 1. Calcular el doble de un número ingresado, a ese resultado calcularle el 10% y mostrar
ese valor
2. Informar en pantalla el promedio de cinco números
3. Resuelva un algoritmo que solucione el problema de calcular el área de un triangulo
con la fórmula: AREA = BASE x ALTURA / 2.
4. Conociendo el valor de la entrada al cine, calcule el monto a pagar para una
delegación de personas. Recuerde que deberá hacer un descuento del 3% por
cantidad.
5. Ingresando la cantidad de un producto y su precio unitario, obtener como resultado el
precio final que debe pagar el cliente.
6. Realizar una aplicación que calcule las cuatro operaciones básicas, suma, resta,
división, multiplicación, con dos números.
7. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuanto deberá pagar finalmente por su compra.
8. Un alumno desea saber cual será su calificación final en la materia de Algoritmos.
Dicha calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificación del examen final.
15% de la calificación de un trabajo final.
9. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres
hay en un grupo de estudiantes.
EJERCICIOS
66. 1. Realizar una aplicación que calcule las cuatro operaciones básicas, suma, resta,
división, multiplicación, con dos números.
2. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuanto deberá pagar finalmente por su compra.
3. Un alumno desea saber cual será su calificación final en la materia de
Algoritmos. Dicha calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificación del examen final.
15% de la calificación de un trabajo final.
4. Un maestro desea saber que porcentaje de hombres y que porcentaje de
mujeres hay en un grupo de estudiantes.
Ejercicios
71. Algoritmo que lee dos valores numéricos ‘X’ e ‘Y’, determina si son iguales y,
en caso de no serlo, indica cuál de ellos es el mayor.
Definición del problema
1. Escribir un algoritmo que acepte tres números enteros e imprima el mayor
de ellos
72.
73. Definición del problema
Identificar menor de dos números o si son iguales
Definición del problema
Suponga que dados cuatros números (a, b, c y d), se desea determinar cual de ellos es el número menor
y mostrar dicho número en pantalla.
Elabore el Algoritmo.
Definición del problema
Ingresar 2 números y verificar si son pares e impares
Definición del problema
Ingresar un numero A y verificar si es divisible para N
74. Alternativas Multiples
• Cuando existen más de dos alternativas posibles, es cuando se
presenta el caso de alternativas múltiples.
Muchas decisiones deben tomarse, no solo entre dos alternativas, sino de un
conjunto mayor. Estos casos bien pueden solucionarse utilizando condicionales
dobles anidados; sin embargo, en favor de la claridad del algoritmo y la facilidad
para el programador, es mejor utilizar una estructura de decisión múltiple, la cual es
fácil de llevar a un lenguaje de programación, ya que éstos incluyen alguna
instrucción con este fin.
La decisión múltiple determina el valor de una variable y dependiendo de éste sigue
un curso de acción.
76. PSEINT – ESTRUCTURAS DE CONTROL
• Segun: es una estructura de control que depende del valor de una variable
de tipo numérica o caracter para ejecutar una secuencia de instrucciones
asociada a ese valor.
• Puede suceder que una secuencia de instrucciones sea común para más de
un valor de la variable numérica, es el caso que se ve en la imagen
siguiente, donde el valor 2 y 3 de la variable numérica lleva a ejecutar una
misma secuencia de instrucciones.
• Cada valor de la variable numérica es una opción que ejecuta una serie de
instrucciones, es por esto que esta instrucción es recomendable para
manejar Menú muy complejos.
77. PSEINT – ESTRUCTURAS DE CONTROL
• La opción “De otro modo” significa que si la variable numérica toma un
valor que no está en ninguna de las opciones anteriores ejecuta las
instrucciones de esa opción.
• Esta opción es ocupada generalmente para capturar(Catch) errores al
ingresar una opción no disponible y así avisarle al usuario.
• Ej:
80. una distribuidora de motocicletas tiene una promoción de fin de año que consiste en los siguiente. Las
motos marca HONDA tienen un descuento del 5%, las de marca Yamaha del 8% y las Suzuki el 10%, las
de otras marcas el 2%
Definición del problema
Calcular el valor del descuento y el valor a pagar por la motocicleta.
Análisis del problema
Porcentaje descuento = 5% para motos Honda
Porcentaje descuento = 8% para motos Yamaha
Porcentaje descuento = 10% para motos Suzuki
Porcentaje descuento = 2% para motos otras marcas
Datos de entrada: marca, valor
Datos de salida: descuento, valor a pagar
Proceso:
descuento = valor * porcentaje
87. PSEINT – ESTRUCTURAS DE CONTROL
• REPETITIVA:
• Mientras: permite ejecutar una secuencia de instrucciones repetidamente
hasta que la condición no se cumpla.
102. CICLO PARA
Este ciclo, al igual que los demás, permite ejecutar repetidas veces una instrucción o un grupo de ellas, pero a diferencia de
otras instrucciones de repetición, ésta maneja el valor inicial, el valor de incremento o decremento y el valor final de la
variable de control como parte de la instrucción.
Cuando al ejecutarse un algoritmo se encuentra una instrucción para la variable de control (contador) toma el valor inicial, se
verifica que el valor inicial no sobrepase el valor final y luego se ejecutan las instrucciones del ciclo. Al encontrar la instrucción
fin para, se produce el incremento y se vuelve a verificar que la variable de control no haya superado el límite admitido, y se
vuelven a ejecutar las instrucciones que están dentro del ciclo, y así sucesivamente tantas veces como sea necesario hasta
que se supere el valor final establecido.
El ciclo para termina en el momento en que la variable de control (contador) sobrepasa el valor final; es decir, que la igualdad
está permitida y las instrucciones se ejecutan cuando el contador es igual al valor final.
Este ciclo puede presentarse de tres maneras: la primera es la más común, cuando se produce un incremento de 1 en cada
iteración, en cuyo caso no es necesario escribir explícitamente.
ESCRIBIR LOS NUMEROS
DEL1 AL10
ESCRIBIR LOS NUMEROS
DE 5 EN 5
DADO UN NUMERO N, MOSTRAR LOS
MENORES A ESTE EN FORMA
DESCENDENTE
109. EL SOFTWARE (PROGRAMAS)
Las operaciones que debe realizar el hardware son específicas por una lista de instrucciones,
llamadas programas o software. El software se divide en dos grandes grupos: software del
sistema y de aplicaciones
Software de sistema Es el conjunto de programas indispensable para que la máquina funcione,
se domina también programas del sistema. Estos programas son básicamente el Sistema
Operativo, los editores de texto, los compiladores/interpretes (lenguajes de
programación) y los programas de utilidad.
Uno de los programas mas importantes es el Sistema Operativo que sirve, esencialmente para
facilitar la escritura y usos de sus programas. Este dirige las operaciones globales de la
computadores e instruye a la computadora para ejecutar otros programas y controla el
almacenamiento y recuperación de archivos (programas y datos).
Gracias al Sistema Operativo es posible que el programador pueda introducir y grabar nuevos
programas así como instruir a la computadora para que los ejecute.
110.
111. Los lenguajes de programación sirven para escribir programas que permitan la
comunicación usuario maquina. Unos programas especiales llamados traductores
(compiladores o interpretes) convierten las instrucciones escritas en lenguajes de
programación en instrucciones escritas en lenguajes de maquina que esta pueda
entender.
Los programas de utilidad facilitan el uso de la computadora. Por ejemplo el editor de
textos
Los programas que realizan tareas concretas como nominas, contabilidad análisis
estadístico, etc de denominan programas de aplicación.
117. TRADUCTORES DE LENGUAJE
Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en
lenguajes de alto nivel a código de máquina. Los traductores se dividen en: compiladores e interpretes
120. LA COMPILACION Y SUS FASES
La compilación es el proceso de traducción de programas fuente a programas objeto. El
programa objeto obtenido de la compilación ha sido traducido normalmente a código de
máquina.
Para conseguir el programa máquina real se debe utilizar un programa llamando montador o
enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina
directamente ejecutable.
El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un
compilador suele tener los siguientes pasos:
1. Escritura del programa fuente y guardarlo en un dispositivo de almacenamiento
2. Introducir el programa fuente en memoria
3. Compilar el programa con el compilador
4. Verificar y corregir errores de compilación
5. Obtención del programa objeto
6. El enlazador obtiene el programa ejecutable
7. Se ejecuta el programa y se tendrá la salida deseada
EJECUCION DE UN PROGRAMA