Nuevo Modulo de Programación

download Nuevo Modulo de Programación

of 208

Transcript of Nuevo Modulo de Programación

- PROGRAMACIN I Primer Ao

Carrera: Carrera:

Tecnicatura en Tcnico en Telecomunicaciones TelecomunicacionesIng. Eduardo Mansilla

-2-

Programacin I Telecomunicaciones

Indice GeneralINDICE GENERAL________________________________________________ 3 CLASE NMERO: 1 ______________________________________________ 7 INTRODUCCIN DE LA MATERIA _______________________________________ 7 CONCEPTOS PRINCIPALES ___________________________________________ 8 SMBOLOS NORMALIZADOS EN LA DIAGRAMACIN _______________________ 8 VENTAJAS DE UN DIAGRAMA DE FLUJO _________________________________ 9 Programa: _____________________________________________________ 9 Algoritmo: _____________________________________________________ 9 Variable: ______________________________________________________ 9 TIPOS DE VARIABLES ______________________________________________ 11 Tipo char _____________________________________________________ 11 Tipo int_______________________________________________________ 11 Tipo float _____________________________________________________ 11 Tipo String ____________________________________________________ 12 OPERADORES ARITMTICOS_________________________________________ 12 ESTRUCTURAS SECUENCIALES _______________________________________ 12 EJERCICIOS PROPUESTOS ______________________________________ 20 CLASE NMERO: 2 _____________________________________________ 21 ESTRUCTURAS CONDICIONALES _____________________________________ 21 OPERADORES RELACIONALES _______________________________________ 22 Estructura Condional Compuesta __________________________________ 25 Operador %_________________________________________________ 27 OPERADORES LGICOS ____________________________________________ 29 Tipo boolean ________________________________________________ 29 Utilizacin de los operadores lgicos _______________________________ 29 EJERCICIOS PROPUESTOS ______________________________________ 33 CLASE NMERO: 3 _____________________________________________ 35 ESTRUCTURA CONDICIONAL ANIDADA ________________________________ 35 ACTIVIDADES ____________________________________________________ 41 INSTRUCCIN SWITCH - CASE _______________________________________ 45 Comentarios___________________________________________________ 49 Comentarios de varias lneas _____________________________________ 49 EJERCICIOS PROPUESTOS ______________________________________ 51 CLASE NMERO: 4 _____________________________________________ 53 ESTRUCTURA REPETITIVA __________________________________________ 53 ESTRUCTURA WHILE ______________________________________________ 53 Contadores____________________________________________________ 54 Acumulador ___________________________________________________ 57 Impresin de series matemticas___________________________________ 61 Programacin I Telecomunicaciones -3-

ACTIVIDADES ___________________________________________________ 62 Ingreso de valores hasta que se digite una clave ______________________ 67 EJERCICIOS PROPUESTOS______________________________________ 70 CLASE NMERO: 5_____________________________________________ 71 ESTRUCTURA FOR ________________________________________________ 71 ACTIVIDADES ___________________________________________________ 80 Bsqueda del mayor de una serie de nmeros ingresados. ______________ 82 EJERCICIOS PROPUESTOS______________________________________ 85 CLASE NMERO: 6_____________________________________________ 87 ESTRUCTURA DO..WHILE __________________________________________ Concepto De Bandera __________________________________________ Posicionamiento del Cursor ______________________________________ Generacin de nmeros aleatorios_________________________________ 87 93 93 96

EJERCICIOS PROPUESTOS______________________________________ 99 CLASE NMERO: 7____________________________________________ 101 ARRAY _______________________________________________________ Introduccin _________________________________________________ Vectores ____________________________________________________ Carga e Impresin de un Vector__________________________________ 101 101 102 102

EJERCICIOS PROPUESTOS_____________________________________ 116 CLASE NMERO: 8____________________________________________ 117 MTODOS EN JAVA ______________________________________________ Introduccin _________________________________________________ CLASES EN JAVA ________________________________________________ ZONAS DE UN PROGRAMA COMPLETO EN JAVA _________________________ MTODO QUE DEVUELVEN O RETORNAN UN VALOR _____________________ Vectores utilizando Mtodos ____________________________________ VECTORES PARALELOS ___________________________________________ 117 117 118 118 122 123 131

EJERCICIOS PROPUESTOS_____________________________________ 135 CLASE NMERO: 9____________________________________________ 137 PROCESOS ALGORTMICOS ________________________________________ MAYOR Y MENOR ELEMENTO DE UN VECTOR _________________________ Funciones bsicas para el manejo de cadenas de caracteres ___________ Busqueda de un elemento en un vector ____________________________ Ordenamiento de Vectores ______________________________________ 137 137 142 143 147

EJERCICIOS PROPUESTOS_____________________________________ 156 CLASE NMERO: 10___________________________________________ 159 ORDENAMIENTO CON VECTORES PARALELOS _________________________ 159 CONSULTAS EN VECTORES PARALELOS ______________________________ 165 -4 Programacin I Telecomunicaciones

EJERCICIOS PROPUESTOS _____________________________________ 172 CLASE NMERO: 11 ___________________________________________ 173 ARREGLOS BIDIMENSIONALES ______________________________________ 173 CARGA E IMPRESIN DE UNA MATRIZ ________________________________ 174 PROCESAMIENTO DE MATRICES _____________________________________ 178 EJERCICIOS PROPUESTOS _____________________________________ 187 CLASE NMERO: 12 ___________________________________________ 189 MATRICES Y VECTORES PARALELOS _________________________________ 189 EJERCICIOS PROPUESTOS _____________________________________ 199 ANEXO ________________________________________________________ 201 CONSTANTES Y MTODOS MATEMTICOS _____________________________ 201 Class Math ___________________________________________________ 201 MODELO DE EXAMEN FINAL _______________________________________ 203

Programacin I Telecomunicaciones

-5-

-6-

Programacin I Telecomunicaciones

UNIDAD N 1: Introduccin a la lgica y la programacin

TEMAS: Conceptos Principales. Diagramacin. Programacin. Tipos de Variables. Estructuras Secuenciales.

Clase

1

Clase Nmero: 1

Introduccin de la materiaEl objetivo fundamental de esta materia Programacin I, es que el alumno aprenda a razonar, realizando problemas generalmente de tipo matemtico, aplicando mtodos estructurados lgicamente. Esta materia es de vital importancia para el avance del alumno en el plan de estudios, pues brinda los fundamentos lgicos y tcnicos esenciales para despertar la habilidad de resolver de problemas de uso general, utilizando la computadora como fin especfico. En general, se puede decir que la materia presenta dos ejes temticos importantes, que son: por un lado la Diagramacin y por otro lado la Programacin. En la Diagramacin se estudia la simbologa y la forma Lgica de relacionar cada uno de los smbolos para obtener la solucin de un problema planteado. En la Programacin, se estudian las instrucciones de un lenguaje determinado y como llegar a codificarlas a travs de un programa para ser llevado a la computadora. Aprender a programar, no es un proceso que se adquiere de un momento a otro, sino que requiere de intensas prcticas, desarrollando soluciones a diversos problemas. Mientras ms se practique, mas se desarrollar la capacidad de razonamiento individual, y adems, gradualmente se ir incrementando la posibilidad de resolver problemas de mayor magnitud. Este material de estudios no es una fuente de informacin completa o definitiva, sino slo una gua general. Un estudio profundo de esta asignatura, debera ser complementado con libros y manuales de consulta.

