You are on page 1of 155

Introduccin a la computacin

ALGORITMO

Objetivos

Desarrollo de conceptos bsicos:

Algoritmos

Pseudocodigo Diagrama de Flujo Java C++

Programacin

Visualizacin de Datos Empleo de Comentarios

Mtodo de las 6D Mtodo para la solucin de problemas utilizando la computadora


Documentacin

ETAPA 6
Depuracin pruebas

ETAPA 5

CODIFICACIN MODELAMIENTO ALGORITMO

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

Etapas para la solucin de problemas

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.

DESARROLLO DE CONCEPTOS BSICOS

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.

DESARROLLO DE CONCEPTOS BSICOS

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.

DESARROLLO DE CONCEPTOS BSICOS

ALGORITMO Herramientas

Se dispone de diversas herramientas para ayudar a los programadores a desarrollar los algoritmos.
ALGORITMO
Pseudocodigo Diagrama de flujo

Herramientas

DESARROLLO DE CONCEPTOS BSICOS

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

DESARROLLO DE CONCEPTOS BSICOS

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

DESARROLLO DE CONCEPTOS BSICOS

Diagrama de flujo
INICIO INICIO DOUBLE sueldo ENTERO n

sueldo = 100

LEER n

sueldo

n < 100

sueldo = sueldo *0.50

n = n*1.20

sueldo

FIN
FIN

DESARROLLO DE CONCEPTOS BSICOS

Diagrama de flujo Simbolos bsicos


INICIO / FIN Este smbolo permite marcar el inicio y el final del algoritmo ENTRADA Este smbolo es empleado para el ingreso de datos SALIDA Este smbolo es empleado para la visualizacin de la informacin que resulta del procesamiento DECISION Permite seleccionar entre dos posibles alternativas de solucin PROCESO Empleado para signar valores a variables y resultado de operaciones matemticas FLUJOS (LINEAS) Permiten unir los diagramas y mostrar la secuencia lgica de la solucin del problema CONECTOR Permiten unir los diagramas y mostrar la secuencia lgica de la solucin del problema

DESARROLLO DE CONCEPTOS BSICOS

PROGRAMACIN

Sentencias que la computadora puede comprender y ejecutar.

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.

DESARROLLO DE CONCEPTOS BSICOS

JAVA
ESTRUCTURA BSICA
package domApli ;
class PrgBienvenida { public static void main (String[ ] args) { } }

DESARROLLO DE CONCEPTOS BSICOS

C++
ESTRUCTURA BSICA #include <iostream> using namespace std ; int main( ) { return 0 ; }

JAVA
Proyecto: Paquete: Clase:

ProSet domApli PrgSuma

Nombres estandarizados para JAVA

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 JAVA Clase System


System.out.print (nombreVariable) ; System.out.print (x + 2); System.out.print ( Hola ) ;

EN C++ cout<<
cout << nombreVariable ; cout << (x + 2);

cout << Hola ;

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

Bienvenidos al desarrollo de algoritmo

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:

Daniel Flores 11 aos

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

Un numero real (Con decimales)


Un solo carcter Una cadena de caracteres

LOGICO

boolean

bool

Un valor VERDADERO o FALSO

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

OPERADORES RELACIONALES, LOGICOS y DE ASIGNACION


PSEUDOCODIGO DF JAVA C++ REPRESENTA A:

< > = <= >= <> NO (Not) Y (And)

< > == <= >= != ! &&

< > == <= >= != ! &&

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

VARIABLES Y CONSTANTES Variables :


Una variable es una estructura de datos (lineal-esttica) que permite reservar un espacio con la finalidad de almacenar temporalmente los datos. Una variable slo puede almacenar un solo dato a la vez y del mismo tipo; Declaracin, Almacenamiento de datos e inicializacin.

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

: final pi = 3.1416 : const pi = 3.1416

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

Inicializacin : Significa asignar un valor inicial a la variable, el cual luego


