Sunteți pe pagina 1din 24

ITM

NOTAS DE CLASE Y GUIA 03 DE TRABAJO


LABORATORIO DE LOGICA Y PROGRAMACION

PROPOSITO
Realizar una propuesta de trabajo al estudiante para cumplir con el tiempo independiente de la asignatura
Laboratorio de lógica y programación.

Académico-Docente
Olga Lucia Suaza Jiménez Olsuaza@une.net.co

Título y Descripción del Trabajo


Conocer y Aplicar La estructura de decisión
El estudiante debe realizar programas fuentes tomando como base la estructura de decisión

ESTRUCTURA CONDICIONAL O DE DECISION

Las estructuras condicionales comparan una variable contra otro(s)


valor(es), para que, con base al resultado de esta comparación, se
siga un curso de acción dentro del programa. El resultado de esta
comparación siempre deberá ser un valor lógico (verdadero o falso).
Existen dos tipos básicos, las simples y las compuestas

Por supuesto que en un problema se pueden combinan estructuras


secuenciales y condicionales.

Estructura condicional simple.


Por el camino del verdadero hay actividades y por el camino del falso
no hay actividades.
si ( condición)
entonces
Instrucciones
Fin si

Como seria en java?

If(condicion )
{
1
Instrucciones;
}

Estructura condicional compuesta

Si (condición)
entonces
instrucciones

sino instrucciones
fin si

COMO SERIA EN JAVA?


If(condicion ) // NOTA no termina en ;
{
Instrucciones;
}

else
{
Instrucciones;
}

Tanto por el verdadero como por el falso hay instrucciones

Ejemplo 1:

Muchachos podemos utilizar más métodos dentro de una clase, además

vamos a trabajar también con variables locales y /o miembro o globales;

veamos los siguientes ejemplos:

2
Capturar por pantalla: nombre, código, y tres notas de un estudiante. Calcular

y mostrar su promedio, averiguar si gano la materia o la perdió.

COMPARACION SEUDOCODIGO - JAVA

SEUDOCODIGO JAVA
Clase Cls_promedionotas import java.io. *;
texto nom
import javax.swing.JOptionPane;
real not1, not2, not3

