Académique Documents
Professionnel Documents
Culture Documents
Semana 6
Algoritmos, Diagramas de Flujo y Pseudocdigo.
Entrada: Comparar a yb
Entrada: Dos nmeros, a y b Comparar los nmeros es lo que hace nuestro algoritmo.
Mtodo alternativo.
Quiz 1 - Solucin
inicio leer a, b si (a > b) imprimir a es mayor que b si_no si (a < b) imprimir a es menor que b si_no imprimir a es igual a b fin_si fin_si fin
a>b
a<b
imprimir a = b
imprimir a < b
fin
Tarea 1
Escriba un algoritmo que tome un ao y devuelva verdadero cuando el ao sea bisiesto. La regla para los aos bisiestos segn el calendario gregoriano es:
Un ao es bisiesto si es divisible por 4, excepto el ltimo de cada siglo (aquel divisible por 100), salvo que este sea divisible por 400.
Es decir los aos que sean divisibles por 4 sern bisiestos; aunque no sern bisiestos si son divisibles entre 100 (como los aos 1700, 1800, 1900 y 2100) a no ser que sean divisibles por 400 (como los aos 1600, 2000 2400).
Tarea 1 - Solucin
inicio leer ao si ((ao % 4) == 0) si ((ao % 100) == 0) si ((ao % 400) == 0) bisiesto = true si_no bisiesto = false fin_si si_no bisiesto = true fin_si si_no bisiesto = false fin_si fin
a % 4 == 0 F
a % 100 == 0
bisiesto = false
bisiesto = true
bisiesto = a % 400 == 0
fin
Tarea 1
Escriba el algoritmo para calcular i2 con valores de i que van desde 1 hasta n.
Tarea 1 - Solucin
leer n s = 0 i = 1 mientras i <= n haga s = s + i * i i = i + 1 fin_mientras
Prctica
La oficina de Censos recibe N boletas con la siguiente informacin: Sexo: M = masculino, F = femenino Estado Civil : 1 = Soltero, 2 = Casado, 3 = Divorciado, 4 = Viudo, 5 = Unin Libre Realice un diagrama de flujo que capture la informacin de las N boletas y al final despliegue la cantidad de hombres y la cantidad de mujeres que participaron en la encuesta, adems la cantidad de personas por tipo de estado civil.
Prctica
En una tienda se estn dando descuentos en la compra, a los clientes de acuerdo a su tipo de cliente. Se reciben como datos de entrada tipo de cliente y monto total de la compra; imprima el descuento que se le aplica a la compra y el nuevo monto al aplicar el descuento. Para al tipo de cliente utilice la siguiente informacin: Tipo 1 5 % Tipo 2 7 % Tipo 3 9 % Al final el algoritmo debe desplegar el valor acupulado por tipo de cliente y el monto total recibido por la tienda.
Prctica
Un determinado trabajo tiene una duracin de 30 das y se pagan $10.00 diarios; otro trabajo tambin dura 30 das, pero se paga $1.00 el primer da, $2.00 el segundo da, y as sucesivamente. Calcule y despliegue un mensaje, indicando cul trabajo est mejor pagado.
Temas
* Estructuras de control secuencial: Asignacin * Estructuras de control selectivas: Desicin simple, desicin doble, desicin simple/doble anidada, desicin mltiple. * Estructuras de control repetitivas: mientras, repetir, bucles anidados. Otros conceptos: * Promedios, porcentajes, factorial, sumatorias, productorias.
Modulo 2:
Introduccin a la Programacin
The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs.
Joseph Weizenbaum, Computer Power and Human Reason
Software
software.
(Voz inglesa).
1. m. Inform. Conjunto de programas, instrucciones y reglas informticas para ejecutar ciertas tareas en una computadora.
http://www.rae.es
Software
http://www.dilbert.com/
Programacin
Un programa es una secuencia de instrucciones: la computadora las ejecuta en el orden que aparecen, una despus de la otra.
Programacin
Hay dos aspectos bsicos de la programacin: datos e instrucciones. Para trabajar con datos, es necesario entender las variables y los tipos. Para trabajar con instrucciones, es necesario entender las estructuras de control y las subrutinas.
Programacin
Una variable es slo una posicin en la memoria a la que se le ha dado un nombre y puede ser fcilmente referida y usada en un programa.
Programacin
Las estructuras de control son instrucciones especiales que pueden cambiar el "flujo de control". Hay dos tipos: bucles, los cuales permiten ejecutar una serie de instrucciones una y otra vez y bifurcaciones, que permite decidir entre dos o ms cursos de accin.
Programacin
Una subrutina es una serie de instrucciones agrupadas a la cual se le ha dado un nombre. El nombre es usado como un sustituto del conjunto de instrucciones. Las subrutinas permiten organizar los programas.
Programacin
Primer programa:
Lenguaje de Mquina
La CPU es la encargada de ejecutar los programas. Un programa es una lista de instrucciones seguidos mecnicamente por la computadora. La CPU ejecuta instrucciones escritas en un lenguaje muy simple conocido como lenguaje de mquina.
http://math.hws.edu/javanotes6/c1/s1.html
Lenguaje de Mquina
hola, mundo en lenguaje de mquina (en octal)
0000000 0000020 0000040 0000060 0000100 0000120 0000140 0000160 0000200 0000220 042577 000002 003524 000033 100064 000004 100424 000001 100000 010000 043114 000003 000000 000030 004004 000000 004004 000000 004004 000000 000401 000001 000000 000006 000340 000003 000023 000001 002124 000001 000001 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 101230 000064 000064 000340 000424 000023 000000 002124 002124 000000 004004 000040 000000 000000 000000 000000 000000 000000 000000 000000 000064 000007 100064 000005 100424 000004 100000 000005 112124 000000 000000 000050 004004 000000 004004 000000 004004 000000 004004
Lenguaje Ensamblador
Representa simblicamente los cdigos de mquina (mnemnicos). El ensamblador es el encargado de traducir las sentencias del lenguaje ensamblador al cdigo de mquina (la correspondecia es uno a uno).
Lenguaje Ensamblador
Algunas instrucciones: add, sub, mul, div, rem push, pop and, or, xor, beq, not bne, blt, ble, bgt, bge
Lenguaje Ensamblador
Lenguaje Ensamblador
.file "hola.c" .section .rodata .LC0: .string "hola, mundo\n" .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp subl $12, %esp pushl $.LC0 call printf addl $16, %esp leave ret .size main, .-main .section .note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.3.2 20031022 (Red Hat Linux 3.3.2-1)"
Idioma artificial diseado para expresar computaciones (clculos). Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Algunos lenguajes de programacin de alto nivel: C, C++, Pascal, Ada, Lisp, Prolog, Perl, Python, Java, PHP, BASIC, Logo, .NET, etc.
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n
Java
I won't program in Java anymore. I'm not Marxist and don't believe in classes. phluid.
Java
Java es un lenguaje orientado a objetos. La unidad bsica en Java (y en POO en general) es la clase. La clase es la plantilla con la cul se crean objetos. Las clases contienen tanto campos (datos) como mtodos (subrutinas). Por convencin, los nombres de las clases siempre empiezan con mayscula, por ejemplo, Object, Integer, String, Vector y JFrame son clases de Java. Las clases puedes estar relacionadas heredan datos y subrutinas de una clase ms general. En Java, todas las clases son subclases de la clase Object.
Java
Java es un lenguaje interpretado. Los programas escritos en Java son compilados en un lenguaje de mquina, pero para una mquina que NO existe (de all que se le llame Mquina Virtual). El lenguaje de mquina para la Mquina Virtual de Java es llamado bytecode.
http://download.oracle.com/javase/tutorial/getStarted/intro/definition.html
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Java
class Hola1 { // di hola public static void main(String[] args) { System.out.println("hola, mundo"); } }
Java
De pseudocdigo a Java
Nmeros naturales Nmeros reales Booleanos Carcter Cadenas int double boolean char String
De pseudocdigo a Java
Declaracin de variables: Java requiere que se declaren que variables antes de que se usen. Para tipo de datos primitivos (int, double, boolean, char), la manera de hacerlo es especificando el tipo y el identificador. Opcionalmente, se pueden inicializar (asignar un valor) se recomienda hacerlo.
De pseudocdigo a Java
De pseudocdigo a Java
Vamos a usar el siguiente esqueleto para nuestros programas de hoy:
import java.io.*; // para usar BufferedReader class NombreDeClase { public static void main(String [] args) { // instrucciones } // fin del mtodo main } // fin de la clase
De pseudocdigo a Java
Imprimir:
System.out.println(esto es una cadena);
De pseudocdigo a Java
Leer cadenas:
String s; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { s = in.readLine(); } catch (IOException e) { }
De pseudocdigo a Java
Leer enteros:
int n; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { n = Integer.parseInt(in.readLine()); } catch (IOException e) { }
De pseudocdigo a Java
De pseudocdigo a Java
Laboratorio 1
Escriba un programa que lea un nmero de 4 digitos e imprima los millares, centenas, decenas y unidades separadas por espacios. Use el algoritmo desarrollado en clase. Llame el archivo Laboratorio1.java y guardelo en la carpeta c:\clase07 (creela de ser necesario). Abra una terminal (Smbolo del sistema o Command prompt) y ejecute el comando cd \clase07 (sin comillas). Compile el programa. Ejecute javac Laboratorio1.java. Corra el programa. En la terminal, escriba java Laboratorio1. Pruebelo con 1234. El resultado debe ser 1 2 3 4 (sin las comillas).
De pseudocdigo a Java
si <condicin> entonces
Acciones
if (expresin) {
// sentencias
} // fin_si
fin_si
De pseudocdigo a Java
si <condicion> entonces
Acciones
if (expresin) {
// sentencias
} else {
// sentencias
si_no
Acciones
} // fin_si
fin_si
De pseudocdigo a Java
si <condicion> entonces
Acciones
if (expresin) {
// sentencias
} else if (expresin) {
// sentencias
si_no si <condicion>
Acciones
si_no
Acciones
} else {
// sentencias
fin_si
} // fin_si
Laboratorio 2
Escriba un programa que lea un nmero e imprima si se trata de un nmero par o de un nmero impar. Utilice el algoritmo desarrollado en clase. Llame el archivo Laboratorio2.java y guardelo en la carpeta c:\clase07. Compilelo y ejecutelo.
Laboratorio 3
Escriba un programa que lea dos nmeros a y b e imprima:
a es mayor que b a es menor que b a es igual a b Segn sea el caso. Use el algoritmo desarrollado en el quiz 1. Llame el archivo Laboratorio3.java y guardelo en la carpeta c:\clase07. Compilelo y ejecutelo.
Laboratorio 4
Escriba un programa en Java que lee un ao e imprima en la terminal si se trata de un ao bisiesto (es bisiesto) o no (no es bisiesto). Use el algoritmo desarrollado en la tarea. Llame el archivo Laboratorio4.java y guardelo en la carpeta c:\clase07. Compilelo y ejecutelo.