Ejercicios Resueltos del libro “ Una amigable Introducción a la Programación con Java, C++ y Visual Basic” de los algoritmos resueltos mediante la representación de seudo código, by Joseph EJERCICIOS PROPUESTOS 02
1. Un restaurante ofrece un descuento de 5% para consumo de hasta s/.100 y un descuento de 10% para consumo mayor, para ambos casos se aplica un impuesto del 19%. Desarrolle un algoritmo y programación en java,c++ y Visual Basic para determinar el monto del descuento, el impuesto y el importe a pagar.
Inicio Variables: {consumo=0, descuento=0,momto_IGV, precio=0} //Entrada Leer consumo //proceso Si consumo <=100 descuento = 0.05*consumo Sino Si consumo >100 descuento = 0.10*consumo sino Escribir “Error” Fin de Si monto_IGV=(consumo-descuento)*0.19 precio = consumo-descuento +monto_IGV //salida Escribir precio Fin
Código fuente en vb
Module Module1
Sub Main() Dim consumo, descuento, monto_IGV, precio As Double 'entrada Console.WriteLine("Ingresar precio de Consumo") consumo = Console.ReadLine() 'proceso If consumo <= 100 Then descuento = 0.05 * consumo ElseIf consumo > 100 Then descuento = 0.1 * consumo Else Console.WriteLine("Error") End If monto_IGV = (consumo - descuento) * 0.19 precio = consumo - descuento + monto_IGV 'Salida Console.WriteLine("Importe a pagar = " + Convert.ToString(precio)) Console.Read() End Sub End Module C贸digo Fuente C++
#include <iostream> using namespace std; int main(){ //variables float consumo=0,descuento=0,monto_IGV=0,precio=0; //entrada cout<<"Ingresar monto de Consumo"<<endl; cin>>consumo; //proceso if (consumo<=100) descuento=0.05*consumo; else if(consumo>100) descuento=0.10*consumo; else cout<<"Error"<<endl; monto_IGV =(consumo-descuento )*0.19; precio=consumo-descuento+ monto_IGV ; //salida wcout<<"Monto a pagar = "<<precio<<endl;
system("pause"); return 0; } C贸digo fuente Java
import java.util.Scanner;
/** * * @author Atanacio */ public class Problema1 { public static void main(String[] args) { // TODO code application logic here
//variables float consumo=0,descuento=0,monto_IGV=0,precio=0; //entrada Scanner Entrada= new Scanner(System.in); System.out.println("Ingresar monto de consumo");
consumo=Entrada.nextFloat();
//proceso if (consumo<=100) descuento=(float) (0.05*consumo); else if(consumo>100)
descuento=(float) (0.10*consumo); else System.out.print("error");
monto_IGV =(float) ((consumo-descuento )*0.19); precio=consumo-descuento+ monto_IGV ;
//salida System.out.println("Monto de consumo a pagar = "+precio);
} } 2. Desarrolle un algoritmo y programación en java,c++ y Visual Basic que permita ingresar nota de un alumno de cero a veinte y obtenga el tipo de alumnos según la siguiente tabla. Nota<=10 Nota de 11 a 14 Nota de 15 a 16 Nota de 17 a 18 Nota de 19 a 20
Inicio Variables nota=0 Cd
Cadena
//Entrada Leer: nota //proceso Caso nota Caso 0 a 10 Cd=”Pésimo” Caso 11 a 14 Cd=”Regular”
Pésimo Regular Bueno Muy bueno Excelente
Caso 15 a 16 Cd=”Bueno” Caso 17 a 18 Cd=”Muy Bueno” Caso 19 a 20 Cd=”Excelente” Caso contrario Cd=”Error ” Fin de Caso //Salida Escribir Cd
Fin Codigo Fuente en vb
Module Module1 Sub Main() Dim nota As Integer Dim Cd As String 'entrada Console.WriteLine("Ingresar nota del alumno") nota = Console.ReadLine() 'proceso Select Case nota Case 0 To 10 Cd = "Pésimo" Case 11 To 14 Cd = "Regular" Case 15 To 16 Cd = "Bueno" Case 17 To 18 Cd = "Muy Bueno" Case 19 To 20 Cd = "Exelente" Case Else Cd = "Error" End Select
'Salida Console.Write(Cd) Console.Read() End Sub End Module Codigo fuente C++ #include <iostream> #include <string> using namespace std;
int main(){ // variables int nota=0; string Cd; //entrada cout<<"Ingresar nota de Alumno"<<endl;cin>>nota; //proceso if(nota>0&&nota<10) Cd="P茅simo"; else if(nota<15 ) Cd="Regular"; else if(nota<17 ) Cd="Bueno"; else if(nota<19 ) Cd="Muy Bueno"; else if(nota<21 ) Cd="Excelente"; else Cd="Error"; //Salida cout<<Cd<<endl; system("pause"); return 0; } C贸digo fuente Java import java.util.Scanner;
/**
* * @author Atanacio */ public class Problema2 { public static void main(String[] args) { // TODO code application logic here // variables int nota=0; String Cd;
//entrada Scanner Entrada= new Scanner(System.in); System.out.println("Ingresar nota de Alumno (nota<=20)"); nota=Entrada.nextInt();
//proceso if(nota>0&&nota<10) Cd="PĂŠsimo"; else if(nota<15 ) Cd="Regular";
else if(nota<17 ) Cd="Bueno";
else if(nota<19 ) Cd="Muy Bueno";
else if(nota<21 ) Cd="Excelente"; else Cd="Error";
//Salida System.out.println(Cd); } } 3. Un restaurante tiene dos tipos de clientes A y B recibe dos formas de pago al contado(C) O a plazos (P) Desarrolle un algoritmo y programe en Java,C++ y Visual basic que permita ingresar el monto de la compra y se obtenga el monto de descuento o el Monto del Recargo y el Total a pagar, según la siguiente tabla. Tipo de Cliente A B
Contado(C)-Con Descuento 20% 15%
Inicio Variables { Tipo_cliente, Frm_pago}
Caracter
Descuento = 0, Pago_total =0 //Entrada Leer Pago,Tipo_cliente,Frm_pago //Proceso
Caso Tipo_cliente Caso A Si Frm_pago==”C” Descuento=Pago*0.20 Sino Si Frm_pago ==”P” Plazos=Pago*0.10 Sino Imprimir “Error”
Plazos(P)-Con Recargo 10% 5%
Fin de Si Caso B Si Frm_pago==”C” Descuento=Pago*0.15 Sino Si Frm_pago ==”P” Plazos=Pago*0.05 Sino Imprimir “Error” Fin de Si
Fin de Caso
Pago_total = (pago + Plazos) – Descuento // salida Imprimir Pago_total Fin Codigo Fuente en VB Module Module1 Sub Main() Dim Tipo_cliente, Frm_pago As Char Dim Descuento, Pago_total, Plazos, Pago As Double 'Entrada Console.WriteLine("Ingresar monto de Pago") Pago = Console.ReadLine() Console.WriteLine("Ingresar tipo de Cliente (A,B)") Tipo_cliente = Console.ReadLine() Console.WriteLine("Ingresar Forma de pago (C,P) ") Frm_pago = Console.ReadLine() 'proceso Select Case Tipo_cliente Case "A" If Frm_pago = "C" Then Descuento = Pago * 0.2 ElseIf Frm_pago = "P" Then Plazos = Pago * 0.1
Else Console.WriteLine("Error al ingresar formas de pago") Console.Read() End If
Case "B" If Frm_pago = "C" Then Descuento = Pago * 0.15 ElseIf Frm_pago = "P" Then Plazos = Pago * 0.05 Else Console.WriteLine("Error al ingesar Formas de pago") Console.Read() End If Case Else Console.WriteLine("Error al ingesar Tipo de cliente") Console.Read() End Select If (Descuento <> 0.0 Or Plazos <> 0.0) Then Pago_total = (Pago + Plazos) - Descuento 'Salida Console.WriteLine("Total a Pagar = " + Convert.ToString(Pago_total)) Console.Read() End If End Sub End Module C贸digo fuente c++ #include <iostream> using namespace std; int main(){ //Declarando variables char Tipo_cliente,Frm_pago; float Descuento=0,Pago_total=0,Plazos=0,Pago=0; //Entrda cout<<"Ingresar monto de Pago "<<endl;cin>>Pago; cout<<"Ingresar Tipo de Cliente(A,B) "<<endl;cin>>Tipo_cliente ; cout<<"Ingresar Forma de Pago(C,P) "<<endl;cin>>Frm_pago ; //proceso
switch(Tipo_cliente ){ case 'A': {if (Frm_pago=='C' ) Descuento =Pago*0.20; else if(Frm_pago=='P' ) Plazos = Pago*0.10; else cout<<"Error al ingresar forma de pago"<<endl; break; } case 'B': {if (Frm_pago=='C' ) Descuento =Pago*0.15; else if(Frm_pago=='P' ) Plazos = Pago*0.05; else cout<<"Error al ingresar forma de pago"<<endl; break; } default:
cout<<"Error al igresar tipo de Cliente"<<endl;
} if(Plazos!=0|Descuento !=0 ){ Pago_total =(Pago+Plazos )-Descuento; //salida cout<<"Monto Total a pagar = "<<Pago_total <<endl; } system ("pause"); return 0; } C贸digo fuente en Java import java.util.Scanner;
/** * * @author Atanacio */ public class Problema3 { public static void main(String[] args) { // TODO code application logic here
//Declarando variables char Tipo_cliente,Frm_pago; float Descuento=0,Pago_total=0,Plazos=0,Pago=0;
String salida = null;
//Entrda Scanner Entrada= new Scanner(System.in);
System.out.println("Ingresar monto de Pago "); Pago=Entrada.nextFloat();
System.out.println("Ingresar Tipo de Cliente(A,B)
");
Tipo_cliente= Entrada.next().charAt(0); System.out.println("Ingresar Forma de Pago (C,P)
");
Frm_pago= Entrada.next().charAt(0); //proceso
switch(Tipo_cliente ){ case 'A': {if (Frm_pago =='C' ) Descuento =(float) (Pago*0.20); else if(Frm_pago =='P' ) Plazos
= (float) (Pago*0.10);
else salida="Error al ingresar forma de pago"; break; } case 'B': {if (Frm_pago=='C' ) Descuento =(float) (Pago*0.15); else if(Frm_pago=='P' ) Plazos else
= (float) (Pago*0.05);
salida="Error al ingresar forma de pago"; break;}
default:
salida="Error al igresar tipo de Cliente";
}
Pago_total =(Pago+Plazos )-Descuento; //Salida if(salida!=null){ System.out.println(salida); System.exit(0); } System.out.println("Monto Total a pagar = "+Pago_total ); } } 4.
Muestre la salida en cada caso del siguiente código fuente: a) public class Ejemplo1{ public static void main(String[] args){ int x=2; int y=3; if(x>2) if(y>2){ int z=x+y; System.out.println(“Z es” +z); } else System.out.println(“x es” +x) ; } }
Rpt: En esta sintaxis de código no muestra ni una salida porque la primera sentencia sale del valor establecido de la variable x ; por lo tanto no se mostrara un salida
b) public class Ejemplo1{ public static void main(String[] args){ int x=3; int y=2; if(x>2) if(y>2){ int Z=x+y; System.out.println(“Z es” +Z); } else System.out.println(“x es” +x) ; } }
Rpt: En esta sintaxis de código si muestra una salida porque la primera sentencia se ejecuta y
5.
¿Cúales de las siguientes afirmaciones son equivalentes? a) If(i>0) if(j>0) x=0; else if(k>0) y=0; else Z=0 b) If(i>0){ X=0; Else if(k>0) Y=0 } Else z=0; c) If(i>0) If(j>0) x=0; else if(k>0) y=0 else Z=0 d) If(i>0) If(j>0) x=0; else if (k>0) y=0; else z=0;
Rta: Son equivalentes las sentencias c y d porque los variables y secuencia lógica coinciden
mostrará el valor de x