Sesión #2 - Algoritmos
Un algoritmo es un método para resolver un problema.
La resolución de un problema exige al menos los siguientes pasos:
1. Definición o análisis del problema.
2. Diseño del algoritmo.
3. Transformación del algoritmo en un programa.
4. Ejecución y validación del programa.
Los problemas de computadoras generalmente presentan el siguiente flujo:
Introducir o leer los datos ---> Procesar los Datos ----> Publicar Resultados.
Ejemplo:
INTRODUCIR DATOS - LEER 2 NÚMEROS
PROCESAR - SUMARLOS
Publicar Resultados - Mostrar la Suma Hallada
Para realizar un proceso se le debe suministrar al procesador un algoritmo adecuado. Por ejemplo, al cocinero debe dársele una receta, al pianista la partitura y así sucesivamente, considerando al cocinero y al pianista como procesadores.
La resolución de un problema exige el diseño de un algoritmo que resuelva el problema
propuesto.
Los pasos para la resolución de un problema son:
1. Diseño del algoritmo que describe la secuencia ordenada de pasos –sin ambigüedades– que
conducen a la solución de un problema dado. (Análisis del programa y desarrollo del
algoritmo.)
2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase
de codificación.)
3. Ejecución y validación del programa por la computadora.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan
como de la computadora que los ejecuta. en nuestro curso haremos algoritmos en el papel.
Pero podemos comprobarlos con QBASIC, un lenguaje de programación muy básico.
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento;
o sea, debe tener un número finito de pasos.
Ejemplo 1.1
Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de
datos la ficha del cliente, si el cliente es solvente
entonces la empresa acepta el pedido; en caso contrario, rechazará
el pedido. Redactar el algoritmo correspondiente.
Los pasos del
algoritmo son:
1. Inicio.
2. Leer el pedido.
3. Examinar la ficha del cliente
4. Si el cliente es solvente, aceptar pedido; en caso contrario,
rechazar pedido
5. Fin
Ejemplo 1.2
Se desea diseñar un algoritmo para saber si un número es primo o no.
Un número es primo si solo puede dividirse por si mismo y pro la unidad
(es decir no tiene más divisores que él mismo y la
unidad). Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etc, no son primos ya que
son divisibles por números distintos en a ellos y a la unidad. Así, 9
es divisible por 3, 8 lo es por 2,
etc.
El algoritmo de resolución del problema pasa por dividir sucesivamente el
número por 2, 3, 4. .
., etc.
1. Inicio.
2. Poner X igual a 2 (X = 2, X, variable que representa a los
divisores del número que se busca N).
3. Dividir N por X (N / X).
4. Si el resultado de N / X es entero, entonces N no es un número
primo y bifurcar al punto 7; en caso contrario continuar el
proceso.
5. Suma 1 a X (X • X + 1) .
6. Si X es igual a N, entonces N es un número primo en caso contrario
bifurcar al punto 3.
7. Fin.
Ejemplo 1.3
Realizar la suma de todos los números pares entre 2 y 1000. El problema consiste en sumar 2 + 4 + 6 + 8 + ... + 1000.
Utilizaremos las palabras SUMA Y NUMERO (variables, serán denominadas mas tarde) para representar las sumas sucesivas (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8), etc. La solución se puede escribir con el siguiente algoritmo:
1. Inicio.
2. Establecer SUMA a 0 .
3. Establecer NUMERO a 2 .
4. Sumar NUMERO A SUMA .El resultado será el nuevo valor de la suma (SUMA) .
5. Incrementar NUMERO 2 unidades .
6. El NUMERO =< 1000 bifurca al paso 4 ; en caso contrario, escribir el ultimo valor de SUMA y terminar el proceso .
7. Fin .
VARIABLES Y CONSTANTES
Constante .- Valor que permanece igual durante la ejecución de un programa
Variable.- El valor adoptado por una variable puede cambiar mientras se ejecuta un programa
en el programa
INICIO
A= 15
A= A + 10
ESCRIBE A
FIN
15 es una constante, A es una variable.
Aquí en este programa A vale 15 pero en la segunda línea A vale 25 puesto que
primero se calcula parte derecha A + 10 o sea 15+10 esto da 25, que es el valor que adopta finalmente A
Escribe A, es una orden para mostrar en la pantalla de la computadora el ULTIMO VALOR DE A
que fue 25
TIPOS DE DATOS
Para nuestro curso
Usaremos numéricos( entero o real) y de carácter (texto).
Ojo, las cadenas de textos van entre comillas ejemplo "HOLA JUAN" en cambio los números no llevan
comillas delimitadoras.
ENTRADA Y SALIDA DE INFORMACIÓN
Los cálculos que realizan las computadoras requieren para ser útiles la entrada de los datos
necesarios para ejecutar las operaciones que posteriormente se convertirán en resultados, es
decir, salida.
Entrada
lectura (read).Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas
variables. Esta entrada se conoce como operación de
Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, tarjetas perforadas, unidades
de disco, etc.).
Ejemplo
leer
A, B, Crepresenta la lectura de tres valores de entrada que se asignan a las variables A, B y C.
Salida
escritura (write).La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc.). La
operación de salida se denomina
Ejemplo
escribir
"hola Vargas"
Primeros programas resueltos
Ejercicio resuelto 1
Hacer un programa que permita introducir 3 números y que calcule la suma de ellos
INICIO
Leer A,B,C
Misuma = A+B+C
Escribir Misuma
FIN
Ejercicio resuelto 2
Hacer un programa que permita introducir 3 números y que calcule la suma de ellos y también la multiplicación de ellos
INICIO
Leer A,B,C
Misuma = A+B+C
Producto = A * B * C
Escribir Misuma
Escribir Producto
FIN
Ejercicio resuelto 3
Hacer un programa que permita introducir 2 números y que calcule la suma, la resta, la multiplicación
y la división de ellos
INICIO
Leer A,B
Misuma = A+B
Resta = A-B
Producto = A * B
DiviUSAT = A / B
Escribir Misuma, Resta, Producto, DiviUSAT
FIN
Note que en una orden Escribir se pueden mostrar varias variables separadas por comas
Note que los nombres de las variables son libres y cada uno usa el nombre que mas le parece.
Ejercicio 4
Hacer un programa que calcule el área de un Cuadrado.
Antes de resolver pensemos ¿Que dato se necesita para saber el área de un cuadrado?
este tipo de preguntas que uno se formula será crucial en el curso puesto que el enunciado no dice hacer un programa que lea el LADO de un cuadrado y calcule el área en base a este dato proporcionado.
Bien obviamente necesito el LADO y la incógnita es el área
QUE tengo que ingresar el LADO
QUE tengo que procesar UNA MULTIPLICACIÓN DE LADO X LADO
QUE tengo que mostrar El ÁREA CALCULADA
entonces:
INICIO
LEER L
AREACUAD = L * L
ESCRIBIR AREACUAD
FIN
EJERCICIO 5 propuesto
Hacer un programa que calcule el área de un círculo.
Ejercicio 6 propuesto
Hacer un programa que calcule el área de un rectángulo.
Ejercicio 7 propuesto
Hacer un programa que calcule el área de un semicírculo .
Ejercicio 8
Hacer un programa que calcule la suma de las áreas de un cuadrado y un rectángulo
Inicio
Leer L
Leer A,B
Cuad = L * L
Rect = A * B
Sumareas = Cuad + Rect
Escribe Sumareas
Fin
Aqui L es el lado del cuadrado, A y B los lados del rectángulo
la respuesta queda en la variable Sumareas.
Ejercicio 9 propuesto
Hacer un programa que calcule la suma de áreas de 2 círculos
Ejercicio 10 Propuesto
Hacer un programa que calcule la suma de áreas de un cuadrado de un rectángulo y de un circulo.
Ejercicio 11 propuesto
Hacer un programa que calcule el IGV (19%) de un precio dado
Ejercicio 12 propuesto
Hacer un programa que calcule el descuento del 25% a un precio dado
Ejercicio 13 propuesto
Hacer un programa que calcule el descuento de un precio dado en base a un porcentaje de descuento dado.
Ejercicios de 14 a 20
Idear y resolver 6 ejercicios de su propia invención y enviarlos al correo: lbarrueto@usat.edu.pe
ejercicios resueltos por el
alumno Percy cubas
Suerte
Enrique Barrueto