entero cod public class Cls_promedionotas {

private static String nom;

private static double not1, not2, not3;

private static int cod;

publico vacio principal() public static void main(String[] args) {

entrardatos( ) entrardatos ( );

Obtenerpromedio() Obtenerpromedio();

Fin Método principal } // cierro principal

Publico vacio entrardatos( ) public static void entrardatos( )


3
{
Mostrar “ digite el código”
Leer cod cod = Integer.parseInt(JOptionPane.showInputDialog("digite el

codigo"));
mostrar(“Digite primera nota”)
Leer not1 not1 = Double.parseDouble(JOptionPane.showInputDialog("digite

primera nota"));
mostrar(“Digite segunda nota”)
Leer not2 not2 = Double.parseDouble(JOptionPane.showInputDialog("digite

mostrar(“Digite tercera nota”) segunda nota"));


Leer not3
not3 = Double.parseDouble(JOptionPane.showInputDialog("digite
mostrar (“digite el nombre”)
Leer nom tercera nota"));

nom=(JOptionPane.showInputDialog("Digite El Nombre Del

Estudiante"));

} //FIN METODO
Fin metodo

public static void Obtenerpromedio()


Publico vacio Obtenerpromedio()
real prom
{ double prom;
prom = (not1+not2+not3)/3

prom = ((not1+not2 +not3)/3);


si (prom >= 3)
if (prom >= 3)

entonces {
mostrar “el estudiante”, nom, “gano la
materia con “, prom System.out.println(" El estudiante " + nom +
sino
"gano la materia con " + prom);
4
}
mostrar “el estudiante “, nom, “perdió la
materia con “, prom
else
fin si
{
Fin Método
System.out.println("El estudiante" + nom + "

Fin clase perdió la materia con " + prom);

} // FIN METODO

} // FIN CLASE

Ejemplo 2:

Calcular la edad de una persona, conociendo su año de nacimiento,

mostrar su edad, e indique si esta persona es mayor o menor de edad.

Análisis: datos o atributos de entrada: se necesita una variable para el año

de nacimiento y otra para el año actual: anaci, aactual, además se incluye la

variable para el nombre

CALCULOS: al año actual se le resta el año de nacimiento: edad = aactual -

anaci

5
Se debe averiguar si la edad es mayor o igual a 18 en este caso es mayor de edad ,

en caso contrario o falso es menor de edad

SALIDA: edad

COMPARACION: SEUDOCODIGO - JAVA

SEUDOCODIGO JAVA
import java.io. *;

import javax.swing.JOptionPane;

Publico Clase Cls_edad public class Cls_edad


entero anaci,aactual
{
texto nom
private static int anaci, aactual ;

private static String nom;

Publico vacio principal() public static void main(String[] args) {


capturardatos ( )
capturardatos ( );
Obteneredad()
obteneredad( );

Fin Método principal } // cierro principal

6
Publico vacio capturardatos() public static void capturardatos ( )

anaci = Integer.parseInt(JOptionPane.showInputDialog("digite
mostrar (“digite el año de
nacimiento”) año de nacimiento"));
Leer anaci
aactual = Integer.parseInt(JOptionPane.showInputDialog("digite

el año actual"));

nom=(JOptionPane.showInputDialog("Digite El Nombre "));


mostrar(“Digite año actual”)
Leer aactual } //fin metodo

Mostrar “digite el nombre”


Leer nom

Fin método
public static void obteneredad()

Publico vacio obteneredad() { int edad;


entero edad
edad = aactual - anaci
edad = aactual - anaci ;

si (edad >= 18)


entonces if (edad >= 18)

mostrar “el estudiante”, nom, “es {


mayor de edad “

System.out.println(" El estudiante " + nom + " es


7
mayor de edad " );

}
sino
mostrar “el estudiante “, nom,
“es menor de edad” else

System.out.println("El estudiante" + nom +

" es menor de edad " );


fin si
} //fin si
Fin Método
} // FIN METODO
Fin clase

} // FIN CLASE

Ejemplo 3: entrar por pantalla los datos de un vendedor: nombre, número de

unidades vendidas, valor unitario. Calcular y mostrar el valor de la venta.

Además averiguar si la venta está comprendida entre 1000000 y 2500000, en

este caso se gana una comisión del 3 %, mostrar el valor de la comisión.

Nota: Este ejercicio se hizo con un solo metodo y todas las variables

globales.

8
PSEUDOCODIGO

Publico Clase Cls_vendedor

entero nuv
real vunit,valvent,comision
texto nom

publico vacio principal()

Obtenerventacomision()

Fin principal

Publico vacio Obtenerventacomision()


mostrar (“digite el nombre del vendedor”)
Leer nom

mostrar(“Digite número de unidades vendidas”)


Leer nuv

Mostrar “digite el valor unidad ”


Leer vunit

valvent = nuv * vunit


si( (valvent >= 1000000) )^ (valvent <= 2500000))

entonces comisión = valvent*0.03

mostrar “el total de comisión del vendedor “ , nom , “ es “ , comision

Sino
9
mostrar “el vendedor”, nom, “ no tiene comision “

fin si

Mostrar “y su venta es “ , valvent

fin método

Fin Clase
EN JAVA el anterior ejercicio

import java.io. *;

import javax.swing.JOptionPane;

public class Cls_vendedor {

private static int nuv ;

private static double vunit,valvent,comision;

private static String nom;

public static void main(String[] args) {

Obtenerventacomision();
10
}

public static void Obtenerventacomision( )

{ nuv= Integer.parseInt(JOptionPane.showInputDialog("digite el # de

unidades vendidas"));

vunit =Double.parseDouble(JOptionPane.showInputDialog("digite el valor

unitario"));

nom = JOptionPane.showInputDialog("digite el nombre");

valvent = nuv * vunit;

if( (valvent >= 1000000) && (valvent <= 2500000))

{ comision = valvent*0.03;

System.out.println ("\n el total de comision del

vendedos " + nom + " es " + comision );

else

{ System.out.println ("\n el vendedor " + nom + " no

tiene comision ");

11
}

System.out.println ("\n su venta es "+ valvent );

}//FIN METODO

} //FIN CLASE

Nota : Para comparar contra el igual en java debe ser doble

igual

ESTRUCTURA CONDICIONAL ANIDADAS

Se presenta cuando dentro de una condición existe otra

condición ya sea por verdadero o por el falso, y así

sucesivamente, puede haber todas las condiciones necesarias

para el buen funcionamiento del algoritmo.

Ejemplo :

12
Entrar los datos de un estudiante: nombre, edad, color de ojos, valor de matrícula. Si el

estudiante tiene una edad mínimo de 17 y máximo de 23 años, además si tiene los ojos de color

verdes; tiene derecho a un descuento del 15% del valor de la matrícula.

Si el estudiante tiene una edad mayor a 24 y menor de 28; además tiene los ojos de color negro

tiene derecho a un descuento del 20%. Los demás estudiantes no tienen descuento.

SEUDOCODIGO JAVA
import java.io. *;

import javax.swing.JOptionPane;

Publico Clase Cls_color_ojos public class Cls_color_ojos


entero edad
real valmat {
texto nom, color
private static int edad ;

private static String nom, color;

private static double valmat;

Publico vacio principal() public static void main(String[] args) {


capturardatos ( )
capturardatos ( );
Obtenervalmat()
obtenervalmat( );

13
Fin Método principal } // cierro principal

Publico vacio capturardatos() public static void capturardatos ( )

{ nom=(JOptionPane.showInputDialog("Digite El Nombre "));


Mostrar “digite el nombre”
Leer nom

Mostrar “digite la edad” edad = Integer.parseInt(JOptionPane.showInputDialog("digite la


Leer edad
edad"));

valmat =
Mostrar “digite valor de la
matricula” Double.parseDouble(JOptionPane.showInputDialog("digite el
Leer valmat
valor de la matricula"));

color=(JOptionPane.showInputDialog("Digite El color de ojos en

plural "));
Mostrar " digite el color de los ojos
en plural " } //fin metodo
Leer color
Fin método
public static void obtenervalmat()
Publico vacio obtenevalmat()
real desc, totalmat
{ double desc, totalmat ;

si ((edad >= 17) ^ (edad <=23) ^ (color = "verdes")) if ((edad >= 17) && (edad<=23) && (color.equals("verdes")) ||

(color.equals("VERDES")))

entonces
{

desc = valmat *0.15 desc= val mat *0,15;

}
sino

14
else

{ if ((edad >= 23) && (edad<=28) && (color.equals("negros")) ||


si ((edad > 23) ^ (edad <=28) ^ (color = "negros"))
(color.equals("NEGROS")) )

entonces
{ desc= valmat* 0.20;
desc= valmat* 0.20 }

sino desc= 0 else

fin si { desc = 0 ;

} // cierro el else
fin si

totalmat = valmat – desc } // cierro el primer else

mostrar " el valor a pagar de matricula


del estudiante ", nom , "es ", totalmat
totalmat = valmat - desc;

System.out.println(" El valor a pagar de matricula

del estudiante " + nom + " es " + totalmat );


Fin Método
}// fin metodo
Fin clase

} // FIN CLASE

Ejemplo: Capturar por pantalla 3 números enteros y diferentes.

Averiguar cuál es el mayor.

EN JAVA PSEUDOCODIGO
15
import java.io. *;
import javax.swing.JOptionPane;
public class Clas_nummayor Publico Clase Cls_nummayor
{ entero n1,n2,n3
private static int n1,n2,n3;

public static void main (String args [])


{ publico vacio principal()
capturardatos ( ); capturardatos ( )
Obtenernummayor( ); Obtenernummayor()
} // fin metodo principal
Fin Método principal

public static void capturardatos( )


{ Publico vacio capturardatos()
mostrar “ingrese el primer número”
n1 = Integer.parseInt(JOptionPane.showInputDialog("digite el primer numero"));
leer n1
n2 = Integer.parseInt(JOptionPane.showInputDialog("digite el segundo
numero")); mostrar “ingrese el segundo numero”

leer n2
n3 = Integer.parseInt(JOptionPane.showInputDialog("digite el tercer numero"));

mostrar “ingrese el tercer numero”

leer n3

fin método
} // fin metodo

public static void Obtenernummayor ( ) publico vacio Obtenernummayor()


{

if ((n1!=n2)&&(n2!=n3)&& (n1!=n3)) Si ((n1< > n2) ^ (n2 < > n3) ^ (n1 < >n3))
{

System.out.println ("\n Los numeros son diferentes" ); entonces mostrar “los números son

16
diferentes”
if ((n1>n2)&& (n1>n3))
Si ((n1>n2) ^ (n1>n3))
{
System.out.println ("\n El mayor de los numeros es :" +
n1); entonces mostrar “ el mayor de los
}
números es”, n1

else
Sino
{
if ((n2>n1)&& (n2>n3)) si ((n2>n1) ^ (n2>n3)
{

System.out.println ("\nEl mayor de entonces


los numeros es :" + n2);
mostrar “el mayor de los

numeroses”, n2

}
Sino
else
{ mostrar “el número mayor es”, n3

System.out.println ("\nEl mayor de los


numeros es :" + n3);

} fin si

fin si
}
} //cierra el entonces
sino
else
{
mostrar “ los números no
System.out.println ("\n Los numeros no
cumplen la condicion de ser diferentes" ); cumplen la condición de ser
}
17
diferentes”
} //fin metodo
Fin si
} //fin clase
fin método

Fin Clase

TALLER (aplique variables locales y /o globales o miembro)

1. Entrar por pantalla un numero averiguar si es par o impar.

2. Read three whole and numbers different to sort them from least to greatest, show those numbers.  

3. Pasar a java el siguiente algoritmo. Redacte el enunciado.

DIAGRAMA PSEUDOCODIGO
DE LA CLASE Publico Clase Cls_ Cls_costopaquete
Cls_costopaquete Privado texto tipopa, prioridad
-tipopa : texto Privado real peso
-peso : real
-prioridad: texto Publico vacio capturardatos( )
-coscartA : real Mostrar “Digite el tipo de paquete :escriba carta o caja ”
-coscartB:real Leer tipopa
- coscartC:real Mostrar “Digite el peso del paquete”
-coscajaA :real Leer peso
- coscajaB :real Mostrar “Digite la prioridad de envió escriba A o B o C”
- coscajaC :real Leer prioridad
Fin Método
Publico vacio operaciones( )
+ principal() vacio real coscartA, coscartB, coscartC, coscajaA, coscajaB , coscajaC
+capturardatos() vacio si (tipopa = = “carta”)
+operaciones( vacio entonces si (prioridad = = “A”)

entonces coscartA= peso * 120


mostrar “ el costo de la carta es “, coscartA

sino si(prioridad = = “ B”)

entonces coscartB= peso * 101


mostrar “ el costo de la carta es “, coscartB

18
sino coscartC= peso * 85

mostrar “ el costo de la carta es “, coscartC

FIN SI
FIN SI
Sino
Si ( (prioridad = = “A”)

entonces coscajaA= peso * 457


mostrar “ el costo de la caja es “, coscajaA

sino si(prioridad = = “ B”)


entonces coscajaB= peso * 3550
mostrar “ el costo de la caja es “, coscajaB

sino coscajaC= peso * 2130


mostrar “ el costo de la caja es “, coscajaC

FIN S
FIN SI
Fin si
Fin método
Publico vacio principal( )
capturardatos()
operaciones()
Fin principal
Fin Clase

4. in a shop a person make a purchase and delivers some amount of money. Make an algorithm that
print a message informing what should return or how much should be added.

5. Diseñe un algoritmo donde lea un numero de tres cifras y determine if it is equal to the wrong side
of the number.
6. Desarrollar un algoritmo que lea tres longitudes y determine si éstas forman o no un
triángulo. Si es un triángulo determine si éste es equilátero (si tiene tres lados iguales),
isósceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales).

19
7. Make an algorithm that allows to enter three numbers (different), print a message informing which is
the number of the medium and also tell which number is more fencing. EJ. If the entered numbers are
8, 20 and 4. The answer would be, the middle number is 8 and is closer to 4

8. ask two numbers and say if one is a multiple of the other.

9. Pasar a java el GUIENTE ALGORITMO, REDACTE ENUNCIADO Y SUSTENTELO.


Clase pruebaescrit

entero dia, mes,anho

principal()

capturardatos ( )

calculos()

Fin principal

Publico vacio capturardatos()

Mostrar “digite el dia de 1- 31”


Leer dia

Mostrar “digite el mes de 1-12”


Leer mes

Mostrar “digite el año”


Leer anho

Fin método

Publico vacio calculos()

si ((dia >=1) ^ (dia <=31) ^(mes >=1) ^ (mes <=12) ^ (anho >0) )
20
entonces
si((mes =1) ᵛ (mes =3 ) ᵛ(mes =5) ᵛ(mes = 7) ᵛ (mes =8) ) ᵛ (mes=10))

entonces
si (dia = 31)
entonces
mes=mes+1
dia = 1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes , anho

sino
dia=dia +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes, anho

fin si
sino
si (( mes = 4 ) ᵛ (mes= 6 ) ᵛ (mes =9 ) ᵛ (mes =11 ) )
entonces
si (dia =30)
entonces dia =1
mes =mes +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes, anho

sino
dia=dia +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes, anho

fin si

sino

si ( mes = 2)

entonces
si ( (anho % 4 = 0 ) ) ᵛ ( anho % 400 = 0))
entonces
si (dia =29)
21
entonces dia =1
mes = mes +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes, anho

sino dia =dia +1

mostrar “el dia siguiente a la fecha ingresada será “, dia, mes, anho
fin si
sino
si (dia = 28)

entonces
dia =1
mes =mes +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes, anho
sino
dia =dia +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes,
anho

fin si

sino
si(mes =12)

si (dia =31)

entonces dia =1
mes =1
anho = anho +1
mostrar “el dia siguiente a la fecha ingresada será “, dia, mes,
anho
sino
dia =dia +1
mostrar “el dia siguiente a la fecha ingresada será “, dia,

22
mes, anho
fin si

fin si

sino
mostrar “fecha no valida “
fin si

Fin Método

Fin clase

10. Determinar la cantidad de dinero que recibirá un trabajador por concepto de horas semanales
trabajadas en una empresa, sabiendo que cuando las horas trabajadas exceden de 40, el resto se
consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8;
si las horas extras exceden de 8 se pagan las primeras 8 al doble de una hora normal y el resto al
triple.

11. Construir un algoritmo para resolver una ecuación de segundo grado, que identifique si la
solución es real o imaginaria.  La ecuación de segundo grado es  ax**2 + bx + c = 0 y a ≠ 0.
Teniendo en cuanta que las soluciones o raíces de la ecuación son:

Verifique que los valores de las variables sean correctos.

 BIBLIOGRAFIA UTILIZADA
Programación Orientada a Objetos Natalia Rodríguez Castellón
Apuntes personales profesor Jorge Suaza Jimenez
Documentos tomados de internet para uso académico
Apuntes personales Profesora Olga Lucia Suaza Jimenez

23
24

S-ar putea să vă placă și