Beruflich Dokumente
Kultur Dokumente
Para la representacin de algoritmos se debe utilizar algn mtodo que permita la independizacin del lenguaje de programacin elegido para su ejecucin. Para conseguir este objetivo se precisa que el algoritmo sea representado grficamente o numricamente. Los mtodos ms utilizados para la representacin de algoritmos son: Diagramas de Flujo Diagrama NassiSchneiderman (NS) Lenguaje de especificacin de algoritmos (Pseudocdigo)
III.1. Simbologa Diagramas de Flujo EL diagrama de flujo (Flowchart) es una de las tcnicas de representacin de algoritmos ms antigua y a la vez ms utilizada. Un diagrama de flujo (DF) es un diagrama que utiliza cajas y lneas que indican el flujo de la informacin.
Smbolo
Funcin Inicio/Fin. Comienzo y ltimo smbolo de los diagramas de flujos. Entrada. Se especifican los datos de entrada del algoritmo.
Smbolo
Proceso. Se especifica cualquier tipo de operacin expresin matemticas (calculo, almacenamiento, transferencia) Conector. Enlaza diferentes partes del diagrama de flujo Fechas. Indican el flujo de datos en el algoritmo
El diagrama NS tambin conocido como diagrama Chapin, es semejante al DF pero sin flechas de direccin, por lo cual utiliza un rectngulo para representar los pasos del algoritmo.
Pseudocdigo Esta tcnica es una combinacin entre lenguaje natural y lenguaje de alto nivel. Inicio Accin 1 Accin 2 Accin n Fin III.2. Reglas para la construccin de diagramas Diagramas de Flujo Los diagramas de flujo comienzan con el smbolo de inicio/fin indicando el comienzo del diagrama:
Inicio
Y terminan con el smbolo de inicio/fin indicando el trmino del diagrama:
Fin
Entre los smbolos de inicio/fin se ponen las acciones (asignacin, proceso, entrada, salida, etc.) que forman parte del diagrama.
Fin
, , , etc.
Diagrama NassiSchneiderman (NS) Para este tipo de diagrama se utiliza un rectngulo, en el cual comienza con la leyenda Inicio y termina con la leyenda Fin. Entre estos dos recuadros de desarrolla el contenido del algoritmo.
Inicio
Leer Radio
Leer Radio
Superficie= *Radio^2
Superficie= *Radio^2
Longitud=2* *Radio
Longitud=2* *Radio
Superficie, Longitud
Fin
Fin
III.3. Pseudocdigo En este tipo de representacin se comienza con la leyenda Inicio y termina con Fin y entre los trminos de comienzo y terminacin se escribe el desarrollo del algoritmo. Inicio Leer Radio Superficie= *Radio^2 Longitud=2* *Radio Imprimir Superficie, Longitud Fin Ejercicios: 1. Calcule el salario neto de un trabajador a partir de la lectura del nombre, horas trabajadas, precio por hora y el clculo de impuesto son el 25% del salario bruto (horas trabajadas por precio por hora). Como resultado final imprima el nombre, salario bruto, impuestos y salario neto. 2. Obtenga la superficie de un triangulo
3. Obtenga el total a pagar aplicando un descuento del 5%. 4. Obtenga los valores de X1 y X2 para resolver ecuaciones de segundo grado:
5. De los valores a y b, obtenga cuantas veces cabe el valor b en el valor a. 6. Obtenga la suma de los nmeros del 1 al 100. 7. Elabore un algoritmo que lea dos valores y los intercambie.
Estructura selectivas Las estructuras selectivas se utilizan para forma decisiones lgicas. En las estructuras se evala una condicin y en funcin del resultado se puede realizar una accin u otra.
Diagrama NS
Falso
1. La tienda Artculos de Limpieza S.A. de C.V. realiza un descuento del 5% a todas las compras mayores a 2500.00 pesos. Elabore un algoritmo que resuelva este problema. 2. La empresa Electrnica Digital desea un programa que determine si una persona es solvente econmicamente en base a los ingresos y los gastos; si los ingresos son mayores a los gastos la persona es solvente. Elabore un algoritmo que resuelva este problema. 3. En la clnica Salud Eterna desean un programa que determine si una persona esta enferma en base a su temperatura corporal; si la temperatura corporal es mayor a 36.5 el programa debe mandar un mensaje que diga Enfermo. Estructuras selectivas dobles Diagrama de Flujo Diagrama NS
Condicin Verdadero
Accin 2
Verdadero Condicin
Accin 1
Falso
Falso Accin 2
Accin 1
4. Escriba un algoritmo que calcule el total a pagar en una tienda departamental, si la compra excede de 15,000 pesos se concede un descuento del 10%, en caso contrario el descuento es del 5%. 5. Elabora un algoritmo que en base a dos nmeros imprima el mayor. 6. Elabore un algoritmo que en base a tres nmeros imprima el mayor. 7. Elabore un algoritmo que en base a cuatro nmeros, los imprima en forma descendente. Estructuras de seleccin mltiple En la vida se presentan problemas en los cuales presentan ms de dos alternativas como posibilidades y eso se soluciona con estructuras de seleccin mltiple. Diagrama de Flujo
Otro Caso
Selector 1 2
Accin 1
Accin 2
Accin n
Accin OC
Diagrama NS
Selector Verdadero
1 2 n Otro Caso
Accin 1
Accin 2
Accin n
Accin OC
Pseudocdigo Segn sea Selector hacer 1: Accin 1 2: Accin 2 n: Accin n En otro caso: Accin OC Fin Segn
8. Elabore un algoritmo que en base al nmero del mes imprima el mes correspondiente como cadena de caracteres. 9. Elabore un algoritmo que en base a un nmero (entre 10 y 20) imprima su valor con letra. 10. Elabore un algoritmo que en base al nmero de da de la semana imprima que da es. Estructuras de repeticin Cuando se requiere que un conjunto de instrucciones se repita varias veces se utiliza las estructuras de repeticin. Diagrama de Flujo For/Next
Inicio
While/Mientras
No Condicin
Proceso
Inc/Dec Si
Proceso
Repeat/Repite
While/Mientras
While Condicin
Proceso
Proceso
Inc/Dec
Repeat/Repite
Proceso
Repeat Condicin
Pseudocdigo For/Next Para I = VI Hasta VF [Inc Valor/Dec Valor] Proceso Fin Para Repeat/Repite Repite Proceso Hasta Condicin While/Mientras Mientras Condicin Proceso Fin Mientras
11. Elabore un algoritmo que lea 10 calificaciones e imprima el promedio. 12. Elabore un algoritmo que lea dos nmeros e imprima la serie de nmeros que existe entre el nmero menor a el nmero mayor. 13. Elabore un algoritmo que lea una serie de valores e imprima el valor ms grande de la serie. El fin de la serie esta denotado por el valor 9999. 14. Calcular la media de una serie de nmeros positivos. El valor cero como entrada indican que se ha finalizado la serie de nmeros positivos.
Producto de Aprendizaje 3.1: De los siguientes problemas elabore su correspondiente algoritmo. 1. Obtenga el cuadrado de 243 2. Obtenga el permetro y la superficie de un cuadrado 3. Obtenga la suma de dos nmeros 4. Obtenga el permetro de un rectngulo 5. Obtenga la hipotenusa de un triangulo rectngulo 6. Obtenga el rea y el volumen de un cilindro
Donde:
9. Dado x numero de metros convertirlos a pies y pulgadas (1 metro = 39.37 pulgadas, 1 pie = 12 pulgadas) 10. Una tonelada mtrica equivale a 35,273.92 onzas. Elabore un algoritmo que lea el peso de un paquete de cereal para el desayuno en onzas y que obtenga como salida el nmero de cajas necesarias para llenar una tonelada mtrica de cereal, as como deber proporcionar cuantas onzas sobran. El algoritmo deber permitir al usuario repetir este proceso las veces que desee. 11. Dado tres nmeros, determinar si la suma de cualquier pareja de ellos es igual al tercer nmero. Si se cumple la condicin, escribir iguales en caso contrario Distintos. 12. Elabore un algoritmo lea 3 calificaciones de la materia de Fundamentos de Programacin y determine si el alumno Aprobado o Reprobado en base a su promedio.
13. Elabore un algoritmo que en base a un valor numrico determine si es Alto o Bajo. Si el nmero es mayor a 100 imprima Alto, en caso contrario imprima Bajo. 14. Elabore un algoritmo que lea 4 nmeros e imprima el mayor de ellos. 15. Elabore un algoritmo que lea un nmero e imprima sus dgitos en forma individual: Ejemplo: Dame un nmero? 7539 9 3 5 7 16. Obtenga el salario de un obrero en base a las horas extras trabajadas. El salario se calcula sumando al sueldo base las horas extra. El sueldo base es equivale a $450.00 y las horas extra se calculan en base a la siguiente tabla: 1 a 10 hrs 11 a 12 hrs 21 y ms hrs $11.50 $ 13.00 $ 15.00
17. Elabore un algoritmo que lea un nmero decimal e imprima su representacin en binario. 18. Elabore un algoritmo que lea un nmero e imprima su factorial. Ejemplo: 5 = 5 * 4 * 3 * 2 * 1 = 120 Nota: El factorial de 0 (cero) por notacin es 1. III.4. Tipos de datos y expresiones Tipos de datos Existen dos grupos de tipos de datos: Simples (bsicos, primitivos, sin estructura) Compuestos (Estructurados, Complejos)
Dentro de los tipos de datos Simples se encuentran: Numricos o Enteros 5, 15, 1350, 50000, etc. o Punto Flotante (Reales) 0.00008, 3.7452, 8.72, 370000.0, etc.
En aplicaciones cientficas se requiere una notacin especial para manejar nmeros muy grandes (como la masa de la tierra) o muy pequeos (como la masa de un electrn) esta notacin es llamada notacin exponencial o notacin cientfica: 367 520 100 000 000 000 00 0.000 000 000 030 257 3.675201E+20 3.0257E11
Lgicos (Booleanos) Los datos tipo lgico es aquel que solo puede tomar dos valores: Verdadero (True) Falso (False) Carcter (Char) El tipo de datos carcter es un conjunto finito y ordenado de caracteres. Un dato tipo carcter contiene un solo carcter. Un carcter se delimita por comillas sencillas: A, a, 1, $, etc. Los grupos de caracteres son los siguientes: o o o Caracteres alfabticos: A, B,,Z, a, b,,z Caracteres numricos: 0, 1, 2,,9 Caracteres Especiales: +, , /, *, ^, ., ;, <, >, $, #, etc.
Y dentro los Compuestos o Estructurados se encuentran: Cadena de caracteres (String) Una cadena de caracteres es una sucesin de caracteres que se encuentra delimitado por comillas dobles: Hola Mundo 30 de septiembre de 2010 Esta es una cadena de caracteres llamada tambin String Clases (Class) Arreglos (Array) Registros (Records) Listas (LinkerList) Conjuntos (Set) rboles (Tree) Grafos (Graph) Abstractos (Abstract) Archivos (Files)
En la siguiente tabla presentamos los 8 tipos de dato primitivos de Java, el nmero de bits que ocupan y el rango de valores que pueden tomar.
Tamao en bits 1 16 8 16 32 64
Rango de valores true o false Nota: El No. de bits puede variar segn la plataforma \u0000 hasta \uFFFF' Conjunto Unicode de ISO 128 a +127 27 a 27 1 32,768 a +32,767 215 a 215 1 2,147,483,648 a +2,147,483,647 231 a 231 1 9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 263 a 263 1 Rango negativo: 3.4028234663852886E+38 hasta 1.40129846432481707E45 Rango positivo: 1.40129846432481707E45 hasta 3.4028234663852886E+38 Rango negativo: 1.797693134862157E308 hasta 4.94065645841246544E324 Rango positivo: 4.94065645841246544E324 hasta 1.797693134862157E308
float
32
double
64
Tokens elementos lxico de los programas Existen 5 clase de tokens: identificadores, palabras reservadas, literales, operadores y otros. Identificadores Los identificadores pueden representar variables, constantes, mtodos, nombres de archivos, etc. Diagrama de contexto de los identificadores:
Regla para formar un identificador: 1. Debe comenzar por una letra 2. Despus de la 1er. Letra puede contener letras, dgitos o guin de piso 3. No estn permitidos los espacios en blanco 4. No deben formar palabras reservadas 5. Java es sensibles a las maysculas y minsculas 6. En Java la longitud de los identificadores no tiene lmite. Expresiones Las expresiones son combinaciones de constantes, variables, operadores, operandos, parntesis, funciones, etc.
Constante Operando
Funcin
a (b 3 ) c
Variable
Expresiones aritmticas Las expresiones aritmticas son anlogas a las expresiones matemticas. Operadores aritmticos: + * / % Ejemplos: 5+3=8 32=1 5 * 3 = 15 17/2 = 8 17/2.0 = 8.5 (double) 17/2 = 8.5 20 % 7 = 6 Suma Resta Multiplicacin Divisin Modulo
Operador
III.5. Estructuras lgicas Otro tipo de expresiones son las lgicas, o booleanas, cuyo valor puede ser true (verdadero) o false (falso) y se denominan expresiones booleanas en honor a matemtico George Boole, quien desarrollo el lgebra booleana. Mediante los operadores relacionales se pueden hacer comparaciones entre valores tipo numrico y carcter. Por ejemplo: 3<6V 0>9F 8 <= 5 F A=3yB=4 A>B F A<B V A<=B V B==4 V X=2 Y = 3 Z = 9 X>Z F Y<X F Z!=X V
Operadores Lgicas Java cuenta con los operadores lgicos para formar condiciones ms complejas. Los operadores lgicos son:
Corto Circuito Si No
Tablas de verdad de los operadores lgico: && And Condicional A false false true true B false true false true A && B false false false true
Con un operador && (And condicional) ser true si y solo si todas sus entradas son true. || Or Condicional A false false true true B false true false true A || B false true true true
Con un operador || (Or condicional) ser true si por lo menos una de sus entradas es true. Operadores & And lgico y | Or lgico funcionan de manera idntica a los operadores && And condicional y || Or condicional, con la excepcin de de que los operadores lgicos siempre se evaluaran todas las expresiones (es decir, no realizan una evaluacin de corto circuito). ^ Or Exclusivo A false false true true B false true false true A^B false true true false
Con un operador ^ (Or exclusivo) es true si y solo si una de sus operandos es true y el otro es false
Por medio del operador ! (Negacin) se invierte el significado de la condicin. A diferencia de los operadores &&, ||, &, | y ^ que son operadores binarios, el operador ! es unario. Por ejemplo: Si A=3, B=2 y C=7 a) b) c) d) (A>5) || (B<C) V (A!=B) && (B==C) (A>=B) & (C>=5) !(A<=9) | (5>B)
Reglas de prioridad Las expresiones que tienen dos o ms operadores requieren de reglas matemticas que permitan determinar el orden de las operaciones, a estas reglas se les llama reglas de prioridad. Prioridad 1 2 3 4 5 6 7 8 9 10 11 12 Operadores () Agrupacin (tipo) Cast * / % + < <= > >= == != & ^ | && || = *= /= %= += = Asociatividad ID DI ID ID ID ID ID ID ID ID ID DI
Estructura general de un programa en Java import Importacin de paquetes con clases predefinidas. public class NombreDeLaClase { Declaracin de variables miembro de la clase public static tipo main (String[] args) { Declaracin de variables locales Sentencias de la funcin main() [return tipo;] } acceso static tipo NombreDelMtodo1 (Lista de Argumentos) { Declaracin de variables del mtodo 1 Sentencias del mtodo 1 [return tipo;] } acceso static tipo NombreDelMtodo2 (Lista de Argumentos) { Declaracin de variables del mtodo 2 Sentencias del mtodo 2 [return tipo;] } } Variables Una variable es un identificador donde se almacena un valor con un cierto tipo de dato. Las variables de tipos bsicos almacena datos del tipo primitivos, las variables de clases o variables de objetos, hacen referencias a objetos. Una constante es una variable cuyo contenido no puede ser modificado. Declaracin de variables Ejemplo: int x, y; float a, b, c; char letra1; tipo identificador
Inicializacin de variables Una de las variantes que se puede hacer en una declaracin es inicializar una variable con un valor a ser declarada.
tipo
identificador
= ; ,
Expresin
Ejemplos: int x, y = 0; float a, b, c = 100.0f; char letra1 = A; Se pueden declarar una variable en tres lugares: En una clase, como miembro de clase Al principio de un mtodo o bloque de cdigo En el punto de utilizacin. Ejemplo de las tres formas de declarar una variable:
Objetos que permiten E/S por consola. En Java, la entrada y salida se lee y escribe en flujos (streams). La fuente bsica de entrada de datos es el teclado y la fuente de salida es pantalla. La clase System define dos referencias a objetos static para la gestin de entrada (in) y salida (out). Salida (System.out) El objeto out definida en la clase System est asociado con el flujo de salida, que dirige los datos a consola y permite visualizarlos en pantalla, por ejemplo: System.out.println(Esta es una cadena); Se visualizar en pantalla: Esta es una cadena. Descripcin del mtodo print: void print(cadena) void println(cadena) Despliega una cadena en pantalla. Despliega una cadena en pantalla y al final un carcter de nueva lnea (\n).
Con estos mtodos se puede escribir cualquier cadena o dato de los tipos primitivos, como por ejemplo: System.out.println( "Valores de las Variables: \n" + "a=" + a +"\n" + "b=" + b +"\n" + "x=" + x +"\n" + "y=" + y ); Entrada (System.in) Por medio de un objeto Scanner se puede leer datos desde un programa, esta clase pertenece al paquete java.util y debe ser importada. Para poder utilizarlo instancie un objeto de la siguiente forma: Scanner identificador = new Scanner (System.in); Esta expresin crea un objeto Scanner y determina que leer los datos desde teclado mediante los siguientes mtodos: identificador.nextBoolean() identificador.nextByte() identificador.nextShort() identificador.nextInt() identificador.nextLong() Para Booleanos Para nmeros Enteros tipo byte Para nmeros Enteros tipo short Para nmeros Enteros tipo int Para nmeros Enteros tipo long
Para nmeros flotantes Para nmeros doubles Para el siguiente token Para una lnea
Inicio
Anlisis: Entrada: Radio Salida: Clculos de Superficie y Longitud Proceso: Una vez obtenido el radio, calcular: y
Leer Radio
Superficie= *Radio^2
Longitud=2* *Radio
Superficie, Longitud
Fin
El siguiente ejemplo lee dos nmeros enteros desde Windows, los suma y muestra el resultado en una ventana.
Al convertir datos tipo String a tipo int (con Integer.parseInt()) manda una excepcin de formato de numero si ocurre un error. El mtodo showMessageDialog de la clase JOptionPane tiene varias formas de enviarles parmetros: public static void showMessageDialog(Component componentePadre, Object Mensaje) Donde los parmetros: componentePadre Mensaje Determina la ventana en que se desplegara el mensaje, si es null, se despliega en la ventana por defecto. Objeto a desplegar
public static void showMessageDialog(Component componentePadre, Object Mensaje, String Titulo, int TipodeMensaje) Donde los parmetros: componentePadre Mensaje Titulo TipodeMensaje Determina la ventana en que se desplegara el mensaje, si es null, se despliega en la ventana por defecto. Objeto a desplegar Cadena de caracteres de la caja de dialogo Valor entero que determina que imagen se despliega segn la siguiente tabla:
Icono
Descripcin
JOptionPane.ERROR_MESSAGE
Ventana de Error
JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE
Ventana Informativa Ventana de Advertencia Ventana de introduccin de datos o seleccin de alguna alternativa
JOptionPane.QUESTION_MESSAGE
Nota: El if solo soporta una instruccin, si desea poner ms de una sentencia debe utilizar un bloque de cdigo ({..}).
if (condicin) {accin1; accin2,,accin n} ; o if (condicin) { accin1; accin 2; . . accin n; } Sintaxis de la seleccin doble: if (condicin) accin 1; else accin 2; if con mas de una sentencia y usando un boque de cdigo: if (condicin) { accin1; accin 2; accin n; } else { accin1; accin 2; accin n; } Sintaxis de Seleccin mltiple: switch (selector) { case constante 1: Accin 1; break; case constante 2: Accin 2; break; default: Accin n; }
switch (letra) { case a: caseA: case : case A: case e: caseE: case : case : case i: caseI: case : case : case o: caseO: case : case : case u: caseU: case : case : System.out.println(letra + es vocal); }
Sintaxis de los ciclos Java: for 1. for (Inicializacin; Condicin; Incremento) sentencia; for (Inicializacin; Condicin; Incremento) { sentencia 1; sentencia 2; sentencia n; }
2.
2.
2.
Producto de Aprendizaje 3.2: Desarrolle los siguientes programas en Java. 1. En la empresa Aceros Industrializados S.A. de C.V. los obreros recibieron un incremento del 7.6% retroactivo a 6 meses. Elabore un programa que en base el salario mensual despliegue el monto total de incremento por los 6 meses. 2. Elabore un programa que lea 4 nmeros e imprima el mayor de ellos. 3. Elabore un programa que lea los tres parciales de la materia de Fundamentos de Programacin y en base el Promedio despliegue si Acredita o No Acredita la materia. 4. Elabore un programa que lea un nmero e imprima sus dgitos en forma individual: Ejemplo: Dame un nmero? 7539 9 3 5 7 5. Obtenga el salario de un obrero en base a las horas extras trabajadas. El salario se calcula sumando al sueldo base las horas extra. El sueldo base es equivale a $450.00 y las horas extra se calculan en base a la siguiente tabla: 1 a 10 hrs $11.50 11 a 12 hrs $ 13.00 21 y ms hrs $ 15.00 6. Elabore un programa que lea un nmero decimal e imprima su representacin en binario. 7. Elabore un programa que lea un nmero e imprima su factorial. Ejemplo: 5 = 5 * 4 * 3 * 2 * 1 = 120 Nota: El factorial de 0 (cero) por notacin es 1.
8. Elabore un programa que lea serie de nmeros e imprima su media. El final de los nmeros de denota con un -1. 9. Elabore un programa que lea 10 calificaciones e imprime el promedio. 10. Elabore un algoritmo que lea dos nmeros diferentes, he imprima el rango del nmero ms pequeo al nmero ms grande. 11. Elabore un programa que lea un nmero positivo diferente de cero e imprima la secuencia de nmeros en forma descendente hasta el cero. 12. Elabore un programa que imprima la suma de los nmeros impares del 1 al 100 utilizando ciclos.