You are on page 1of 116

Programacin Estructurada

Lic. Guadalupe Flores Daz

Qu es lo que observas?
Un nuevo semestre, cosas nuevas que aprender, cosas nuevas que hacer...que observas en el presente semestre?... Cmo te sientes?...Que te gustara? Todo depende de ti Video motivacional

Forma de Evaluacin
Actividades en Clase Tareas Examen Participacin Diagramas de flujo / programas

20% 15% 30% 10% 25%

SISTEMAS DE PROCESAMIENTO DE INFORMACION


Computadora: Maquina o aparato electrnico capaz de ejecutar operaciones repetitivas a muy alta velocidad.

COMPONENTES DE UN SISTEMA DE PROCESAMIENTO DE INFORMACION

Entrada = Datos
Representacin de algn hecho, concepto o entidad real (los datos pueden tomar diferentes formas; por ejemplo palabras escritas o habladas, nmeros y dibujos).

PROCESADOR

Salida = Informacin
Datos procesados y organizados.

SISTEMAS DE PROCESAMIENTO DE INFORMACION


Ejemplos: El termostato. Arturito Nosotros mismos. Cmo el procesador transforma esos datos de entrada en informacin procesada?

Algoritmo: Conjunto de instrucciones que especifica la secuencia de operaciones a realizar, en orden, para resolver un problema especifico, en otras palabras un algoritmo es una formula para la resolucin de un problema.

SISTEMAS DE PROCESAMIENTO DE INFORMACION


HARDWARE: Conjunto de componentes fsicos de la computadora (equipo fsico) SOFTWARE: Conjunto de programas que controlan el funcionamiento de una computadora (equipo lgico).

Dispositivos de entrada/salida E/s (Perifricos)

Memoria central

Almacenamiento secundario (memoria auxiliar)

Unidad central de procesamiento

Qu entiende la computadora?
La computadora manipula nicamente informacin digital:

Datos e instrucciones se codifican como dgitos binarios (0s y 1s)

Por qu no se usa una representacin de otro tipo?

Problema tecnolgico (es ms fcil representar ceros y unos)

A qu nos conduce la solucin adoptada para evitar el problema tecnolgico?

La mquina slo puede trabajar con cadenas de ceros y unos

1.7

Lenguajes de Programacin

Sirven para escribir programas que permitan la comunicacin usuario y maquina. Unos programas especiales llamados traductores convierten las instrucciones escritas en lenguajes de programacin en instrucciones escritas en lenguajes de maquina que este pueda entender.

Estos lenguajes de programacin se clasifican en: Maquina: Cdigo maquina. Bajo Nivel: Ensamblador. Alto Nivel: Son los mas usados por los programadores, son los mas fciles de transportar a maquinas diferentes y la escritura de programas es mas sencilla.

Lenguaje mquina

Pasos

a = (b + c)/(d + e) x y

sumar b y c, y guardar el resultado en una direccin de memoria temporal X sumar d y e, y guardar el resultado en una direccin de memoria temporal Y dividir el contenido de X por el de Y y guardar el resultado en la direccin de memoria de a

Ejemplo de cdigo mquina

codigoOp direccOp1 direccOp2 direccRes


Cdigo de la suma Direcc. Temporal X

0000 00001000 00001100 00001110 0000 00011000 00011100 00011110 0101 00011110 00001110 00000100 Direcc. Temporal Y
Cdigo de la divisin
1.9

Lenguaje mquina (cont.)

Inconvenientes
Grandes posibilidades de error Portabilidad: mquina-dependiente

No se puede llevar el programa a otra mquina porque, entre otras cosas, el repertorio de instrucciones es distinto

Tedioso Nula capacidad de abstraccin

1.10

Es muy complicado formular una solucin a problemas del mundo real con ese lenguaje tan especfico

Lenguaje Mquina

En los primeros tiempos del desarrollo de los ordenadores era necesario programarlos directamente de esta forma, sin embargo, eran mquinas extraordinariamente limitadas, con muy pocas instrucciones por lo que an era posible; en la actualidad esto es completamente irrealizable por lo que es necesario utilizar lenguajes ms fcilmente comprensibles para los humanos que deben ser traducidos a cdigo mquina para su ejecucin.

