Laboratorio de Logica de Programacion v1

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 75

LABORATORIO DE LOGICA DE PROGRAMACION

JORGE SUAZA
Información General
• Docente : Jorge Hernán Suaza Jiménez
Ingeniero de sistemas Politécnico Jaime Isaza Cadavid
Especialista en Ingeniería de Software Universidad de Medellín
Magister en Ingeniería de Software Universidad de Medellín

Correo Electrónico : [email protected]


[email protected]

Horario de asesoría : Miércoles de 8 a.m a 10 a.m


Viernes de 8 a.m a 10 a.m

Talleres Maratón de programación


Martes 10 am a 12 m K 404
Miércoles de 4 pm a 6 pm k 404

OFICINA PARQUE I LABORATORIO DE CIENCIAS COMPUTACIONALES

Pagina de Consulta
http://jorgesuaza76.wix.com/facultaddeingenieria
Definición
• JAVA es un lenguaje de programación orientado a
objetos desarrollado por Sun Microsystems a
principios de los años 90´s debido a la creciente
necesidad de interfaces mucho más cómodas e
intuitivas que los sistemas de ventanas que
proliferaban hasta el momento.

• PORQUE JAVA?

Fiabilidad del código y facilidad de desarrollo.

Enorme diversidad de controladores electrónicos

La Crisis del Software.


CARACTERISTICAS DE JAVA:
• SIMPLE: Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las
características menos usadas y más confusas de éstos.

• ORIENTADO A OBJETOS : Toda la programación en java en su mayoría está orientada


a objeto, ya que al estar agrupados en estructuras encapsuladas es más fácil su
manipulación.

 INDEPENDIENTE DE LA PLATAFORMA
Para establecer Java como parte integral de la red, el compilador Java compila su
código a un fichero objeto de formato independiente de la arquitectura de la
máquina en que se ejecutará.

 SENSIBLE A MAYUSCULAS Y MINUSCULAS


El JDK (Java Developmet Kit ) o SDK (Software
Development Kit)
Kit de desarrollo de java, colección de componentes
básicos para ayudar a los desarrolladores de
software a construir aplicaciones de Java.

Incluye el compilador, la máquina virtual Java(JVM) y


las API desarrolladas por los programadores de Java
a lo largo de su evolución.

Java es un lenguaje libre, se puede descargar de