Ing. Eduardo Mansilla

Programacin I Telecomunicaciones

-7-

Conceptos PrincipalesSe comenzar con dar las definiciones fundamentales para inicializarse en la materia Algoritmos y Estructuras de Datos I.

Diagrama de Flujo: Se define a un Diagrama de Flujo, como una secuencia de pasos, mediante Smbolos, necesarios para la resolucin de un problema planteado. Para realizar el diagrama de una posible solucin de un problema, se utilizan smbolos normalizados, que mediante una distribucin Lgica y Razonable de los mismos, se obtiene una respuesta al problema presentado.La respuesta obtenida con el desarrollo de un diagrama, no es nica, sino que es una de las numerosas que se pueden obtener. Cada persona tiene una forma de razonar distinta de los dems, por lo tanto, distintas personas pueden llegar a la solucin de un mismo problema de diversas maneras, es decir, que puede haber varias soluciones para un determinado problema.

Smbolos Normalizados en la DiagramacinSmbolo NombreLneas de Flujo

Accin que realizaMuestra la Direccin y Sentido del flujo del proceso, conectando cada uno de los smbolos.

Comienzo o final de Proceso

En su interior, se coloca Inicio o Fin del Diagrama

Introduccin de Datos

Se utiliza para ingresar datos. En su interior, se detalla la variable a ingresar.

Smbolo de Asignacin

Se utiliza cuando se quiere asignar un valor a una variable.

Smbolo-8-

Nombre

Accin que realiza

Programacin I Telecomunicaciones

Smbolo de impresin

Se utiliza cuando se desea imprimir una determinada informacin.

Toma de Decisin

Se utiliza cuando se debe decidir que camino corresponde seguir.

Conector

En su interior se coloca un nmero, que indica donde debe continuar el diagrama.

Ventajas de un Diagrama de FlujoFavorecen la comprensin del proceso a travs de mostrarlo como un dibujo. El cerebro humano reconoce fcilmente los dibujos. Un buen diagrama de flujo reemplaza los diagramas varias pginas de texto. Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los conflictos, las responsabilidades, y los puntos de decisin.

Programa:

Se define a un programa, como una secuencia de instrucciones, realizadas en un orden Lgico mediante un lenguaje determinado. Un Lenguaje de Programacin, es un idioma artificial, creado para comunicarse con las computadoras. Existen diversos tipos de Lenguajes de Programacin, cada uno de ellos se adapta para una actividad en particular. En esta materia, se programar en lenguaje Java. preescrito de instrucciones o reglas bien definidas, que permite realizar una actividad mediante pasos sucesivos. Tambin se puede decir que un algoritmo, es el mtodo o la tcnica descripta para desarrollar una determinada tarea o actividad.

Algoritmo: Es un conjunto

Variable: Se define a una variable, como el espacio fsico para albergar un dato.Los datos pueden ser de diversos tipos y por lo tanto, se debe definir una variable de un determinado tipo, de acuerdo al dato que almacenar.

Programacin I Telecomunicaciones

-9-

Se puede imaginar a una variable como un casillero en el cual se deposita un determinado valor. Toda variable tiene tres parmetros, que son: El nombre de la variable, llamado Identificador, el tipo al que pertenece y el dato almacenado. Ejemplo: Suponer que se quiere definir la variable sueldo. Conceptualmente se tendra lo siguiente:Dato almacenado

5800

sueldo

Variable (Pertenece al tipo numrico)

Identificador

Se debe tener presente, que lo que se almacena en una variable es un dato, y los datos son siempre Constantes. El nombre identificador de una variable, lo decide el programador y es necesario seguir ciertas reglas para colocar dicho nombre. Las reglas son bastantes simples, y son las siguientes: 1. El nombre identificador debe comenzar con una letra en minsculas, los dems caracteres pueden ser otras letras, dgitos o el carcter subrayado. Ejemplo de nombres identificadores vlidos: precio, cantidad, dni, folio37, dia_laborable, etc. Ejemplo de nombres identificadores no vlidos: cdigo, ao, da, 5pesos. Los tres primeros identificadores no son vlidos porque los caracteres acentuados y la letra , son especiales, y no estn permitidos en Java. El cuarto identificador, no es vlido porque comienza con un nmero. 2. No debe haber espacios en blanco entre carcter y carcter. Cuando un nombre se forma como fusin de dos o ms palabras, se comienza siempre con minsculas y la primera letra de cada palabra posterior se coloca en maysculas. Ejemplo: diaDeLaSemana, sueldoDelPersonal, precioUnitario, etc.

- 10 -

Programacin I Telecomunicaciones

Tipos de VariablesTipo char:(char viene de la palabra charcter). Una variable definida de tipo char, puede almacenar un nico carcter, es decir, puede almacenar cualquier smbolo de los indicados en el teclado. Para definir una variable, debe colocar primero el Tipo y luego el nombre identificador de la misma. Si se necesita definir varias variables del mismo tipo, se pueden colocar todas separadas por comas. Al final de cada definicin, se debe colocar un punto y coma, es la forma en que Java identifica que termina una instruccin. Ocupa 2 bytes de memoria. Ejemplo: char letra, digito, sexo; Para asignar un dato a una variable definida de tipo char, se lo debe colocar entre apstrofes (Comillas Simples). letra = L ; digito = 7 ; sexo = M ;

Tipo int:

(int viene de la palabra integer). Una variable definida de este tipo, puede almacenar un nmero entero en el rango de [-2147483648.. 2147483647]. Ocupa 4 bytes de memoria. Ejemplo: int legajo, cantidad, codigo, dia ; legajo = 5832 ; cantidad = 16 ; codigo = 24 ; dia = 12 ;

Tipo float:

(float significa flotante). Una variable definida de tipo float, puede almacenar un nmero con punto decimal flotante en el rango de: [ 1.40239846 x 1045f a 3.40282347 x 1038f]. Ocupa 4 bytes de memoria. Ejemplo: float sueldo, precio, altura, distancia, ancho ; sueldo = 5436.44f ; precio = 35.50f ; altura = 1.67f ; Nota: La letra f al final de cada valor, es obligatorio colocarla para indicar a Java que el dato asignado a la variable es de tipo float.

Programacin I Telecomunicaciones

- 11 -

Tipo String: (String significa tira o hilera de caracteres). Una variable definidade tipo String, permite almacenar una palabra, frase o texto. Ejemplo: String apellido, nombre, direccion, frase; apellido = Rodrguez ; nombre = Alberto ; direccion = 9 de Julio 1653 ; frase = Hoy es un da soleado ; Observar que para asignar un dato a una variable String, se debe hacerlo entre comillas. Nota: Existen mucho mas tipos de variables, pero sern vistos mas adelante.

Operadores AritmticosLos operadores aritmticos son los utilizados para realizar clculos matemticos en una determinada asignacin. Java reconoce los siguientes operadores aritmticos:

Operacin Aritmtica Suma Resta Multiplicacin Divisin Resto de Divisin

Operador + * / %

Estructuras SecuencialesA partir de aqu, comenzaremos a realizar ejemplos de aplicacin de Diagramas de Flujo y posteriormente su traduccin a lenguaje Java. Ejemplo Nro. 1 : Calcular el importe que deber abonar una persona ingresando el Precio unitario de un artculo y la cantidad que se quiere comprar. Para la solucin, se deben pensar en las variables a utilizar en el diagrama, en este caso, se tienen dos variables de ingreso, que son el precio y la cantidad, y una variable de salida, que sera el importe que se debe abonar. La solucin sera la siguiente:

- 12 -

Programacin I Telecomunicaciones

Inicio

Inicio del Diagrama

precio Introduccin de datos cantidad Clculo del importe a abonar

importe = precio * cantidad

importe

Impresin del importe a abonar

Fin

Fin del Diagrama

El diagrama de flujo, nos da una idea del orden de ejecucin de las actividades en el tiempo. Primero se introducen los datos de entrada, luego se realizan las operaciones necesarias y por ltimo se muestran los resultados. Ejemplo Nro. 2 : Hallar la superficie de un cuadrado conociendo el valor de uno de sus lados.

Inicio En este caso, se ingresa el valor de un lado del cuadrado, mediante el smbolo de Introduccin de Datos (paralelogramo), luego se calcula la superficie como el producto de lado por lado, en el smbolo rectngulo, y por ltimo se imprime el resultado de la superficie.

lado

superficie = lado * lado

superficie

Fin

Programacin I Telecomunicaciones

- 13 -

Se proceder ahora a realizar la codificacin de los ejercicios desarrollados anteriormente, es decir, traducir los smbolos de los diagramas en instrucciones en lenguaje Java, para ello, se debe haber instalado el software necesario, que en nuestro caso, es el Ready to Program.

Para la instalacin de esta aplicacin se deber seguir los siguientes pasos: Localizar el instalador de dicha aplicacin, por lo general suele venir acompaando en el Cd de estudio. Tambin se puede conseguir en sitios de descarga o bien conseguirlo a travs del campus o ayudantes del laboratorio.

Para instalarlo, se puede ejecutar el instalador desde el cd o bien copiar los archivos y directorios a una unidad local (C:\ o D:\) Una vez instalado, y ejecutado el programa, se mostrar una pantalla como la siguiente:

All se puede comenzar a tipear las instrucciones para que Java las interprete, - 14 Programacin I Telecomunicaciones

tener en cuenta que a cada smbolo del diagrama, le corresponde una instruccin en Java. Por ejemplo:

Inicio

{

precio

precio = c.readFloat();

cantidad

cantidad = c.readInt();Esta asignacin se coloca como est

importe = precio * cantidad

importe

c.println (importe);

Fin

}

El programa debe comenzar con una llave, que indica el inicio de la actividad, luego se debe pedir el precio, para ello se utiliza la instruccin c.readFloat(), que significa: leer un valor con punto decimal flotante y almacenarlo en la variable precio, posteriormente, se ingresa la cantidad con la instruccin c.readInt(), que significa: leer un valor entero, y almacenarlo en la variable cantidad. La asignacin del clculo del importe, se coloca en el programa exactamente igual como est en el diagrama, y por ltimo, para mostrar el resultado obtenido, se utiliza la instruccin c.println(), con la variable que se quiere mostrar dentro de los parntesis. Para finalizar el programa, se coloca otra llave, pero observar, que esta es de cierre, mientras que la inicial es de apertura. Para comenzar a tipear el programa, se debe previamente indicarle a Java con que paquete de librerias se va a trabajar, esto se consigue con la instruccin: import hsa.Console; que le indica a Java que importe la librera de clases hsa.Console. Esta librera contiene las funciones y mtodos apropiados de Entrada y Salida. Se debe tener en cuenta adems, que en Java, todo programa es una clase y por lo tanto debe llevar un nombre que debe comenzar en Maysculas y es precisamente con ese nombre como debe ser grabado en el disco.

Programacin I Telecomunicaciones

- 15 -

El programa una vez tipeado y grabado, quedar de la siguiente forma:

En este caso, a la clase se le di el nombre de Ejemplo1. La instruccin: static Console c ; se realiza para poder utilizar los mtodos de Entrada y Salida (readInt, readFloat, println) con el objeto c, mas adelante, se explicar en mayor medida esta lnea. La lnea: public static void main(String arg[]) es la cabecera del programa principal. Todos los programas que realicemos por el momento comenzarn de la misma forma. El inicio del programa empieza definiendo las variables a utilizar, en este caso, las variables precio e importe son definidas de tipo float y la cantidad de tipo int. Se define la variable como un objeto de la Console, por lo tanto, estar capacitada para acceder a los mtodos de entrada y salida. La lnea: c.print (ingrese Precio: ); no figura en el diagrama, pero es necesario colocarla para que la computadora, antes de detenerse pidiendo un dato con la lnea: precio - 16 = c.readFloat();

Programacin I Telecomunicaciones

muestre la leyenda correspondiente para ingresar el precio. Las dems lneas, continan secuencialmente, de acuerdo con el diagrama de flujo. La instruccin: println();

Se utiliza para dejar un rengln en blanco entre los datos introducidos y el resultado que nos entrega la computadora. Observar, que para realizar la impresin del resultado, se ha colocado una leyenda y al lado la variable correspondiente separadas por un signo mas ( + ). Este signo, al utilizarlo con constantes o variables de tipo String realiza la concatenacin de los elementos, es decir, que en este caso, va ha producir la unin entre leyenda El importe a abonar es: con el valor que le corresponde a la variable importe. Una vez realizado codificado el programa, se lo debe ejecutar, para ello se accede al botn [Run (F1)], que realiza la compilacin del programa y posteriormente la ejecucin. Compilar en programa, significa traducir cada una de las lneas escritas en Java, a un lenguaje entendible por la computadora. Si la traduccin no registra ningn error, se observar una pantalla de salida del programa, como se muestra en la siguiente figura:

En caso de haber errores en las lneas tipeadas, el programa no se ejecutar, y se mostrar ms reasaltada la lnea en la cual se detect el error, indicndose el tipo de error en la parte inferior de la ventana. Codificacin del ejemplo nmero 2: Hallar la superficie de un cuadrado conociendo el valor de uno de sus lados. Inicio lado superficie = lado * lado { lado = c.readFloat();

superficie = lado * lado

superficie

c.println(La superficie es: + superficie);

Fin

} Programacin I Telecomunicaciones - 17 -

Ejemplo Nro. 3 : Ingresar tres nombres con sus respectivas altura determinar e imprimir, la altura promedio.

y

Inicio

n1, a1

n2, a2

En el smbolo de introduccin de datos, se pueden colocar ms de una variable, pero se debe tener en cuenta que por cada variable, se debe tener una instruccin read en el programa. En este caso ser:

n3, a3 n1 = c.readLine(); a1 = c.readInt(); promedio = (a1 + a2 + a3) / 3

promedio

Nota: para pedir in dato de tipo String, se utilizar la instruccin c.readLine(), que significa leer una linea.

Fin

- 18 -