Actividad. Codificacin con nmeros binarios

Escribir tu nombre con el siguiente cdigo binario


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 L M N O P Q R S T U V 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 W X Y Z 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1

A B C D E F G H I J K

Lenguaje ensamblador

Ejemplo de instruccin de cdigo ensamblador


codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes

Cdigos simblicos de las operaciones

SUM = La suma DIV = La divisin

a = (b + c)/(d + e) SUM B, C, X SUM D, E, Y DIV X, Y, A

1.13

Lenguaje Ensamblador

Los lenguajes ensambladores son en esencia una versin simblica de los lenguajes mquina; por cada instruccin de la mquina o cada elemento capaz de almacenar datos se crea un smbolo que puede utilizar el programador; as, las instrucciones anteriores se escribiran como:
add. i c a b sub. f c a b

Lenguaje ensamblador (cont.)

Cuestiones Cmo entiende la mquina el lenguaje ensamblador? Si las direcciones de memoria son simblicas en qu direcciones de memoria se colocan los datos?
Cdigo fuente (lenguaje ensamblador) Programa ensamblador Cdigo objeto (lenguaje mquina)

Programa ensamblador Traduccin a cdigo binario de cdigos simblicos de operacin Traduccin de las direcciones simblicas a direcciones reales de memoria Inconveniente: sigue siendo dependiente de la mquina

1.15

Lenguajes de alto nivel

Lenguaje que permite representar el mecanismo de resolucin de los problemas usando instrucciones independientemente de la computadora Cercana conceptual al programador Pascal, C, Java, etc. son lenguajes de alto nivel

1.16

Lenguaje de Programacin
Un lenguaje de programacin es aquel elemento dentro de la informtica que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposicin del programador para que este pueda comunicarse con los dispositivos hardware y software existentes. Algunos ejemplos son:

LENGUAJES DE PROGRAMACION
LENGUAJE DE ALTO NIVEL Diseados para que las personas
entiendan y escriban los programas de un modo mas fcil que usando lenguajes de maquina y ensamblador. Es independiente de la maquina pues las instrucciones no dependen del hardware o maquina en particular. Los programas escritos en lenguaje de alto nivel son portables o transportables, es decir que pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de maquinas.

C, C++, COBOL, FORTRAN, Pascal, Java, Phyton.

LENGUAJES DE PROGRAMACION
{Lenguaje Pascal} program suma; var x,s,r:integer; {declaracin de las variables} begin {comienzo del programa principal} writeln('Ingrese 2 nmeros enteros');{imprime el texto} readln(x,s); {lee 2 nmeros y los coloca en las variables x y s} r:= x + s; {suma los 2 nmeros y coloca el resultado en r} writeln('La suma es ',r); {imprime el resultado} readln; end.{termina el programa principal}

Alto Nivel Bajo Nivel Maquina

;Lenguaje ensamblador, sintaxis Intel para procesadores x86 mov eax,1 ;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebx int 80h ;llama a la interrupcin 80h (80h = 128 sistema decimal)

Lenguajes de Programacin

Un LP posee dos componentes:


Lxico. Conjunto de smbolos que se pueden usar en un lenguaje. Sintaxis. Conjunto de reglas formales que especifican la composicin de programas a partir de ciertas unidades de construccin (Caracteres) Semntica. Especifica el significado de un programa sintcticamente vlido escrito en el lenguaje

Lxico

Identificadores: nombres que se le darn a ciertos elementos de programacin (p.e. nombres de variables, tipos, mdulos, etc.). Constantes: datos que no cambiarn su valor a lo largo del programa. Operadores: smbolos que representarn operaciones entre variables y constantes. Instrucciones: smbolos especiales que representarn estructuras de procesamiento, y de definicin de elementos de programacin. Comentarios: texto que se usar para documentar los programas

Sintaxis

Consta de unas definiciones, denominadas reglas sintcticas o producciones que especifican la secuencia de smbolos que forman una frase del lenguaje. Estas reglas dicen si una frase est bien escrita o no.

Actividad