http://www.java.com/es/download/
El Editor
• Es la herramienta por medio de la cual escribimos el código de las
aplicaciones, existe infinidad de Editores para desarrollar aplicaciones en
java, incluidos grandes IDEs (Entornos de Desarrollo Integrado). Estas
herramientas se encargan de ejecutar los comandos para la Compilación
y Ejecución del código fuente .
Algunos IDEs
NetBeans (http://www.netbeans.org) Open-Source.

Eclipse (http://www.eclipse.org) Open-Source.

Sun Java Studio (http://developers.sun.com/jsenterprise/index.jsp) de Sun.

JBuilder (http://www.codegear.com/products/jbuilder) de Borland.

WebSphere Studio (http://www-


306.ibm.com/software/awdtools/developer/application/) de IBM.

JDeveloper (http://www.oracle.com/technology/products/jdev/index.html) de
Oracle.
Jcreator (http://www.jcreator.com/download.htm ) XINOX Software.

TextPad (http://www.textpad.com/download/index.html#downloads ) Open-


Source.
Como se empieza?

Se procede con la instalación del Kit de desarrollo de Java (JDK) y luego


con la instalación del editor.
Con el ánimo de propiciar un mayor entendimiento y acelerar el
aprendizaje de la programación en Java utilizaremos, el Jcreator Le o
NetBeans
Como Entrar a Java?
Entramos a todos los programas y seleccionamos jcreator Pro o LE
Según la versión instalada en el equipo
Como Entrar a Java?
• Luego aparece Jcreator..
• Seleccionamos File (Archivo) ----new-----Project
Como entrar a java?
• Luego seleccionamos Basic Java Application y oprimimos Next
Como entrar a java?
• Luego damos el nombre del proyecto y seleccionamos el lugar
para guardarlo luego oprimimos finish
Estructura en java
• /**
• * @(#)saludar.java
• *
• * saludar application
• *
• * @author
• * @version 1.00 2014/8/4
• */

• public class saludar {

• public static void main(String[] args) {

• // TODO, add your application code
• System.out.println("Hello World!");
• }
• }
Sintaxis y comandos en java

COMENTARIOS:
Para una sola línea (//)
// este es un comentario

Para un bloque de instrucciones (/* */)


/* este es
Un
Comentario */
Como comenzamos a codificar?
Lo primero que debemos de tener en cuenta son las librerías con las que vamos
a trabajar
Librerías o paquetes: Son un conjunto de clases con sus métodos y que están
disponibles al programador en cualquier momento.

EXISTEN MUCHAS LIBRERIAS UTILIZAREMOS LAS MAS COMUNES

La palabra import significa que vamos hacer uso de esa librería por lo tanto
necesitamos importarla después donde esta ubicada la librería (java o javax) a
continuación el nombre de la librería o paquete y por ultimo el nombre de la
clase o * si queremos importar todas las clases que pertenecen a esta librería

Ejemplo
Import javax.swing.*;
Esquema orientativo de la organización de
librerías en el API de Java
Estructura Básica de Java

Import java.io.*; //LIBRERIAS


public class saludar // la clase debe llamarse como el programa
{
public static void main ( String [ ] ar) //METODO PRINCIPAL

} // cierro método
} //cierro clase
Como comenzamos a codificar?

• Nota: Todas las librerías deben terminar en punto y coma ( ; ) y


van antes de la clase

• Todo en Java está dentro de una clase, por lo tanto a


continuación de las librerías aparece automáticamente el nombre
de la clase que debe ser el mismo nombre del programa que el
usuario le asigno antecedido por las palabras public class, la
palabra reservada public significa que un método puede ser
llamado desde otras clases, o que la clase puede ser usada por
clases fuera de la jerarquía de la propia clase.
Comandos Básicos en java
Como mostramos texto en la pantalla?

La instrucción System.out.println(...) despliega un string en la


consola.
print es un método que forma parte de la clase out de la clase
System del paquete java.lang, toma el string como argumento
y realiza el proceso de mostrarlo en la consola de jcreator.
El paquete java.lang NO es necesario importarlo, el editor lo
incorpora por defecto

System.out.println("HOLA COMPAÑEROS ESTE ES MI


PRIMER PROGRAMA");
Sintaxis y comandos en java
Mostrar un texto: System.out.println
System.out.println("Hello World!");
Mostrar una variable:
System.out.println(a);
Mostrar un texto y una variable
System.out.println("el resultado es" + a);

Nota: Se usa el operador (+) como concatenador siempre y cuando no exista


dos números a mostrar porque en este caso se suma los números y se muestra
el resultado, para que esto no ocurra se concatena con un espacio entre
comillas " "
Print muestra el mensaje y el cursor se queda en la misma línea de comando
Println : muestra el mensaje y salta de línea
public class mostrar_texto
{
public static void main(String[] args)
{
System.out.print(“Hola compañeros ");
System.out.println(“este es mi primer programa”);
}
}
COMO COMPILAR EL PROGRAMA?

• Otra forma, oprimir la tecla

Si no se tienen errores se debe pasar a ejecutar


COMO EJECUTAR EL PROGRAMA?

otra forma

• En la pantalla debe aparecer :


Tipos Básicos en Java
• Operadores Aritméticos

Operador Nombre Ejemplo

+ Suma 8+9

- Diferencia 8 -9

* Multiplicación 8*9

/ División 20 / 7

% Modulo 20 % 7
Hay otra forma de mostrar mensajes por
pantalla?

• Una bien interesante es utilizando el paquete javax.swing: librería que


contiene componentes swing es decir sirve para mostrar textos, resultados
en ventanas(frames)con botones, títulos, iconos, cerrar ventanas, etc

JOptionPane.showMessageDialog (null, “ ”); es un método de


la clase JOptionPane que permite mostrar un mensaje por pantalla.
.
Como quedaría nuestro ejemplo?

import javax.swing.*; // La clase JOptionPane se encuentra


//dentro del package javax.swing. que es necesario importar
//muestra un mensaje utilizando una ventana
public class saludo
{ public static void main (String[]ar)
{
JOptionPane.showMessageDialog (null, " HOLA
COMPAÑEROS ESTE ES MI PRIMER PROGRAMA ");
}
}
El resultado seria..
Otra forma
Si deseamos darle nombre a la ventana

String nombre=JOptionPane.showInputDialog(null,“digite su nombre","entrada


de datos",JOptionPane.PLAIN_MESSAGE);
Datos Primitivos

Tipos Básicos en Java


Tipo Tamaño Rango

byte entero de 1 byte (8 bits) de -128 a 127

short entero de 2 byte (16 bits) de -32768 a 32767

int entero de 4 byte (32 bits) de -2.147.483.648 a 2.147.483.647

long entero de 8 byte (64 bits) de -2-63 a 263 - 1

float Real de 4 byte (32 bits) 6 dígitos significativos (10-46 , 1038)

double Real de 8 byte (64 bits) 15 dígitos significativos (10-324 , 10308)

String Cadena de caracteres

Dato Logico de 1 byte (8


boolean false y true
bits)
Crear una variable

• Para crear una variable en java se coloca el tipo de dato y


luego el nombre de la variable(s), terminando en punto y
coma
Ejemplo

• String nombre;
• int edad;
• double salario;
• int numero1, numero2, numero3;
• Int num1,num2=0;
Asignar un valor a una variable
• Para que el usuario pueda ingresar una valor a una variable desde el teclado,
existen varias formas.
• Una de ellas es con la librería util, esta librería contiene la clase Scanner.
• Para utilizar el Scanner se debe crear un objeto instanciando la clase Scanner.
• Apartir de este momento se puede usar cualquier método dependiendo del
tipo de dato a obtener
• Ejemplo si el tipo de dato es entero
• Scanner dato = new Scanner (System.in);
• System.out.println("digite un valor ");
• int a= dato.nextInt(); o double a= dato.nextDouble() si es real
• Ejemplo si el tipo de dato es String
• Scanner dato = new Scanner (System.in);
• System.out.println("digite un nombre ");
• String nombre = dato.next(); o String nombre = dato.nextLine();
Ejemplo
Calcular el 5 % de un numero entrado por teclado

import java.util.Scanner;
public class ejem
{
public static void main(String[] args)
{
int numero;
double porcentaje;
Scanner dato = new Scanner (System.in);
System.out.print("digite un valor ");
numero= dato.nextInt();
porcentaje = numero * 0.05;
System.out.println("el porcentaje es " + porcentaje);
}
}
Otra forma
Otra forma de capturar un valor es usando la librería Swing y la clase JOptionPane.showInputDialog
Para esto se debe usar una conversión de tipo a numérico ya que esta clase solo acepta texto.
Esta conversión será con método parse
Double.parseDouble: convierte a numero real o double
Integer.parseInt: convierte a numero entero o integer

import javax.swing.*;
class sumar {
public static void main (String args[]) {
double n1, n2, resultado;//Estos son los numeros
String leer;//variable auxiliar con la cual leeremos los datos
leer=JOptionPane.showInputDialog("Escriba el primer Número");
//Esta es la forma para hacer el cambio de cadena a doble
n1=Double.parseDouble(leer);
leer=JOptionPane.showInputDialog("Escriba el segundo Número");
n2=Double.parseDouble(leer);
resultado=n1+n2;
JOptionPane.showMessageDialog(null, "El resultado de la suma es: "+resultado);
}
}
Tipos Básicos en Java
Operadores de Asignación

Expresión Significado

x+=y x=x + y

x-=y x=x - y

x*=y x=x*y

x/=y x=x/y
Tipos Básicos en Java
• LIBRERÍA MATH
• En ocasiones debemos realizar otro tipo de operaciones como exponente, raíz cuadrada o funciones
trigonométricas en este caso usamos la librería math que contiene varias funciones

• Para elevar un número a una potencia n en java usaremos el método Math.pow.

Math.pow(a, b) donde a es la base y b el exponente. Es decir, sí tenemos Math.pow(2, 3) el resultado


sería 8 dado que 2^3 = 8 o lo que sería lo mismo 2*2*2. .

int n, base;
System.out.println("Ingrese la base: ");
base = tec.nextInt();
System.out.println("Ingrese el exponente");
n = tec.nextInt();
int resultado = Math.pow(base, n); System.out.println(base + " elevado a
la " + n + " es igual a " + resultado);
Métodos
• Un método es un algoritmo diseñado para efectuar una tarea particular, bajo la dependencia de un algoritmo u
otro subprograma que lo utiliza. De esta manera el subprograma es diseñado para ser utilizado por otros procesos
más amplios, dentro de los cuales existe un flujo de entrega y de recibo de información.

• UTILIDADES O VENTAJAS
• Disminuye la complejidad del algoritmo
• Reutilización de Código
• Ahorro de tiempo de programación
• División de la programación entre un equipo de programadores
• Facilidad en la depuración: comprobación individual de los módulos
• Programas más fáciles de modificar

• CONCEPTOS

• PARAMETROS DE ENTRADA : Un método puede recibir o no parámetros, estos parámetros son los datos que el
método no conoce y que necesita para hacer su trabajo. Cuando un método recibe parámetros estos deben ser
recibidos en variables del mismo tipo de dato.
• PARAMETROS DE SALIDA: Son parámetros cuyos valores se calcularan en el procedimiento y se deben devolver al
programa principal para su posterior proceso


ESTRUCTURA GENERAL DE UN MÉTODO JAVA
La estructura general de un método Java es la siguiente:

[especificadores] tipoDevuelto nombreMetodo([lista


parámetros]) [throws listaExcepciones]
{
// instrucciones
[return valor;]
}
Los elementos que aparecen entre corchetes son
opcionales.
Subprogramas
Especificadores (opcional): determinan el tipo de acceso al método.

tipoDevuelto: indica el tipo del valor que devuelve el método. En Java es imprescindible que en la declaración de un
método, se indique el tipo de dato que ha de devolver. El dato se devuelve mediante la instrucción return. Si el método no
devuelve ningún valor este tipo será void.

• nombreMetodo: es el nombre que se le da al método. Para crearlo hay que seguir las mismas normas que para crear
nombres de variables.

• Lista de parámetros (opcional): después del nombre del método y siempre entre paréntesis puede aparecer una lista
de parámetros (también llamados argumentos) separados por comas. Estos parámetros son los datos de entrada que
recibe el método para operar con ellos. Un método puede recibir cero o más argumentos. Se debe especificar para cada
argumento su tipo. Los paréntesis son obligatorios aunque estén vacíos.

• throws listaExcepciones (opcional): indica las excepciones que puede generar y manipular el método.

• return: se utiliza para devolver un valor. La palabra clave return va seguida de una expresión que será evaluada para
saber el valor de retorno. Esta expresión puede ser compleja o puede ser simplemente el nombre de un objeto, una
variable de tipo primitivo o una constante.
• El tipo del valor de retorno debe coincidir con el tipoDevuelto que se ha indicado en la declaración del método
Ejemplo
import java.util.*;
public class Metodos1 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int numero1, numero2, resultado;
System.out.print("Introduce primer número: ");
numero1 = sc.nextInt();
System.out.print("Introduce segundo número: ");
numero2 = sc.nextInt();
resultado = sumar(numero1, numero2);
System.out.println("Suma: " + resultado);
}
public static int sumar(int a, int b)
{
int c;
c = a + b;
return c;
}
}
OTRO EJEMPLO
• Ejemplo de programa Java: Método que no devuelve ningún valor. El método cajaTexto recibe un String y lo muestra rodeado con un borde.
• El tipo devuelto es void y no es necesario escribir la sentencia return. El método acaba cuando se alcanza la llave final.
• import java.util.*;
• public class MetodoVoid {
• public static void main(String[] args) {
• Scanner sc = new Scanner(System.in);
• String cadena;
• System.out.print("Introduce cadena de texto: ");
• cadena = sc.nextLine();
• cajaTexto(cadena); //llamada al método
• }
• /**
• * método que muestra un String rodeado por un borde
• */
• public static void cajaTexto(String str){
• int n = str.length();
• for (int i = 0; i < n + 4; i++){
• System.out.print("#");
• }
• System.out.println();
• System.out.println("# " + str + " #");
• for (int i = 0; i < n + 4; i++){
• System.out.print("#");
• }
• System.out.println();
• }
• }
OTRO EJEMPLO
• Determinar en un conjunto de números enteros cuantos son primos

• import java.util.*;

• public class MetodoVoid {

• public static void main(String[] args) {

• Scanner sc = new Scanner(System.in);

• int i,num,cantidad=0,n;

• boolean res;

• System.out.print(“Digite la cantidad de números: ");

• n = sc.nextInt();

• for(i=1;i<=n;i++) {

• System.out.print(“Digite numero: ");

• num = sc.nextInt();

• res=esprimo(num);

• if(res=true) {

• cantidad =cantidad + 1;

• } }

• System.out.print(“la cantidad de numeros primos son: “ + cantidad);

• }

• Public static boolean esprimo(int numero) { //llamada al método

• int i,divisores=0;

• for(i=1;i<=numero;i++)

• { if(numero mod 2== 0)

• { divisores = divisores + 1}

• } if (divisores ==2) {

• return true;}

• Else {

• Return false }

• }


Métodos 1. No Envía Parametros, No Recibe Parametros
ALGORITMO JAVA

Publico Clase Operaciones import java.util.Scanner;


Publico vacío Método principal() public class solucion {
calcular() public static void main(String[] args) {
Fin método calcular();
}
Publico Vacío Método calcular() public static void calcular() {
real nota1,nota2,nota3,nd Scanner teclado=new Scanner(System.in);
lea nota1 double n1,n2,n3,nd;
lea nota2 System.out.println("Ingrese primera nota");
lea nota3 n1=teclado.nextDouble();
nd=(nota1 + nota2 + nota3)/3 System.out.println("Ingrese segunda nota");
imprima (nd) n2=teclado.nextDouble ();
Fin metodo System.out.println("Ingrese tercera nota");
n3=teclado.nextDouble ();
Fin clase nd=(n1+n2+n3)/3;
System.out.println("la nota definitiva es"+nd);
}

}
Métodos . 2. Envía parametros pero no recibe Parametros

ALGORITMO JAVA

Publico Clase Operaciones import java.util.Scanner;


Publico vacío Método principal() public class solucion {
real nota1,nota2,nota3 public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
lea nota1
double n1,n2,n3;
lea nota2 System.out.println("Ingrese primera nota");
lea nota3 n1=teclado.nextInt();
calcular(nota1,nota2,nota3) System.out.println("Ingrese segunda nota");
Fin método n2=teclado.nextInt();
System.out.println("Ingrese tercera nota");
Publico Vacío Método calcular(real n3=teclado.nextInt();
n1,real n2,real n3) calcular(n1,n2,n3);
}
real nd
public static void calcular(double n1,double n2,
nd=(n1 + n2 + n3)/3 double n3)
imprima (nd) {
Fin metodo double nd;
Fin clase nd=(n1+n2+n3)/3;
System.out.println("la nota definitiva es"+nd);
}
}
Métodos 3. No Envía Parametros y Recibe parametro

ALGORITMO JAVA

Publico Clase Operaciones import java.util.Scanner;


Publico vacío Método principal() public class solucion {
real notadef public static void main(String[] args) {
double resultado;
notadef=calcular()
resultado = calcular();
imprimir (notadef) System.out.println("la nota definitiva es"+resultado);
Fin método }
public static double calcular()
Publico Real Método calcular() {
real nota1,nota2,nota3,nd Scanner teclado=new Scanner(System.in);
lea nota1 double n1,n2,n3,nd;
lea nota2 System.out.println("Ingrese primera nota");
n1=teclado.nextInt();
lea nota3
System.out.println("Ingrese segunda nota");
nd=(nota1 + nota2 + nota3)/3 n2=teclado.nextInt();
Retorne nd System.out.println("Ingrese tercera nota");
Fin metodo n3=teclado.nextInt();
Fin clase nd=(n1+n2+n3)/3;
return nd;
}
}
Métodos 4. Envía Parametros y Recibe parametros
ALGORITMO JAVA

Publico Clase Operaciones import java.util.Scanner;


Publico vacío Método principal() public class solucion {
real nota1,nota2,nota3,notadef public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
lea nota1
double n1,n2,n3,resultado;
lea nota2 System.out.println("Ingrese primera nota");
lea nota3 n1=teclado.nextInt();
notadef=calcular(nota1,nota2,nota3) System.out.println("Ingrese segunda nota");
imprimir (notadef) n2=teclado.nextInt();
Fin método System.out.println("Ingrese tercera nota");
n3=teclado.nextInt();
Publico Real Método calcular(real n1, real resultado = calcular(n1,n2,n3);
System.out.println("la nota definitiva
n2, real n3)
es"+resultado);
real nd }
nd=(n1 + n2 + n3)/3 public static double calcular(double n1,double
Retorne nd n2,double n3)
Fin metodo {
Fin clase double nd;
nd=(n1+n2+n3)/3;
return nd;
}
}
Estructuras Condicionales

• Las estructuras condicionales comparan una variable contra otro(s)


valor(es), para que en base al resultado de esta comparación, se siga
un curso de acción dentro del programa. Existen dos tipos básicos, las
simples y las dobles.
• Se deben usar los operadores relacionales y los operadores logicos
Tipos Básicos en Java
• Operadores Relacionales

Operador Nombre Ejemplo Significado

< Menor que a<b a es menor que b

> Mayor que a>b a es mayor que b

a igual b (SI A Y B SON


== Igual a == b
NUMERICAS)
Nombre igual a jorge (SI
equals igual Nombre.equals(“jorge”) NOMBRE ES VARIABLE
ALFANUMERICA)

!= No igual a a != b a no es igual b

<= Menor o igual a a <= b a es menor o igual a b

>= Mayor o igual a a >= b a es menor o igual a b


Tipos Básicos en Java
• Operadores Lógicos

Operador Nombre Ejemplo Significado

Si a es verdadero y b es
&& AND a && b verdadero, solo evalúa b si a es
verdadera

Si a o b es verdadero
|| OR a || b
Solo evalúa b si a es falsa

! Not !a Si a no es verdad o si a es falso

Evalúa ambos lados de la


& AND expresión sin importar el
primer resultado

Evalúa ambos lados de la


| OR expresión sin importar el
primer resultado
Control de Flujo
If / else
Los if son sentencias booleanas que determinan la ejecución de
determinados bloques de código, el else es opcional.
If(expresion boolean) aquí se usan los operadores relacionales y lógicos
{
//bloque de código
}
Else
{
//bloque de código
}
Ejemplo
Se tienen 2 números calcular la suma, mostrar el resultado si ésta es positiva, de lo
contrario mostrar un mensaje
import java.util.Scanner;
public class ejem {
public static void main(String[] args) {
int numero1,numero2, suma;
Scanner dato = new Scanner (System.in);
System.out.print("digite numero1 ");
numero1= dato.nextInt();
System.out.print("digite numero2 ");
numero2= dato.nextInt();
suma = numero1 + numero2;
if (suma > 0)
{
System.out.println("la suma es " + suma);
}
else
{
System.out.println("la suma es negativa");
}
}
• }
Switch

• Permite seleccionar una, dentro de un conjunto de


alternativas, con base en el valor almacenado en un campo
variable denominado campo controlador de la estructura, de
acuerdo con el valor que tenga el controlador, se realiza una
determinada tarea una sola vez

• Objetivos: Evitar el nido exagerado de preguntas (SI


anidados).
Switch Formato general:
Formato general:
switch(expresión)
Segun(identificador) haga {
Caso 1: case valor1:
-------------- Puede ser una
--------------- variable, una //codigo;
salto constante o break;
caso 2: expresión case valor2:
--------------
-------------- Debe ser //codigo;
salto Entero, texto o break;
caso 3 : carácter
-------------
default:
------------- //codigo
salto break;
En otro Caso:
------------ }
Salto
Fin Segun
Ejemplo
• import javax.swing.*;
• class color{
• public static void main (String args[]){
• int numero;
• String leer;//variable auxiliar con la cual leeremos los datos
• leer=JOptionPane.showInputDialog("Digite numero 1: rojo 2: azul 3: verde");
• //Esta es la forma para hacer el cambio de cadena a doble
• numero=Integer.parseInt(leer);
• switch(numero)
• {
• case 1:
• System.out.println("rojo");
• break;
• case 2:
• System.out.println("azul");
• break;
• case 3:
• System.out.println("verde");
• break;
• }
• }
• }
Ejemplo con métodos
• La Universidad ITM ofrece los programas: civil, mecánica,
odontología, administración, Derecho, sistemas, y medicina. Varios
de estos programas tienen algunos descuentos dependiendo de
algunos aspectos: el estudiante que elija el programa de civil, con
estrato entre 1 y 3 tiene un descuento en su matrícula del 15%. El
estudiante que elija mecánica, con estrato máximo de cuatro tiene
un descuento del 20% en el valor de su matrícula. El estudiante que
elija odontología debe pagar un recargo del 40% sobre el valor de su
matrícula por materiales e implementos. El estudiante que elija
Administración debe pagar un valor constante de 400.000 más el 2%
del valor que pagaba por mes en el último año de bachillerato. El ITM
pide a los estudiantes de sistemas crear un algoritmo que le permita
a las personas entrar en él y saber el valor total que debe pagar de
acuerdo al programa que desee ingresar
En algoritmo
Public clase universidad
entero programa, estrato
real valor_matricula, bh
publico vacio método principal()
capturar_valores()
imprima(calcular_pago())
Fin método
Publico vacio método capturar_valores()
imprima(“digite valor matricula”)
Lea valor_matricula
Imprima(“digite programa 1: civil, 2: mecánica, 3: odontología, 4: administración, 5: Derecho, 6: sistemas,, 7:medicina”)
Lea programa
Fin método
Publico real método calcular_pago()
Según(programa) haga
Caso 1:
imprima (“digite estrato”)
Lea estrato
si (estrato <= 3)
valor_matricula = valor_matricula-(valor_matricula*0.15)
fin si
salto
caso 2:
imprima (“digite estrato”)
Lea estrato
si (estrato <= 4)
valor_matricula = valor_matricula-(valor_matricula*0.20)
fin si
salto
caso 3 :
valor_matricula = valor_matricula + (valor_matricula*0.40)
salto
caso 4 :
imprima (“digite valor de bachillerato”)
Lea bh
valor_matricula = 400000 + bh*0.02
Salto
Fin Según
Retorne valor_matricula
Fin metodo
Fin clase
En java
import java.util.Scanner;

public class universidad {


static int programa, estrato;
static double valor_matricula, bh;
static Scanner teclado = new Scanner(System.in);
public static void main(String[] args) {
capturar_valores();
System.out.print(calcular_pago());
}
public static void capturar_valores() {
System.out.print("digite valor matricula");
valor_matricula= teclado.nextDouble();
System.out.print("digite programa 1: civil, 2: mecánica, 3: odontología, 4: administración, 5: Derecho, 6: sistemas,, 7:medicina");
programa = teclado.nextInt();
}
public static double calcular_pago() {
switch(programa)
{
case 1:
System.out.print("digite estrato");
estrato= teclado.nextInt();
if (estrato <= 3)
valor_matricula = valor_matricula-(valor_matricula*0.15);
break;
case 2:
System.out.print("digite estrato");
estrato= teclado.nextInt();
if (estrato <= 4)
valor_matricula = valor_matricula-(valor_matricula*0.20);
break;
case 3:
valor_matricula = valor_matricula + (valor_matricula*0.40);
break;
case 4:
System.out.print("digite valor de bachillerato");
bh = teclado.nextDouble();
valor_matricula = 400000 + bh*0.02;
break;
}
return valor_matricula;
}
}
Sentencias de bucle o loop (ciclo FOR(PARA))
For(inicializacion; terminación; iteración)
{
//codigo;
}
Inicialización: inicializa (generalmente) la variable de control.
Terminación: es una expresión booleana que determina cuándo debe parar el
ciclo.
Iteración: actualización de la variable de control.
Eje:
for(int i=0; i<10; i++)
{
//codigo;
}
Ejemplo
Mostrar los primeros 10 números naturales

public class numeros {

public static void main(String[] args) {


for (int i = 0; i<10; i++)
{
System.out.println(i);
}

}
}
Sentencias de bucle o loop (ciclo
WHILE(MIENTRAS))
[inicialización];
while(Expresión booleana de terminación){
//bloque de código
}
Inicialización: código donde se inicializa la expresión booleana que
determinará la parada.
La expresión booleana indica que el bloque de código se ejecutará
mientras se cumpla esta expresión
Eje: int a;
a= 0;
while(a <= 10){
//codigo;
}
Ejemplo
• public class numeros {

• public static void main(String[] args) {
• int i = 0;
• while(i<= 10)
• {
• System.out.println(i);
• i++;
• }

• }
•}
consulta
• En este ciclo se aplican los conceptos de
• Variables centinela
• Swiche o banderas

• Además concepto de
• Contadores
• acumuladores
Sentencias de bucle o loop (ciclo DO
Do WHILE(Repita Hasta))
{
//bloque de código
}
while(Expresión booleana de terminación);
La expresión booleana indica que el bloque de código se ejecutará
mientras se cumpla esta expresión
Eje: int contador =0;
do{
//instrucciones;
contador ++;
} while (contador < 10);
Ejemplo
• public class numeros
•{
• public static void main(String[] args)
• {
• int contador = 1;
• do
• {
• System.out.println(“contando…..”+ contador);
• contador++;
• }
• while(contador<= 10);
}
• }
TIPOS DE VARIABLES EN POO

Las variables se pueden clasificar según su ámbito en:

- Variables miembro de una clase o atributos de una clase


- Variables locales
- Variables de bloque

VARIABLE MIEMBRO O ATRIBUTOS DE UNA CLASE

Son las declaradas dentro de una clase y fuera de cualquier método.


Aunque suelen declararse al principio de la clase, se pueden declarar en cualquier lugar siempre que sea fuera de un método.
Son accesibles en cualquier método de la clase.
Son referenciadas en el diagrama de Clases.
Se debe anteponer la palabra static

VARIABLES LOCALES

Son las declaradas dentro de un método.


Su ámbito comienza en el punto donde se declara la variable.
Están disponibles desde su declaración hasta el final del método donde se declaran.
No son visibles desde otros métodos.
Distintos métodos de la clase pueden contener variables con el mismo nombre. Se trata de variables distintas.
El nombre de una variable local debe ser único dentro de su ámbito.
Si se declara una variable local con el mismo nombre que una variable miembro de la clase, la variable local tiene preferencia.
Se crean en memoria cuando se declaran y se destruyen cuando acaba la ejecución del método.

VARIABLES DE BLOQUE

Son las declaradas dentro de un bloque de instrucciones delimitado por llaves { }.


Su ámbito comienza en el punto donde se declara la variable.
Están disponibles desde su declaración hasta el final del bloque donde se declaran.
No son visibles desde otros bloques.
Distintos bloques pueden contener variables con el mismo nombre. Se trata de variables distintas.
Se crean en memoria cuando se declaran y se destruyen cuando acaba la ejecución del bloque.
import java.util.Scanner;
Atributos o miembros
public class ejem
de la clase pueden ser
{
utilizadas en cualquier
static int nota1,nota2,nota3;
método
Se antepone la palabra
public static void main(String[] args) {
static
Scanner dato = new Scanner (System.in);
System.out.print("digite nota1 ");
nota1= dato.nextInt();
System.out.print("digite nota2 ");
nota2= dato.nextInt();
System.out.print("digite nota3 ");
nota3= dato.nextInt();

System.out.print(calcular());
}
public static float calcular()
{
float nd; Variable local, solo
nd=(nota1+nota2+nota3)/3; puede ser utilizada
return nd; dentro del metodo
}

}
Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo
tipo. También son llamados arrays

caracterizan por:

• Almacenan los elementos en posiciones contiguas de memoria


• Tienen un mismo nombre de variable que representa a todos los elementos.
• Para hacer referencia a esos elementos es necesario utilizar un índice que especifica el lugar que ocupa cada
elemento dentro del archivo.

Unidimensionales (vectores) Bidimensionales (matrices)

El vector tiene dos características Es un arreglo bidimensional,


fundamentales rectangular de datos dispuestos en
• Las posiciones filas y columnas
• El contenido de las posiciones A11 A12 A1N
A21 A22 A2n
Definimos vector (nombre) A31 A32 A3n
Juan Carlos Maria Ana An1 An2 Ann

1 2 3 4
Sentido horizontal (Filas)
Sentido vertical (columnas).
Los números 1,2,3,4 determinan cada
posición en el vector
nombre[i] i= 1,2,3 indica el contenido de Cada termino de la matriz lo
la respectiva posición denominamos AI J en donde los
subíndices i, j determinan la fila y la
nombre[1] = “Juan” columna del elemento de la matriz
nombre[3] = “Maria”
Se pueden crear vectores de cualquier tipo M[2,2] = 10
Vectores en java

Como los vectores en la POO son objetos se deben de instanciar

<Tipo de dato> <nombre del vector> < [ ]>= new <tipo de dato> < [tamaño]>
Ejemplo
int Edades [] = new int [6]; Debe ser un valor entero

valores constantes (el compilador deduce automáticamente la dimensión del array)


ejemplo
Para recorrer un vector ya
int Edades[] = {1,2,3,4} ;
sea para llenarlo o mostrar
sus elementos, se usa
¿Cómo se ingresa un dato al vector? dentro de un ciclo una
variable que controla el
<nombre del vector> < [posición]> = valor; índice del vector ejemplo
EJEMPLO: for(i=0;i<=5;i++)
{
Edades [3] = dato.nextInt();
vec[i]= dato.nextInt();
}
Cómo se muestra un dato del vector ?
System.out.print( <nombre del vector> <[posición]>);

Ejemplo:
System.out.print(Edades[2]);

System.out.print(Edades[i]);

Nota: La posición del vector puede ser un número entero, una variable entera o el resultado
entero de un cálculo matemático.
Ejemplo
VEC [6] = 10;
VEC [3 * 2] = 10;
N=4;
VEC [N + 2 ] = 10;

Observacion: podemos usar el atributo length quien nos determina la longitud del vector
Ejemplo n= vector.length;
Buscar el valor menor en un vector
import java.util.Scanner;
public class PruebaVector2
{
public static void main(String[] ar)
{
int numeros[]={46,324,54,56,6,98,342,32,46,65,76,54,324,12};
int min = numeros[0];
for(int i=1; i<numeros.length; i++) Se utiliza length para
{ obtener la longitud
if(numeros[i] < min) del vector
min = numeros[i];
}
System.out.println("El valor más pequeño es: "+min);
}
}
Vectores como atributos de tamaño N
Se define que
import java.util.Scanner;
se va a crear un
public class PruebaVector2
vector de tipo
{
atributo
static int numeros[] ;

public static void main(String[] ar)


{
Scanner dato=new scanner(System.in);
Se da el tamaño
int n;
System.out.print(“Digite tamaño del vector”);
definido por el
n: dato.nextInt(); usuario
números=new int[n];
for(int i=0; i<numeros.length; i++)
{
numeros[i] = dato.nextInt();
}
}
ARREGLOS COMO PARAMETROS

• Para pasar un arreglo completo como parametro a un


procedimiento a una función solo se manda el nombre del arreglo
sin corchetes e indices, en el procedimiento o función que recibe
solo se declara un arreglo del mismo tipo y se puede usar el
mismo o diferente nombre del arreglo sin corchetes e indices.

• Sim embargo es conveniente aclarar, que a diferencia de variables


escalares normales, java no genera una nueva variable en
memoria ni tampoco copia los datos al arreglo que recibe, en su
lugar java sigue usando los datos que están en el arreglo original,
es por esta razón que cambios que se le hagan a los datos del
arreglo que recibe realmente se esta haciendo al arreglo original
como lo muestra el siguiente ejemplo:
Ejemplo
class vectores {
public static void main(String[] args)
{
//creando y cargando un arreglo local
int lista[]={3,4,5};
proc1(lista); // pasandolo a proc1 no lleva parentesis
for( int r=0; r<=2; r++)
System.out.println("lista["+r+"]="+lista[r]+'\n' );
} // cierra main

public static void proc1(int vector[] )


{
// agregandole 10 a vector
for( int r=0; r<=2; r++)
vector[r]= vector[r] + 10;
}
} // cierra clase
Consulta
• Métodos de Ordenamiento
• Ordenación por selección
• Ordenación por inserción
• método de la burbuja
• Ordenación Shell o Shellsort

• Métodos de búsqueda
• Búsqueda secuencia
• Búsqueda binaria

• REALIZAR EL TALLER UBICADO EN LA PAGINA


matrices en java

Como las matrices en la POO son objetos se deben de instanciar

<Tipo de dato> <nombre matriz> < [ ] [ ]>= new <tipo de dato> < [tamaño] [tamaño]>
Ejemplo
int Edades [] [] = new int [6] [2]; Deben ser valores enteros

valores constantes (el compilador deduce automáticamente la dimensión del array)


ejemplo
Para recorrer una matriz ya sea
int Edades[] [] = {{ 1,2,3,4 }, { 5,6,7,8 } ,{ 9,10,11,12 } } ;
para llenarla o mostrar sus
elementos, se usa dentro de dos
¿Cómo se ingresa un dato a una matriz? ciclos ejemplo
for(f=0;i<=5;f++)
<nombre de la matriz> < [fila] [columna]> = valor; {
EJEMPLO: for(c=0;i<=5;c++)
{
Edades [3] [5] = dato.nextInt();
mat[f] [c]= dato.nextInt();
}
}
Matrices como atributos de tamaño N
import java.util.Scanner; Se define que
public class Prueba2 se va a crear
{
una matriz de
static int numeros[] [] ;
tipo atributo
public static void main(String[] ar)
{
Scanner dato=new scanner(System.in);
int n; Se da el tamaño
System.out.print(“Digite tamaño de la matriz”); definido por el
n: dato.nextInt(); usuario
números=new int[n] [n];
for(int f=0; i<numeros.length; f++)
{
for(int c=0; i<numeros.length; c++)
{
numeros[i] = dato.nextInt();
}
}
}

También podría gustarte