Programacin I Telecomunicaciones

El programa del ejemplo 3, sera el siguiente: import hsa.Console; class Ejemplo3 { static Console c; public static void main(String arg[]) { String n1, n2, n3; float a1, a2, a3; float promedio; c = new Console(); c.print("Ingrese primer nombre: "); n1 = c.readLine(); c.print("Ingrese su altura: "); a1 = c.readFloat(); c.print("Ingrese segundo nombre: "); n2 = c.readLine(); c.print("Ingrese su altura: "); a2 = c.readFloat(); c.print("Ingrese tercer nombre: "); n3 = c.readLine(); c.print("Ingrese su altura: "); a3 = c.readFloat(); promedio = (a1 + a2 + a3)/3; c.println(); c.println("La altura promedio es: " + promedio); } }

Programacin I Telecomunicaciones

- 19 -

Ejercicios Propuestos1.1 Calcular el sueldo mensual de un operario conociendo la cantidad de horas trabajadas y el valor por hora. 1.2 Realizar el ingreso de dos nmeros por teclado e imprimir su suma y su producto. 1.3 Ingresar la base y la altura de un tringulo, imprimir posteriormente la superficie del mismo. (Recordar que la superficie de un triangulo es base por altura sobre 2). La frmula sera: superficie = b * h / 2 ; 1.4 Ingresar el nombre de un artculo con su respectivo precio. Imprimir el importe a pagar si recibe un descuento del 12 % por abonarlo de contado.

- 20 -

Programacin I Telecomunicaciones

UNIDAD N 1: Estructuras condicionales.

TEMAS: Estructuras condicionales Operadores relacionales. Condicional Simple y compuesta.

Clase

2

Clase Nmero: 2

Estructuras CondicionalesEn algunos casos, se pueden presentar condiciones que influyen sobre la secuencia de pasos a seguir para resolver un problema. Segn se cumplan o no determinadas condiciones, la secuencia de pasos a seguir puede continuar por caminos diferentes. En este caso, estamos frente a Estructuras Condicionales, que son las que determinan cual ser el camino a seguir, de acuerdo a una determinada condicin. En diagramacin, la estructura condicional se representa con un rombo de la siguiente manera:

Falso Condicin

Verdadero

Sentencia 1; Sentencia 2; : Sentencia n;

Se puede observar que la estructura tiene una entrada y dos salidas, por el Falso y por el Verdadero. Si la condicin en su interior resulta verdadera, el programa continuar ejecutando las sentencias 1, 2, n. Por el contrario, si la condicin resulta Falsa, no se ejecutan dichas sentencias.

Se debe tener en cuenta que luego de procesar el bloque de sentencias del lado Verdadero, el camino en el diagrama se junta con el Falso y contina por una sola trayectoria.

Programacin I Telecomunicaciones

- 21 -

Esta fraccin de diagrama realizada anteriormente, recibe el nombre de Estructura Condicional Simple, porque hay actividades a realizar nicamente por el camino del verdadero. En programacin en lenguaje Java, se conoce a la estructura condicional con el nombre de if, que significa s, por lo tanto, se puede leer el diagrama anterior de la siguiente forma: S la condicin resulta verdadera, realizar el bloque de sentencias de la derecha, en caso contrario, no realizar ninguna actividad . Traducido a lenguaje Java, las instrucciones quedaran como: if (Condicin) { Sentencia 1; Sentencia 2; Sentencia n; }

Operadores RelacionalesEl contenido de una variable puede ser igual, mayor o menor que el contenido de otra variable. Para ello, se utilizan unos smbolos llamados Operadores Relacionales. Estos operadores son los mismos que se utilizan en matemtica, pero con alguna diferencia en su escritura. A continuacin, se describen los operadores relacionales en matemtica, y su escritura en lenguaje Java:

DescripcinIgual Mayor Menor Mayor o Igual Menor o Igual Distinto o No Igual

En Matemtica= > <

En Java== > < >= 5000

Verdadero

descuento = sueldo * 10 / 100

sueldoACobrar = sueldo descuento

sueldoACobrar

Fin import hsa.Console; class Ejemplo4 { static Console c; public static void main(String arg[]) { float sueldo, descuento, sueldoACobrar; c = new Console(); c.print("Ingrese Sueldo: "); sueldo = c.readFloat(); descuento = 0.0f; if (sueldo > 5000) { descuento = sueldo * 10 / 100; } sueldoACobrar = sueldo - descuento; c.println(); c.println("El sueldo a cobrar es: " + sueldoACobrar); } }

Programacin I Telecomunicaciones

- 23 -

En este caso, se inicializa la variable descuento en cero, tener en cuenta que para inicializar una variable de tipo float, se le debe colocar la letra f al final del dato, para indicar que es una constante de tipo float, luego, si el sueldo es superior a 5000 se le realiza el clculo del descuento. Por ltimo, se imprime el sueldo a cobrar. Ejemplo Nro. 5 : Ingresar dos valores de longitud de tipo float, y calcular su promedio. Si el promedio es menor a 10 metros, incrementarlo en 2 metros. Por ltimo, imprimir el valor de dicho promedio.

Inicio

valor1

valor2

promedio = (valor1 + valor 2) / 2

Falso promedio < 10

Verdadero

promedio = promedio + 2

promedio

Fin

La nica instruccin nueva en este diagrama es la asignacin: promedio = promedio + 2 esta asignacin indica que a la variable promedio se le asigne el valor que tena promedio anteriomente mas 2. Esto es de la siguente manera, se realiza en primer medida el clculo de la suma (promedio + 2) y al resultado, se lo reasigna nuevamente a la variable promedio. - 24 Programacin I Telecomunicaciones

La codificacin del ejemplo 4 sera: import hsa.Console; class Ejemplo5 { static Console c; public static void main (String arg []) { float valor1, valor2, promedio; c = new Console (); c.print ("Ingrese Primer Valor: "); valor1 = c.readFloat (); c.print ("Ingrese Segundo Valor: "); valor2 = c.readFloat (); promedio = (valor1 + valor2) / 2; if (promedio < 10) { promedio = promedio + 2; } c.println (); c.println ("El resultado es: " + promedio); } }

Estructura Condional CompuestaCuando se presenta la eleccin, se t iene la opcin de realizar una actividad u otra. Es decir que puede haber actividades tanto por el verdadero como por el falso de la condicin. Lo ms importante que hay que tener en cuenta, es que NUNCA se realizan las dos actividades simultneamente, siempre una o la otra. El esquema del diagrama sera el siguiente:

Falso

Condicin

Verdadero

Actividades a realizar, si la condicin resultara falsa

Actividades a realizar, si la condicin resultara verdadera

Programacin I Telecomunicaciones

- 25 -

La codificacin de esta fraccin de diagrama en lenguaje Java seria de la siguiente forma: if ( Condicin ) { Sentencia1 Sentencia2 } else { SentenciaX SentenciaZ }

; ;

Actividades a realizar si la condicin es falsa

; ;

Actividades a realizar si la condicin es verdadera