Dadas las siguientes expresiones, ordnelas, aplicando la sintaxis adecuada, de tal manera que el mensaje sea entendible.
orientarse Es saber importante iba el saco ladrn a meterla en El leccin El explica los nios a maestro la para tinta La escribir sirve prisa Ven tengo porque pronto

Actividad. Pon los signos de puntuacin donde corresponda

En base al texto proporcionado por el docente, escribe los signos de puntuacin segn corresponda, de tal manera que quede de acuerdo a lo que se indica: Escribe los signos de puntuacin segn corresponda, de tal manera que en la primera vez le quede al sobrino Juan, en el segundo intento le quede a Lus, en el tercero al Sastre, el cuarto a los Jesuitas y en el ltimo caso no le quede a ninguna persona.

Texto a poner puntuacin

Dejo mis bienes a mi sobrino Juan no a mi hermano Luis tampoco jams se pagar la cuenta al sastre nunca de ningn modo para los jesuitas todo lo dicho es mi deseo

Solucin para Juan:

Dejo mis bienes a mi sobrino Juan. No a mi hermano Luis. Tampoco, jams, se pagar la cuenta al sastre. Nunca, de ningn modo, para los jesuitas. Todo lo dicho es mi deseo

Solucin para Luis:

Dejo mis bienes a mi sobrino Juan? No. A mi hermano Luis!. Tampoco, jams, se pagar la cuenta al sastre. Nunca, de ningn modo, para los jesuitas. Todo lo dicho es mi deseo

Solucin para el Sastre:

Dejo mis bienes a mi sobrino Juan? No. A mi hermano Luis? Tampoco, jams. Se pagar la cuenta al sastre. Nunca, de ningn modo, para los jesuitas. Todo lo dicho es mi deseo

Solucin para los jesuitas:

Dejo mis bienes a mi sobrino Juan? No. A mi hermano Luis? Tampoco, jams. Se pagar la cuenta al sastre? Nunca, de ningn modo. Para los jesuitas todo. Lo dicho es mi deseo

Solucin para ninguno:

Dejo mis bienes a mi sobrino Juan? No. A mi hermano Luis? Tampoco. Jams se pagar la cuenta al sastre. Nunca, de ningn modo, para los jesuitas. Todo lo dicho es mi deseo

Cmo entiende la maquina los lenguajes de prog.?


Un Lenguaje de programacin requiere 0s y 1s. Un lenguaje de alto nivel son palabras fcilmente entendibles. Se requieren Traductores

TRADUCTORES DE LENGUAJE
Traductores de lenguaje

Son los programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a cdigo de maquina. Clasificacin:

Compiladores: Lenguaje de alto nivel --> Lenguaje de maquina. Interprete: Un traductor que toma un programa fuente, lo traduce y a continuacin lo ejecuta.

Traductores de Lenguaje

Para que un procesador ejecute un programa escrito en un lenguaje de alto nivel es necesario que lo transforme a su equivalente en lenguaje mquina. Para ello existen dos posibilidades, la interpretacin y la traduccin.

Interpretacin

Un intrprete traduce y ejecuta sentencia a sentencia el programa original (programa fuente.)

Compilacin

Traduce el programa original en un programa escrito en lenguaje mquina.

Comparacin compiladores intrpretes

Un intrprete puede ejecutar un programa directamente, incluso sin estar completo. Un compilador ha de traducirlo completamente antes de ejecutarlo. Un programa interpretado ocupa poca memoria. Un programa compilado es ms rpido. El compilador crea un ejecutable independiente del propio compilador. Un programa interpretado necesita siempre su intrprete.

OPERADORES
Son elementos que relacionan de forma diferente, los valores, es decir, los operadores nos permiten manipular valores. Existen tres operadores utilizados por las computadoras:
Aritmticos Relacionales Lgicos

Aritmticos
Operadores aritmticos: Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores a utilizar

Operadores lgicos

Operadores que permiten comparar dos valores o variables. Se dividen en operadores lgicos relacionales y operadores lgicos bolanos Operadores lgicos relacionales: Se utilizan para establecer una relacin entre dos valores. Compara estos valores entre si y esta comparacin produce un resultado de Verdadero o Falso. Los operadores relacinales comparan valores del mismo tipo, tienen el mismo nivel de prioridad en su evaluacin y tienen menor prioridad que los aritmticos. Los operadores relacinales son