puede ser modificado mediante el almacenamiento de datos.
nombreDeVariable = valor inicial
Pseudocdigo / DF Java C++ : nota1 = 0 : nota1 = 0 : nota1 = 0 nombre = nombre = nombre = tipo = tipo = tipo =

Asignacin : Significa dar un valor a la variable durante el desarrollo del


algoritmo.
Pseudocdigo / DF Java C++

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

ENTERO num1, num2, suma

num1 = 10 num2 = 15

suma = num1 + num2

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;

// asignacin num1=10; num2=15;


// operacin suma = num1 + num2; // Visualizacin de resultados System.out.print (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

ENTERO lado, area

lado = 10

area = lado * lado

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

int lado, area;


// asignacin

int lado, area;


// asignacin

lado = 10;
// operacin

lado = 10;
// operacin

area = lado * lado;


// Visualizacin de resultados

area = lado * lado;


// Visualizacin de resultados

System.out.print (El area es: + area); } }

cout << El area es: << area ; return 0; }

ESTRUCTURAS DE SECUENCIA

Ingreso de datos Definicin:


Este permite ingresar datos de diferente tipo a travs de un dispositivo de entrada de una computadora (el teclado).

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 () ;

En C cin >> nombreVariable ;

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

Algoritmo MostrarNombre ENTRADA: nombre SALIDA: nombre

TEXTO nombre

nombre

INICIO TEXTO nombre LEER nombre ESCRIBIR nombre FIN

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;

public static void main (String [ ] args) {


String nombre; //Ingreso de datos System.out.print (Ingrese el nombre: ); nombre = Lectura.leerString(); System.out.print (El nombre es: + nombre); } }

cout <<Ingrese el nombre: ;

cout << El nombre es: << nombre ; return 0; }

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, nota1, nota2

promedio = (nota1 + nota2) / 2

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

ESTRUCTURAS DE DECISION SI FIN SI


SEMANA 06

ESTRUCTURAS LGICAS DE DECISIN

Estructura lgica de decisin simple (SI.. FINSI)


Una estructura de decisin simple SI... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solucin ejecutando un conjunto de pasos adicionales si el resultado de una condicin lgica es verdadera.

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

ESTRUCTURAS LGICAS DE DECISIN

Estructura lgica de decisin simple (SI.. FINSI)

ESTRUCTURAS LGICAS DE DECISIN

Estructura lgica de decisin simple (SI.. FINSI)


JAVA y C++
EXPLICACIN:

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 { }.

ESTRUCTURAS LGICAS DE DECISIN

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

ESTRUCTURAS LGICAS DE DECISIN

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; }

ESTRUCTURAS LGICAS DE DECISIN

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

ENTRADA: nota1, nota2 SALIDA: nf, mensaje=

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

ESTRUCTURAS LGICAS DE DECISIN