Si la condicin resultara verdadera, se procesaran las Sentencia1 y la Sentencia2, en caso contrario, se procesaran las SentenciaX y la SentenciaZ. Cada vez que se debe realizar alguna actividad por el lado del falso, se debe colocar la instruccin else en el programa. Ejemplo Nro. 6 : Relizar un programa que permita ingresar dos nmeros distintos y que muestre cual es el mayor de ellos.

Inicio

n1

n2

Falso

n1 > n2

Verdadero

El mayor es: + n2

El mayor es: + n1

Fin

- 26 -

Programacin I Telecomunicaciones

Desarrollo del programa: import hsa.Console; class Ejemplo6 { static Console c; public static void main (String arg []) { int n1, n2; c = new Console (); c.print ("Ingrese Primer numero: "); n1 = c.readInt (); c.print ("Ingrese Segundo numero: "); n2 = c.readInt (); c.println (); if (n1 > n2) { c.println ("El mayor es: " + n1); } else { c.println ("El mayor es: " + n2); } } }

Operador %Para saber si un nmero es par o impar, se utiliza el operador devuelve el resto de una divisin, por ejemplo: 4%2=0 7%2=1 16 % 2 = 0 21 % 2 = 1 En estos ejemplos se tiene que: El resto de la divisin del numero 4 con el nmero 2 es igual a cero, lo mismo se puede observar que el resto de cualquier nmero par con el valor 2 es cero.

%, que

Ejemplo Nro. 7 : Desarrollar un programa para determinar si un nmero ingresado por teclado es par o impar.

Se puede realizar una estructura condicional que en su interior tenga la condicin: ( n % 2 == 0 ), en donde la variable n contiene el nmero que se quiere determinar si es par o impar. En este caso, se tendr que si el resultado de la condicin es verdadero, el nmero ser par, de lo contrario, ser impar. En la siguiente pgina, se observa el diagrama de flujo y programa correspondiente.

Programacin I Telecomunicaciones

- 27 -

Inicio

n

Falso

n % 2 == 0

Verdadero

El nmero es impar

El nmero es par

Fin

import hsa.Console; class Ejemplo7 { static Console c; public static void main (String arg []) { int n; c = new Console (); c.print ("Ingrese un numero: "); n = c.readInt (); c.println (); if (n % 2 == 0) { c.println ("El numero es Par"); } else { c.println ("El numero es Impar"); } } }

- 28 -

Programacin I Telecomunicaciones

Operadores LgicosLos operadores Lgicos se utilizan cuando se presentan problemas en donde se deben evaluar dos o mas condiciones en una misma estructura. Los operadores Lgico mas utilizados son los siguientes:

Operador Y (And) O (Or) No (Not)

Nomenclatura && || !

Ejemplos ( sueldo > 4000 && antigedad < 10) ( edad > 21 || dni > 25000000 ) ( ! existe )

Significado de los ejemplos de la tabla anterior: ( sueldo > 4000 && antigedad < 10): Indica que la condicin ser verdadera si se verifican que las dos condiciones son verdaderas, esto es lo que especifica el smbolo &&. ( edad > 21 || dni > 25000000 ): En este caso, verificndose una de las dos condiciones como verdadera, edad>21 dni>25000000, toda la condicin ser verdadera. ( ! existe ) : Esta Condicin contiene un tipo de variable particular: el tipo boolean

Tipo booleanUna variable definida de tipo boolean, puede contener nicamente las constantes true o false, es decir, puede ser verdadera o falsa. En el ejemplo anterior, en la instruccin (!existe), el signo de admiracin niega o invierte todo lo que est a la derecha del mismo, por lo tanto, si la variable existe contiene true, la lnea (!existe) quedar como false, y viceversa.

Utilizacin de los operadores lgicosEjemplo Nro. 8 : Desarrollar un programa que permita ingresar el da y el mes de una fecha, y que muestre si corresponde a navidad. En este caso, se deber tener una condicin doble que indique que el da sea 25 y que adems, el mes corresponda a diciembre (12). El diagrama y programa correspondiente, puede observarse en la prxima pgina.

Programacin I Telecomunicaciones

- 29 -

Inicio

dia

mes

Falso

dia == 25 && mes == 12

Verdadero

No corresponde a Navidad

Corrsponde a Navidad

Fin

import hsa.Console; class Ejemplo8 { static Console c; public static void main (String arg []) { int dia, mes; c = new Console (); c.print ("Ingrese dia: "); dia = c.readInt (); c.print ("Ingrese mes: "); mes = c.readInt (); c.println (); if (dia == 25 && mes == 12) { c.println ("La Fecha corresponde a Navidad"); } else { c.println ("La Fecha no corresponde a Navidad"); } } }

- 30 -

Programacin I Telecomunicaciones

Ejemplo Nro. 9 : Elaborar un algoritmo que me muestre la edad de una persona: si es menor que 12 aos mostrar nio, si est entre 12 y 21 (ambos inclusive) mostrar joven, si es mayor que 21, mostrar adulto.

Inicio

edad

Falso

edad < 12

Verdadero

Nio

Falso

edad >= 12 && edad 21

Verdadero

Adulto

Fin

Programacin I Telecomunicaciones

- 31 -

El programa quedara resuelto de la siguiente forma:

import hsa.Console; class Ejemplo9 { static Console c; public static void main (String arg []) { int edad; c = new Console (); c.print ("Ingrese la edad: "); edad = c.readInt (); c.println (); if (edad < 12) { c.println ("Es un Nio"); } if (edad >= 12 && edad 21) { c.println ("Es un Adulto"); } } }

- 32 -

Programacin I Telecomunicaciones

Ejercicios Propuestos2.1 Ingresar un nmero por teclado en el rango de 0 a 99 y determinar si tiene uno dos dgitos. 2.2 Realizar un programa que lea por teclado dos nmeros, si el primero es mayor al segundo, informar su suma y diferencia, en caso contrario, informar el producto y la divisin del primero por el segundo. 2.3 Ingresar el largo y el ancho de una habitacin, y calcular su superficie. Si la superficie es mayor a 10, imprimir la leyenda Habitacin adecuada, de lo contrario, imprimir la leyenda Habitacin pequea. (Superficie = largo * ancho) 2.4 Ingresar una fecha por teclado, da mes y ao, y determinar si corresponde al primer trimestre del ao. Mostrarlo las leyendas: Corresponde al primer Trimestre o No corresponde al primer Trimestre, segn corresponda. 2.5 Ingresar el precio de un artculo y un cdigo que informe lo siguiente: Si el cdigo es 1, es porque se abona de contado. Si el cdigo es 2, es porque se abona con tarjeta. Imprimir el importe abonar teniendo en cuenta que: Si se abona de contado, se debe realizar un descuento del 5% del precio de venta. Si se abona con tarjeta, se debe realizar un incremento del 10 % del precio de venta. 2.6 Ingresar tres valores numricos por teclado, si todos son iguales, imprimir la leyenda: Todos los nmeros ingresados son iguales, de lo contrario, imprimir la leyenda No todos los nmeros son iguales. 2.7 Realizar un programa que permita ingresar el sueldo y los aos de antigedad de un operario y que informe el sueldo a cobrar, teniendo en cuenta lo siguiente: a) Si el sueldo es inferior a 4500 y su antigedad es superior o igual a 10 aos, otorgarle un aumento del 10%. b) Si el sueldo es inferior a 4500 y su antigedad es menor a 10 aos, otorgarle un aumento del 5%. c) Si el sueldo es mayor o igual a 4500, no realizarle ningn aumento. 2.8 Se debe ingresar tres nmeros por teclado, si al menos uno de los nmeros es menor a 10, imprimir la leyenda Alguno de los nmeros es menor a 10 de lo contrario, Ninguno de los nmeros es menor a 10. 2.9 Ingresar la altura de una persona e imprimir si es Baja, Normal o Alta, de acuerdo con las siguientes condiciones: Programacin I Telecomunicaciones - 33 -