Operadores Relacionales

OPERADORES LGICOS
Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos valores pueden ser resultado de una expresin relacional. Los operadores lgicos son:

And ( y) Or () Not (Negacin)

Jerarqua de los operadores


Para resolver cualquier operacin o ejercicio se debe desarrollar teniendo en cuenta el siguiente orden: Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan desde el centro hacia fuera, el parntesis mas interno se evala primero. Dentro de una misma expresin los operadores se evalan en el siguiente orden.
1.

2.
3. 4.

Exponenciacin Multiplicacin, Divisin (Con decimales) Divisin Entera y Divisin Modular. Suma y resta

Jerarqua de los operadores


Cuando se encuentran operadores del mismo nivel, estos se desarrollan de izquierda a derecha. Cuando se encuentran varios parntesis, se empiezan a desarrollar por el ms interno. Un parntesis, slo desaparece, cuando queda un solo trmino en medio de ellos

Jerarqua de los operadores

Para desarrollar cualquier operacin algortmica es necesario utilizar la jerarqua de los operadores, ya que ella indica el orden e importancia de cada uno de los operadores aritmticos

Jerarqua de operadores
Tomaremos como ejemplo la expresin 2*5+3=? Y si ponemos : 2+5*3=?

Jerarqua de Operadores
2*5+3 10 + 3 13 Resultado Correcto

Ejemplo
1. 2. 3. 4.

40 / 5 + 8 ^ 2 * 3 ------> 1 es la exponenciacin 40 / 5 + 64 * 3 ---------> Primero se resuelve la divisin (de izquierda a derecha) 8 + 64 * 3 --------------> Luego divisin (mismo nivel jerrquico de multiplicacin) 8 + 192-----------------> Por ltimo se realiza la suma

5.

200

Jerarqua de Operadores
51 / 2 + 3 ---> La divisin ( / ) indica que se manejan decimales. 51 / 2= 25.5 25.5 + 3 -----> Luego se realiza la suma de los dos valores 28.5 51 \ 2 + 3 ---> La divisin ( \ ) indica que slo se maneja la parte entera. 51 \ 2= 25

Jerarqua de operadores
25 + 3 -----> Luego se realiza la suma de los dos valores 28 51 mod 2 + 3 ---> (mod) indica que se usa el residuo de la divisin 51 mod 2 = 1 1 + 3 -----> Luego se realiza la suma de los dos valores 4

Observe lo distinto de los resultados. La divisin modular toma slo el residuo de la divisin: El 2 en el 51 est 25 veces. 25 x 2 = 50. Por lo tanto de 50 a 51 hay 1 (este es el residuo de la divisin). Para entender mejor observemos los siguientes Ejercicios

Ejercicios con Operadores Relacionales:

Los operadores relacionales son smbolos que se usan para comparar dos valores. Si el resultado de la comparacin es correcto la expresin considerada es verdadera, en caso contrario es falsa.

Ejemplo:

Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true, 8<4 (ocho menor que cuatro) es falsa, false.

Ejemplos Sencillos
Operador nombre ejemplo resultado

< > == !=

menor que mayor que igual a no igual a

5<7 6>3 3==5 5!=7

Verdadero Verdadero Falso Verdadero

<=

menor que o igual a


mayor que o igual a

8<=10

Verdadero

>=

10>=12

Falso

Ejercicios para resolver


(4*4+10/2)+5*4+8/2*5 < 6*(5+10*4-22)*2 (16+10/2)+5*4+8/2*5 < 6*23*2 (16+5)+20+4*5 < 138* 2 21+20+20 < 276 61 < 276 Verdadero

Ejercicios para resolver


5*5+10*50+120*3+8*5/2+10 >= 5*5+(10*50+12) *3+8*5/2+10+120 25+10*50+120*3+8*5/2+10 >= 5*5 + (500+12)*3+8*5/2+10+120 25+500+120*3+8*5/2+10 >= 5*5 + 512*3 + 8/2+10+120 25+500+360+8*5/2+10 >= 25+512*3+8/2+10+120 25+500+360+40/2+10 >= 25+1536+8/2+10+120 25+500+360+20+10 >= 25+1536+4+10+120 525+360+20+10 >= 1561+4+10+120 885+20+10 > =1565+10+120 1005+10 > = 1575+120 1015 >= 1690 Falso