JAVA Package domApli; import biblioteca.Lectura; class PrgNotaFinal { public static void main (String [] args) { String mensaje= ; int nota1, nota2, nf;
System.out.print (Ingrese la nota1: );

#include <iostream> #include <string> using std::cout ; using std::cin ; using std::string;

int main ( ) {

string mensaje= ;

int nota1, nota2, nf;


cout <<Ingrese la nota1: ;

nota1 = Lectura.leerInt();
System.out.print (Ingrese la nota2: );

cin >> nota1;


cout <<Ingrese la nota2: ;

nota2 = Lectura.leerInt(); nf = (nota1 + nota2) / 2;

cin >> nota2;


nf = (nota1 + nota2) / 2; //Estructura de Decisin Simple if (nf > 13){ mensaje = Felicitaciones; } cout <<Su promedio es: + nf + mensaje); return 0; }

//Estructura de Decisin Simple if (nf > 13){ Mensaje = Felicitaciones; }


System.out.print (Su promedio es: + nf + mensaje); }}

ESTRUCTURAS LGICAS DE DECISIN

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.

ESTRUCTURAS DE DECISION SI SINO - FIN SI

SEMANA 07

ESTRUCTURAS LGICAS DE DECISION

Estructura Lgica de Decisin Doble (SI/SINO) Definicin:


Una estructura de decisin doble SI... SINO... FINSI permite alterar el flujo secuencial (o pasos secuenciales) de una solucin, ejecutando un conjunto de pasos dependiendo del resultado de una condicin lgica. Si la condicin resulta verdadera, se ejecuta un conjunto de pasos, y si la condicin resulta falsa, se ejecuta otro conjunto de pasos. En ningn caso se podr ejecutar ambos conjuntos de pasos a la vez.
PSEUDOCODIGO
SI (condicin) ENTONCES instrucciones... SINO instrucciones... FINSI
EXPLICACIN: Si la condicin resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y SINO. Si la condicin resulta falsa se ejecutan las instrucciones que se encuentran entre las reglas SINO y FINSI. Slo se ejecuta uno de los grupos de instruccin, en ningn caso se podr ejecutar ambos grupos.

ESTRUCTURAS LGICAS DE DECISION

Estructura Lgica de Decisin Doble (SI/SINO)

ESTRUCTURAS LGICA DE DECISION

Estructura Lgica de Decisin Doble (SI/SINO)

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.

if (condicin) { sentencias... } else { sentencias... }

ESTRUCTURAS LGICAS DE DECISION

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

ENTRADA: nota1, nota2, nota3 SALIDA: nf, mensaje


INICIO ENTERO nota1, nota2,nota3 REAL nf TEXTO mensaje LEER nota1, nota2, nota3 nf = (nota1 + nota2 + nota3 ) / 3 SI ( nf < 14 ) ENTONCES mensaje = Desaprobado SINO mensaje = Aprobado FINSI ESCRIBIR nf, mensaje FIN

mensaje=Desaprobado

mensaje=Aprobado

mensaje

FIN

ESTRUCTURAS LGICAS DE DECISION


import biblioteca.Lectura; class PrgNotaFinal2 { public static void main (String[] args ) { String mensaje; int nota1, nota2, nota3 double nf ; System.out.print (Ingrese la nota1: ); nota1 = Lectura.leerInt(); System.out.print (Ingrese la nota2: ); nota2 = Lectura.leerInt(); System.out.print (Ingrese la nota3: ); nota3 = Lectura.leerInt(); nf = (nota1+nota2+nota3) / 3; if (nf <14) { mensaje = Desaprobado; } else { mensaje = Aprobado; } System.out.print (su nota final es: + nf + , usted est + mensaje);
#include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { string mensaje; int nota1, nota2, nota3; double nf; cout <<Ingrese la nota1: >>; cin >> nota1; cout << Ingrese la nota2: >>; cin >> nota2; cout <<Ingrese la nota3: >>; cin >> nota3; nf = (nota1+nota2+nota3) / 3; if (nf <14) { mensaje = Desaprobado; } else { mensaje = Aprobado; } cout <<su nota final es: + nf + , usted est + mensaje; return 0; }

ESTRUCTURAS LGICAS DE DESICION

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

ESTRUCTURAS LGICAS DE DECISION

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; }

ESTRUCTURAS LGICAS DE DECISION

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

ESTRUCTURAS DE DECISION MULTIPLES SI ANIDADOS

SEMANA 08

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

Estructura Lgica de Decisin Mltiple (SI Anidados) Definicin:


Una estructura de decisin mltiple SI Anidados permite alterar el flujo secuencial de una solucin ejecutando un conjunto de pasos que dependen del resultado de evaluar diferentes condiciones lgicas dentro de estructuras de decisin simple o doble. PSEUDOCODIGO
SI (condicin1) ENTONCES instrucciones1 SINO SI (condicin2) ENTONCES instrucciones2 SINO SI (condicin3) ENTONCES instrucciones3 FINSI FINSI FINSI

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

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

Estructura Lgica de Decisin Mltiple (SI Anidados)

FORMATO EN JAVA

JAVA
OBSERVACIN:

if (condicin1) { sentencias1... } else { if (condicin2) { sentencias2... } else { if (condicin3) { sentencias3 } } }

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.

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

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.

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

ENTRADA: base, altura SALIDA: area, mensaje

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

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

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%

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

ENTRADA: sueldo SALIDA: nuevoSueldo

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

ESTRUCTURAS LGICAS DE DECISION MUTIPLE

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

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

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

Problema 4: Ingresar tres notas de un alumno. Mostrar el mayor de ellas

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

Problema 5: Ingresar tres notas de un alumno. Muestre las notas ordenadas en forma ascendente.

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

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

ESTRUCTURAS DE DECISION MULTIPLE CUANDO

SEMANA 10

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

ESTRUCTURA LGICA DE DECISIN MLTIPLE (CUANDO)


Definicin:
Una estructura de decisin mltiple CUANDO... FINCUANDO permite alterar el flujo secuencial de una solucin ejecutando un conjunto de pasos dependiendo del valor de una variable. Generalmente, para cada posible valor que pueda tener la variable se define un conjunto de pasos a ejecutar. Tambin se define un conjunto de pasos a ejecutar en caso que uno de los valores de la variable no tenga asociado un conjunto de pasos a ejecutar.

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

Estructura Lgica de Decisin Mltiple (CUANDO)


PSEUDOCODIGO
EXPLICACIN:

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).

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

Estructura Lgica de Decisin Mltiple (CUANDO)

CASO (VALOR 1)
F

Instrucciones

TERMINAR

CASO (VALOR 2)
F

Instrucciones

TERMINAR

CASO (VALOR 3)
F

Instrucciones

TERMINAR

CASO (VALOR n)
F

Instrucciones

TERMINAR

Instrucciones POR DEFECTO

ESTRUCTURAS LGICAS DE DECISIN MULTIPLE

Estructura Lgica de Decisin Mltiple (CUANDO)


JAVA y C
EXPLICACIN:

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).

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

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 %

