Módulo 6: Condicionales y otros

Documentos relacionados
Resolución de Problemas y Algoritmos

Módulo 8: Primitivas en Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Módulo 2: Algoritmos (continuación)

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Estructuras de Control. Secuencia y Selección

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

Arreglos y Subrangos

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Trabajo Práctico Nº 4 Iteración

Dra. Jessica Andrea Carballido

SUBRANGO ENUMERADOS CONJUNTOS

Introducción a Haskell. Cecilia Manzino

Estructuras de Control. Secuencia y Selección

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

TRABAJO PRÁCTICO N 6 LENGUAJE PASCAL

Arreglos y Subrangos

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

FUNDAMENTOS DE OBJECT PASCAL

Tema 2. Concepto de Algoritmo

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.

Registros. Programación 1. InCo - FING. Programación 1 Registros InCo - FING 1 / 20

Manual de turbo pascal

Ordinales, Enumerados y Conjuntos

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Tipos definidos: Enumerados, subrangos y tuplas

Introducción a la Programación

El lenguaje C. 1. Identificadores, constantes y variables

Módulo 5: Lenguaje Pascal

Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Introducción a PL/SQL

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

6. Estructuras básicas de control 1. Pseudocódigo

Primer Parcial. Programación 1 Instituto de Computación Año 2017

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

Enumerados, subrangos y tuplas

Práctica 2. TIPOS DE DATOS SIMPLES

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Introducción a la programación: Algoritmos

Estructuras de Programación

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Dra. Jessica Andrea Carballido

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

Autoestudio 2: Variables y Operadores

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Operadores aritméticos

Guía práctica de estudio 05: Pseudocódigo

Centro Universitario UAEM Zumpango Ingeniería en Computación

Variables lógicas y sentencia IF. Seminario de Computación Verano de 2009

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Resolución de Problemas y Algoritmos

ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA

Donde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false).

Programación Estructurada

CIENCIA DE LA COMPUTACION

GUIA EXAMEN FINAL/EXTRAORDINARIO

Autor: Ing. Nahuel González INTRODUCCIÓN A C. Clase 1

CONTENIDOS MATEMÁTICA 1ER. AÑO BI Y 1ER AÑO BE

Tema 5. Soporte lógico de computadoras.

Transcripción:

Módulo 6: Condicionales y otros Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de

Copyright Copyright 2010 M. Capobianco, C. Gonzalía Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera. Una copia de esta licencia está siempre disponible en la página http://www.gnu.org/copyleft/fdl.html. Técnologías en la educación matemática Dr. Carlos Gonzalía 2

Tipos de datos en Pascal Tipo de dato: es el conjunto de valores que puede tomar un dato (en Pascal: una variable, una constante o una función) Tipos predefinidos en Pascal: Integer: es un subconjunto de los números enteros Real: es un subconjunto de los números reales Boolean: es el conjunto {true, false} (valores lógicos) Char: es el conjunto de caracteres del código ASCII (letras, dígitos, y símbolos) Técnologías en la educación matemática Dr. Carlos Gonzalía 3

Ejercicios de repaso Escribir las siguiente expresiones aritméticas en lenguaje Pascal: 2x+3y 2-4z x+y x-y z x.y a.x+b.y 3 a.w-b.y -a+b r 2-1 a-1 2 + a Técnologías en la educación matemática Dr. Carlos Gonzalía 4

Ejercicios de repaso Escribir un programa en Pascal para intercambiar el contenido de dos variables leídas por teclado Para cada uno de los siguientes casos, definir dos constantes utilizando nombres significativos: precios, años, días, letras Técnologías en la educación matemática Dr. Carlos Gonzalía 5

Tipos de datos en Pascal Indicar un tipo de dato apropiado para cada una de las siguientes variables Precio: Es_Nro_Primo: Letra: Dia: Mes: NombreDia: NombreMes: ColorPrimario: PaloDeBarajaEspanola: NumeroDeCarta: Técnologías en la educación matemática Dr. Carlos Gonzalía 6