5*5+10*5+20*3(+8*5/2+10) <= 5(*5+(10*50+12)) *3+8*5/2+10 5*2+(10*50+120*3+8*5)/2+10 != 8*5+(10*5+100) *3+(8*5/2+10+120) 3+10*50/2+10*3+(8*5/2+10) < 5*3+(5*3+12*2) *2+8*5/2+15+100 5*5+10*50+120*3+8*5/2+10 == 120/2*3+8*4+(10/5*3-10+85) 5*5+10*50+120*3+8*5/2+10 >= 5*5+(10*50+10) *3+(8*5/2+10)/10

Operadores Lgicos

Los operadores lgicos permiten unir valores o expresiones lgicas, obteniendo como resultado si es verdadera o falsa la expresin combinada. Son los siguientes:
&& (Y lgico - conjuncin) || (O lgico - disyuncin) ! (NO lgico)

Tablas de Verdad: Conector and(&&)

Tabla de verdad: Conector lgico or (||)

Ejemplos de Uso de conectores

6 >= 5 && 7 != 8 && 4<=6 V && V && V

Verdadero

6 >= 5 && 7 != 8 && 4>=6 V && V && F

Falso

Ejemplo de uso de conectores

6 >= 5 || 7 != 8 || 4<=6 V || V || V

Verdadero

6 >= 5 || 7 == 8 || 4>=6 V || F || F =
6 >= 5 || 7 != 8 || 4>=6 V || V || F =

Verdadero

Verdadero

Ejemplo de uso de conectores

6 >= 5 && 7 == 8 || 4>=6 V && F || V = F || V 6 >= 5 || 7 == 8 && 4>=6 V || F && F = V && F

Verdadero

FALSO

Introduccin a los algoritmos

Ejemplo 1.

Cules son los pasos para que una persona pueda caminar adelante suponiendo que est sentado?
1. 2. 3. 4. 5.

Tomar impulso para levantarse Ponerse de pie Mover una pierna hacia adelante Mover la otra pierna delante de la primera Repetir pasos 3 y 4 hasta que ya no se quiera caminar

Ejercicio 1.

Escriba los pasos necesarios para hacer un agua de limn, considere que cuenta con los siguientes utensilios y alimentos:
Cuchillo, Jarra, Cuchara exprimidor Limones lavados enteros Azcar

Ejercicio 2.

Escriba la serie de pasos para llamar de un telfono pblico a un telfono celular. Suponga que ya se encuentra en el lugar donde est el telfono y ya cuenta con tarjeta.

Definicin de algoritmos

GENERALIDADES SOBRE LOS ALGORITMOS


Metodologa de programacin: Consiste en la metodologa aplicada para la resolucin de problemas mediante programas.
Programa de computad or
Expresar el algoritmo como un programa en el lenguaje de programacin adecuado.

Problema

Diseo del algoritmo


Descripcin ordenada de la secuencia de pasos (sin ambigedades) que conducen a la solucin de problema dado (Anlisis del problema y desarrollo del algoritmo).

Tarea que se desea resolver.

Ejecucin validacin programa computadora.

y del de

La definicin de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un sancocho.

Programa de Aplicacin Programa que permite resolver la ecuacin de primer grado

Programa que permite resolver la ecuacin de primer grado

ax+b=0 a ? b x = -b / a

Algoritmo EC 1er Grado Variables a,b,x de tipo entero Inicio Escribir(Ingrese valores de EC) Leer (a,b) Si a = 0 entonces escribir (Error) sino Inicio x=-b/a Escribir (La solucin es:,x) Fin Escribir(Fin programa) Fin

#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 solucin es %d:,x); } printf(Fin programa); }

73

Qu es un problema?

Es una situacin concreta sobre la cual se quiere implementar una solucin (ejemplos) Solucin: procedimiento que nos lleva a satisfacer ciertos requerimientos Esquema bsico para la resolucin de un problema a travs de un programa con un enfoque sistmico
Salida
Proceso
Informes Datos para otro programa Datos grabados en dispositivos externos de almacenamiento

