COMPUTACION 2009 C lase 3 4/26/2015 Computación - Fac. Ingeniería - UNMDP2 Marca Cilindrada Precio Stock HONDA dax 5000 $ 7 HONDA 220 7800.50 $ 2 SUZUKI.

Slides:



Advertisements
Presentaciones similares
Desigualdades Una desigualdad es una oración conteniendo < (menor que), > (mayor que), ≤ (menor o igual que), ≥ (mayor o igual que) o ≠ (no es igual)
Advertisements

Programación de Computadores
Funciones En nuestra vida cotidiana tenemos experiencia con relación o correspondencias de magnitudes . Ejemplos : En un almacén , a cada producto le corresponde.
PROGRAMACION ESTRUCTURADA
PROF. ING. JULIO CESAR CANO RAMIREZ
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Algoritmos & Estructuras de Datos
Fundamentos de Programación
Metodología de la Programación
INFORMÁTICA PROGRAMACIÓN.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Temas Operaciones básicas Operaciones Operadores Aritméticos
Los condicionales IF en PHP Programación en Internet II.
Estructuras de control
SENTENCIA CONDICIONAL if
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Juan José Cortés Orozco. Antonio Muñoz Torres.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
ESTRUCTURAS CONTROL SECUENCIAL
Estructuras de Decisión Múltiple
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
EXPONENTES Y RADICALES
Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2.
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
CARRERA PROFESIONAL: Lengua, Traducción e Interpretación Asignatura: MATEMÁTICA Tema: “FUNCIONES LÓGICAS”
CARACTERÍSTICAS DE LOS PROGRAMAS
COMPUTACION 2009 Clase 2.
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Sintaxis.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
SENTENCIAS DE CONTROL Ing. José Antonio Poma G..
Sentencias de selección
Tablas de verdad en PHP Programación en Internet II.
ESTRUCTURA DE DECISION LOGICA
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
LOGICA DE ENUNCIADO LOGICA DE PREDICADO
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Informática Ingeniería en Electrónica y Automática Industrial
Teoría – Alejandro Gonzalez
EXPRESIONES Y SENTENCIAS
Operadores lógicos en PHP Programación en Internet II.
VBA – Elementos del Lenguaje
ETAPAS PARA SOLUCIONAR UN PROBLEMA
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
PARCIAL DE JUNIO DEL 2014 LENGUAJE DE PROGRAMACIÓN UN LENGUAJE SE PUEDE DEFINIR COMO UN CONJUNTO DE PALABRAS Y FORMAS DE EXPRESIÓN POR MEDIO DE.
Introducción a la programación
Tema 6: Estructuras de Control
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.
COMPUTO III Ing. Jimmy Ojeda Arnica.
Términos algoritmo diseñar algoritmo implementar algoritmo
Patricio A. Castillo José M. Galarce Agosto 23 de 2008 Segunda Clase.
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Programación Básica con NQC Patricio A. Castillo 12/04/2008.
PRINCIPIOS DE PROGRAMACIÓN
Estructuras de Decisión
Programación de Computadores
Sentencia Condicional
Décimo Curso de Programación Básica con NQC “Segunda Clase” Cristián Arenas Ulloa Agosto 29 de 2009.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
Unidad Temática II Algoritmia Elemental Operadores aritméticos: son símbolos que le indican al compilador la operación de cálculo a realizar entre los.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
1 Clase 6: control (1ª parte) iic1102 – introducción a la programación.
Transcripción de la presentación:

COMPUTACION 2009 C lase 3

4/26/2015 Computación - Fac. Ingeniería - UNMDP2 Marca Cilindrada Precio Stock HONDA dax 5000 $ 7 HONDA $ 2 SUZUKI $ 3 HARLEY_D $ 0 KAWASAKI $ 3 Marca Cilindrada Precio Stock HONDA dax 5000 $ 7 HONDA $ 2 SUZUKI $ 3 HARLEY_D $ 0 KAWASAKI $ 3

4/26/2015 Computación - Fac. Ingeniería - UNMDP3 Problema 1:  Queremos una moto que valga menos de $  Cómo lo averiguamos?  Preguntemos usando una expresión relacional: Si el precio< entonces compro la moto; sino, no la compro

4/26/2015 Computación - Fac. Ingeniería - UNMDP4 Problema 2:  Queremos una moto que valga menos de $ y que sea una HONDA  Cómo lo averiguamos?  Preguntemos usando una expresión lógica: Si el (precio< 20000) AND (marca=HONDA) entonces compro la moto; sino, no la compro

