- Un algoritmo es un conjunto de instrucciones las cuales le dicen a la computadora como ejecutar una tarea especifica
- Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la solucion de un problema
- "Una lista de instrucciones donde se especifica una sucesion de operaciones necesarias para resolover cualquier problema de un tipo dado"
Un algoritmo esta compuesto por tres elementos esenciales :
- Cabecera :donde se da el nombre del algoritmo y se declaran las variables
- Cuerpo: donde se realizan todas las acciones del programa
- Final: donde se da finalizacion,porque debe ser finito
Estructuras de seleccion
Las estructuras de seleccion son estructuras de control utilizadas para la toma decisiones dentro de un programa. A estas estructuras se conocen tambien como estructuras selectivas o estructuras de decision y son las siguientes :
- La estructurada de seleccion simple (SI)
- La estructura de seleccion doble (SI-SONO)
- Estructura de seleccion doble en cascada SI-SINO-SI
EJERCICIOS
1) Cuadrado
- algoritmo cuadrado de un numero
- var
- x cuadrado :entero;
- inicio
- escriba("x")
- lea (x)
- cuadrado =x.x;
- escriba("el resultado es ",cuadrado);
- fin
2)
- algoritmo si un numero es positivo o negativo
- var
- x:entero;
- inicio
- escriba ("ingrase #")
- lea (x)
- si(x>0)
- escriba ("el numero es positivo ");
- si_no
- escriba ("el numero es negativo");
- fin_si
- fin
3)
- algoritmoleer una temperatura en grados centigrados y convertirla en grados fahreheit
- var
- C°,F°:entero
- inicio
- escirba ("ingrese un cantidad en grados centigrados")
- lea (C°)
- F°=C°*(9/5)+32;
- escriba ("F°");
- fin
4)
- algritmo deconvercion
- var
- m,km,cm,pies,pulgadas:entero;
- inicio
- escriba("porfavor ingrese una cantidad en m");
- lea (m);
- cm=m*100;
- escriba ("la convercion a cebtimetros es":cm);
- km=m/1000;
- escriba("la convercion a kilometros es ":km);
- pies=m*3.3
- escriba ("la convercion a pies es ":pies)
- pulgadas=m*39.37
- escriba ("la convercion a pulgadas es ":pulgadas);
- fin
5)
- algortmo determinas el area y volumen de un cilindro
- var
- R,H,V,A:reales;
- inicio
- escriba ("ingrese el Radio");
- lea (R);
- escriba ("ingrese la altura");
- lea(H);
- A=2*pi R *H;
- escriba ("el area es:",A);
- V=pi*R2 *H;
- escriba("el volumen es:",V);
- fin
6)
- algoritmo servidiomilitar
- var
- edad:estero;
- genero, nacionalidad:caracter;
- inicio
- escriba("ingrese la edad ");
- lea (edad);
- escriba ("ingrese genero");
- lea (genero);
- escriba("ingrese nacionalidad");
- loea(nacionalidad);
- si(edad>18 y <25)
- si (genero =masculino)
- si(nacionalidad=colombiano);
- escriba (es apto);
- si no
- escriba("no es apto");
- fin_si
- fin_si
- fin_si
- fin.
7)
- algoritmo prestamo
- var
- prestamo,knt,mont:entero;
- inicio
- escriba("ingrese valor del prestamo");
- lea (prestamo)
- int=prestamo*1.8/100;
- mont=int*12;
- escriba("el monto total es :",mont);
- fin
8)
- algoritmo desendente
- var
- a,b,c:estero;
- inicio
- escriba ("ingrese el primer numero");
- lea(a)
- escriba("ingrese el segundo numero");
- lea(b)
- escriba("ingrese el tercer numero");
- lea(c)
- si (a>b y a>c)
- escriba ("el numero es ":,a);
9)
- algoritmo de comicion de vendedor
- var
- venta, c:entero;
- escriba ("ingrese venta");
- lea (venta);
- si (venta <1000000)
- c=venta *3%
- escriba ("comicion es ":c);
- si_no
- c=venta*5%
- escriba ("comicion es ":c);
- fin si
- fin
10)
- algoritmo calculadora
- var
- x,y,operación,S,M,R,D,:entero ;
- inicio
- escriba ("ingrese el primer numero");
- lea (x);
- escriba ("ingrese el segundo numero");
- lea(y);
- escriba ("ingrese la operación");
- lea (operación);
- si (operación =Suma )
- S=x+y;
- escriba ("la suma es :",S);
- si_no si (operación =resta)
- R=x-y;
- escriba ("la resta es :",R);
- si_no si (operación = multiplicación)
- M=x*y;
- escriba("multiplicaciones:",M);
- sino si (operación =division)
- D=x/y;
- escriba("la division es :",D)
- fin_si
- fin_si
- fin_si
- fin_si
- fin
ESTRUCTURAS DE SECUENCIA CICLOS O BUCLES
Este tipo de estructuras marcan como orden de ejecucion la reiteracion de una serie de acciones basandose en un bucle.
"Un BUCLE(loop, en ingles )" es un trozo de algoritmo cuyas instrucciones son repetitivas un cierto numero de veces, mientras se cumple una cierta ondicion que ha de ser claramente espesificadas. La condicion podra ser verdadera o falsa, y se comprobara en cada paso o iteracon de bucle.
Basicamente, existen tres tipos de estructuras epetitivas :
DESDE O PARA:este tipo de ciclo es ideal cuando se conoce la cantidad de veces que se desea ejecutar una accion.
MIENTRA QUE:este tipo de ciclo se ejecuta mientras se cumpla una determinada condicio, en este caso la condicion se evalua al inicio del ciclo.
REPITA..... HASTA QUE:este ciclo es similar al anterio, solo que en este tipo de ciclo, la condicion es evaluada al final,permitiendo que el bucle se ejecute por lo menos una vez.
Una forma de controlar un bucle es mediante una variable llamada CONTADOR,cuyo valor se incrementa o decremento en un cantidad constante en cada repeticion que se produzca.
Tambien en los bucles suele haber otro tipo de variables lamadas ACOMULADOR, cuya mision es almacenar un cantidad variable resultante de operaciones sucesivas y repetidas. Es como un contador, con la diferencia que el incremento /decremento es variable.
TALLER
1) Dado un tiempo en cegundos calcular los segundos restantes que le correspondan para convertirse en minutos
2) dado un tiempo en minutos calcular los dias , horas y minutos que le coresponden.
3) calcular mediante un algoritmo repetitivo la suma de los n primeros numeros naturales
4)realizar un algoritmo que permita pedir 50 numeros naturales y determine e imprima cuantos son pares,impares,positivos y negativos
SOLUCION
1)
- Algoritmo segundo;
- var
- seg,min,f,s:entero;
- inicio
- escriba ("ingrese el valor en segundos ");
- lea(seg);
- si (seg<60)
- f=seg-60;
- escriba("lo que falta es ";,f);
- si_no
- min=seg/60
- s=seg mod 60;
- f=s-60
- escriba("los minutos son:",min);
- escriba ("lo que falta es ":,f);
- fin_si
- fin_si
- fin
2)
- algoritmo tiempo en dias, horas y minutos:entero;
- var
- tiempo,dias,horas,minutos;
- inicio
- escriba("ingrese tiempo");
- lea(tiempo);
- si dias =tiempo / 1440
- x =tiempo mod 1440
- horas =x /60
- minutos=x mod 60
- imprima
3)
- algoritmo suma de n numeros naturales
- var
- num,k,suma:entero
- inicio
- suma=0
- escriba("ingrese numero a sumar ");
- lea (num);
- para (k=1 hasta num)hacer
- suma =suma+k;
- fin_para
- escriba(el numero es;:,"suma)
- fin.
4)
- algoritmo 50numeros naturales
- var
- numero:entero;
- inicio
- para (k=1 hasta 50)hacer;
- escriba ("ingrese numero")
- lea (numero);
- si(num mod 2 =0);
- escriba ("el numero espar");
- si_no
- escriba("el numero es inpar ");
- fin_si
- si(num>0);
- escriba ("el numero es positivo");
- si_no
- escriba ("el nuimero es negativo");
- fin _si
- fin_para
- fin
EJERCIOS DE VERIFICACION
1)realizar un algoritmo que permita leer 20 temperaturas (grados C°) diferentes durante un dia , se debe iniciar cual fue la temperatura de ese dia.
- algoritmo temperatura promedio
- var
- temp,prom,k,tempt:entero;
- inicio
- temp=0
- para (k=1hasta20)hacer
- escriba("ingrese temperatura");
- lea(temp);
- tempt=tempt+temp;
- fin_para
- prom=tempt/K;
- escriba ("la temperatura promedio es:";prom)
- fin
2)se desea desarrollar un algoritmo que permita, desarrollar la tabla de multiplicar de un determinado numero (la tabla basica 1 a 9).
- algoritmo tabla basica del 1 al 9
- var
- num,k,tabla:entero;
- inicio
- escriba("ingrese el numero que desea hacer tabla ");
- lea(num);
- para (k=1 hasta 9) hacer
- tabla =num* k;
- escriba("k,"*",num,"=", tabla);
- fin_para
- fin
4)varicion del ejercicio anterior,se debe desarrollar un algoritmo que permita mostra la tabla del 1 al 9.
- algoritmo mostrar tabla del 1 al 9
- var
- k,j,tabla:entero;
- inicio
- para(k=1 hasta 9)hacer
- para(j=1hasta 9)hacer
- tabla=k*j;
- escriba("k,"+",j,"=",tabla);
- fin_para
- fin_para
- fin.
5)se desea cunstruir un algoritmo que permita imprimir el resultado del factorial de un numero dado (factorial=n)
- algoritmo de factorial
- var
- num,fac,k:entero;
- inicio
- fact=1;
- escriba("digite el num que desee conocer el factorial");
- lea (num);
- para (k=1 hasta num ) hacer
- fact=fact*K;
- fin_para
- escriba("el factorial es :";fact);
- fin.
No hay comentarios:
Publicar un comentario