Entrada
Datos Externos Datos auto generados Lectura de dispositivo de almacenamiento

74

Pasos en la resolucin de un problema

Entender el problema

Conceptualizacin Objetivo Contexto

Buscar soluciones Elegir solucin Disear solucin


Descomposicin Especificar tareas Modelar solucin

Implementar solucin Validar solucin


75

Datos y Variables

Datos: objetos simblicos que representan objetos del mundo real.

Ejemplos: 10 de Marzo de 2003, 3.14

Variables: no hace referencia a un objeto explcito

Ejemplos: velocidad del mvil, factor de crecimiento

76

Qu es un Modelo?
Estructura para dar razn y abstraer una realidad Ejemplo:

Estudiantes Inscrita Asignaturas

Estudia

Plan de Estudios

Carrera

77

Qu es un algoritmo?
Procedimiento detallado para resolver un problema en pasos y en un tiempo finito. Se especifican en base a operaciones bsicas que controlan las variables y el flujo del algoritmo El algoritmo lleva desde un estado inicial a un estado final El algoritmo recibe Entradas y entrega Salidas

78

Cmo desarrollar un algoritmo?


Imaginacin No reinventar la rueda Dividir para conquistar Para ser efectivo se requiere practicar constantemente El diseo de algoritmos es una rama de la Ciencia de la Computacin

79

Cmo se describe un algoritmo?


Lenguaje natural Pseudo cdigo Lenguaje de programacin La precisin es importante

Un algoritmo no puede ser descrito de forma ambigua:

Todos tienen que entender lo mismo (incluido el computador!)

80

Llamada telefnica

Se desea conceptualizar el problema de efectuar una llamada telefnica en un telfono pblico que recibe monedas de $10, $50 y $100. El costo mnimo de la llamada es de $100 por 5 minutos. El proceso se inicia desde que se levanta el auricular y finaliza cuando se cuelga.

81

rboles de decisin

Herramienta til para describir algoritmos que involucran gran cantidad de decisiones

82

Conceptos Bsicos de Algoritmos

La forma en que se ejecutan las operaciones bsicas en un computador, es similar a lo que ocurre en nuestro cerebro. Por ejemplo, para sumar dos valores:

Primero debemos pedirle a alguien que nos diga el primer valor. Luego de que conocemos este valor, debemos almacenarlo (para recordarlo despus) en una neurona (Suponemos que un valor se puede almacenar en una neurona).

Ya conocemos el primer valor almacenado en nuestro cerebro.

est

Conceptos Bsicos de Algoritmos

Ahora debemos pedir el segundo valor. Una vez conocido, lo almacenamos en otra neurona distinta de la anterior. Por qu? Ahora que conocemos los dos valores procedemos a sumarlos, y dicho resultado lo almacenamos en otra neurona distinta de las anteriores. Por ltimo, le decimos el resultado a la persona que nos entrego los nmeros.

Conceptos Bsicos de Algoritmos


De lo anterior, al menos necesitamos 3 neuronas para sumar dos nmeros. Le pedimos explcitamente que nos dijeran dichos valores. Le asignamos dichos valores a las neuronas La suma la realiz nuestro cerebro de forma mecnica. Note que no existen detalles de la operaciones bsicas (*,/,+, -). Finalmente se da el resultado

Conceptos Bsicos de Algoritmos

Algoritmo para sumar dos nmeros:

Definimos tres neuronas Pedimos el primer valor Almacenamos ese valor en la neurona 1. Pedimos el segundo valor Almacenamos ese valor en la neurona 2. Almacenamos la suma de las neuronas 1 y 2 en la neurona 3 Entregamos el resultado que se encuentra en la neurona 3.

Conceptos Bsicos de Algoritmos

Sin embargo, en los lenguajes no se pueden usar neuronas, pero podemos definir variables (Recuerde que las variables pueden tomar cualquier valor) En lugar de usar neurona 1 y neurona 2, se utilizan espacios de memoria que llamaremos var 1 y var 2, y as sucesivamente. Tambin las podemos llamar x1 y x2 x e y .

Conceptos Bsicos de Algoritmos


