miércoles, 12 de agosto de 2009

ALGORITMOS

DEFINICIÓN:
algoritmo es la secuencia de pasos organizados que describe el como resolver un problema especifico. Esta palabra surge del nombre del matemático y astrónomo árabe Alkhowarizmi.


TIPOS DE ALGORITMOS:

Los algoritmos se pueden clasificar en:


-Cuantitativos: son aquellos pasos que involucran cálculos numéricos para llegar aun resultado. Ejemplo: usar los pasos para resolver una ecuación de segundo grado.

-Cualitativos: son aquellos pasos que usan palabras que sirven para llegar a una respuesta. Ejemplo: los pasos para encontrar un numero telefónico de una persona especifica en un directorio.


TIPOS DE LENGUAJES ALGORÍTMICOS:

Tenemos dos tipos mas comunes que son:


-Diagrama de flujo: es la representacion gráfica de los algoritmos en cual se usan símbolos para indicar la secuencia de instrucciones, con este lenguaje se le facilita al usuario el desarrollo de distintos procesos debido a su fácil lectura.



Sus características son:

*Debe tener un inicio y un fin

*Debe ser de fácil lenguaje para que el usuario lo pueda manipular

*Debe tener una secuencia lógica


-No graficos pseudocodigo: es la descripción de un algoritmo que asemeja a un lenguaje de programcion, pero con algunas convenciones de lenguaje natural. Una de sus ventajas es que ocupa poco espacio y es fácil de ejecutar. El pseudocodeigo no esta regido por ningún estándar, este es un código falso y por eso es entendible porque no afecta el procedimiento de la maquina.

Ejemplos: -leer dos números y ejecutar e imprimir la suma, resta y mutiplicacion


inicio

lea: n1,n2

ejecute: r1=n1+n2,r2=n1-n2,r3=n1*n2

imprima: r1,r2,r3

fin

-desarrolle el algoritmo de 3 notas cuando el porcentaje de una vale 20%,30%,50%, imprima el promedio.


inicio

lea: n1,n2,n3

ejecute: promedio=n1*0.2+n2*0.3+n3*0.5

imprima: promedio

fin


CARACTERÍSTICAS DE LOS ALGORITMOS


-Entrada:todo algoritmo debe tener cero o mas elementos de entrada como valores, cantidades,o condiciones.

-Proceso:cálculos necesarios para encontrar la solución de problema

-Salida: todo algoritmo produce uno o mas elementos como resultado

-Finito:todo algoritmo tiene un numero fijo de pasos

-Precisión: cada paso debe definirse con exactitud y sin equivocaciones

-Valides: debe ser exitoso y producir resultados esperados, de pasos condicionados a un dato, si no hay un limite de pasos no es valido el algoritmo


PASOS PARA IDENTIFICAR LA SOLUCIÓN DE UN PROBLEMA POR MEDIO DE ALGORITMOS


1ª Definir problema: ejm: calcular el salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior


2ª Identificar variables de entrada: salario del obrero


3º Identificacion del proceso: (es la operación que se debe hacer) incremento=salario*25/100, o, incremento=salario*0.25


4ºIdentificacion de variables de salida: es el resultado en este caso el incremento


5ºCrear el algoritmo: inicio

lea: salario

ejecute: incremento=salario*25/100

imprima: incremento

fin


6ºPrueba de escritorio: es la ejecucion del programa


TIPOS DE DATOS

Los tipos de datos son el conjunto de valores que pueden tomar durante el programa. Tenemos dos tipos de datos:


-Estructurados: son aquellos que contienen varias colecciones de elementos. Las cuales tenemos la de tipo ordenado denominadas array, sin orden de tipo conjuntos, e incluso los que tienen otro tipo de datos llamados registros.

-Simples: son mas sencillos que los estructurados, y se basan o hacen referencia a un solo elemento. en estos tenemos:


*Logicos: son aquellos en los cuales sus variables pueden ser cierto o falso, si o no, funciona o no funciona, etc...

*Enteros: son aquellos que utilisan valores numericos ya sean positivos o negativos

*Caracter o de cadena: son aquellos en los cuales se utilisan numeros o letras, en pocas palabras variables y constantes que represente un valor alfanumerico.


CONSTANTES:

Es un dato que no puede ser modificado o cambiado durante la ejecucion de un pograma. Esta tiene varios usos como ser miembro de una expresion, en una comparacion, asignar su valor en una variable,etc...


VARIABLE:

Una variable corresponde a un espacio de memoria principal del ordenador para un determinado proceso.


CARACTERISTICAS DE UNA VARIABLE:


-La variable primero se declara, luego se inicia, luego se usan

-Puede cambiar su valor tantas veces como se desee

-Las variables pueden cambiar de tamaño en tiempo de ejecucion


CLASIFICACION DE LA VARIABLES:

Las variables se clasifican:


-Por su contenido:en estas pueden tener elementos como numeros (numericas),variables logicos como verdadero o falso,etc..., y elementos alfanumericos como numeros y letras.


-Por su uso: tenemos 3 clases:

*De trabajo: resiven el resultado de una operacion matematica completa y que se usa normalmente en un programa.

*Contador:se utiliza para llevar el control de un numero en que se realiza una operacion acumulando datos de uno en uno

*Acumuladores: sirve para llevar la suma acumulativa de una serie de valores quese van leyendo o acumulando progresivamente.


OPERADORES:

Son los lenguajes que se usan para relizar operaciones artimeticas como por ejemplo: +,*,-,/,=,etc... Entre ellos tenemos:


-Aritmeticas: permiten relizar operaciones matematicas en lenguaje c. y tenemos dos tipo

*Binarios: como: + Suma, - Resta, * Multiplicación, / División, % Módulo(resto)

*Unarios: como ++ Incremento (suma 1), - - Decremento (resta 1), - Cambio de signo

-Relacionales: tambien operadore binarios o de comparacion, se utilizan para comprovar la veracidad o falsedad de determindas propuestas de relacion,como <> Mayor que, <= Menor o igual que, >= Mayor o igual que, = Igual a, <> Distinto a, diferente de,!= Desigual que.

-Logicos: sirven para convinar condiciones los cuales se utilisan TRUE (verdadero), FALSE (falso) o NULL (nulo) y dentro de estos se utilisan operadores como: and cuando las dos condiciones son verdaderas, or cuando una de las condiciones en verdadera y el not cuando el resultado es invertido.


ESTRUCTURA ALGORITMICAS:


Son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:



-Secuenciales: la estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.



*Asignacion: La asignación consiste, en el paso de valores o resultados a una zona de la memoria. En general el formato a utilizar es el siguiente:
<> ,El símbolo debe leerse “asigne”.


*Entrada: La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: lea


*Salida: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable


-Condicionales: Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos:


*Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Pseudocódigo: Diagrama de flujo:





*Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:


Pseudocódigo: Diagrama de flujo:


*Múltiples: Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente:


Pseudocódigo: Diagrama de flujo:

-CICLICOS: Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa). Los ciclos se clasifican en:


*Para: Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. Dado un valor inicial asignado a la variable esta se irá aumentando o disminuyendo de acuerdo a la ultima variable hasta llegar a las siguientes ; si se omite el paso, significa que la variable aumentará de uno en uno. La forma de esta estructura es la siguiente:

Pseudocódigo Diagrama de Flujos




*Mientras Que: Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:


Pseudocódigo Diagrama de Flujos




*Repita-Hasta: Esta es una estructura similar en algunas características, a la anterior. Repite un proceso una cantidad de veces, pero a diferencia del Mientras Que, el Repita-Hasta lo hace hasta que la condición se cumple y no mientras, como en el Mientras Que. Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el Mientras Que puede ser que nunca llegue a entrar si la condición no se cumple desde un principio. La forma de esta estructura es la siguiente:


Pseudocódigo diagrama de Flujos


Ejercicios
1.determinar cual es el doble de un determinado número.
2.una persona recibe un préstamo de un banco por 1 año y desea saber cuanto pagara de interés al terminar el préstamo, si se sabe que el banco le cobra una tasa del 1.8% mensual.
3.una empresa a decidido realizar aumentos de salario a sus trabajadores de acuerdo a las siguientes categorías: Sindicalizado 20% De confianza 10% Alto directivo 5% Ejecutivo 0%
4.leer una determinada temperatura en grados centígrados y convertirla a Fahrenheit
5.calcule el área y el volumen de un cubo cuyo valor de la arista varía.
6.una empresa desea conocer el monto de comisión correspondiente a una venta realizada por un vendedor bajo las siguientes condiciones. Si la venta es menor a 1000 se le otorga el 3% de comisión, si la venta es de 1000 o mas el incremento de comisión es del 5%.
7.lea un numero el cual permita determinar si es positivo o negativo
8.leer dos números que permitan simular una calculadora (+,-,*,/)
9.lea 3 números los cuales si el primero es mayor súmelos sino sume el primero y el segundo y divida el tercero.
10. en una empresa se desea calcular el salario de una persona según su edad. Si la persona es mayor de 30 años su salario incrementa un 10%.
SOLUCION
1. Inicio
lea: a
ejecute: resultado=a*2
imprima: resultado
fin
2. Inicio
lea: interes
ejecute: resultado=interes*1.8/100
imprima: resultado
fin
3.Inicio
lea: sindicalizado, de confianza, alto directivo, ejecutivo
ejecute: r1=sindicalizado*20/100, r2=de confianza*10/100, r3=alto directivo*5/100, r4=ejecutivo*0/100
imprima: r1,r2,r3,r4
fin
4. Inicio
lea: centigrados
ejecute: fahrenheit=1.8*centigrados+32
imprima: fahrenheit
fin
5. Inicio
lea: aristas
ejecute: area=6*aristas*aristas, volumen=arista*arista*arista
imprima: area,volumen
fin
6. Inicio
lea: ventas
si ventas<1000
ejecute: comision=venta*3/100
imprima: comision
si no ventas>1000 entonces
ejecute: comision=ventas*5/100
imprima: comision
fin
7. Inicio
lea: a
si a>=0 entonces
imprima: positivo
si no a<0>
imprima: negativo
fin
8. Inicio
lea: a,operacion,b
si operacion=+ entonces
ejecute: c=a+b
imprima: c
si no operacion=- entonces
ejecute: c=a-b
imprima: c
si no operacion=*
ejecute: c=a*b
imprima: c
si no operacion=/
ejecute: c=a/b
imprima: c
fin
9. Inicio
lea: a,b,c
si a>b and a>c entonces
ejecute: r=a+b+c
imprima: r
si no b>a and b>c entonces
ejecute: r=(a+b)/c
imprima: r
fin
10. Inicio
lea: salario, edad
si edad>30 entonces
ejecute: incremento=salario*10/100
imprima: incremento
fin
AUTORES: Nora Yamile Vargas Ojeda
Johan Mauricio Fonseca Molano