Tipos de datos en Pascal Tipos Predefinidos REAL BOOLEAN: {true, false}, CHAR: {código ASCII} INTEGER: {-32768,..., 0, 1,... 32767} Tipos definidos por el programador Tipos enumerados Tipos subrangos nos permiten ser más específicos, dando claridad y abstracción Técnologías en la educación matemática Dr. Carlos Gonzalía 7

Dónde se definen PROGRAM <nombre>; CONST {aquí se definen las constantes} TYPE {aquí el programador define los tipos } VAR {aquí declara las variables con su tipo}... Técnologías en la educación matemática Dr. Carlos Gonzalía 8

Redefinición de tipos El programador puede redefinir tipos TYPE Entero = integer; Logico = boolean; NroReal = real; VAR Letra = char; Precio : NroReal; Num: Entero; Es_Primo, Es_Par: Logico; Inicial: Letra;.... Inicial := A ; Es_Par := (Num MOD 2 ) = 0 Técnologías en la educación matemática Dr. Carlos Gonzalía 9

Convenciones Se puede anteponer una T a las definiciones de tipos (no es obligatorio, pero sí recomendable hacerlo) TYPE TEntero = integer; TLogico = boolean; TNroReal = real; TLetra = char; VAR Precio: TNroReal; Num: TEntero; esprimo: TLogico; Inicial: TLetra;.... Técnologías en la educación matemática Dr. Carlos Gonzalía 10

Tipos enumerados El programador puede definir nuevos tipos, enumerando los valores que lo forman Esos valores deben ser identificadores de Pascal Este tipo definido por el usuario se denomina enumerado Técnologías en la educación matemática Dr. Carlos Gonzalía 11

Tipos enumerados <nombre-tipo-enum> = ( ident-1, ident-2,..., ident-n) nombre del tipo (identificador) valores posibles para el tipo (lista de identificadores separados con coma) Ejemplo Computadoras = (IBM, Compaq, Toshiba, Sun, Apple) Técnologías en la educación matemática Dr. Carlos Gonzalía 12

Ejemplos TYPE TipoColorprimario = (rojo, azul,amarillo); TipoPaloBaraja = (Oro,Copa,Espada,Basto); TDiasSemana = (lunes,martes,miercoles,jueves, viernes,sabado,domingo); VAR NombreDia: TDiasSemana; ColorPrimario: TipoColorPrimario; PaloDeCarta: TipoPaloBaraja;... NombreDia := lunes; PaloDeCarta:=Basto; Técnologías en la educación matemática Dr. Carlos Gonzalía 13

Tipos enumerados Cuidado! Pascal prohibe utilizar las sentencias write, writeln, read o readln con tipos enumerados definidos por el programador. Si V es una variable de un tipo enumerado definido por el programador, entonces... read(v) readln(v) write(v) writeln(v) Técnologías en la educación matemática Dr. Carlos Gonzalía 14

Tipos subrangos Los tipos ordinales son todos aquellos donde los elementos están ordenados (según cierto criterio) Cada elemento (excepto el último) tiene un sucesor y cada elemento (excepto el primero) tiene un predecesor Tipos ordinales predefinidos: integer, boolean, char El programador puede definir nuevos tipos subrangos, indicando un valor inicial y un valor final de un tipo ordinal cualquiera Técnologías en la educación matemática Dr. Carlos Gonzalía 15

Tipos ordinales Ej: INTEGER predecesor sucesor -32768-32767... 0 2... 1 32766 MaxInt Ej: CHAR predecesor sucesor... A... Z a b c... Técnologías en la educación matemática Dr. Carlos Gonzalía 16

Tipos Subrangos <nombre-subrango> = <valor-inicio>.. <valor-tope> Ejemplo nombre del tipo (identificador) valores posibles para el tipo (todos los valores desde valor_inicio hasta valor_tope) NotaAprobado = 4..10; Técnologías en la educación matemática Dr. Carlos Gonzalía 17

Ejemplos TYPE TNumeroMes = 1..12; TNumeroDeCarta = 1..12; TLetrasMayusculas = A.. Z ; TDiasSemana = (lun,mar,mie,jue,vie,sab,dom); TDiasLaborables = lun.. vie ; TFinDeSemana = sab..dom; Técnologías en la educación matemática Dr. Carlos Gonzalía 18