4/26/2015 Computación - Fac. Ingeniería - UNMDP5 HD Procesador Monitor Precio Quantu 160G Intel Pentium II 266 Samsung LCD 2700 $ IBM 9.1G Intel Celeron 466 Philips plano $ Compak 9G Athlon 2400 Viewsonic $ Carry 20G AMD 2000 Rowland $ Quantum 80G Intel P. CORE Duo Philips $

4/26/2015 Computación - Fac. Ingeniería - UNMDP6 Problema 3:  Queremos una computadora que tenga un disco rígido con por lo menos 120 gigabaytes y que no valga mas de 2200 $.  Cómo lo averiguamos?  Preguntemos usando una expresión lógica: Si el (HD> =120) AND (precio<=2200) entonces compro la computadora; sino, no la compro

Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida Aritméticas Lógica Relacionales Caracter Estandar Integer Real Char Boolean Del programador Decisión Enumerados Subrangos String Repetición

Sentencias de decisión (son dos) IF- THEN- ELSE CASE

Precio < VERDADERA Compro la moto Continua el programa

Precio<20000 FALSA No compro la moto Continua el programa

expresion logica verdadera Ejecuta la sentencia1 Continua el programa IF

expresion logica falsa Ejecuta la sentencia2 Continua el programa IF

expresion logica verdadera falsa Ejecuta la sentencia1 Ejecuta la sentencia2 Continua el programa IF

expresion logica THEN ELSE Ejecuta la sentencia1 Ejecuta la sentencia2 Continua el programa IF

4/26/2015 Computación - Fac. Ingeniería - UNMDP15 De aquí en mas se usará la palabra sentencia para indicar tanto una sentencia simple como compuesta ( o estructurada)  La sentencia IF especifica que sentencia1(que sigue a THEN) debe ejecutarse solo si una cierta condición (= expresión lógica) es verdadera.  Si es falsa, entonces se ejecuta sentencia2, que sigue al símbolo ELSE Sentencia IF-THEN-ELSE

4/26/2015 Computación - Fac. Ingeniería - UNMDP16 Sentencia de decisión  Una sentencia de decisión es una sentencia estructurada (o compuesta). Esto significa que esta sentencia contiene otras sentencias  Su función principal es decidir que sentencia/s se debe ejecutar siguiendo el resultado de una expresión.  Tener en cuenta que cada vez que se evalua la expresión logica, se ejecuta la sentencia que sigue a THEN o la sentencia que sigue a ELSE, pero NO AMBAS.

4/26/2015 Computación - Fac. Ingeniería - UNMDP17 IF expresión lógica THEN sentencia1 ELSE sentencia2; Sintaxis de la sentencia IF-THEN- ELSE

Motos Program Motos; Var precio:real; compro:boolean; Begin WRITE('Ingrese precio'); READLN(precio); IF precio<=20000 THEN compro:=true ELSE compro:=false; End. Este punto y coma es obligatorio si a continuación hay otra sentencia; sino es asi, es opcional. Recordar que END no es sentencia

EJEMPLO: Se lee un par de coordenadas (x,y) de un punto del plano. Verificar si se encuentra en el interior o en el exterior de la circunferencia centrada en el origen y con radio 5. Escribir un cartel aclaratorio en cada caso. Program circunferencia; Var x,y:real; Begin WRITE('Ingrese dos valores reales'); READLN(x,y); IF x*x+y*y<=25 THEN writeln('punto dentro de la circunfer.') ELSE writeln(‘punto fuera de la circunfer.’); End.

EJEMPLO: Se lee un par de coordenadas (x,y) de un punto del plano. Si el punto se encuentra en el interior de la circunferencia centrada en el origen y con radio 5 escribir el valor de x 2 +y 2 ; en caso contrario aclararlo. Escribir un cartel aclaratorio en los dos casos. EJEMPLO: Se lee un par de coordenadas (x,y) de un punto del plano. Si el punto se encuentra en el interior de la circunferencia centrada en el origen y con radio 5 escribir el valor de x 2 +y 2 ; en caso contrario aclararlo. Escribir un cartel aclaratorio en los dos casos.

