Академический Документы
Профессиональный Документы
Культура Документы
CICLO WHILE: Si se desea que las sentencias o instrucciones se ejecuten hasta que ocurra una determinada situacin y no se conoce de antemano el nmero de repeticiones (no se lee del teclado), entonces debemos utilizar la instruccin WHILE O REPEAT.
Sintaxis de uso
WHILE (condicin) do begin Instruccin 1; Instruccin 2; End; Instruccin 3; EJEMPLO: Readln(n); While (n>0 and p) do Begin s:=s+n/2 if ( n mod 2=0) then p:=false End;
La condicin del ciclo no tiene por qu ser nica; puede haber ms de una, siempre y cuando estn unidas por los operadores lgicas OR, AND y NOT
Clase 23 Abril 2012 3
Ejemplo
1. Crea un programa que lea un nmero y decida si el nmero ingresado es positivo, negativo o cero. Repita este proceso consultando al usuario cuando desea finalizar.
program leer_numeros; (* estr programa lee un nmeros y decide si este este positivo.negativo o cero repite el proceso hasta que el usuario decida finalizar*) uses crt; // type var x:integer; op:string; oop:boolean; begin oop:=true; while( oop) do begin write(' Ingrese un nmero '); readln(x); if ( x>0)then writeln(x, ' es positivo ') else if(x=0) then writeln(x , ' es cero ') else writeln( x ,' es negativo '); write( 'Desea continuar si/no ') ; readln(op); if( upcase(op)='SI') then oop:=true else oop:=false end; end.
Ciclo REPEAT
A diferencia del ciclo while, el ciclo repeat-until ejecuta al menos una vez las sentencias definidas en el cuerpo del ciclo, pues la verificacin para continuar o no en el ciclo se realiza al final, como puede apreciarse en la sintaxis: Ejemplo: Qu realiza este S:=1; cdigo en repeat Repeat DEVPascal sentencias... Read(x) Cundo finaliza until ( condicion_de_fin ) S:=s*x este ciclo repeat? Until (s=0) El ciclo repeat finaliza cuando la condicin es VERDADERA
Clase 23 Abril 2012
Cambiemos el problema
Cuntos trminos son necesarios para que la sumatoria no sobrepase.
11
Ejemplo
Cree un programa que encuentre todos los nmeros primos entre 3 y un n n generado por random Ejemplo: N=6 El programa debera probar para i=3 si es primo i=4 si es primo i=5 si es primo i=6 si es primo Recordar que el algoritmo para verificar si un nmero es primo, es obtener los divisores ,contarlos y finalmente verificar (comparacin) si son 2 los divisores
Clase 23 Abril 2012 12
Para ello se debe: 1. Generar un nmero mayor que 3 2. Implementar dos ciclos for anidados: I. El primero debe indicar los n desde el 3 hasta el n generado. II. El segundo debe probar los divisores desde el 3 hasta el nmero-1.
13
program n_primo; // Este programa verifica todos los primos desde el 3 hasta un numero generadopor random //utiliza variable lgica uses crt; // const //type var i,j, X:integer; primo:boolean; begin (*principal*) randomize; x:=random(10)+3; write(' El nmero gerenado es :=',x); writeln; for i:=3 to x do begin primo:=false; for j:=2 to i-1 do if( i mod j = 0) then primo:= true; //variable lgica cambia de valor a verdadero // Pregunta si la variable lgica es true o false if primo then writeln(i , ' No es primo') else writeln(i , ' Es primo '); end; // cierra for i readkey; end.
14