Tipos Ordinales Tipos Ordinales BOOLEAN: {false, true}, CHAR: {código ASCII} INTEGER: {-32768,..., 0, 1,... 32767} Tipos enumerados Tipos subrangos Por qué REAL no es ordinal? Operaciones Características Pueden usarse los operadores relacionales < <= > >= <> Pueden usarse las funciones pred, ord y succ Técnologías en la educación matemática Dr. Carlos Gonzalía 19

Funciones para tipos ordinales ORD(V): dado un valor V de un tipo ordinal T, devuelve la posición de V en la sucesión de valores de T Ejemplos: ORD( B ) es 66 ORD(3) es 3 Técnologías en la educación matemática Dr. Carlos Gonzalía 20

Dado el tipo Ejemplos Tdias=(lun, mar, mie, jue, vie, sab, dom) ord(lun) es 0 ord(mar) es 1 ord(dom) es 6 ord(false) es 0 y ord(true) es 1 lun < mar y sab < dom Técnologías en la educación matemática Dr. Carlos Gonzalía 21

Funciones para tipos ordinales PRED(V): dado un valor V de un tipo ordinal T, devuelve el valor anterior a V en la sucesión de valores de T PRED( B ) es A, PRED(3) es 2 y PRED(true) es false En Tdias=(lun, mar, mie, jue, vie, sab,dom) pred(dom)es sab pred(sab) es vie pred(lun) no existe Técnologías en la educación matemática Dr. Carlos Gonzalía 22

Funciones para tipos ordinales SUCC(V): dado un valor V de un tipo ordinal T, devuelve el valor siguiente a V en la sucesión de valores de T SUCC( A ) es B, SUCC(3) es 4 y SUCC(false) es true En Tdias=(lun, mar, mie, jue, vie, sab,dom) succ(lun) es mar succ(sab) es dom succ(dom) no existe Técnologías en la educación matemática Dr. Carlos Gonzalía 23

Ejercicios Definir tipos enumerados para representar los siguientes datos: a)las provincias argentinas. b)los días de la semana. c)los meses del año. d)las cuatro estaciones del año. e)las vocales. f)los colores del arco iris. g)los doce signos del zodíaco. Técnologías en la educación matemática Dr. Carlos Gonzalía 24

Ejercicios Definir tipos subrangos para representar datos como los siguientes. Se pueden usar los enumerados definidos anteriormente. Las provincias de la mesopotamia argentina. Los días laborales de la semana. Los días del fin de semana. Las letras mayúsculas Los enteros no negativos. Los números naturales de tres cifras. Técnologías en la educación matemática Dr. Carlos Gonzalía 25

Sentencias de control Las sentencias de control nos permiten especificar el flujo de control del programa Las sentencias de control en Pascal, que permiten programación estructurada son: Asignación Secuencia Condicionales Repetitivas Llamadas a procedimientos Técnologías en la educación matemática Dr. Carlos Gonzalía 26

Sentencias simples y compuestas Sentencia o proposición simple compuesta a:=1 BEGIN <sentencia1>; <sentencia2>;... <sentenciak> END Técnologías en la educación matemática Dr. Carlos Gonzalía 27

Sentencia compuesta Permite definir una secuencia de acciones. Comienza con BEGIN y termina con END Las sentencias que forman una sentencia compuesta se separan una de otra con punto y coma Técnologías en la educación matemática Dr. Carlos Gonzalía 28

Ejemplo BEGIN PrecioBase := 200; Iva:= Precio * 0.20; PrecioFinal:= PrecioBase + Iva; END Técnologías en la educación matemática Dr. Carlos Gonzalía 29

Uso del punto y coma El punto y coma se lo utiliza en Pascal como un separador de sentencias writeln( Hola! ); i := 1; j:=2; k:= 3; writeln( Nada más ); equivalente writeln( Hola! ); i := 1; j:=2; k:= 3; writeln( Nada más ); Técnologías en la educación matemática Dr. Carlos Gonzalía 30

Uso del punto y coma Qué sucede cuando nos olvidamos de un punto y coma? Cómo nos advierte el compilador de los errores sintácticos? Técnologías en la educación matemática Dr. Carlos Gonzalía 31

