universidad tecnolÓgica de panamÁ prof. josé gonzález facultad de ingeniería mecánica...

Post on 03-Feb-2016

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related