Program circunferencia; Var x,y,d:real; Begin WRITE('Ingrese dos valores reales'); READLN(x,y); d:=x*x+y*y; IF d<=25 THEN begin writeln('punto dentro circ.'); writeln(‘x*x+y*y=‘,d) end ELSE writeln(‘pto fuera de la circ.’) End. Sentencia compuesta: debe encerrarse entre los parentesis begin y end. Significa que si la condición es verdadera debe ejecutarse dos sentencias No se debe escribir punto y coma (;). Aquí no termina la sentencia IF-THEN-ELSE. Se debe colocar ; para separar las dos sentencias

4/26/2015 Computación - Fac. Ingeniería - UNMDP22 IF expresión lógica THEN sentencia;  Si solo nos interesa ejecutar una sentencia cuando la expresión booleana es verdadera, se usa una estructura IF simplificada.  Esta sentencia simplificada solo posee la sentencia que sigue a THEN: Sintaxis de la estructura IF-THEN

4/26/2015 Computación - Fac. Ingeniería - UNMDP23 Ejemplo de IF-THEN  Dada una ecuación cuadrática, estimar e imprimir las raices complejas (solo parte de un programa). d:= b*b - 4*a*c ; IF d < 0 THEN begin real:= -b/(2*a); imag:= sqrt(abs(d))/(2*a); writeln(‘x=‘,real,’+/-’,imag,’ i’) end;

Observación  Evitar el abuso de IF cuando se usa variables booleanas.  Veamoslo con un ejemplo: sea encontrado una variable booleana IF a=b THEN encontrado:= true ELSE encontrado:=false;  Mas simple y en forma equivalente tenemos: encontrado:= a=b;

4/26/2015 Computación - Fac. Ingeniería - UNMDP25  Como ya vimos, sentencia1 y sentencia2 puede ser una sentencia simple o una estructurada. Por lo tanto la sentencia IF-THEN- ELSE puede ser otra estructura de decisión.  En este caso tendremos sentencias IF anidadas. Sentencias condicionales anidadas

4/26/2015 Computación - Fac. Ingeniería - UNMDP26 IF expresion logica THEN begin sentencia/s (IF,asignacion,E/S) end ELSE begin sentencia/s (IF,asignacion,E/S) END;

Analizar si la suma de dos números cualesquiera es positiva o negativa. En caso de ser cero, indicar que estos son números opuestos. Program anidamiento; Var a,b,suma:real; BEGIN READLN(a,b); suma:=a+b; IF suma>0 THEN writeln('suma positiva') ELSE IF suma<0 THEN writeln('suma Negativa') ELSE writeln('numeros Opuestos') END.

 En el ejemplo anterior hemos tenido 3 condiciones mutuamente excluyentes: suma>0 suma<0 suma=0  Cada una de ellas desata acciones distintas. En estos casos el anidamiento de IF bien desarrollado evita preguntas superfluas (por ejemplo preguntar suma=0 porque la única opción que tenemos en el segundo ELSE es ese caso) Observación 1

OBSERVACION 2 A fin de evitar la ambigüedad sintáctica que surge de la construcción: IF exp_booleana1 THEN IF exp_booleana2 THEN sentencia1 ELSE sentencia2; Conviene usar la indentación y si desea puede poner los parentesis BEGIN/END a fin de incrementar la legibilidad y evitar la ambigüedad. Nos queda la construcción equivalente: IF exp_booleana1 THEN BEGIN IF exp_booleana2 THEN sentencia1 ELSE sentencia2 END;

 Podemos aumentar la legibilidad de un programa usando apropiadamente las expresiones booleanas. OBSERVACION 3: el buen uso de las expresiones booleanas Ejemplo:imprimir el mínimo de tres números a,b,c (solo un caso): Podemos usar dos IF anidados IF a<b THEN IF a<c THEN writeln(a); O bien definir una expresión booleana mas compleja y usar UN solo IF: IF (a<b) and (a<c) THEN writeln(a);

4/26/2015 Computación - Fac. Ingeniería - UNMDP31 SENTENCIA CASE: estructura de decisión múltiple Cuando tenemos varias sentencias mutuamente excluyentes (mas de dos), con probabilidad de selección pareja, usamos CASE (con algunas restricciones).

4/26/2015 Computación - Fac. Ingeniería - UNMDP32 Ejemplo Un cobrador de peaje tiene el siguiente cuadro de categorías y lo que debe cobrar: Categoría Vehículo Tarifa 1 y 2 Bici y motos Gratis 3 Autos Autos con trailer 5 5 Camiones 10