ESTRUCTURAS LGICAS DE DECISION MULTIPLE


Algoritmo PrgSueldo main()

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

ESTRUCTURAS LGICAS DE DECISION MULTIPLE


INICIO NUMERO categoria REAL sueldo categoria, sueldo

Categoria=1

Sueldo = sueldo * 1.38

Categoria=2 Categoria=3

Sueldo = sueldo * 1.21 Sueldo = sueldo * 1.12

Categoria=4 Sueldo = sueldo

Sueldo = sueldo * 1.08

sueldo

FIN

ESTRUCTURAS LGICAS DE DECISION MUTIPLE


class PrgSueldo { public static void main (String[] arg) { int categoria; double sueldo=0; System.out.print (Ingrese la categoria); categoria = Lectura.leerInt(); System.out.print (Ingrese el sueldo); sueldo = Lectura.leerInt(); 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 } System.out.print (Su sueldo es: + sueldo); } }

#include <iostream> using std::cout ; using std::cin ;


int main ( ) {

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;

ESTRUCTURAS LGICAS DE DECISION MULTIPLE

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

ESTRUCTURAS DE CONTROL MIENTRAS

SEMANA 11

ESTRUCTURAS DE DATOS

Variables Uso de contadores Definicin:


Un contador es una variable entera que toma un valor inicial y cuyo valor se incrementa o decrementa en una cantidad fija cada vez que se ejecutan los pasos que forman parte de una estructura de repeticin. Un contador puede ser creciente o decreciente.

contador = contador + cantidadConstante


Ejemplos: - Incremento de 1 en 1 - Incremento de 2 en 2 En Pseudocdigo c=c+1 contar = contar + 2 En Java y C C++ contar += 2 ;

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (MIENTRAS) Definicin:


Una estructura lgica de repeticin MIENTRAS FINMIENTRAS, permite repetir una instruccin o un bloque de instrucciones mientras que una condicin se cumpla o sea verdadera. Esta estructura de repeticin prueba la condicin antes de ejecutar la instruccin o instruccin.
PSEUDOCODIGO

MIENTRAS (condicin) instruccin 1 . . . instruccin n FINMIENTRAS

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (MIENTRAS)

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (MIENTRAS) JAVA y C while (condicin) { sentencia 1 . . . sentencia n }

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 1: Calcular la nota final de todos los alumnos del curso utilizando la siguiente frmula: nf = ( n1 + (n2 *2 ) ) / 3

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 2: Calcular la suma de 5 nmeros ingresados por teclado.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 3: hacer un programa que muestre los 10 primeros nmeros enteros positivos.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 4: hacer un programa que muestre los 10 primeros nmeros impares.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 5: hacer un programa que muestre el cuadrado de los 10 primeros nmeros pares.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 6: hacer un programa que muestre la suma de los cuadrados de los 10 primeros nmeros impares.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 5: Calcular la suma de una lista de N nmeros enteros ingresados por el usuario.

Introduccin a la Computacin

ESTRUCTURAS DE CONTROL HACER - MIENTRAS

SEMANA 12

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (HACER-MIENTRAS) Definicin:


Una estructura lgica de repeticin HACER... MIENTRAS, permite repetir una instruccin o un bloque de instrucciones mientras que una condicin se cumpla o sea verdadera. Esta estructura de repeticin permite que se ejecuten al menos una vez las instrucciones o instruccin antes de probar la condicin. Esta estructura es utilizada para el desarrollo de men y para la consistencia de los datos.

PSEUDOCODIGO HACER instruccin 1 . . . instruccin n MIENTRAS (condicin)

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (HACER - MIENTRAS)

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (HACER - MIENTRAS)

JAVA y C do { sentencia 1 . . . sentencia n } while (condicin) ;


SACAR EL PROMEDIO DE 2 NOTAS

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Problema 1: Calcular la nota final de los alumnos del curso, siempre que se desee continuar. Utilizar la siguiente frmula:

nf = (n1 + n2) / 2

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

ESTRUCTURAS LGICAS DE CONTROL REPETICION

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

# 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..."); }}

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Introduccin a la Computacin

ESTRUCTURAS DE CONTROL DESDE PARA

SEMANA 13

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Estructura Lgica de Repeticin (DESDE O PARA)


Una estructura de repeticin DESDE... FINDESDE permite repetir una instruccin, o un bloque de instrucciones, un nmero determinado de veces o hasta que una condicin se cumpla. Una estructura lgica de repeticin DESDE... FINDESDE con frecuencia se utiliza para iteraciones sencillas en donde se repite un bloque de instrucciones un cierto nmero de veces y despus se detiene.

INICIO Declaracin Variables e inicializacin


incremento

PSEUDOCODIGO

PARA (cont=1, cont <= 5, cont++) HACER instruccin 1 . . . instruccin n FINPARA

Condicin
F

Accin v

FIN

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

PARA (cont=1, cont <= 5, cont=cont+1) HACER


LEER monto suma suma + monto FIN PARA ESCRIBIR suma FIN

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

suma = suma + monto

cont<=5

monto

suma X FIN

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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); }

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

