Post on 03-Feb-2016
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
Prof. José GonzálezFacultad de Ingeniería Mecánica
Computación para Ingeniería MecánicaE-mail: jose.gonzalez33@utp.ac.pa
joseph30062005@gmail.com
2
Algoritmos
Programación
Contenido
TÉCNICAS ALGORITMICAS. •Introducción•Reglas para la Evaluar expresiones con diferentes tipos de operadores.•Cuerpo básico de un algoritmo•Entrada y salida de información•Estructuras de control en seudocódigo.
Introducción
Un algoritmo es un conjunto finito de instrucciones precisas que realizan una tarea, la cual, dado un estado inicial, culminará por arrojar un estado final reconocible.
Introducción
Un algoritmo es un conjunto finito de instrucciones precisas que realizan una tarea, la cual, dado un estado inicial, culminará por arrojar un estado final reconocible.
Expresiones
Una expresión es la representación de un cálculo necesario para la obtención de un resultado.
Clasificación:
•Numérica•Alfanuméricas•Booleanas
Operadores y Expresiones
Expresiones: Es un conjunto de constantes, variables,operadores con lo que se realizan las operaciones y permiteobtener un resultado.
Ejemplo:resultado a*(2*b+5)/c
Operadores: Es un símbolo que permite manipular losvalores de variables y/o constantes.
Operadores matemáticos1) ^ **
div mod2) /3) +
*-
Los operadores con igual nivel de prioridad se evalúan deizquierda a derecha.
1) = ó
Sirve para recuperar o guardar los valores obtenidos al realizarseo ejecutarse una expresión.
Operador de asignación
Operador Alfanumérico:
+ concatenación
Paréntesis:
( ) Se utiliza para anidar expresiones
Operadores de relación
1)2)3)4)5)6)
Mayor queMenor queMayor igual queMenor igual queIgualDiferencia
><>=<==< > !=
•Son empleados para comparar dos ó más valores.•Su resultado produce valores como verdadero y falso.•Tienen el mismo nivel de prioridad.
Operadores Lógicos o booleanos
•Son empleados para comparar dos valores (Falso y verdadero•Su resultado produce valores como verdadero y falso.•Tiene prioridad la negación, luego AND y después OR .
VAL1 VAL2RESUL
CiertoCiertoFalsoFalso
CiertoFalsoCiertoFalso
CiertoFalsoFalsoFalso
AND
VAL1VAL2RESUL
CiertoCiertoFalsoFalso
CiertoFalsoCiertoFalso
CiertoCiertoCiertoFalso
ORVAL1 RESULCiertoFalso
FalsoCierto
NOT
Prioridad entre los Operadores
1. Paréntesis ( de lo más interno a lo más externo)
2. Potencias
3. Producto y División
4. Suma y Resta
5. Concatenación
6. Relacionales
7. Negación no lógico
8. Conjunción y lógico
9. Disyunción o lógico
Los operadores que están en la misma prioridad se evalúan de izquierda a derecha
PRACTICA
Dadas los siguientes valores a los nombres simbólicos evalué las siguientes expresiones:
1 4 10 3.1415 92 2.718281
X Y Z PI E
1. 2 * X + 0.5 * Y - 1 / 5 * Z
2. PI * X ^ 2 > Y o 2 * PI * X <= Z
3. E ^ (X – 1 ) / ( X * Z) / (X / Z)
4. “DON” + “JUAN” = “DON JUAN” o “A” = “a”
5. (2 * Y ) ^ 2 – 6 * Y + 12
6. X > 3 y Y = 4 o X + Y <= Z
Conceptos básicos
Aspectos que se deben considerar a la hora de escribir un algoritmo:
• Determinación de las primitivas de las que partimos
• Lenguaje simbólico a utilizar para desarrollar el algoritmo
• Representación de los datos
• Establecer datos de entrada
• Establecer datos de salida
• Establecer las relaciones entre los datos de entrada y los de
salida
Conceptos básicos
Condiciones que debe cumplir un algoritmo:
• Ser finito: El algoritmo debe acabar tras un número finito de
pasos
• Estar bien definido: Todas las ejecuciones del algoritmo con
los mismos datos de entrada deben devolver los mismos datos
de salida.
Diferencias entre un algoritmo y un programa:• Los algoritmos no son directamente interpretables por el computador => deben ser
traducidos a un lenguaje de programación concreto.
Conceptos básicos
Diferencias entre un algoritmo y un programa:
• Los algoritmos no son directamente interpretables por el
computador => deben ser traducidos a un lenguaje de
programación concreto.
Programa de Aplicación
Programa que permite resolver la ecuación de primer grado
Programa que permite resolver la ecuación de primer grado
a x + b = 0
?a
b
x = -b / a
#include <stdio.h>int a,b,x;main(){ printf(“Ingrese valores de EC”); scanf(“%d %d”,&a,&b); if a ==0 printf (“error”); else { x = -b / a; printf(“La solución es %d:”,x); } printf(“Fin programa”);}
Algoritmo EC 1er GradoVariables a,b,x de tipo enteroInicio Escribir(“Ingrese valores de EC”) Leer (a,b) Si a = 0 entonces escribir (“Error”) sino Inicio x=-b/a Escribir (“La solución es:”,x) Fin Escribir(“Fin programa”)Fin
Pasos en la resolución de un problema
• Entender el problema– Conceptualización
• Buscar soluciones• Elegir solución• Diseñar solución
– Descomposición– Especificar tareas– Modelar solución
• Implementar solución• Validar solución
¿Qué es un problema?
• Es una situación concreta sobre la cual se quiere implementar una solución (ejemplos)
• Solución: procedimiento que nos lleva a satisfacer ciertos requerimientos
• Esquema básico para la resolución de un problema a través de un programa con un enfoque sistémico
ProcesoEntrada Salida
•Datos Externos•Datos auto generados•Lectura de dispositivo de almacenamiento
•Informes•Datos para otro programa•Datos grabados en dispositivos externos de almacenamiento
Todo algoritmo consta de tres secciones principales:
Entrada: Es la introducción de datos para ser transformados.
Proceso: Es el conjunto de operaciones a realizar para darsolución al problema.
Salida: Son los resultados obtenidos a través del proceso.
Entrada Proceso Salida
Estructura de un Algoritmo
Metodología para la descomposición de un algoritmo
Conceptos
Definición del problema
En esta etapa se deben establecer los resultados y objetivosque se desea para poder saber si los datos que se tienen sonsuficientes para lograr los fines propuestos.
Análisis
Una vez definido el problema se deberán organizar los datosde tal manera que sean susceptibles de usar en los cálculossiguientes.
DiseñoEn esta etapa se proponen soluciones a los problemas aresolver, por lo que se realiza una toma de decisiones aplicando los conocimientos adquiridos y utilizando los datos existentes.
Verificación o prueba de escritorioSe consideran resultados previstos para datos conocidos afin de que al probar cada una de sus partes podamos ircomprobando que el algoritmo sirve o requiere modificarse.
Análisis del Problema
Un identificador es el nombre simbólico que se le asigna a los datos de un programa (constantes, variables, tipos de datos), y que nos permiten el acceso a su contenido.
Ejemplo:Calf1Valor_1Num_hrs
Identificadores
Es el valor que puede tomar una constante o variable . Porejemplo, para representar los datos de un alumno como:Nombre, Num_cta, calf1, calf2, etc.
Los tipos de datos más utilizados son:a) Numéricos: Representan un valor entero o real.
Ejemplo:
Entero: 250, -5 Real: 3.1416, -27.5
Tipos de datos
Tipos de datos
b) Lógicos: Solo pueden tener dos valores (verdadero ofalso), y son el resultado de una comparación.
Ejemplo: SI (A > B)
c) Alfanuméricos: Son una serie de caracteres que sirvenpara representar y manejar datos como nombres depersonas, artículos, productos, direcciones, etc.
VariablesPermite almacenar de forma temporal un valor y el cualpuede cambiar durante la ejecución del algoritmo óprograma.
Toda variable tiene un nombre SIMBÓLICO que sirve para identificarla.
Ejemplo: prom=(calf1+calf2+calf3)/3
Las variables son: prom, calf1, calf2, calf3.
ConstantesSon datos numéricos o alfanuméricos que contienen unvalor y que no cambia durante la ejecución del algoritmo óprograma.
Ejemplos:prom=(calf1+calf2+calf3)/3PI=3.1416
Las constantes son: 3, PI.
Diseño de algoritmos
Alternativas de solución
Es la forma de representar la secuencia lógica deejecución de instrucciones.
Esta puede ser a través de:
1) Diagramas de flujo2) Pseudocódigo
Es empleado para representar la solución de un
algoritmo empleando lenguaje natural escrito estableciendo la
secuencia de pasos sin imprecisiones y de manera clara.
Ejemplo:Proceso
Leer lista_de_variables;
variable expresion;
Escribir lista_de_expresiones;FinProceso
Pseudocódigo
Uso del pseudocódigo y prueba de escritorio para los tipos de estructuras
1) Secuenciales
Implica escribir un paso tras de otro, donde el primeroque se haya escrito es el primero que se ejecutará.
Inicio Acción1 Acción2 . . Acción NFin
SecuencialesEjemplo:
Pseudocódigo
InicioLeer n1, n2suma n1+n2imprimir suma
Fin
Selectivas: Se utilizan para TOMAR DECISIONES.
SimplesLo que se hace es EVALUAR la condición, si la condiciónes verdadera realiza la acción, en caso contrariotermina el programa.
Si <condición> entoncesAcción(es)
Fin-si
Selectivas SimplesEjemplo:
Pseudocódigo
InicioLeer compra
si compra > 1000 entoncesdescuento = compra*0.10pago = compra – descuentoimprimir pago
fin siFin
Selectivas DobleLuego de evaluar una condición si esta se cumple, esdecir si es verdadera realiza una serie de acciones, y siesta es falsa se realiza otra serie de acciones distinta ala primera.
Si <condición> entoncesAcción(es)
si noAcción(es)
Fin-si
Selectivas DobleEjemplo:
Pseudocódigo
InicioLeer edad
si edad>=18 entoncesimprimir “Mayor de edad”
si noimprimir “Menor de edad”
fin siFin
Selectivas
MúltipleSe realiza a partir de anidar estructuras simples y/odobles, de manera tal que se realicen diferentesacciones con base a varias comparaciones, así habrátantas opciones como se requieran.
Si <condición> entoncesAcción(es)
si noSi <condición> entonces
Acción(es)si no
.. Varias condiciones.
fin siFin si
Ejemplo:
Pseudocódigo
InicioLeer numero
si numero=0 entoncesimprimir “Número cero”
si nosi numero>0
imprimir “Número positivo”si no
imprimir “Número negativo”fin si
fin siFin
Repetitivas: Este tipo de estructura se utilizanpara ejecutar acciones repetidamente, esto sehace posible mediante una secuencia deinstrucciones que se repiten una y otra vez y asíevitamos escribir múltiples veces las mismasinstrucciones.
ParaEsta estructura ejecuta los pasos de la solución del algoritmo un número definido de veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del ciclo. Para el control se utiliza un contador en el cual se va acumulando el número de veces que se ha repetido las instrucciones.
Repetitiva
Para:
Repetitiva
Para variable_numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer
secuencia_de_acciones
Fin Para
Ejemplo:
Pseudocódigo
Proceso sin_tituloPara V=1 Hasta 5 Con Paso 1 Hacer
Leer num1,num2;suma<-num1+num2;Escribir "el resultado de sumar ",num1," + ",num2," = ",suma;
FinParaFinProceso
Repetitiva Para
Repetitiva Mientras
MientrasEste se utiliza cuando NO sabemos el número deveces que se ha de repetir un ciclo, los ciclos sedeterminan por una condición que se evalúa al iniciodel ciclo, es decir, antes de ejecutarse todas lospasos. Mientras <condición> Hacer
Accion1Accion2..Acción N
Fin Mientras
Ejemplo
PseudocódigoProceso sin_titulo
Escribir "Hay alumno";Leer alum;Mientras alum="s" Hacer
Leer calif1,calif2;prom<-(calif1+calif2)/2;Escribir "El promedio del alumno es ",prom;Escribir "Hay alumno";Leer alum;
FinMientrasFinProceso
Repetitiva Mientras
Repetitiva - Repetir
RepetirEn esta estructura el ciclo se va a repetir hasta que lacondición se cumpla, a diferencia de las estructurasanteriores la condición se escribe al finalizar laestructura.
RepetirAccion1Accion2..
AcciónNHasta Que <Expresión Lógica>
Ejemplo
PseudocódigoProceso sin_titulo
RepetirLeer salario;sal_finsalario*1.15;Escribir "El salario con aumento es",sal_fin;Escribir "hay otro empleado";Leer empleado;
Hasta Que empleado="n"FinProceso
Repetir
En conclusión diríamos que el algoritmo es de carácter general y puede aplicarse a cualquier operación matemática o a cualquier problema.
La formulación de algoritmos fue uno de los más grandes adelantos dentro de la ciencia matemática ya que a partir de ellos se pudieron resolver infinidad de problemas.
Conclusión
Gracias