Condicionales en Pascal SI <condición> ENTONCES < secuencia de acciones > SI NO Algoritmos < secuencia de acciones > Pascal IF <expresión BOOLEAN> THEN < sentencia(simple o compuesta) > ELSE < sentencia (simple o compuesta > Técnologías en la educación matemática Dr. Carlos Gonzalía 32

Ejemplo ALGORITMO Intercambio; DATOS DE ENTRADA: DATOS DE SALIDA: DATOS AUXILIARES: A,B,AUX COMIENZO PIDO(A) PIDO(B) SI A = B ENTONCES MOSTRAR( IGUALES ) SINO AUX A A B B AUX FIN. PROGRAM Intercambio; VAR A,B,AUX: INTEGER; BEGIN READLN(A); READLN(B); IF A = B THEN WRITE( IGUALES ) ELSE BEGIN AUX := A; A := B; B := AUX; END; END. Técnologías en la educación matemática Dr. Carlos Gonzalía 33

Ejercicios Escribir un programa para que dados tres números a, b, y c, calcule el producto de a y b si la diferencia entre a y b es mayor que c, de lo contrario, calcule el cociente entre a y b. Escribir un programa para determinar si un número n es par. Escribir un programa que reciba dos números naturales n y d, y determine si n es divisible por d. Técnologías en la educación matemática Dr. Carlos Gonzalía 34

Ejercicios Dado el sueldo básico de un empleado, escribir un programa que calcule el monto final que debe abonársele sabiendo que si el sueldo básico es de p pesos por mes, debe agregarse un incremento calculado como un porcentaje a partir de p según la categoría a la que pertenezca: 0 < p < 800 : 10% 800 <= p <2000 : 5% 2000=p : 3% Técnologías en la educación matemática Dr. Carlos Gonzalía 35

Ejercicios Definir el tipo enumerado LetrasGriegas con identificadores ALFA, BETA, DELTA, GAMMA y OMEGA ordenados en forma tal que respeten el siguientes conjunto de criterios. Recordar que el ordinal del primer valor definido en el enumerado es 0 Pred(DELTA) es GAMMA OMEGA < GAMMA es False Ord(BETA) es 2 Succ(OMEGA) es ALFA Técnologías en la educación matemática Dr. Carlos Gonzalía 36

Ejercicios En una materia de la escuela, un alumno aprueba un examen con A, B o C y lo desaprueba si se saca D o E. Cuál de las siguientes definiciones de tipos es conveniente usar para una variable que represente la nota de un alumno? Por qué? a)type Notas=(A,B,C,D,E); b)type Notas='A'..'E'; c)type Notas=char; Técnologías en la educación matemática Dr. Carlos Gonzalía 37

Expresiones de los condicionales Puedo utilizar los operadores lógicos AND (y) OR (o) NOT (no) Puedo utilizar los símbolos: =, >, y < El símbolo se escribe <> El símbolo se escribe >= o => Técnologías en la educación matemática Dr. Carlos Gonzalía 38

Ejercicio Escribir un programa en Pascal que sume todos los números divisibles por 3 y por 5 menores que un tope dado Técnologías en la educación matemática Dr. Carlos Gonzalía 39

Condicionales anidados El bloque de sentencias que figura siguiendo a un then o a un else en el condicional puede a su vez contener otros condicionales Esto da lugar a un anidamiento de condicionales Técnologías en la educación matemática Dr. Carlos Gonzalía 40

Condicionales anidados SI <condicion> ENTONCES SINO <acción> <acción > SI <condicion 1> ENTONCES SINO SI < condicion 2 > ENTONCES <acción 1> SINO <acción 2> SI < condicion 3 > ENTONCES <acción 4> SINO <acción 5> Técnologías en la educación matemática Dr. Carlos Gonzalía 41