4/26/2015 Computación - Fac. Ingeniería - UNMDP33 PROGRAM peaje; TYPE Tipo=1..5;{tipo de dato enumerado} VAR Cate:tipo; Tarifa:real; error:boolean; Programa PASCAL usando IF anidados

BEGIN error:=false; READLN(cate); IF (cate=1)or(cate=2)THEN tarifa:=0 ELSE IF cate=3 THEN tarifa:=2.5 ELSE IF cate=4 THEN Tarifa:=5 ELSE IF cate=5 THEN Tarifa:=10 ELSE error:=true; IF error THEN WRITELN(‘Nro. Equivocado’) ELSE WRITELN(‘La TARIFA es =’,tarifa) END.

4/26/2015 Computación - Fac. Ingeniería - UNMDP35 Selección múltiple: CASE La sentencia CASE permite seleccionar una de entre varias sentencias según un selector. El selector es una expresión ordinal. No puede ser del tipo real.

4/26/2015 Computación - Fac. Ingeniería - UNMDP36 CASE selector OF Lista de ctes.1 : sentencia 1; Lista de ctes.2 : sentencia 2; Lista de ctes.n : sentencia n; ELSE sentencia m END; Sintaxis de CASE

4/26/2015 Computación - Fac. Ingeniería - UNMDP37 PROGRAM peaje; TYPE Tipo=1..5; VAR Cate:tipo; Tarifa:real; error:boolean; BEGIN READLN(cate); error:=false; CASE cate OF 1,2 :tarifa:=0; 3 :tarifa:=2.5; 4 :tarifa:=5; 5 :tarifa:=10; ELSE error:=true END; IF error THEN WRITELN(‘Nro. Equivocado’) ELSE WRITELN(‘La tarifa es =’,tarifa) END. Los IF anidados pueden ser llevados a la sentencia CASE equivalente:

4/26/2015 Computación - Fac. Ingeniería - UNMDP38  CASE selecciona como siguiente sentencia a ejecutarse aquella cuya etiqueta (las ctes.) es igual al valor actual del selector  Si el valor actual de selector (que es una expresión) no encuentra un valor igual en alguna de las listas de constantes ejecuta la sentencia que sigue a ELSE.  ELSE es opcional  El tipo de dato de la expresion selector debe ser ordinal (se excluye el tipo real y string)  Cada constante debe ser única dentro de cada CASE.  No usar intervalos de la forma 0.5<x<2.5 como etiqueta (de la lista de constantes)  CASE selecciona como siguiente sentencia a ejecutarse aquella cuya etiqueta (las ctes.) es igual al valor actual del selector  Si el valor actual de selector (que es una expresión) no encuentra un valor igual en alguna de las listas de constantes ejecuta la sentencia que sigue a ELSE.  ELSE es opcional  El tipo de dato de la expresion selector debe ser ordinal (se excluye el tipo real y string)  Cada constante debe ser única dentro de cada CASE.  No usar intervalos de la forma 0.5<x<2.5 como etiqueta (de la lista de constantes) OBSERVACIONES:

4/26/2015 Computación - Fac. Ingeniería - UNMDP39 Sintaxis de CASE: tipos de selector y etiquetas constantes CASE selector OF ´a´..´z´ :sentencia1; ´A´..´J´ :sentencia 2; ´Z´ :sentencia 3; ´4´ :sentencia 4; ´1´,´2´,´3´ :sentencia 5; ELSE sentencia 6 END; Tipo char

4/26/2015 Computación - Fac. Ingeniería - UNMDP40 Sintaxis de CASE: tipos de selector y etiquetas constantes CASE selector OF 4,5,6 :sentencia1; 1 :sentencia 2; :sentencia 3; ELSE sentencia 4 END; Tipo integer

4/26/2015 Computación - Fac. Ingeniería - UNMDP41 Ejemplo 50<= cilindrada < 300 la moto es poco potente 300 <= cilindrada < 700 la moto es potente 700 <= cilindrada <1500 la moto es muy potente

4/26/2015 Computación - Fac. Ingeniería - UNMDP42 PROGRAM motos; VAR Categoria:string[15]; cilindrada:integer; error:boolean; BEGIN READLN(cilindrada); error:=false; CASE cilindrada OF :categoria:=‘poco potente’; :categoria:=‘potente’; :categoria:=‘muy potente’; ELSE error:=true END; IF error THEN WRITELN(‘valor equivocado’) ELSE WRITELN(‘La categoria es =’, categoria) END.