Ejercicio: Cree un algoritmo que multiplique tres nmeros. Algoritmo para multiplicar tres nmeros:
Definimos cuatro variables Pedimos el primer valor Almacenamos ese valor en var 1. Pedimos el segundo valor Almacenamos ese valor en var 2. Pedimos el tercer valor Almacenamos ese valor en var 3. Almacenamos la multiplicacin de las variables en var 4 Entregamos el resultado que se encuentra en var 4.

Conceptos Bsicos de Algoritmos

La manera en que hemos detallado nuestros dos algoritmos se llama PSEUDO-CDIGO. Y este pseudo-cdigo fue escrito en lenguaje natural. Otra manera de poder detallar nuestros algoritmos es a travs de los diagrama de flujo. Un diagrama de flujo es una representacin simblica de la lgica del algoritmo.

Diagrama de Fujo

Nomenclatura:

Inicio del algoritmo Trmino del algoritmo Impresin de mensajes Receptor de datos Operacin de datos Bifurcacin (Decisin) Definicin de variables Conector

Inicio Termino

Diagrama de Flujo y Pseudo-Cdigo


DIAGRAMA DE FLUJO NOMENCLATURA

PSEUDO-CDIGO

Inicio

Inicio de Algoritmo

Inicio

Entero var1, x , y Real a, b

Definicin de variables

Variables Entero var1, x, y Real a, b

Escribir Mensaje 1

Impresin de mensajes

Escribir (Mensaje 1)

Leer var1,x, y

Lectura de mensajes

Leer (var1, x, y)

a=3*x+ y b = a / var1

Transformacin de datos Operaciones sobre los datos

a=3*x+ y b = a / var1

F Si a > b

Bifurcacin en la ejecucin de instrucciones

Conector

Si a > b Entonces Inicio Instrucciones Fin Sino Inicio Instrucciones Fin

Fin

Fin de algoritmo

Fin

Diagrama de Fujo para el algoritmo que suma dos valores


Inicio var1,var,var3

Se definen las variables var1, var2, var3 Se pide ingresar el primer valor Se asocia el nmero ingresado a var1 Se pide ingresar el segundo valor Se asocia el nmero ingresado a var1 Se asigna el resultado de la suma entre var1 y var2 a var3 Se muestra el resultado

Ingrese el primer valor

var 1

Ingrese el segundo valor var 2

var3=var1+var2

El resultado es : var3 Termino

Diagrama de Flujo
Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres nmeros y muestre el resultado Ejercicio: Cree el diagrama de flujo para que divida dos nmeros y muestre el resultado

Preguntas?

Algoritmos

Ejercicio. Usando diagrama de Flujo. Cree un algoritmos donde una persona ingrese su edad y muestre por pantalla si es mayor de edad.

Algoritmos
Inicio Edad

Ingrese su edad

Edad

si Edad>=18 Usted es mayor de edad

No Usted es menor de edad

Fin

Algoritmos
Del ejemplo anterior podemos observar que la bifurcacin permite seguir el flujo adecuado dada una condicin. Las condiciones que se evalan en las bifurcaciones son siempre verdaderas o falsas. Por ende, hay que colocar las instrucciones adecuadas a los valores que se evaluan en las bifurcaciones.

Algoritmos
Tambin es posible que existan bifurcaciones contiguas. En las bifurcaciones o estructura de control, se evalan proposiciones utilizando:

Operadores lgicos
Operadores aritmticos Operadores Relacionales

Algoritmos

Operadores Aritmticos:

* / + %

multiplicacin Divisin Suma Resta Mdulo

Ejemplo de mdulo (o residuo de la divisin):

5%2 es 1
4%2 es 0

Algoritmos

Operadores Lgicos:

Y, And, &&

Y V F

V V F

F F F

Algoritmos

Operadores Lgicos:

O, Or, ||

O V F

V V V

F V F

Algoritmos

Operadores Lgicos:

No, Not, !

No

Algoritmos

Analicemos los siguientes casos


var1=2, var2=0,var3=4

var4=(var1*var1)/var3

var4=1

Si var4>=1 && var1!=0

Si

No

Algoritmos

Analicemos los siguientes casos


var1=2, var2=0,var3=4

var4=(var3%var1)

var4=0