a) Si la altura es menor a 1.60, es una persona baja. b) Si la altura est comprendida entre 1.60 y 1.75 (ambos inclusive), es una persona Normal. c) Si la altura supera a la medida de 1.75, es una persona Alta.

2.10 Ingresar una letra, y determinar si es una vocal o una consonante. Nota: para poder ingresar una letra, la variable debe ser definida de tipo char, y para pedir el dato, se lo debe realizar con la instruccin c.readChar().

Solucin del ejercicio 2.10

import hsa.Console; class PropuestoDos10 { static Console c; public static void main (String arg []) { char letra; c = new Console (); c.print ("Ingrese una Letra: "); letra = c.readChar (); c.println (); if (letra=='a' || letra=='A' || letra=='e' || letra=='E' || letra=='i' || letra=='I' || letra=='o' || letra=='O' || letra=='u' || letra=='U' ) { c.println ("Es una vocal"); } else { c.println ("Es una consonante"); } } } Observar que las variables de tipo char, se preguntan con el carcter entre apstrofes y no entre comillas.

- 34 -

Programacin I Telecomunicaciones

UNIDAD N 1: Estructuras condicionales.

TEMAS: Estructura condicional anidada. Instruccin Switch-Case

Clase

3

Clase Nmero: 3

Estructura Condicional AnidadaSe dice que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional. Ejemplo Nro. 10 : Ingresar un nmero y determinar si es positivo, negativo o nulo. Para saber si un nmero es positivo, simplemente se lo debe comparar con el cero, si el nmero en cuestin es mayor a cero, ser positivo y si es menor a cero ser negativo. Si no cumple con ninguna de las condiciones anteriores, ser nulo.

Inicio

numero

Falso

numero > 0

Verdadero

Nmero Positivo Falso Numero < 0 Verdadero

Nmero Nulo

Nmero Negativo

Fin

Programacin I Telecomunicaciones

- 35 -

import hsa.Console; class Ejemplo10 { static Console c; public static void main (String arg []) { int numero; c = new Console (); c.print ("Ingrese un numero: "); numero = c.readInt (); c.println (); if (numero > 0) { c.println ("El numero es Positivo"); } else if (numero < 0) { c.println ("El numero es Negativo"); } else { c.println ("El numero es Nulo"); } } }

Ejemplo Nro. 11 : Realizar un programa que lea por teclado tres notas de un alumno, y calcule el promedio, imprimiendo algunos de los siguientes mensajes: Si el promedio es mayor o igual a 7, mostrar Alumno Promocionado. Si el promedio es mayor o igual a 4 y adems, menor a 7, mostrar Alumno Regular. Si el promedio es menor a 4, mostrar Alumno Reprobado.

- 36 -

Programacin I Telecomunicaciones

Inicio

nota1, nota2, nota3

prom = (nota1 + nota2 + nota3) / 3

Falso

prom >= 7

Verdadero

Promocionado Falsoprom >= 4

Verdadero

Reprobado

Regular

Fin

En este ejemplo, se ingresan tres valores por teclado que representan las notas de un alumno y se obtiene el promedio sumando los tres valores y dividiendo por 3 dicho resultado. Primeramente se pregunta si el promedio es superior o igual a 7, en caso afirmativo por la rama del verdadero de la estructura condicional se muestra un mensaje que indique Promocionado (con comillas indicamos un texto que debe imprimirse en pantalla). En caso que la condicin sea Falsa, por la rama del Falso aparece otra estructura condicional, porque todava se tienen dos posibilidades, que el promedio del alumno sea superior o igual a cuatro, o tabin, se puede dar el caso de que sea inferior a cuatro. En la segunda condicin, se averigua si el promedio es mayor o igual a 4, si es verdadero, se imprime Regular y en caso contrario, se imprime Reprobado, ya que por descarte, el promedio es menor a 4. El programa se observa en la pgina siguiente:

Programacin I Telecomunicaciones

- 37 -

import hsa.Console; class Ejemplo11 { static Console c; public static void main (String arg []) { int nota1, nota2, nota3; float prom; c = new Console (); c.print nota1 = c.print nota2 = c.print nota3 = ("Ingrese c.readInt ("Ingrese c.readInt ("Ingrese c.readInt Primer nota: "); (); Segunda nota: "); (); Tercer nota: "); ();

prom = (float)(nota1 + nota2 + nota3) / 3; c.println (); c.println ("El promedio es: " + prom); if (prom >= 7 ) { c.println ("Alumno Promocionado"); } else if (prom >= 4) { c.println ("Alumno Regular"); } else { c.println ("Alumno Reprobado"); } } }

La nica instruccin nueva en este programa es la palabra (float) en la lnea: prom = (float)(nota1 + nota2 + nota3)/3; Esta palabra float encerrada entre parntesis, indica que se debe transformar el valor que figure al lado de ella en un valor de tipo float, debido a lo siguiente: Cada una de las notas son de tipo entero (int), y la suma de valores enteros en Java es otro entero, adems, la divisin de dos enteros, es tambin otro entero. Por lo tanto, si se ingresaran como ejemplo las notas: 7, 7 y 8 el promedio dara como resultado el valor de 7 (sin decimales) y no de 7.33, que sera lo correcto. Por este motivo, es que se coloca la palabra float delante de la suma de las notas, para transformar dicha suma en un valor de tipo float, y , al dividir un valor float con un entero, el resultado es un float, por lo tanto, ahora s dar el valor del promedio correcto con decimales.

- 38 -

Programacin I Telecomunicaciones

Ejemplo Nro. 12: Ingresar tres nmeros y determinar el mayor de ellos.

Inicio

n1

n2

n3

Falso

n1 > n2 && n1 > n3

Verdadero

El Mayor es: + n1 Falso n2 > n3 Verdadero

El Mayor es: + n3

El Mayor es: + n2

Fin

La lgica de este proceso sera la siguiente: Luego de ingresar los tres valores, se comienza preguntando se el primer nmero es mayor a los otros dos, esto se logra con una condicin doble utilizando el operador lgico and (&&). La condicin se lee de esta manera: Si el valor almacenado en n1 es mayor al valor almacenado en n2, y adems, el valor almacenado en la variable n1 es mayor al valor almacenado en la variable n3, entonces imprimir El Mayor es : n1, de lo contrario, (descartado que el valor de n1 es el mayor), se pregunta si el valor almacenado en n2 es mayor al valor almacenado en n3, que en caso de ser verdadero, se muestra que el Mayor es: n2 , de lo contrario se muestra El mayor es: n3. Programacin I Telecomunicaciones - 39 -