Condicionales anidados Son equivalentes los siguientes algoritmos? CONDICIONALES SI ( A > 10 ) ENTONCES <ACCION 1 > SI ( B = 0 ) ENTONCES <ACCION 2> SI ( C > 20 ) ENTONCES <ACCION 3> CONDICIONALES ANIDADOS SI ( A > 10 ) ENTONCES <ACCION 1> SINO SI ( B = 0 ) ENTONCES <ACCION 2> SINO SI ( C > 20 ) ENTONCES <ACCION 3> REALIZAR UNA TRAZA CON A = 20, B = 10, C = 100 A = 1, B = 0, C = 100 A = 1, B = 0, C = 1 Técnologías en la educación matemática Dr. Carlos Gonzalía 42

Condicionales anidados Cada ELSE corresponde siempre al IF-THEN más cercano Debe prestarse especial atención a cómo utilizar BEGIN y END para agrupar sentencias Es muy importante usar la identación adecuada. Facilita al programador la lectura del programa fuente Técnologías en la educación matemática Dr. Carlos Gonzalía 43

Ejercicios Desarrollar un programa en Pascal para calcular la suma, resta, producto y división de fracciones. El programa deberá pedir la operación deseada. Escribir un programa en Pascal para determinar si una fecha dada es válida Técnologías en la educación matemática Dr. Carlos Gonzalía 44

Ejercicios Escribir un programa en Pascal para determinar si dos fechas son iguales Escribir un programa en Pascal para hallar la fecha siguiente a una fecha dada Técnologías en la educación matemática Dr. Carlos Gonzalía 45

Sentencia CASE IF (mes=11) or (mes=4) or (mes=6) or (mes=9) THEN cant_dias:=30 ELSE IF (mes=1) or (mes=3) or (mes=5) or (mes=7) or (mes=8) or (mes=10) or (mes=12) THEN cant_dias:=31 ELSE IF (mes=2) THEN cant_dias:=29 CASE mes OF 11,4,6,9:cant_dias:=30; 1,3,5,7,8,10,12: cant_dias :=31 2: cant_dias := 29; END; Técnologías en la educación matemática Dr. Carlos Gonzalía 46

Sentencia CASE - sintaxis CASE <expresion ordinal> OF <constantes> : <sentencia> ; <constantes> : <sentencia> ;... END; Donde <constantes> puede ser: a) una secuencia de valores individuales. Por ejemplo: 1,2,3,4,5 b) sub-intervalos ej: 1..5 Técnologías en la educación matemática Dr. Carlos Gonzalía 47

Ejemplo TYPE TipoClima=(muyfrio, frio,templado,calido); VAR Clima:TipoClima; Temperatura:integer;... READ(Temperatura); CASE Temperatura OF -20..5: Clima :=muyfrio; 6..15: Clima := frio; 16..25: Clima:= templado; 26..40: Clima:= calido; END; Técnologías en la educación matemática Dr. Carlos Gonzalía 48

Casos Especiales Extensión Común VAR MES: 1..12; Opciones repetidas VAR M: INTEGER; CASE MES OF 2: maximodia:= 29; 11,4,6,9: maximodia:=30; ELSE maximodia:=31 END; CASE M OF 1,2: write( chico ); 2,3: write( grande ); END; El ELSE se ejecuta cuando el valor no corresponde a ninguna opción Si la opción está repetida, se selecciona sólo la primera. Técnologías en la educación matemática Dr. Carlos Gonzalía 49

Ejemplo Programa en Pascal que solicita por teclado una letra cualquiera, e imprime por pantalla si la letra ingresada es una vocal o una consonante PROGRAM Letras; VAR Letra: A.. Z ; BEGIN write( Ingrese una letra: ); readln(letra); CASE Letra OF A, E, I, O, U : writeln( Es una vocal! ); ELSE writeln(!es una consonante! ); END {case} END. Técnologías en la educación matemática Dr. Carlos Gonzalía 50

Ejercicios Escriba un programa que transforme una nota numérica en los siguientes valores: aprobado (6 a 8), excelente (9 a 10), desaprobado (1 a 6) Realice dos versiones del programa, una usando IF-THEN- ELSE y otra usando CASE. Idem al ejemplo anterior pero para un puntaje de 0 a 100. Escriba un programa que reconozca si una letra ingresada por teclado es mayúscula o minúscula Técnologías en la educación matemática Dr. Carlos Gonzalía 51