ENTRADA: n1, n2 SALIDA: nf

INICIO ENTERO i REAL nf, n1, n2


PARA (i=1 , i =10, cont=cont+1) HACER LEER n1, n2 nf = ( n1 + n2 ) / 2 ESCRIBIR nf FIN PARA

FIN

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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: );

System.out.println(Nota final = +nf);

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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.

ESTRUCTURAS LGICAS DE CONTROL - REPETICION


JAVA package domApli ; import biblioteca.Lectura; class PrgAPrgProgresin { public static void main (String[] args ) { int i, primero, razon, numTerminos,termino; System.out.print ( Ingrese el primer trmino de progresin aritmtica: ); primero = Lectura.leerInt(); System.out.print ( Ingrese la razn de la progresin aritmtica: ); razon = Lectura.leerInt(); System.out.print ( Ingrese el nmero de trminos: ); numTerminos = Lectura.leerInt(); for ( i=1 ; i <= numTerminos ; i++) { termino = primero; System.out.print ( trmino + ) ; primero = primero + razon ; } }} #include <iostream> using std::cout; using std::cin; int main ( ) { int i, primero, razon, numTerminos,termino; cout << Ingrese el primer trmino de progresin aritmtica: ; cin >>primero; cout << Ingrese la razn de la progresin aritmtica: ; cin >> razon; cout << Ingrese el nmero de trminos de la progresin: ; cin >> numTerminos for ( i=1 ; i <= numTerminos ; i++) { termino = primero; cout << trmino + ; primero = primero + razon ; } Return 0; }