import hsa.Console; class Ejemplo12 { static Console c; public static void main (String arg []) { int n1, n2, n3; c = new Console (); c.print ("Ingrese Primer Numero: "); n1 = c.readInt (); c.print ("Ingrese Segundo Numero: "); n2 = c.readInt (); c.print ("Ingrese Tercer Numero: "); n3 = c.readInt (); c.println (); if (n1 > n2 && n1 > n3) { c.println ("El Mayor es: " + n1); } else if (n2 > n3) { c.println ("El Mayor es: " + n2); } else { c.println ("El Mayor es: " + n3); } } }

Se debe tener en cuenta que en la condicin doble: if (n1 > n2 && n1 > n3) Se deben cumplir obligatoriamente las dos condiciones independientes para que toda la condicin resulte verdadera (True en ingls). Esto es indicado por el signo and (&&). Si alguna de las dos no se cumple, toda la condicin resultar falsa (False en ingls).

- 40 -

Programacin I Telecomunicaciones

Actividades ActividadesEs de fundamental importancia realizar los diagramas de flujo y la posterior codificacin en Java, de los siguientes problemas: 3.1 Se deben ingresar tres valores por teclado, si todos son iguales imprimir la suma del primero con el segundo y a este resultado multiplicarlo por el tercero. Si no son iguales, mostrar una Leyenda. 3.2 Escribir un programa que pida ingresar las coordenadas de un punto en el plano, es decir dos valores enteros x e y. Posteriormente imprimir en pantalla en que cuadrante se ubica dicho punto.

y

1 Cuadrante: x > 0 2 Cuadrante: x < 0 3 Cuadrante: x < 0 4 Cuadrante: x > 0

, , , ,

y>0 y>0 y=75% y =50% y 0

Verdadero

Primer Cuadrante Falso x0 Verdadero

Falso

x > 0 && y > 0

Verdadero

Segundo Cuadrante

Cuarto Cuadrante

Tercer Cuadrante

Fin

Programacin I Telecomunicaciones

- 43 -

Actividad 3.3

Inicio Nota: La variable nombre, debe ser definida de tipo String, y para pedir un nombre, se lo debe hacer con la instruccin readLine(), de la siguiente manera: String nombre; c.print(Ingrese nombre); nombre = c.readLine();

nombre

total

correctas

por = correctas / total * 100

Falso

por >= 90

Verdadero

Nivel Superior Falso por >= 75 Verdadero

Falso

por >= 50

Verdadero

Nivel Medio

Fuera de Nivel

Nivel Regular

Fin

- 44 -

Programacin I Telecomunicaciones

La Actividad 3.4, es muy similar a la actividad 3.3. Queda como tarea a desarrollar por el alumno, el diagrama y programa.

Instruccin Switch - CaseLa instruccin switch() es una instruccin de decisin mltiple, donde el compilador prueba o busca el valor contenido en una variable con una lista de constantes ints o chars, cuando el computador encuentra el valor de igualdad entre variable y constante, entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a la instruccin default, aunque esta ltima instruccin es opcional. Existen numerosas simbologias sobre la instraccin switch para realizar un diagrama de flujo, pero la ms utilizada es la siguiente:

variable

Caso 1

Actividad 1; break;

Caso 2

Actividad 2; break;

Caso 3

Actividad 3; break;

Caso 4

Actividad 4; break;

Actividad por defecto

fin

Programacin I Telecomunicaciones

- 45 -

Ejemplo Nro. 13: Ingresar un nmero, y mostrar a que mes le corresponde.

Inicio

mes

mes

Caso 1

Enero

Caso 2

Febrero

Caso 11

Noviembre

Caso 12

Diciembre

No es Vlido

fin

Fin del switch

fin

Fin del programa

- 46 -

Programacin I Telecomunicaciones

import hsa.Console; class Ejemplo13 { static Console c; public static void main (String arg []) { int mes; c = new Console (); c.print ("Ingrese un Numero: "); mes = c.readInt (); switch (mes) { case 1: c.println break; case 2: c.println break; case 3: c.println break; case 4: c.println break; case 5: c.println break; case 6: c.println break; case 7: c.println break; case 8: c.println break; case 9: c.println break; case 10: c.println break; case 11: c.println break; case 12: c.println break; default: c.println break; } } } Explicacin: El programa comienza con la introduccin del nmero y luego se ingresa a la estructura de la instruccin switch.Esta instruccin es muy facil de seguirla, es este caso, si el mes es 1 se imprime la leyenda Corresponde a Enero, si el mes es 2, se imprime la leyenda Corresponde a Febrero y as sucesivamente. Observar que al finalizar cada lnea, se coloca una sentencia break. El uso del break en un switch es critico ya que si no se coloca, se continan evaluando los distintos valores restantes, e ingresando en cada una de las alternativas. Al final, se puede colocar la instruccin default, que es opcional, indicando que no corresponde a ninguna de las alternativas anteriores.

("Corresponde a Enero"); ("Corresponde a Febrero"); ("Corresponde a Marzo"); ("Corresponde a Abril"); ("Corresponde a Mayo"); ("Corresponde a Junio"); ("Corresponde a Julio"); ("Corresponde a Agosto"); ("Corresponde a Septiembre"); ("Corresponde a Octubre"); ("Corresponde a Noviembre"); ("Corresponde a Diciembre"); ("No Corresponde a un mes valido");

Programacin I Telecomunicaciones

- 47 -

Ejemplo Nro. 14: Determinar el sueldo que se deber abonar a un empleado, teniendo en cuenta que se le debe realizar un incremento, de acuerdo a la categora que pertenece. Se debe ingresar el sueldo basico y la categora. Inicio

sb

categoria

Categora 1 2 3 4

Incremento 20% 15% 10% 5%

categoria

categoria = 1

incremento = sb * 20 / 100

categoria = 2

incremento = sb * 15 / 100

categoria = 1

incremento = sb * 10 / 100

categoria = 1

incremento = sb * 5 / 100

incremento = 0

Fin del switch

sueldo = sb + incremento

sueldo

Fin

- 48 -

Programacin I Telecomunicaciones

