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:

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

Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas

variables. Esta entrada se conoce como operación de lectura (read).

Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, tarjetas perforadas, unidades

de disco, etc.).

 

Ejemplo

 

leer A, B, C

representa la lectura de tres valores de entrada que se asignan a las variables A, B y C.

 

Salida

La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc.). La

operación de salida se denomina escritura (write).

 

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

 

 

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