Introducción a la Computación Semana 13 Objetivos: Estructuras lógicas de control “DESDE O PARA”
Declaración Variables ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (DESDE O PARA) Una estructura de repetición “DESDE... FINDESDE” permite repetir una instrucción, o un bloque de instrucciones, un número determinado de veces o hasta que una condición se cumpla. Una estructura lógica de repetición “DESDE... FINDESDE” con frecuencia se utiliza para iteraciones sencillas en donde se repite un bloque de instrucciones un cierto número de veces y después se detiene. INICIO Declaración Variables e inicialización incremento PSEUDOCODIGO PARA (cont=1, cont <= 5, cont++) HACER instrucción 1 . instrucción n FINPARA Acción Condición v F FIN
Algoritmo - pseudocodigo ESTRUCTURAS LÓGICAS 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 LÓGICAS DE CONTROL - REPETICION Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Diagrama de Flujo INICIO X cont=cont+1 suma = suma + monto REAL monto, suma INT cont1 v cont<=5 monto suma X FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Codificación 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 LÓGICAS DE CONTROL - REPETICION Problema 2: Calcular y mostrar la nota final de 10 alumnos utilizando la siguiente fórmula:nf = (n1+n2))/2. Ingrese las notas a través 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 LÓGICAS DE CONTROL - REPETICION Problema 2: Calcular y mostrar la nota final de 10 alumnos utilizando la siguiente fórmula:nf = (n1+n2))/2. Ingrese las notas a través del teclado. JAVA package domApli; import biblioteca.Lectura; class PrgAPrgNfinales3 { public static void main (String[] arg) { int i; double n1=0,n2=0,nf=0; for (i=1; i<=10; i++) { System.out.print(“Ingrese la nota1: ”); n1 = Lectura.leerInt(); System.out.print(“Ingrese la nota2: ”); n2 = Lectura.leerInt(); nf = ( n1 + n2 ) / 2; System.out.println(“Nota final = “+nf); } “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;
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 3: Determinar cuáles son los términos de una progresión aritmética. Solicite el valor del primer término, el valor de la razón y el número de términos.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION JAVA package dominioDeLaAplicacion ; import biblioteca.Lectura; class PrgAPrgProgresión { public static void main (String[] arg ) { int i, primero, razon, numTerminos,termino; System.out.print ( “Ingrese el primer término de progresión aritmética: ” ); primero = Lectura.leerInt(); System.out.print ( “Ingrese la razón de la progresión aritmética: ” ); razon = Lectura.leerInt(); System.out.print ( “Ingrese el número de términos: ” ); numTerminos = Lectura.leerInt(); for ( i=1 ; i <= numTerminos ; i++) { termino = primero; System.out.print ( término + “ ” ) ; primero = primero + razon ; } }} “C++” #include <iostream> using std::cout; using std::cin; int main ( ) { int i, primero, razon, numTerminos,termino; cout << “Ingrese el primer término de progresión aritmética: ” ; cin >>primero; cout << “Ingrese la razón de la progresión aritmética: ” ; cin >> razon; cout << “Ingrese el número de términos de la progresión: ” ; cin >> numTerminos for ( i=1 ; i <= numTerminos ; i++) { termino = primero; cout << término + “ ” ; primero = primero + razon ; } Return 0;
PARA (num =22, num<398, num= num+1) HACER SI (num RESTO 2 = 0 ) ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 4: Calcular y visualizar la suma de los números pares comprendidos entre los números 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 LÓGICAS DE CONTROL - REPETICION Problema 4: Calcular y visualizar la suma de los números pares comprendidos entre los números 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);
Ejemplo: En Pseudocódigo En Java sw = FALSO sw = false ; ESTRUCTURAS DE DATOS Variables Uso de interruptores Definición: Un interruptor o conmutador (denominado también centinela, bandera o flag) es una variable lógica o numérica que puede tomar dos posibles valores (1/0, verdadero/falso, si/no, encendido/apagado) dentro de una determinada solución Ejemplo: En Pseudocódigo En Java sw = FALSO sw = false ;
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Problema 5: Desarrolle una solución que permita determinar si un numero es o no primo. Emplee interruptores. El conjunto de los números primos es un subconjunto de los números naturales que engloba a todos los elementos de este conjunto que son divisibles exactamente tan sólo por sí mismos y por la unidad (por convención, el 1 no se considera primo). Los veinte primeros números primos son: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67 y 71 Nótese el hecho de que todos los números naturales son divisibles por sí mismos y por la unidad.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Problema 5: Desarrolle una solución 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 “Número primo” SINO ESCRIBIR “Número no es primo” FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION JAVA package dominioDeLaAplicacion ; class PrgSumaPares { public static void main (String arg [] ) { 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 LÓGICAS DE CONTROL - REPETICION Problema 5: 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 LÓGICAS 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 <= i; j++) { System.out.print( “ * “ ); } System.out.println(); }}
ESTRUCTURAS LÓGICAS 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( i ); } System.out.println(); }}
Problema 8 Problema 8 Problema 9 ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Desarrollar la codificación de las soluciones que permitan mostrar las siguientes figuras: Problema 8 Problema 8 Problema 9