import hsa.Console; class Ejemplo14 { static Console c; public static void main (String arg []) { float sb; // Sueldo Basico float incremento, sueldo; int categoria; c = new Console (); c.print ("Ingrese Sueldo Basico: "); sb = c.readFloat(); c.print ("Ingrese Categoria: "); categoria = c.readInt (); switch (categoria) { case 1: incremento = sb * 20 /100; break; case 2: incremento = sb * 10 /100; break; case 3: incremento = sb * 15 /100; break; case 4: incremento = sb * 5 /100; break; default : incremento = 0; break; } sueldo = sb + incremento; c.println("El sueldo a cobrar es: " + sueldo); } }

ComentariosEn el programa anterior, se agregaron dos barras inclinadas al lado del la sentencia float sb. Estas dos barras inclinadas se utilizan para colocar comentarios en el programa. Los comentarios no son tenidos en cuenta por el compilador, y pueden colocarse en cualquier lugar del programa. Se utilizan para hacer una determinada acotacin, observacin o nota en el programa. Comentarios de varias lneas: Para colocar un comentario de varias lneas en el programa, se utilizan los smbolos: /* y */ para abrir y cerrar un comentario. Ejemplo: /* Esto es un comentario de tres lineas en el progama desarrollado. */

Programacin I Telecomunicaciones

- 49 -

En algunos casos, se desea realizar una misma actividad para varias alternativas, es este caso, se colocan cada altenaviva sin la sentencia break, y a la ltima alternativa de una determinada actividad, se le coloca el break. Ejemplo Nro. 15: Ingresar una fecha, y determinar cuantos das le corresponden al mes de esa fecha. (Se deber imprimir: 28,29, 30 o 31).

import hsa.Console; class Ejemplo15 { static Console c; public static void main (String arg []) { int dia, mes, anio, cantidad; c = new Console (); c.print ("Ingrese dia: "); dia = c.readInt (); c.print ("Ingrese mes: "); mes = c.readInt (); c.print ("Ingrese anio: "); anio = c.readInt (); cantidad = 0; switch (mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: cantidad = 31; break; case 4: case 6: case 9: case 11: cantidad = 30; break; case 2: if ( ((anio%4 == 0) && !(anio%100 == 0)) || (anio % 400 == 0) ) cantidad = 29; else cantidad = 28; break; } c.println(); c.println("Al mes de esa fecha, le coresponden: " + cantidad + " dias"); } }

- 50 -

Programacin I Telecomunicaciones

En este caso, para las alternativas 1, 3, 5, 7, 8, 10 y 12 se le asigna a la variable cantidad el valor de 31, luego, para las alternativas 4, 6, 9 y 11, se le asigna a la variable cantidad el valor de 30. Por ltimo, si la alternativa es 2, se pregunta si el ao es bisiesto, que en caso de ser verdadero, se le asigna a la cantidad el valor de 29, de lo contrario, se le asigna 28. Al final se imprime la variable cantidad.

Ejercicios Propuestos3.1 Ingresar un nmero de hasta 5 cifras, y determinar cuantos digitos tiene. 3.2 Ingresar los sueldos de 4 empleados, y calcular el promedio de ellos. Se deber imprimir una leyenda que indique si el promedio est por encima o por debajo del Nivel de Pobreza. Este valor de Nivel de Pobreza, tambin deber ser ingresado por teclado. 3.3 Escribir un programa en el cual: dada una lista de tres valores numricos distintos se calcule e informe su rango de variacin (debe mostrar el menor y el mayor de ellos). Ejemplo: Si se introducen los nmeros: 8 , 2 y 5 La impresin debera ser: Rango = [2..8]

3.4 Leer un valor entero. Mostrar el nmero de da que corresponde a ese valor. Suponer que 0 corresponde a domingo, se debe mostrar el nombre del da que le corrresponde. Ejemplo:Ingrese nmero de da: 4 Corresponde al da: Jueves

3.5 Obtener un algoritmo que determine el Sueldo Neto a cobrar por un empleado ingresando el Sueldo Bsico y su antigedad. Tener en cuenta que al Sueldo Bsico debe realizarse aumento por antigedad segn los siguiente: Hasta 5 aos un 3% Entre 5 y 10 aos un 5% Ms de 10 aos un 8%

En todos los casos se practica un descuento del 10% en concepto de aportes. 3.6 Ingresar 4 nmeros y mostrar el mayor de ellos.

Programacin I Telecomunicaciones

- 51 -

3.7 Ingresar 3 nmeros y realizar lo siguiente: Si los tres son iguales, imprimir el cubo de ellos. Si dos son iguales, imprimir el cuadrado de ellos. Si todos son distintos, imprimir la leyenda: Todos son distintos.

3.7 Ingresar dos ngulos de un tringulo y determiner a que tipo de tingulo corresponde (Equiltero: 3 ngulos iguales, Issceles: 2 ngulos iguales, Escaleno: todos los ngulos desiguales). Ejemplo: Ingrese un ngulo: 40 Ingrese otro ngulo: 70 Corresponde a un Tringulo Isosceles

3.8 Ingresar el precio de una prenda y la categora a la que pertenece. Se deber imprimir el importe a pagar, teniendo en cuenta el porcentaje a incrementar, de acuerdo a su categora: Categora B C D Porcentaje 5% 8% 10% 12%

3.9 Imprimir el importe que deber abonar una persona por el alquiler de un vehculo, ingresando el tipo de vehiculo y la cantidad de das, sabiendo lo siguiente: Tipo de Vehculo 1 2 3 4 Caracterstica Sedan 4 puertas Coupe Pick up 4x4 Precio por da $ 80 $ 100 $ 120 $ 150

Ejemplo: Ingrese Tipo de Vehiculo: 2 Ingrese cantidad de das: 5 Importe a abonar: $ 500

- 52 -

Programacin I Telecomunicaciones

UNIDAD N 2: Estructuras Repetitivas.

TEMAS: Estructuras Repetitivas Estructura While Contadores - Acumuladores.

Clase

4

Clase Nmero: 4

Estructura RepetitivaUna estructura repetitiva permite ejecutar una instruccin o un conjunto de instrucciones varias veces, dependiendo de una condicin que sea falsa o verdadera. Si la condicin que determina la ejecucin de las instrucciones es siempre verdadera, estamos en presencia de un ciclo repetitivo infinito. Dicha situacin es un error de programacin, porque nunca finalizara un programa.

Estructura WhileEs un tipo de estructura repetitiva en donde la condicin que repetir las instrucciones, se encuentra al principio de la misma. Su smbolo en diagramacin es el siguiente:

CondicionVerdadero

Falso

Sentencia1; Sentencia2; : SentenciaN;

While, significa Mientras, y en el diagrama de la estructura se puede observar que mientras la condicin sea Verdadera, se procesarn las Sentencias indicadas, de lo contrario, si la condicin es falsa, sale del ciclo repetitivo y contina con la secuencia de instrucciones fuera del ciclo. Cabe hacer notar, que si la condicin es falsa de entrada, no se procesarn las sentencias indicadas ni una sola vez.

Programacin I Telecomunicaciones

- 53 -

ContadoresUn contador, es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o accin. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle. Deben realizar una operacin de inicializacin y posteriormente sucesivos incrementos o decrementos del mismo. La inicializacin consiste en asignarle al contador un valor. Se situar antes y fuera del ciclo repetitivo. Es decir que se utilizan para llevar el control del nmero de ocasiones en que se realiza una operacin o se cumple una condicin. Los incrementos son generalmente de uno en uno, pero puede haber contadores de dos en dos, tres en tres, etc. La simbologa es la de asignacin, o sea, un rectngulo, como por ejemplo: i=i+1 En esta asignacin, se establece que a la variable i, se le debe asignar el valor que resulte de sumar el valor que tena la variable anteriormente, mas uno. Por lo tanto, el computador tomar el valor que tiene la variable i, le sumar uno, y volver a almacenar el resultado en la misma variable i. Es decir, que independientemente del valor que tenga la variable i, cada vez que se procese esta instruccin, se incrementar en uno el valor de la variable. Ejemplo Nro. 16: Imprimir todos los nmeros del 1 al 100 Inicio Valor Inicial

i=1 Valor FinalFalso

i