Diseño Estructurado de Programas – Parte I Preparado por la Prof. Lillian Bras con la colaboración del Prof. Antonio F. Huertas COTI 3101 – Algoritmos.

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
Una estructura de control permite controlar el flujo de la ejecución de instrucciones. Con estas estructuras, el programador puede determinar el orden.
Los Números y El Tiempo. Los Números Más de = once 12 = doce 13 = trece 14 = catorce 15 = quince 16 = dieciseis 17 = diecisiete 18 = dieciocho 19.
You need to improve the way you write and think in Spanish - Time This is an interactive presentation. You need your work sheet, your pencil, and your.
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
While Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright 2008 by Leonel.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
Capítulo 3 Nuevas clases, nuevos amigos PRIMER PASO
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Parte A (10 pts.) You will hear statements describing the pictures. Write the letter that corresponds to the picture that is described. Ejemplo: 1. ______.
A la izquierda A la derecha Todo recto
EL LENGUAJE DE PROGRAMACIÓN C
Objetivo: Los estudiantes van a usar vocabulario del desayuno para comprender un cuento. Práctica: 1. ¿Te gusta comer? 2. ¿Te gusta beber Mt. Dew.
Introducción a JAVA COMP 250. Estructura de Selección selection statements selection statements – Escoger cuál acción ejecutar dependiendo de dos ó más.
Conceptos Básicos del lenguaje de programación COBOL
Las Matemáticas Objectives: You will be able to read and solve word problems in Spanish. You will be able to write solutions to word problems in Spanish.
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
Los Objetos de la Clase Escriban la palabra (the word) en español para los objetos de la clase (#1-20).
ARQUITECTURA DE COMPUTADORES - PIPELINING
SABER Y CONOCER The verbs saber and conocer also have an irregular YO form. Both of these verbs mean to know. Saber is used to express knowledge of simple.
Español 1 el 30 de agosto. Bell Dinger – el 30 de agosto
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
1. Apoyo exterior sobre ala inferior de viga de acero
Entrada y salida Fundamentos de programación/Programación I
MATLAB.
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
Competencia de Conociamento Español I Marzo 2013.
-17 Expectativas sobre la situación económica (Europa) Septiembre 2013 Indicador > +20 Indicador 0 a +20 Indicador 0 a -20 Indicador < -20 Total Unión.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Repaso del capítulo Primer Paso
Capítulo 2 El Vocabulario Nuevo.
Parte 3. Descripción del código de una función 1.
EL OSO APRENDIZ Y SUS AMIGOS
PL/SQL Francisco Moreno Universidad Nacional. Funciones Si un procedimiento tiene solo un parámetro de salida, se puede remplazar por una función y esta.
1 SEGUNDO FORO REGIONAL HERMOSILLO, SON Sistema Nacional de Transparencia Fiscalización y Rendición de Cuentas:
Defina una clase TempMinMaxEst que encapsule la representación de las temperaturas mínimas y máximas registradas en una estación meteorológica y brinde.
Ecuaciones Cuadráticas
Oracle y Java Continuación *
1 Entrada/Salida en Java Jaime Ramírez, Ángel Lucas González DLSIIS. Facultad de Informática Universidad Politécnica de Madrid.
ESTRUCTURAS DE CONTROL
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Overloading de subprogramas procedure Put(Item: in integer;
Seminario de Lenguajes A – Opción Ada Estructura general de programas –Especificación de contexto –Encabezado –Declaraciones –Cuerpo Seminario de Lenguajes.
Seminario de Lenguajes A – Opción Ada
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt El vocabularioMe.
Business Proccess Management (BPM)
CULENDARIO 2007 Para los Patanes.
0 1 ¿Qué hora es? By: Craig Tillmann Revised by: Malinda Seger Coppell High School Coppell, TX.
BEATRIZ LAFONT VILLODRE
SpanishNumbers Uno 2 Dos 3 Tres 4 Quatro.
MSc. Lucía Osuna Wendehake
Quantity How much? How many?
What uses could you give to numbers in Spanish? Think for one minute, and then brainstorm!!!!!
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Manual de Procedimientos Procedimiento de ejecución del programa de
If anidados y Switch Prof. Lillian Bras.
Input – Scanner y Cajas de diálogo
Archivos y Búsqueda Secuencial
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Transcripción de la presentación:

Diseño Estructurado de Programas – Parte I Preparado por la Prof. Lillian Bras con la colaboración del Prof. Antonio F. Huertas COTI 3101 – Algoritmos y Desarrollo de Programas I

2 Introducción Existen varias herramientas que se utilizan para diseñar programas. Dos de las más utilizadas son: –Flujograma –Pseudocódigo

3 ¿Qué es un flujograma? Un flujograma es un diagrama que representa el orden en que se ejecutan las instrucciones de un programa. En un flujograma se representan las instrucciones con distintas figuras geométricas. La figura que se muestra a la derecha es el flujograma correspondiente a un programa que calcula el sueldo bruto semanal de un empleado. Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End

4 Símbolos o Figuras Utilizadas en los Flujogramas Note que hay tres tipos de figuras en este flujograma: –óvalos –paralelogramos –un rectángulo Cada símbolo representa una operación diferente. óvalo paralelogramo rectángulo óvalo Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End

5 Símbolos o Figuras Utilizadas en los Flujogramas (Cont.) Terminales –Representadas por óvalos –Marcan el principio y el fin del flujograma Terminal StartEnd Terminal Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End

6 Símbolos o Figuras Utilizadas en los Flujogramas (Cont.) Enunciados de Entrada / Salida (Input / Output) –Representadas por paralelogramos –Se diferencia entre Input y Output por el verbo utilizado en la figura Display “How many hours did you work?” Get hours Input/Output Statement Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End

7 Símbolos o Figuras Utilizadas en los Flujogramas (Cont.) Procesos / Enunciados de Asignación –Representados por rectángulos –Se le asigna un valor a la variable al lado izquierdo del símbolo de la flecha –La flecha de derecha a izquierda recuerda que se almacena el valor resultante de la expresión en el lado derecho a la variable que se encuentra en el lado izquierdo Process Statement Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End

8 Variables: hours: ? payRate: ? grossPay: ? Veamos, paso a paso, qué sucede cuando se ejecuta cada instucción / símbolo del flujograma. Al principio las variables en la memoria sólo tienen basura. Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma

9 How many hours did you work? Variables: hours: ? payRate: ? grossPay: ? Paso 1: Enunciado de Output Esto es lo que veríamos en el monitor Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma…

10 How many hours did you work? 40 Variables: hours: 40 payRate: ? grossPay: ? Pasop 2: Enunciado de Input (Usuario entra 40.) Se almacena 40 en la variable hours. Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma…

11 How much do you get paid per hour? Variables: hours: 40 payRate: ? grossPay: ? Paso 3: Enunciado de Output Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma…

12 How much do you get paid per hour? 20 Variables: hours: 40 payRate: 20 grossPay: ? Paso 4: Enunciado de Input (Usuario entra 20.) Se almacena 20 en payRate. Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma…

13 How much do you get paid per hour? 20 Variables: hours: 40 payRate: 20 grossPay: 800 Paso 5: Enunciado de Asignación Se almacena 800 en grossPay. Note que esta instrucción no se refleja en el monitor. Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma…

14 Gross pay is $800 Variables: hours: 40 payRate: 20 grossPay: 800 Paso 6: Enunciado de Output Start Display “How many hours did you work?” Get hours Display “How much do you get paid per hour?” Get payRate grossPay ← hours * payRate Display “Gross pay is $” + grossPay End Ejecución de un Flujograma…

15 Pseudocódigo El pseudocódigo es una descripción de un algoritmo que utiliza las convenciones de los lenguajes de programación pero que está destinado a ser leído por seres humanos en lugar de computadoras. El pseudocódigo no pretende ser un programa con todos sus detalles sino proveer una forma compacta y clara de expresar un algoritmo.

16 Pseudocódigo (Cont.) El siguiente es el pseudocódigo del programa que acabamos de analizar: Start Display “How many hours did you work? ” Get hours Display “How much do you get paid per hour? ” Get payRate grossPay  hours * payRate Display “Gross pay is $” + grossPay End

17 Del Diseño al Programa Luego de diseñar un programa utilizando un flujograma o pseudocódigo, el programador implementa el diseño utilizando un lenguaje de programación real. A continuación se presenta el programa que hemos estudiado usando los lenguajes Java y Pascal.

18 Del Diseño al Programa (Cont.) El siguiente es el programa escrito usando Java: import java.util.Scanner; public class Payroll { public static void main(String[] args) { int hours; double payRate, grossPay; Scanner keyboard = new Scanner(System.in); System.out.print("How many hours did you work? "); hours = keyboard.nextInt(); System.out.print("How much do you get paid per hour? "); payRate = keyboard.nextDouble(); grossPay = hours * payRate; System.out.println("Gross pay is $" + grossPay); }

19 Del Diseño al Programa (Cont.) El siguiente es el programa escrito usando Pascal: program Payroll; var hours: Integer; payRate, grossPay: Real; begin write('How many hours did you work? '); readln(hours); write('How much do you get paid per hour? '); readln(payRate); grossPay := hour * payRate; writeln('Gross pay is $', grossPay); end.

20 Estructuras de Control Las estructuras de control indican el orden en que ejecutarán las instrucciones. Son tres: –Secuencia –Decisión / Selección –Repetición En la programación estructurada las instrucciones en cada rutina del programa se organizan usando las estructuras de control.

21 Estructura de Secuencia En esta estructura las instrucciones se ejecutan en una después de la otra en el orden en que aparecen. Los programas que hemos estudiados se componen de instrucciones organizadas en secuencia.

22 Esta estructura se compone de varios elementos. El símbolo o figura del diamante indica la necesidad de evaluar una expresión lógica (una pregunta de cierto o falso). Si la contestación resulta ser cierta, el flujo de ejecución sigue un camino y si es falsa, sigue el otro. Estructura de Decisión / Selección True False Expresión lógica Acción TrueFalse Expresión lógica Acción BAcción A If-Then If-Then-Else

23 Estructura de Decisión / Selección (Cont.) Una expresión lógica es aquella en que produce un resultado lógico o booleano (valores cierto y falso). Normalmente las expresiones lógicas involucran una comparación. Los operadores de comparación (relacionales) son los siguientes: == igual a < menor que <= menor que o igual a > mayor que >= mayor que o igual a != distinto de (a veces se escribe así: )

24 Estructura de Decisión / Selección (Cont.) If-Then: En esta estructura se lleva a cabo una acción sólo si se cumple una condición (o sea, la expresión lógica es cierta). True False Expresión lógica Acción Pseudocódigo If (Expresión lógica) Then Acción End If Flujograma

25 Estructura de Decisión / Selección (Cont.) El siguiente fragmento muestra una estructura de selección donde la instrucción a  x*2 se ejecuta sólo si x < y. if (x < y) a = x * 2; Código en Java True False x < y? a ← x * 2 Pseudocódigo If (x<y) Then a ← x*2 End If Flujograma

26 Estructura de Decisión / Selección (Cont.) If-Then-Else: En esta estructura se ejecuta una de dos posibles acciones (A o B) dependiendo de si la evaluación de la expresión lógica es cierta o falsa. TrueFalse Expresión lógica Acción BAcción A Pseudocódigo If (Expresión lógica) Then Acción A Else Acción B End If Flujograma

27 Estructura de Decisión / Selección (Cont.) El siguiente es un ejemplo con acciones concretas: True False x < y? a ← x * 2 a ← x + y if (x < y) a = x * 2; else a = x + y; If (x < y) Then a  x * 2 Else a  x + y End If Pseudocódigo Flujograma Código en Java

28 Estructura de Decisión / Selección (Cont.) A continuación se mostrará el diseño de un programa que le pide al usuario el radio de un círculo y muestra el área sólo si el radio es positivo ( > 0.0). Si el radio no es positivo, el programa deberá indicarle al usuario que el radio es inválido.

29 Estructura de Decisión / Selección (Cont.) Start Display “Enter the radius: ” Get radius area  PI * power(radius, 2) radius > 0.0? Display “The area is ” + area truefalse Display “The radius is invalid.” End Start Display “Enter the radius: ” Get radius If (radius > 0.0) Then area  PI * power(radius, 2) Display “The area is ” + area Else Display “The radius is invalid.” End If End Flujograma Pseudocódigo

30 Estructura de Decisión / Selección (Cont.) El siguiente es el programa en Java: import java.util.Scanner; public class CircleApp4 { public static void main(String[] args) { double radius, area; Scanner keyboard = new Scanner(System.in); System.out.print("Enter the radius: "); radius = keyboard.nextDouble(); if (radius > 0.0) { area = Math.PI * Math.pow(radius, 2); System.out.println("The area is " + area); } else System.out.println("The radius is invalid."); }

31 Estructura de Decisión / Selección (Cont.) A continuación se mostrará el diseño de un programa que calcula el costo de matrícula de un estudiante universitario basado en la cantidad de créditos. El programa asume que el costo por crédito es $75 y le otorga a los atletas y a los estudiantes de honor un descuento de 60%.

32 Estructura de Decisión / Selección (Cont.) Start Display “Enter the name: ” Display “Enter the number of credits: ” Get studentName Get numberOfCredits Display “Are you an athlete or honor student? (Y/N): ” Get answer A registrationFee  numberOfCredits * COST_PER_CREDIT A answer == ‘Y’? true discount  DISCOUNT_RATE * registrationFee registrationFee  registrationFee - discount Display “For ” + studentName + “,” Display “the registration fee is $” + registrationFee End false Flujograma

33 Estructura de Decisión / Selección (Cont.) Start Display “Enter the name: ” Get studentName Display “Enter the number of credits: ” Get numberOfCredits Display “Are you an athlete or honor student? (Y/N): ” Get answer registrationFee  numberOfCredits * COST_PER_CREDIT If (answer == ‘Y’) Then discount  DISCOUNT_RATE * registrationFee registrationFee  registrationFee - discount; End If Display “For ” + studentName + “, ” Display “the registration fee is $” + registrationFee End Pseudocódigo

34 Estructura de Decisión / Selección (Cont.) El siguiente es el programa en Java: import java.util.Scanner; public class RegistrationFeeApp { public static void main(String[] args) { final double COST_PER_CREDIT = 75.00; final double DISCOUNT_RATE = 0.60; String studentName; int numberOfCredits; char answer; double registrationFee, discount; Scanner keyboard = new Scanner(System.in); System.out.print("Enter the name: "); studentName = keyboard.nextLine(); Continúa…

35 Estructura de Decisión / Selección (Cont.) El siguiente es el programa en Java (cont.): System.out.print("Enter the number of credits: "); numberOfCredits = keyboard.nextInt(); System.out.print("Are you an athlete or honor " + "student? (Y/N): "); answer = keyboard.next().charAt(0); // To read a char registrationFee = numberOfCredits * COST_PER_CREDIT; if (answer == 'Y') { discount = DISCOUNT_RATE * registrationFee; registrationFee -= discount; } System.out.print("For " + studentName + ", "); System.out.println("the registration fee is $" + registrationFee); }

36 Estructura de Decisión / Selección (Cont.) A continuación se muestra el diseño de un programa que muestra un mensaje indicando si el número entrado por el usuario es positivo, cero o negativo. Este programa es un ejemplo del uso de Ifs anidados (Ifs que contienen otros Ifs).

37 Estructura de Decisión / Selección (Cont.) End Start Display “Enter a number: ” Get number number > 0? truefalse number == 0? truefalse Display “The number is positive.” Display “The number is zero.” Display “The number is negative.” Flujograma

38 Estructura de Decisión / Selección (Cont.) Pseudocódigo Start Display “Enter a number: ” Get number If (number > 0) Then Display “The number is positive.” Else If (number == 0) Then Display “The number is zero.” Else Display “The number is negative.” End If End

39 Estructura de Decisión / Selección (Cont.) Java (Una alternativa): import java.util.Scanner; public class NumberSignApp { public static void main(String[] args) { double number; Scanner keyboard = new Scanner(System.in); System.out.print("Enter a number: "); number = keyboard.nextDouble(); if (number > 0) System.out.println("The number is positive."); else if (number == 0) System.out.println("The number is zero."); else System.out.println("The number is negative."); }

40 Estructura de Decisión / Selección (Cont.) Java (La alternativa preferida por los programadores): import java.util.Scanner; public class NumberSignApp { public static void main(String[] args) { double number; Scanner keyboard = new Scanner(System.in); System.out.print("Enter a number: "); number = keyboard.nextDouble(); if (number > 0) System.out.println("The number is positive."); else if (number == 0) System.out.println("The number is zero."); else System.out.println("The number is negative."); }

41 Estructura de Decisión / Selección (Cont.) Los operadores lógicos son usados para combinar valores o expresiones lógicas. Estos operadores son tres: notproduce el opuesto del operando andproduce True sólo si ambos operandos son True orproduce False sólo si ambos operandos son False