C++

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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

Variables Uso de interruptores Definicin:


Un interruptor o conmutador (denominado tambin centinela, bandera o flag) es una variable lgica o numrica que puede tomar dos posibles valores (1/0, verdadero/falso, si/no, encendido/apagado) dentro de una determinada solucin

Ejemplo:

En Pseudocdigo En Java

sw = FALSO

sw = false ;

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)

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.

MTODO 6D SOLUCIONES CON DOS PAQUETES (sin objeto)

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"); } } }

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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(); } }}

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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(); } }}

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

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(); } }}

ESTRUCTURAS LGICAS DE CONTROL - REPETICION

Desarrollar la codificacin de las soluciones que permitan mostrar las siguientes figuras:

Problema 9

Problema 10

Problema 11

ESTRUCTURAS DE DATOS : ARREGLOS

ESTRUCTURAS DE DATOS TIPO ARREGLO VECTORES

SEMANA 15

ESTRUCTURAS DE DATOS : ARREGLOS

Objetivos :

Describir la estructura de datos tipo arreglo. Uso de vectores y matrices. Desarrollo de soluciones con uso de vectores

ESTRUCTURAS DE DATOS : ARREGLOS

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

ESTRUCTURAS DE DATOS : ARREGLOS

ARREGLOS Tipos:
Arreglos unidimensionales o vectores
Representacin:
nmeros
0 1 2 3

32

-2

174 tamao=4

Arreglos bidimensionales o matrices


Representacin:
nmeros
0 0 1 1 2 3

32 14

-2 12

0 -5

174 129 filas=2, columnas=4

ARREGLOS TIPO VECTOR

DECLARACIN:

En Pseudocdigo tipoDato nombreVector [ ]

En Java tipoDato nombreVector [ ] ; tipoDato [ ] nombreVector ;

Ejemplos;

Ejemplos;

- TEXTO nombres [ ] - NUMERO sueldos [ ] - CARACTER letras [ ]

- String nombres [ ] ; - double sueldos [ ] ; - char letras [ ] ;

ARREGLOS TIPO VECTOR

CREACIN:

En Pseudocdigo CREAR nombreVector [tamao]

En Java nombreVector = new tipoDato [tamao] ;

Ejemplos;

Ejemplos;

- CREAR nombres [10 ]


- CREAR sueldos [numNot] - CREAR letras [LONGITUD texto]

- nombres = new String [10] ; - sueldos = new double [numNot] ; - letras = new char [texto.length()] ;

ARREGLOS TIPO VECTOR

INGRESO DE DATOS:

En Pseudocdigo nombreVector [ndice] = valor

En Java identificador [ndice] = valor ;

Ejemplos;

Ejemplos;

- nombres [0 ] = Danae
- sueldos [1] = 100.5 - letras [x] = J

- 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.

ARREGLOS TIPO VECTOR

TAMAO:

En Pseudocdigo variable = LONGITUD nombreVector [ ]

En Java variable = nombreVector.length ;

Ejemplos;

Ejemplos;

- tamao = LONGITUD nombres [ ]


- tamao = LONGITUD sueldos [ ] - tamao = LONGITUD letras [ ]

- tamao = nombres.length ; - tamao = sueldos.length ; - tamao = letras.length ;

ARREGLOS TIPO VECTOR

DECLARACIN Y CREACIN: En Java tipoDato nombreVector [ ] = new tipoDato [tamao] ;

DECLARACIN, CREACIN E INICIALIZACIN:

En Java tipoDato nombreVector [ ] = { valor1, valor2, valor3, valor4, , valorN } ;

ARREGLOS TIPO VECTOR

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

ARREGLOS TIPO VECTOR

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

PRESENTACION DEL PROYECTO FINAL

SEMANA 16

You might also like