Post on 21-Apr-2015
Facultad de Ingeniería y Arquitectura
Introducción a la Computación 2006 – II
(8va Semana) Lunes 23 de Abril del 2007
Ing. Juan José Montero Román.
jmonteror@usmp.edu.pe
ESTRUCTURAS DE DECISIONSI – SINO - FIN SI
ESTRUCTURAS DE DECISIONSI – SINO - FIN SI
Introducción a la Computación
SEMANA 07
Estructura Lógica de Decisión Doble (SI/SINO)
Una estructura de decisión doble “SI... SINO... FINSI” permite alterar el flujo secuencial (o pasos secuenciales) de una solución, ejecutando un conjunto de pasos dependiendo del resultado de una condición lógica. Si la condición resulta verdadera, se ejecuta un conjunto de pasos, y si la condición resulta falsa, se ejecuta otro conjunto de pasos. En ningún caso se podrá ejecutar ambos conjuntos de pasos a la vez.
PSEUDOCODIGO
EXPLICACIÓN:
Si la condición resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y SINO.Si la condición resulta falsa se ejecutan las instrucciones que se encuentran entre las reglas SINO y FINSI.Sólo se ejecuta uno de los grupos de instrucción, en ningún caso se podrá ejecutar ambos grupos.
SI (condición)ENTONCES instrucciones...SINO instrucciones...FINSI
ESTRUCTURAS LÓGICAS DE DECISION
Definición:
Estructura Lógica de Decisión Doble (SI/SINO)
ESTRUCTURAS LÓGICAS DE DECISION
JAVA y C
EXPLICACIÓN:
Si la condición resulta verdadera, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas después de la palabra reservada if.Si la condición resulta falsa, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas después de la palabra reservada else.
if (condición) { sentencias... } else { sentencias... }
Estructura Lógica de Decisión Doble (SI/SINO)
ESTRUCTURAS LÓGICA DE DECISION
ESTRUCTURAS LÓGICAS DE DECISION
Problema 1: Calcular y mostrar la nota final de un alumno. Si la nota final (nf) es menor a 14 se deberá mostrar el mensaje “Desaprobado”, caso contrario se mostrará el mensaje “Aprobado”. Fórmula: nf = (n1+n2+n3) / 3.
Algoritmo NotaFinal2
ENTRADA: nota1, nota2, nota3SALIDA: nf, mensaje
INICIOENTERO nota1, nota2,nota3REAL nfTEXTO mensaje LEER nota1, nota2, nota3nf = (nota1 + nota2 + nota3 ) / 3
SI ( nf < 14 )ENTONCES
mensaje = “Desaprobado”SINO
mensaje = “Aprobado”FINSI
ESCRIBIR nf, mensajeFIN
INICIO
ENTERO nota1, nota2,nota3REAL nf TEXTO mensaje
nf = (nota1 + nota2 + nota3) / 3
nota1, nota2,nota3
nota < 14
FIN
V F
mensaje=“Desaprobado” mensaje=“Aprobado”
mensaje
ESTRUCTURAS LÓGICAS DE DECISION
import biblioteca.Lectura;
class PrgNotaFinal2 { public static void main (String[] args ) {
String mensaje; int nota1, nota2, nota3 double nf ; System.out.print (“Ingrese la nota1: “); nota1 = Lectura.leerInt(); System.out.print (“Ingrese la nota2: “); nota2 = Lectura.leerInt(); System.out.print (“Ingrese la nota3: “); nota3 = Lectura.leerInt();
nf = (nota1+nota2+nota3) / 3; if (nf <14) {
mensaje = “Desaprobado”; } else {
mensaje = “Aprobado”; }
System.out.print (“su nota final es: “ + nf + “, usted está “ + mensaje);
}}
#include <iostream> #include <string> using std::cout ;using std::cin ;using std::string;int main ( ) {
string mensaje; int nota1, nota2, nota3; double nf;
cout <<“Ingrese la nota1: “>>; cin >> nota1; cout << “Ingrese la nota2: “>>; cin >> nota2; cout <<Ingrese la nota3: “>>; cin >> nota3;
nf = (nota1+nota2+nota3) / 3; if (nf <14) {
mensaje = “Desaprobado”; } else {
mensaje = “Aprobado”; }
cout <<“su nota final es: “ + nf + “, usted está “ + mensaje;
return 0;}
ESTRUCTURAS LÓGICAS DE DESICION
Problema 2: Ingrese un número y determine si el número ingresado es un número par o un número impar.
ENTRADA: numSALIDA: mensaje
INICIOENTERO numTEXTO mensaje LEER num
SI ( num RESTO 2 = 0 )ENTONCES
mensaje = “Es un numero par”SINO
mensaje = “Es un numero impar”FINSI
ESCRIBIR mensajeFIN
Algoritmo NumPar INICIO
ENTERO numTEXTO mensaje
LEER num
num RESTO 2 = 0
FIN
V F
mensaje=“Numero par” mensaje=“Numero impar”
mensaje
ESTRUCTURAS LÓGICAS DE DECISION
JAVA
Import bibioteca.Lectura;class PrgNumPar { public static void main (String[] args ) {
String mensaje; int numero; System.out.print (“Ingrese un numero: “); numero = Lectura.leerInt();
if (numero % 2 == 0) {mensaje = “Numero par”;
} else {mensaje = “Numero impar”;
}
System.out.print (“Usted ingreso el numero: “ + numero + “ ,es un ” + mensaje”);
}}
“C”
#include <iostream> #include <string> using std::cout ;using std::cin ;using std::string;int main ( ) {
string mensaje; int numero; cout <<“Ingrese un numero: “; cin >> numero;
if (numero % 2 == 0) {Mensaje = “Es un numero par”;
} else {Mensaje = “Es un numero impar”;
}
cout <<“Usted ingreso el numero: “ + numero + “ ,es un ” + mensaje;
return 0;}
Funciones matemáticas y Manejo de cadenas
La Clase Math
La clase Math representa la librería matemática de Java.
Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propósito de agrupación, por eso se encapsulan en Math.
Funciones matemáticas y Manejo de cadenas
La clase Math define dos constantes muy útiles, el número pi y el número e.
final double E= 2.7182818284590452354;final double PI = 3.14159265358979323846;
System.out.println("Pi es " + Math.PI); System.out.println("e es " + Math.E);
Función Tipo de Datos Descripción
Math.abs( x ) para int, long, float y double Valor Abosuluto
Math.sin( double ) Valor Seno
Math.cos( double ) Valor Coseno
Math.tan( double ) Valor Tangente
Math.asin( double )
Valor Arco Seno
Math.acos( double )
Valor Arco Coseno
Math.atan( double )
Valor Arco Tangente
Math.exp( double )
Logaritmo Neperiano
Math.log( double ) Logaritmo natural
Math.sqrt( double )
Raiz Cuadrada
Math.ceil( double )
Math.floor( double )
Math.rint( double )
Math.pow( a,b ) Potencia
Math.round( x )
para double y float Redondear
Función Tipo de Datos Descripción
Math.random()
devuelve un double Valor Aleatorio
Math.max( a,b )
para int, long, float y double
Valor Maximo
Math.min( a,b)
para int, long, float y double
Valor minimo
Math.E para la base exponencial
Math.PI para PIEjemplo:
double x=4.0;double r=Math.sqrt(x); // raiz cuadradaLE.mostrarInformacion(“La raiz cuadrada de “+ x + “es " + r);
int x=5, y=9 ;int max=Math.max(x,y) ; // mayor de dos enterosLE.mostrarInformacion ("El mayor es " + max);
int i = -9;double x = 0.3498; LE.mostrarInformacion ("|" + i + "| es " + Math.abs(i));LE.mostrarInformacion ("|" + x + "| es " + Math.abs(x));
Diseñe un programa para generar dos numero aleatorios
package domapli;public class Prg2 { public static void main(String[] args) { LE.mostrarInformacion("Número aleatorio:" + Math.random()); LE.mostrarInformacion("Otro número aleatorio:" + Math.random());
}}
ESTRUCTURAS LÓGICAS DE DECISION
1.- Ingresar la edad de una persona y mostrar un mensaje expresando si es o no mayor de edad.
2.- Ingresar un numero y mostrar un mensaje si es múltiplo de 7 y 5 a la vez.
3.- ingresar 2 números por teclado y mostrar el mayor de ambos.
4.- Calcular y mostrar el monto total a pagar por la compra de un artículo si se tiene que agregar el IGV. En caso que el monto total a pagar incluido IGV sea mayor a S/.500 nuevos soles se aplica un descuento de 8%, caso contrario el descuento será de 2%.
5.- ingresar dos números con decimales por teclado, Identificar cual es el mayor y cual es el menor, luego elevas el número mayor al número menor, lo redondeas a 2 decimales y lo muestras.
INTENTALO…!!!
ESTRUCTURAS LÓGICAS DE DECISION
INTENTALO…!!!
Si se ingresan por teclado el número A y el número B. Si el número A es mayor que el número B calcular el “Binomio Cuadrado Perfecto” de dichos números. Si el número B es
mayor o igual que el número A calcular el “Trinomio Cuadrado Perfecto” de dichos números.
Imprimir resultados en la pantalla de la computadora.
NOTA:
Binomio Cuadrado Perfecto: (a+b)2= a2 +2ab+b2Trinomio Cuadrado Perfecto: (a+b)3= a3 +3a2b+3ab2+b3
ESTRUCTURAS LÓGICAS DE DECISION
ALGORITMO PrgMayorMenor
ENTRADA a , bSALIDA binomio , trinomio
INICIO ENTERO a , b , c LEER a LEER a SI ( a > b ) c = a * a + 2 * a * b + b * b ELSE c = a * a * a + 3 * a * a * b + 3 * a * b * b + b * b * b FINSI IMPRIMIR cFIN
ESTRUCTURAS LÓGICAS DE DECISION
INTENTALO…!!!
Hacer un programa que solicite a una persona ingresar su NOMBRE y EDAD por teclado. Si es
mayor de 18 años, que el programa le pida ingresar el número de su DNI, y que luego de esto muestre el
siguiente mensaje “BIENVENIDO, TIENE UN DESCUENTO DEL 15%”. En caso contrario que
muestre este mensaje: “RECLAMA TU JUGUETE DE CORTESIA”.
ESTRUCTURAS LÓGICAS DE DECISION
ALGORITMO PrgNombreApellido
ENTRADA nombre , edad , dniSALIDA mensaje
INICIO TEXTO nombre , mensaje ENTERO edad LEER nombre LEER edad SI (edad>18) LEER dni mensaje = “Bienvenido tiene un descuento del 15%”; ELSE mensaje = ”Reclama tu juguete de cortesía”; FINSI IMPRIMIR mensajeFIN
ESTRUCTURAS LÓGICAS DE DECISION
package domApl;import biblioteca.Lectura;public class PgrEleRed {
public static void main(String[] args) {double a,b,may,men,c;System.out.print("Ingresar 1er Número");a=Lectura.leerDouble();System.out.print("Ingresar 2do Número");b=Lectura.leerDouble();may=Math.max(a,b);men=Math.min(a,b);c=Math.pow(may,men);System.out.println("mayor: "+may);System.out.println("menor: "+men);System.out.println("sin dedondeo: "+c);c=(double)Math.round(c*100)/100 ;System.out.println("con redondeo: "+c);
}}