Professional Documents
Culture Documents
ALGORITMO
Objetivos
Algoritmos
Programacin
ETAPA 6
Depuracin pruebas
ETAPA 5
Desarrollo solucin
ETAPA 4
Diseo solucin
n veces
ETAPA 3
Ingeniera reversa
Definicin solucin
ETAPA 2
Descripcin del problema
ETAPA 1
Mtodo de las 6D
PROGRAMACIN
Java Lenguaje C++
Desarrollo solucin
ETAPA 4
Diseo solucin
ETAPA 3
ALGORITMO
Herramientas Pseudocodigo Diagrama de flujo
Algoritmo
Conjunto de Instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un problema.
ALGORITMO - Caractersticas
Una descripcin de acciones que deben ser ejecutadas (Pasos Secuenciales). Una descripcin de los datos que son manipulados por estas acciones (Estructuras de datos). Un algoritmo debe ser preciso indicando el orden de realizacin de cada paso. Todo algoritmo debe ser finito. Si se sigue un algoritmo este debe terminar en algn momento. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces se debe obtener el mismo resultado.
ALGORITMO - Caractersticas
Un algoritmo puede tener o no datos de entrada. Un algoritmo producir uno o mas datos de salida. Los datos de entrada y salida deben almacenarse en variables. El resultado que se obtenga debe satisfacer los requerimientos de la persona interesada (efectividad). Debe ser estructurado. Es decir, debe ser fcil de leer, entender, usar y cambiar si es preciso.
ALGORITMO Herramientas
Se dispone de diversas herramientas para ayudar a los programadores a desarrollar los algoritmos.
ALGORITMO
Pseudocodigo Diagrama de flujo
Herramientas
Pseudocodigo
Un pseudocdigo permite expresar un algoritmo con palabras en castellano que son semejantes a las instrucciones de un lenguaje de programacin.
ALGORITMO SUELDO
ENTRADA: sueldo SALIDA: sueldo INICIO REAL sueldo sueldo = 100 LEER sueldo sueldo = sueldo * 0.50 ESCRIBIR sueldo FIN
Pseudocodigo
Reglas bsicas
ENTRADA Se consideran las variables que sern utilizadas para almacenar los datos ingresados por el usuario SALIDA INICIO/FIN
Especifican el inicio y el final del algoritmo. Todas las instrucciones se colocan entre estas reglas y constituyen el cuerpo del algoritmo. En el cuerpo del algoritmo se encontrarn los pasos a seguir para el desarrollo de la solucin.
Se consideran las variables que sern utilizadas para almacenar los datos que sern mostrados al usuario
Diagrama de flujo
Es una herramienta que mediante el empleo de smbolos especializados y lneas de flujo, nos permite ilustrar el flujo lgico de pasos y datos de un algoritmo.
INCIO
ENTERO num
num = 10 num
FIN
Diagrama de flujo
INICIO INICIO DOUBLE sueldo ENTERO n
sueldo = 100
LEER n
sueldo
n < 100
n = n*1.20
sueldo
FIN
FIN
PROGRAMACIN
JAVA
Java no es nuevo. Naci al final de los aos 70, cuando Bill Joy quiso crear un lenguaje que reuniera lo mejor de los lenguajes MESA y C. Eligi el C++ como entorno de desarrollo pero se dio cuenta de que el C++ era - y es - demasiado complicado. La idea pas de empresa en empresa, hasta que el 5 de Diciembre de 1990, en la empresa Sun, se comenz el proyecto, llamado Oak, esta vez en C. Pasaron los aos, y en 1994 el proyecto tom forma como lo que hoy conocemos como el lenguaje Java
JAVA
Lenguaje de programacin orientado a objetos desarrollado por la empresa Sun Microsystems en 1995 y que se ha extendido ampliamente en World Wide Web. Es un lenguaje de alto nivel y propsito general similar a C++, con caractersticas de seguridad y transportabilidad. Este lenguaje define una mquina virtual (Ejecucin de aplicaciones) independiente de la plataforma donde se ejecuta.
JAVA
ESTRUCTURA BSICA
package domApli ;
class PrgBienvenida { public static void main (String[ ] args) { } }
C++
ESTRUCTURA BSICA #include <iostream> using namespace std ; int main( ) { return 0 ; }
JAVA
Proyecto: Paquete: Clase:
Metodo principal
public static void main (String[ ] args){
public: Indica que la funcin es pblica, se puede usar desde cualquier otra clase. static: Indica que la funcin es esttica. void: Se incluye cuando una funcin es vacia main: principal - es el nombre de la funcin String[] args: Indica que es un array (cadena), de tipo String llamado args
VISUALIZACIN DE DATOS
La visualizacin de datos nos permite mostrar los datos a travs de la pantalla de la computadora.
Constantes
La ventaja de usar constantes con nombre es que en cualquier lugar donde quiera que vaya la constante, basta con poner su nombre y luego el compilador lo sustituir por su valor. Las constantes sin nombres son de valor constante: 5, 6, a, hola.
VISUALIZACIN DE DATOS
EN PSEUDOCODIGO
ESCRIBIR nombreVariable ESCRIBIR x + 2 ESCRIBIR Hola
DIAGRAMA DE FLUJO
nombreVariable
x+2 Hola
EN C++ cout<<
cout << nombreVariable ; cout << (x + 2);
VISUALIZACIN DE DATOS
EJEMPLO: Desarrolla una solucin que permita mostrar el saludo Bienvenidos al desarrollo de algoritmos
EN PSEUDOCODIGO
ENTRADA: SALIDA: Bienvenidos al desarrollo de algoritmo INICIO ESCRIBIR Bienvenidos al desarrollo de algoritmo FIN
DIAGRAMA DE FLUJO
INICIO
FIN
VISUALIZACIN DE DATOS
EJEMPLO: Desarrolla una solucin que permita mostrar el saludo Bienvenidos al desarrollo de algoritmos
JAVA
package domApli; public class PrgSaludo { public static void main (String[ ]args) { System.out.print (Bienvenidos al desarrollo del algoritmos); } }
C++
#include <iostream> using std::cout ; int main ( ) { cout << Bienvenidos al desarrollo de algoritmos ; return 0; }
VISUALIZACIN DE DATOS
Ejemplo: Desarrollo una solucin que permita mostrar el saludo: Bienvenidos al desarrollo de algoritmos estamos creando una segunda lnea
JAVA
package domApli; public class PrgSaludo2 { public static void main (String[ ]args) { System.out.println (Bienvenidos al desarrollo del algoritmos); System.out.print (estamos creando una segunda lnea) } }
C++
#include <iostream> using std::cout ; int main ( ) { cout << Bienvenidos al desarrollo de algoritmos<<endl ; cout << estamos creando una segunda lnea; return 0; }
VISUALIZACIN DE DATOS
Modificadores
\n \t
\n : Permite crear una lnea adicional, similar al System.out.println y a endl \t : Permite hacer una tabulacin. Ojo: notar que es \ y no /
JAVA
package domApli; public class PrgSaludo2 { public static void main (String[ ]args) { System.out.print (Bienvenidos al desarrollo del algoritmos \n estamos creando una segunda lnea) } }
C++
#include <iostream> using std::cout ; int main ( ) { cout << Bienvenidos al desarrollo de algoritmos \n estamos creando una segunda lnea; return 0; }
VISUALIZACIN DE DATOS
Modificadores
JAVA
\n \t
Nombre: Edad:
package domApli; public class PrgSaludo3 { public static void main (String[ ]args) { System.out.print (Nombre \t Daniel Flores \n Edad \t 11 aos); } }
C++
#include <iostream> using std::cout ; int main ( ) { cout << Nombre: \t Daniel Flores \n Edad \t 11 aos ; return 0; }
EMPLEO DE COMENTARIOS
EN PSEUDOCODIGO
COMENTARIO esto es un comentario
EN DIAGRAMA DE FLUJO
Esto es un comentario
EN JAVA
// Esto es un comentario
/* Esto es un comentario usando mltiples lneas */
EN C++
// Esto es un comentario /* Esto es un comentario usando multiples lneas */
EMPLEO DE COMENTARIOS
/* Este programa permitira mostrar un mensaje empleando los modificadores \n y \t */ package domApli; public class PrgComenta { public static void main (String[]args) { //Visualizacin de datos System.out.print (Daniel: \t Flores \n Edad: \t 11 aos); } }
JAVA
C++
/* Este programa, permitira mostrar un mensaje empleando los modificadores \n y \t */ #include <iostream> using std::cout ; int main ( ) { // Visuaizacin de datos cout << nombre: \ t Daniel Flores \n Edad: \ t 11 aos ; return 0; }
INTRODUCCIN A LA COMPUTACIN
ESTRUCTURA DE SECUENCIA
Semana 5
ESTRUCTURA DE SECUENCIA
Tipos de Datos Operadores Matemticos Operadores relacionales y lgicos Estructuras de Datos: Variables y constantes Ingreso de Datos IPOS
ESTRUCTURAS DE SECUENCIA
ESTRUCTURA DE SECUENCIA
ESTRUCTURAS LOGICAS O ESTRUCTURAS DE CONTROL
SECUENCIA: Ingresar Procesar Mostrar DECISIN If (Simples) If / else (Dobles) switch (Mltiples) CONTROL while do / while for ESTRUCTURA DE DATOS VARIABLES y CONSTANTES ARREGLOS
ESTRUCTURAS DE SECUENCIA
TIPOS DE DATOS
PSEUDOCODIGO DF
JAVA
C++
REPRESENTA A:
ENTERO
int / long
int / long
Un numero entero
REAL
CARCTER TEXTO
double/float
char String
double/float
char string
LOGICO
boolean
bool
Tenga presente que las palabras reservadas para el Pseudocdigo, DF, Java y C++, son reglas o pautas empleadas por estos, por lo que no podrn ser usadas como nombre de variable o constante.
ESTRUCTURAS DE SECUENCIA
OPERADORES ARITMETICOS
PSEUDOCODIGO DF
JAVA
C++
REPRESENTA A:
+ * / RESTO
+ * / %
+ * / %
Suma Resta
Multiplicacin
Divisin
Resto / Modulo
ESTRUCTURAS DE SECUENCIA
Importante Los operadores que estn encerrados entre parntesis se evalan primero. Si existen parntesis anidados las expresiones mas internas se evalan primero.
Orden de prioridad:
1. * , / 2., RESTO 3. + , En caso de coincidencia de operadores de igual prioridad en una expresin, el orden de prioridad ser de izquierda a derecha.
ESTRUCTURAS DE SECUENCIA
Menor que Mayor que Igual que Menor o igual que. Mayor o igual que Distinto de. Negacin. Conjuncin.
O (Or)
=
||
=
||
=
Disyuncin.
Asignacin
ESTRUCTURAS DE SECUENCIA
Constantes
Una constate es una estructura de datos que permite almacenar un valor fijo, el cual va a ser empleado sin lugar a modificacin durante el desarrollo del algoritmo.
Java C
ESTRUCTURAS DE SECUENCIA
Variables
Declaracin: Significa definir el nombre de la variable y el tipo de dato que
podr almacenar.
Pseudocdigo / DF Java C++
tipoDato nombreDeVariable
: ENTERO nota1 : int nota1 : int nota1 TEXTO nombre String nombre string nombre CARACTER tipo char tipo char tipo
nombreDeVariable = valor
: nota1 = 10 : nota1 = 10 : nota1 = 10 nombre = Luis nombre = Luis nombre = Luis tipo = A tipo = A tipo = A
ESTRUCTURAS DE SECUENCIA
Prob. 1 : Desarrollar una solucin que permita sumar los nmeros 10 y 15 y mostrar el resultado
INICIO
Algoritmo Suma ENTRADA: SALIDA: suma INICIO ENTERO num1, num2, suma num1 = 10 num2 = 15 suma = num1 + num2 ESCRIBIR suma FIN
num1 = 10 num2 = 15
suma
FIN
ESTRUCTURAS DE SECUENCIA
JAVA
C
#include <iostream> using std::cout; int main ( ) { // declaracin int num1, num2, suma; // asignacin num1=10; num2=15; // operacin suma = num1 + num2; // Visualizacin de resultados cout <<suma ; return 0; }
package domApli; public class PrgSuma { public static void main (String [ ] args) { // declaracin int num1, num2, suma;
ESTRUCTURAS DE SECUENCIA
Prob. 2: Desarrollo una solucin que permita calcular el rea de un cuadrado sabiendo que tiene lado = 10.
INICIO
Algoritmo AreaCuadrado ENTRADA: SALIDA: area INICIO ENTERO lado, area lado = 10 area = lado * lado ESCRIBIR area FIN
lado = 10
area
FIN
ESTRUCTURAS DE SECUENCIA
JAVA
C
#include <iostream> using std::cout; int main ( ) { // declaracin
package domApli; class PrgAreaCuadrado { public static void main (String [ ] args) {
// declaracin
lado = 10;
// operacin
lado = 10;
// operacin
ESTRUCTURAS DE SECUENCIA
ESTRUCTURAS DE SECUENCIA
Ingreso de datos
En Pseudocdigo LEER nombreVariable En DF nombreVariable
En Java Clase Lectura nombreVariable = Lectura.leerInt () ; nombreVariable = Lectura.leerlong (); nombreVariable = Lectura.leerfloat () ; nombreVariable = Lectura.leerDouble () ; nombreVariable = Lectura.leerChar () ; nombreVariable = Lectura.leerString () ;
Previamente antes de la declaracin del mtodo main() debe colocarse #include <iostream> y using std::cin;
ESTRUCTURAS DE SECUENCIA
Prob. 3: Desarrollo una solucin que permita ingresar y mostrar el nombre de un alumno
INICIO
TEXTO nombre
nombre
nombre
FIN
ESTRUCTURAS DE SECUENCIA
JAVA
package domApli; import biblioteca.Lectura ; class PrgMostrarNombre {
C
#include <iostream> using std::cout; using std::cin; int main ( ) { string nombre; //Ingreso de datos cin >> nombre;
ESTRUCTURAS DE SECUENCIA
Prob. 4: Desarrollo una solucin que ingresar el nombre y dos notas de un alumno y mostrar su nombre y el promedio obtenido: (nota1+nota2)/2
INICIO
Algoritmo NombrePromedio ENTRADA: nombre, nota1, nota2 SALIDA: nombre, promedio INICIO TEXTO nombre ENTERO nota1, nota2 REAL promedio LEER nombre, nota1, nota2 promedio = (nota1 + nota2) / 2 ESCRIBIR nombre, promedio FIN
TEXTO nombre REAL promedio ENTERO nota1, nota2
nombre, promedio
FIN
ESTRUCTURAS DE SECUENCIA
Intentalo!!!
1. Se requiere mostrar el resultado de sumar, multiplicar, restar y dividir dos nmeros 8 y 4 2. Se requiere ingresar un mensaje por teclado y mostrarlo por la pantalla 3. Convertir y mostrar una cantidad expresada en dlares a su equivalente en Nuevos Soles. Ingresar la cantidad en dlares y el tipo de cambio. 4. Un alumno tiene 4 notas, calcular la nota final, sabiendo que la cuarta nota vale el doble. 5. Calcular el sueldo de un obrero y calcular un descuento del 5% por concepto de canasta de fin de ao. Mostrar el sueldo inicial, el descuento y el sueldo a cobrar. 6. Convertir la temperatura de grados Celsius a grados Fahrenheit, de acuerdo a la formula: F= (9/5)*C+32
PSEUDOCODIGO
SI (condicin) ENTONCES instrucciones... FINSI
EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y FINSI. Si la condicin resulta falsa, no se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y FINSI
if (condicin) { sentencias... }
Si la condicin resulta verdadera, se ejecutan las sentencias que se encuentra entre las llaves { }. Si la condicin resulta falsa, no se ejecutan las sentencias que se encuentran entre las llaves { }.
Problema 1: Calcular y mostrar el rea de un cuadrado. Si el rea del cuadrado resulta menor que 100, se deber visualizar el mensaje este cuadrado es pequeo.
INICIO Algoritmo AreaCuadrado2 ENTERO lado, area TEXTO mensaje
ENTRADA: lado SALIDA: area, mensaje INICIO ENTERO lado, area TEXTO mensaje = LEER lado area = lado * lado SI ( area < 100) ENTONCES mensaje = Este cuadrado es pequeo FINSI ESCRIBIR area, mensaje FIN
lado area = lado * lado area < 100 V mensaje = Este cuadrado es pequeo
mensaje
FIN
JAVA
package domApli; import biblioteca.Lectura; class PrgAreaCuadrado2 { public static void main (String [] args ) { String mensaje= ; int lado, area; System.out.print (Ingrese el lado: ); lado = Lectura.leerInt(); area = lado * lado; //Estructura de Decisin if (area<100) { mensaje = Este cuadrado es pequeo; } System.out.print (mensaje); } }
C #include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { string mensaje= ; int lado, area; cout <<Ingrese el lado: ; cin >> lado; area = lado * lado; //Estructura de Decisin if (area<100) { mensaje = Este cuadrado es pequeo; } cout <<mensaje; return 0; }
Problema 2: Calcular la nota final (nf) de un alumno, sabiendo que tiene slo dos notas. Si el alumno obtiene una nota final mayor a 13 se deber visualizar un mensaje de felicitaciones
INICIO Algoritmo NotaFinal ENTERO nota1, nota2 REAL nf TEXTO mensaje= nota1, nota2 nf = (nota1 + nota2) / 2 nota > 13
INICIO ENTERO nota1, nota2 REAL nf TEXTO mensaje LEER nota1, nota2 nf = (nota1 + nota2) / 2 SI ( nf > 13 ) ENTONCES mensaje = Felicitaciones FINSI
FIN ESCRIBIR mensaje
mensaje = Felicitaciones
mensaje
FIN
#include <iostream> #include <string> using std::cout ; using std::cin ; using std::string;
int main ( ) {
string mensaje= ;
nota1 = Lectura.leerInt();
System.out.print (Ingrese la nota2: );
INTENTALO!!!
1. Calcular y mostrar el sueldo de un trabajador conociendo el nmero de horas trabajadas y su tarifa horaria, sabiendo que se debe descontar un 10% del sueldo por concepto de impuestos si ste es mayor de S/. 3000. 2. Ingresar un numero y mostrar un mensaje si el numero es mltiplo de 3 3. Ingresar dos nmeros y mostrar un mensaje si ambos son iguales.
SEMANA 07
JAVA y C
EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas despus de la palabra reservada if. Si la condicin resulta falsa, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas despus de la palabra reservada else.
Problema 1: Calcular y mostrar la nota final de un alumno. Si la nota final (nf) es menor a 14 se deber mostrar el mensaje Desaprobado, caso contrario se mostrar el mensaje Aprobado. Frmula: nf = (n1+n2+n3) / 3.
Algoritmo NotaFinal2 INICIO ENTERO nota1, nota2,nota3 REAL nf TEXTO mensaje nota1, nota2,nota3 nf = (nota1 + nota2 + nota3) / 3 V nota < 14 F
mensaje=Desaprobado
mensaje=Aprobado
mensaje
FIN
Problema 2: Ingrese un nmero y determine si el nmero ingresado es un nmero par o un nmero impar.
Algoritmo NumPar INICIO ENTERO num TEXTO mensaje LEER num V num RESTO 2 = 0 F
ENTRADA: num SALIDA: mensaje INICIO ENTERO num TEXTO mensaje LEER num SI ( num RESTO 2 = 0 ) ENTONCES mensaje = Es un numero par SINO mensaje = Es un numero impar FINSI ESCRIBIR mensaje FIN
mensaje=Numero par
mensaje=Numero impar
mensaje
FIN
JAVA
Import bibioteca.Lectura; class PrgNumPar { public static void main (String[] args ) { String mensaje; int numero; System.out.print (Ingrese un numero: ); numero = Lectura.leerInt(); if (numero % 2 == 0) { mensaje = Numero par; } else { mensaje = Numero impar; } System.out.print (Usted ingreso el numero: + numero + ,es un + mensaje); } }
C
#include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { string mensaje; int numero; cout <<Ingrese un numero: ; cin >> numero; if (numero % 2 == 0) { Mensaje = Es un numero par; } else { Mensaje = Es un numero impar; } cout <<Usted ingreso el numero: + numero + ,es un + mensaje; return 0; }
INTENTALO!!!
1. Calcular y mostrar el monto total a pagar por la compra de un artculo si se tiene que agregar el IGV. En caso que el monto total a pagar incluido IGV sea mayor a S/.500 nuevos soles se aplica un descuento de 8%, caso contrario el descuento ser de 2%. 2. Ingresar la edad de una persona y mostrar un mensaje expresando si es o no mayor de edad.
Introduccin a la Computacin
SEMANA 08
EXPLICACIN:
En el pseudocdigo mostrado, se puede apreciar un ejemplo de una estructura mltiple SI Anidados. Observe como se combinan estructuras de decisin simple y estructuras de decisin doble. Tenga presente que para formar una estructura mltiple SI Anidados puede utilizar cualquier combinacin de estructuras de decisin simple y doble.
FORMATO EN PSEUDOCODIGO
FORMATO EN JAVA
JAVA
OBSERVACIN:
El presente cdigo desarrollado en Java es la traduccin del pseudocdigo de la diapositiva anterior. El profesor desarrollar en clase otras formas de utilizar las estructuras de decisin mltiple SI Anidados.
Problema 1: Calcular el rea de un rectngulo conociendo su base y altura. Si el rea es menor que 100, se deber visualizar el mensaje rectngulo pequeo; si el rea es mayor o igual a 100 y menor que 1000, se visualizar el mensaje rectngulo mediano; y si el rea es mayor o igual que 1000, el mensaje ser rectngulo grande.
INICIO NUMERO base, altura, area TEXTO mensaje LEER base, altura area = base * altura SI (area < 100) ENTONCES mensaje = rectngulo pequeo SINO SI (area >= 1000) ENTONCES mensaje = rectngulo grande SINO mensaje = rectngulo mediano FINSI FINSI ESCRIBIR area, mensaje FIN
Problema 2: Leer el sueldo de un trabajador y calcule su aumento por incremento del costo de vida de acuerdo a la siguiente tabla:
Tipo
Sueldo < 2000 2000 < =Sueldo < =3000 Sueldo > 3000
Monto
20% 13% 9%
INICIO
NUMERO sueldo, nuevoSueldo LEER sueldo SI (sueldo < 2000) ENTONCES nuevoSueldo = sueldo * 1.2 SINO SI (sueldo > 3000) ENTONCES nuevoSueldo = sueldo * 1.09 SINO nuevosueldo = sueldo * 1.13 FINSI FINSI
ESCRIBIR nuevoSueldo
FIN
Problema 3: Determinar si un nmero es divisor de otro nmero; Utilice la expresin (num1 RESTO num2 > 0) donde num1 y num2 son los dos nmeros.
ESTRUCTURAS LGICAS DE DECISION MULTIPLE ENTRADA: num1, num2 SALIDA: mensaje INICIO NUMERO num1, num2 TEXTO mensaje LEER num1, num2 SI (num1 > = num2) ENTONCES SI (num1 RESTO num2 = 0) ENTONCES mensaje = El segundo nmero es divisor del primer nmero SINO mensaje = El segundo nmero no es divisor del primer nmero FINSI SINO SI (num2 RESTO num1 = 0) ENTONCES mensaje = El primer nmero es divisor del segundo nmero SINO mensaje = El primer nmero no es divisor del segundo nmero FINSI FINSI ESCRIBIR mensaje FIN
Problema 5: Ingresar tres notas de un alumno. Muestre las notas ordenadas en forma ascendente.
Problema 5: Disee una solucin en Pseudocdigo y Diagrama de flujo que permita ingresar y convertir una cantidad en metros a sus equivalentes en centmetros, pulgadas, pies y yardas. Considere la siguiente informacin: 1 metro = 100 cm. 1 pulgada = 2.54 cm. 1 pie = 12 pulgadas. 1 yarda = 3 pies. Problema 6: Elabore una solucin en Java que ingrese un nmero entero e indique las siguientes descripciones sobre el nmero ingresado: -Si es positivo o negativo. -Si es par o impar. -Si es mltiplo de 3 o no. -Si es menor que 500 o no. Problema 7: Elabore una solucin en Java Calcular y mostrar el costo total que representa un paciente para un hospital de acuerdo al tipo de enfermedad, segn los datos de la tabla. Adicionalmente, debe considerar que los pacientes de sexo femenino menores de 12 aos implican un costo adicional de 13%.
Enfermedad Tipo 1 2 Costo diario por paciente 122 234
3
4
345
587
Introduccin a la Computacin
SEMANA 10
CUANDO (variable) SEA CASO (valor 1) : instrucciones... TERMINAR CASO (valor n) : instrucciones... TERMINAR OTROS instrucciones... FINCUANDO
Si el valor de la variable es igual a uno de los valores colocados despus de una de las reglas CASO, se ejecutan las instrucciones que estn dentro del mismo. Si el valor de la variable no es igual a ninguno de los valores colocados despus de una de las reglas CASO, se ejecutan las instrucciones que estn dentro de la regla OTROS. La regla OTROS es opcional (es decir, puede aparecer como no).
CASO (VALOR 1)
F
Instrucciones
TERMINAR
CASO (VALOR 2)
F
Instrucciones
TERMINAR
CASO (VALOR 3)
F
Instrucciones
TERMINAR
CASO (VALOR n)
F
Instrucciones
TERMINAR
switch (variable) { case valor 1 : sentencias... break case valor 2 : sentencias... break case valor n : sentencias... break default : sentencias... }
Si el valor de la variable es igual a uno de los valores colocados despus de la palabra reservada case (valor 1, valor 2, etc), se ejecutan las sentencias que estn dentro del mismo hasta llegar al final (es decir hasta la llave) a no ser que encuentre una palabra reservada break entre las sentencias que se ejecutan. Si el valor de la variable no es igual a ninguno de los valores colocados despus de una de las palabras reservadas case, se ejecutan las sentencias que estn dentro de la palabra reservada default. La palabra reservada default es opcional (es decir puede aparecer como no).
Problema 1: Ingresar la categora (categoria) y el sueldo (sueldo) de un trabajador, y calcular su aumento de sueldo teniendo en cuenta la siguiente mostrada. Mostrar el nuevo sueldo del trabajador (sueldo).
Categora
Aumento
1
2 3 4
38 %
21 % 12 % 08 %
ENTRADA: categoria, sueldo SALIDA: sueldo INICIO ENTERO categoria REAL sueldo LEER categoria, sueldo CUANDO (categoria) SEA CASO (categoria = 1) sueldo = sueldo * 1.38 TERMINAR CASO (categoria = 2) sueldo = sueldo * 1.21 TERMINAR CASO (categoria = 3) sueldo = sueldo * 1.12 TERMINAR CASO (categoria = 4) sueldo = sueldo * 1.08 TERMINAR OTROS Sueldo = sueldo FIN CUANDO ESCRIBIR sueldo FIN
Categoria=1
Categoria=2 Categoria=3
sueldo
FIN
int categoria doublesueldo; cout <<Ingrese la categoria; cin >> categoria cout <<Ingrese el sueldo; cin >> sueldo;
switch (categoria) { case 1: sueldo = sueldo * 1.38; break; case 2: sueldo = sueldo * 1.21; break; case 3: sueldo = sueldo * 1.12; break; case 4: sueldo = sueldo * 1.08; break; default: sueldo = sueldo } cout << Su sueldo es: + sueldo>>; return 0;
INTENTALO!!!
1.En una dulcera se venden 4 tipos de sndwich, de acuerdo a la siguiente tabla: Desarrolle una solucin que permita calcular el monto a pagar por La compra de cada sndwich.
Categora A B C D Aumento% 4.5 5.0 7.5 13.5
2.-
Desarrollar una solucin que permita realizar operaciones de suma, resta o multiplicacin. Se deber ingresar dos nmeros y el tipo de operacin que se desea realizar
smbolo + * / operacin Suma Resta Multiplicacin Divisin
Introduccin a la Computacin
SEMANA 11
ESTRUCTURAS DE DATOS
Problema 1: Calcular la nota final de todos los alumnos del curso utilizando la siguiente frmula: nf = ( n1 + (n2 *2 ) ) / 3
Problema 1: Calcular la nota final de todos los alumnos del curso utilizando la siguiente frmula: nf = ( n1 + (n2 *2 ) ) / 3
Algoritmo Nfinales
ENTRADA: numalu, n1, n2 SALIDA: nf INICIO ENTERO numalu, n1, n2, cont=1 REAL nf LEER numalu MIENTRAS (cont <= numalu) HACER LEER n1, n2 nf = ( n1 + (n2 *2 ) ) / 3 ESCRIBIR nf cont = con +1 FINMIENTRAS FIN
Problema 3: hacer un programa que muestre los 10 primeros nmeros enteros positivos.
Problema 5: hacer un programa que muestre el cuadrado de los 10 primeros nmeros pares.
Problema 6: hacer un programa que muestre la suma de los cuadrados de los 10 primeros nmeros impares.
Problema 5: Calcular la suma de una lista de N nmeros enteros ingresados por el usuario.
Introduccin a la Computacin
SEMANA 12
Problema 1: Calcular la nota final de los alumnos del curso, siempre que se desee continuar. Utilizar la siguiente frmula:
nf = (n1 + n2) / 2
Problema 1: Calcular la nota final de los alumnos del curso, siempre que se desee continuar. Utilizar la siguiente frmula: nf = (n1 + n2) / 2
Algoritmo Nota
ENTRADA: n1, n2 SALIDA: nf INICIO ENTERO n1, n2 REAL nf HACER LEER n1, n2 nf = ( n1 + (n2 *2 ) ) / 3 ESCRIBIR nf LEER continua MIENTRAS (continua = S O continua=s) FIN
# include<iostream> using std::cout; using std::cin; int main(){ int n1=0,n2=0; double nf=0; char continua=' '; do { cout << "Ingrese la nota1:\t"; cin >> n1; cout << "Ingrese la nota2:\t"; cin >> n2; nf = (double)( n1 + n2 ) / 2; cout << "Nota final =\t\t" + nf+"\n"; cout << "Si desea continuar ingresar (S) " + "\ncaso contrario Ingresar cualquier otro caracter:\t"; continua=Lectura.leerChar(); } while (continua == 'S' || continua == 's'); cout << "***Gracias por usar el programa***"; }
ESTRUCTURAS LGICAS
Desarrollar una solucin que me permita ingresar 2 nmeros y muestre el men con las opciones a continuacin:
ESTRUCTURAS LGICAS
package domApli; import biblioteca.*; public class PrgMenu { public static void main(String[] args) { int opc; double n1=0,n2=0; do{ System.out.println("INGRESAR 2 NUMEROS "); System.out.println("Ingresar primer numero: "); n1=Lectura.leerDouble(); System.out.println("Ingresar segundo numero: "); n2=Lectura.leerDouble(); System.out.println(" *** OPERACION *** "); System.out.println(" [1] Sumar "); System.out.println(" [2] Restar "); System.out.println(" [3] Multiplicar "); System.out.println(" [4] Dividir "); System.out.println(" [5] Salir "); do{ System.out.print(" Selecionar opcion ..... "); opc=Lectura.leerInt(); } while(opc>5 || opc<1 ); switch(opc){ case 1: System.out.println("La suma es: "+(n1+n2)); break; case 2: System.out.println("La resta es: "+(n1-n2)); break; case 3: System.out.println("La multiplicaciones es: "+(n1*n2)); break; case 4: System.out.println("La division es: "+(n1/n2)); break; case 5: break; } } while(opc != 5); System.out.print("Gracias, fin de la aplicacion..."); }}
INTENTALO!!!
[1] Se desea desarrollar un programa que permita calcular la nota final de cada uno de los 70 alumnos que pertenecen a un saln de clase, utilizando la siguiente formula: NF= (EP + PP + EF)/3 Ingresar las notas de los alumnos a travs del teclado, luego mostrar los resultados para cada alumno.
INTENTALO!!!
[2] desarrollar un programa donde se pueda leer 100 nmeros desde el teclado y tener como resultado, cuantos de estos nmeros son mltiplos de 3, cuantos son mltiplos de 5 y el promedio de los 100 nmeros ingresados.
Introduccin a la Computacin
SEMANA 13
PSEUDOCODIGO
Condicin
F
Accin v
FIN
Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Algoritmo - pseudocodigo
INICIO REAL monto, suma INT cont
Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla.
Diagrama de Flujo INICIO
REAL monto, suma INT cont1
X
cont=cont+1
cont<=5
monto
suma X FIN
Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Codificacin en Java
package domApli; import biblioteca.*; public class sumamonto { public static void main (String[ ] args) { real monto, suma; int cont; for(cont=1; cont <=5; cont++) { System.out.println(ingrese monto: ); monto = Lectura.leerReal( ); suma = suma + monto; } System.out.println(la suma es: +suma); }
Problema 2: Calcular y mostrar la nota final de 10 alumnos utilizando la siguiente frmula:nf = (n1+n2))/2. Ingrese las notas a travs del teclado.
Algoritmo Nfinales3
FIN
Problema 2: Calcular y mostrar la nota final de 10 alumnos utilizando la siguiente frmula:nf = (n1+n2))/2. Ingrese las notas a travs del teclado.
JAVA package domApli; import biblioteca.Lectura; class PrgAPrgNfinales3 { public static void main (String[] args) { int i; double n1=0,n2=0,nf=0; for (i=1; i<=10; i++) {
System.out.print(Ingrese la nota1: );
C #include <iostream> using std::cout; using std::cin; int main ( ) { int i; double n1=0,n2=0,nf=0; for (i=1; i<=10; i++) { cout <<Ingrese la nota1; cin >> n1; cout <<Ingrese la nota2; cin >> n2; nf = ( n1 + n2 ) / 2; cout << Nota final =+nf; } Return 0; }
n1 = Lectura.leerInt();
n2 = Lectura.leerInt(); nf = ( n1 + n2 ) / 2; } }
System.out.print(Ingrese la nota2: );
Problema 3: Determinar cules son los trminos de una progresin aritmtica. Solicite el valor del primer trmino, el valor de la razn y el nmero de trminos.
C++
Problema 4: Calcular y visualizar la suma de los nmeros pares comprendidos entre los nmeros 20 y 400.
Algoritmo SumaPares
ENTRADA: SALIDA: sumaPares INICIO ENTERO num, sumaPares = 0 PARA (num =22, num<398, num= num+1) HACER SI (num RESTO 2 = 0 ) ENTONCES sumaPares = sumaPares + num FINSI FINDESDE ESCRIBIR sumaPares FIN
Problema 4: Calcular y visualizar la suma de los nmeros pares comprendidos entre los nmeros 20 y 400.
JAVA package dominioDeLaAplicacion ; class PrgSumaPares { public static void main (String[] arg) { int num, sumaPares = 0 ; for ( num=22 ; num<399 ; num++) { if ( num % 2 == 0) { sumaPares = sumaPares + num; } } System.out.println (La suma de los numeros pares entre 20 y 400 es: + sumaPares); } }
ESTRUCTURAS DE DATOS
Ejemplo:
En Pseudocdigo En Java
sw = FALSO
sw = false ;
Problema 5: Desarrolle una solucin que permita determinar si un numero es o no primo. Emplee interruptores.
El conjunto de los nmeros primos es un subconjunto de los nmeros naturales que engloba a todos los elementos de este conjunto que son divisibles exactamente tan slo por s mismos y por la unidad (por convencin, el 1 no se considera primo). Los veinte primeros nmeros primos son: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67 y 71
Ntese el hecho de que todos los nmeros naturales son divisibles por s mismos y por la unidad.
Problema 5: Desarrolle una solucin que permita determinar si un numero es o no primo. Emplee interruptores.
INICIO LOGICO sw = VERDADERO NUMERO i, num LEER num DESDE i = 2 HASTA i = num - 1 SI ( num RESTO i = 0 ) ENTONCES sw = FALSO FINSI FINDESDE SI ( sw ) ENTONCES ESCRIBIR Nmero primo SINO ESCRIBIR Nmero no es primo FINSI FIN
ESTRUCTURAS LGICAS DE CONTROL - REPETICION JAVA package domApli ; class PrgSumaPares { public static void main (String [ ] args) { boolean sw = true; int i, num; System.out.print("Ingrese el numero a evaluar :"); num=Lectura.leerInt(); for (i=2;i<num;i++){ if (num % i == 0 ) { sw = false; } } if (sw){ System.out.print("El numero es primo"); }else{ System.out.print("El numero no es primo"); } } }
Problema 6:
package domApli; public class PrgFiguraCuadrado { public static void main(String[] args) { int i, j ; for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { System.out.print("*"); } System.out.println(); } }}
Problema 7:
package domApli; public class PrgFiguraCuadrado { public static void main(String[] args) { int i, j ; for (i = 1; i <= 5; i++) { for (j = 1; j <= i; j++) { System.out.print( * ); } System.out.println(); } }}
Problema 8:
package domApli; public class PrgFiguraCuadrado { public static void main(String[] args) { int i, j ; for (i = 1; i <= 5; i++) { for (j = 1; j <= i; j++) { System.out.print( i ); } System.out.println(); } }}
Desarrollar la codificacin de las soluciones que permitan mostrar las siguientes figuras:
Problema 9
Problema 10
Problema 11
SEMANA 15
Objetivos :
Describir la estructura de datos tipo arreglo. Uso de vectores y matrices. Desarrollo de soluciones con uso de vectores
ARREGLOS Definicin:
Los arreglos son estructuras de datos que consisten en elementos del mismo tipo. Los arreglos son entidades estticas en cuanto a que su tamao no cambia una vez que han sido creadas. Se debe tener en cuenta que antes de usar los elementos de un arreglo, se debe: Declarar Crear inicializar
ARREGLOS Tipos:
Arreglos unidimensionales o vectores
Representacin:
nmeros
0 1 2 3
32
-2
174 tamao=4
32 14
-2 12
0 -5
DECLARACIN:
Ejemplos;
Ejemplos;
CREACIN:
Ejemplos;
Ejemplos;
- nombres = new String [10] ; - sueldos = new double [numNot] ; - letras = new char [texto.length()] ;
INGRESO DE DATOS:
Ejemplos;
Ejemplos;
- nombres [0 ] = Danae
- sueldos [1] = 100.5 - letras [x] = J
Cuando utilizamos vectores podemos utilizar las estructuras lgicas de repeticin para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE PARA.
TAMAO:
Ejemplos;
Ejemplos;
Ejercicio 1 Desarrollar una solucin que permita ingresar y almacenar las notas de todas las prcticas de un alumno. Determinar el promedio de las prcticas sabiendo que se elimina la prctica con la nota mas baja. Utilice vectores.
Algoritmo VectorNotas
ENTRADA: numPra, notas[ ] / SALIDA: promAlu INICIO ENTERO i, numPra REAL sumaNotas = 0, notaMenor = 20 REAL notas[ ], promAlu COMENTARIO Creacin del arreglo CREAR notas [numPra] COMENTARIO Ingreso de datos al arreglo notas[ ]. PARA (i=0, i<numpra, i=i+1) HACER LEER notas[i] FINPARA COMENTARIO Clculo del promedio de notas de las prcticas PARA (i=0, i<numpra, i=i+1) HACER sumaNotas = sumaNotas + notas[i] FINPARA PARA (i=0, i<numpra, i=i+1) HACER SI ( notaMenor > notas[i] ) ENTONCES notaMenor = notas[i] FINSI FINPARA promAlu = ( sumaNotas - notaMenor ) / ( numPra - 1 ) ESCRIBIR promAlu
Ejercicio 2 Desarrollar una solucin que permita ingresar y almacenar el sueldo (sueldos[]) de todos los trabajadores de una empresa. Calcular y mostrar el sueldo neto (sueldoNeto) de cada trabajador, sabiendo que se tienen que descontar el 12% por impuestos y el 3% por seguro. Consistenciar el ingreso de datos. Ejercicio 3 Desarrollar una solucin que permita ingresar y almacenar la nota (notas[]) de 10 alumnos de un saln de clase y determinar el promedio final del aula (prom). Mostrar el promedio. Consistenciar el ingreso de datos. .Ejercicio 4 Desarrollar una solucin que permita ingresar y almacenar la nota (notas[]) de todos los alumnos de un saln de clase y determinar el promedio final (prom) redondeado a dos decimales. Mostrar el promedio. Consistenciar el ingreso de datos.
Emplee vectores
PROYECTO FINAL
SEMANA 16