Si (var4!=0 || var2>0) && (var3==4) No

No

Algoritmos

Analicemos los siguientes casos


var1=2, var4=1,var3=4

var4=(var4+var1)

var4=3

Si !(var1 && (var4>=var1))

No Cualquier proposicin distinta de cero Es VERDADERO

No

Algoritmos

Es importante notar que existen prioridades entre los operadores. Por lo tanto deben utilizarse parntesis en los casos que correspondan

Algoritmos

Ejercicio. Crear un algoritmo que muestre en forma ordenada tres nmero enteros ingresados desde teclado.

Inicio

si var1,var,var3 var1>var2 && var1>var3 var2>var3

si El orden es var1,var2, var3

No Ingrese el primer valor

No

El orden es var1,var3 var2

var1 si var2>var3 Ingrese el segundo valor var1>var3 si El orden es var2,var1, var3

No

No

Fin var2 El orden es var2,var3 var1 si Ingrese el tercer valor var2>var1 El orden es var3,var2 var1

No El orden es v3,var1 var2

var3

Diagrama de Flujo

Ejercicio: Cree el diagrama de flujo para el algoritmo que multiplica tres nmeros y muestre el resultado Ejercicio: Cree el diagrama de flujo para que divida dos nmeros y muestre el resultado Ejercicio: Cree el diagrama de flujo para que resuelva la ecuacin de primer grado y muestre el resultado Ejercicio: Cree el diagrama de flujo para que resuelva la ecuacin de segundo grado, para valores reales e imaginarios, y muestre el resultado Ejercicio: Cree el diagrama de flujo permita sumar tres nmeros ingresados por teclado y muestre el resultado Ejercicio: Cree el diagrama de flujo que permita sumar n nmeros y muestre el resultado. El valor de n debe ser ingresado por teclado al igual que los nmeros que se sumarn.

Algoritmos
Repaso de Bifurcaciones Aprendizajes Esperados

Conceptos de Ciclos Cundo se aplican los ciclos

Algoritmos

Ejercicio. Crear un algoritmo que muestre en forma ordenada tres nmero enteros ingresados desde teclado

Inicio

si var1,var,var3 var1>var2 && var1>var3 var2>var3

si El orden es var1,var2, var3

No Ingrese el primer valor

No

El orden es var1,var3 var2

var1 si var2>var3 Ingrese el segundo valor var1>var3 si El orden es var2,var1, var3

No

No

Fin var2 El orden es var2,var3 var1 si Ingrese el tercer valor var2>var1 El orden es var3,var2 var1

No El orden es v3,var1 var2

var3

Algoritmos

Concepto de Ciclo

Un ciclo es la repeticin de un conjunto de instrucciones. Dicho ciclo culmina cuando se cumple una condicin de termino.

Cundo se aplican los Ciclos

Se aplican cuando queremos ejecutar un conjunto de instrucciones varias veces.

Algoritmos

Inicializacin

Estructura de un ciclo
F

Condicin de Termino

V Instruccin 1

Instruccin 2

Instruccin N

Incremento/ Decremento

Algoritmos

Ejemplo: Crear un algoritmo que sume N elementos y muestre el resultado

Inicio

N,var,cont, Suma=0

N
2

var
1 2

cont
1 2 3

suma
0
1 3

Ingrese cuantos nmeros va a sumar

cont=1

V cont<=N Ingrese el cont valor

var

El resultado es suma suma=suma+var

Fin

cont=cont+1

Algoritmos

Ejemplo: Crear un algoritmo que encuentre el nmero mayor de N nmeros enteros positivos ingresados por teclado.

Inicio

N,var,cont, mayor = -1

Ingrese cuantos nmeros va a sumar

cont=1

V cont<=N Ingrese el cont valor

var

El resultado es mayor cont==1 || var>mayor Fin F

V mayor=var

cont=cont+1

Algoritmos

Ejemplo: Crear un algoritmo que calcule

i
1

GENERALIDADES SOBRE LOS ALGORITMOS


Describir los pasos para cruzar la calle.
Describa los pasos para cambiar un bombillo quemado.

Describa los pasos para llevar a una amiga a cine.

Describa los pasos para cambiar la llanta pinchada de una cicla.

You might also like