Seguidores

lunes, 14 de marzo de 2011

ejemplos de FOR, PASCAL

For c := 1 to 5 do
      Begin
            Write (`aa´);
            Write (`BB´)
      End;
Al ejecutarse, visualiza:
AaBBaaBBaaBBaaBBaaBB
For Caracter := `A´ to `Z´ do
       WriteLn (Caracter);
3. 4. 1. 1 Decremento del contador FOR (Downto)
El contador del ciclo se puede decrementar de uno en uno en lugar de incrementar. La sintaxis es la siguiente:
For variable := valor inicial downto valor final do
       Sentencia;          
Ejemplos:
For C :=  5 downto 1 do
      Begin
            Write (`C´);
            Writeln
      End;
Lo anterior produce la siguiente salida:
5
4
3
2
1
También podemos encontrar ciclos FOR anidados:
For m := 1 to 10 do
   begin
      For n := 10 downto 2 do
            WriteLn (m,n)
   end;
3.4.2 La sentencia REPEAT
Es una variante de la sentencia while. La sentencia REPEAT especifica un ciclo condicional que se repite hasta que la condición se hace verdadera.
El diagrama de flujo se representa de la siguiente manera:
                          Ciclos
El seudocódigo se representa así:
Repetir
       Sentencias
Hasta_que condición           
Sintaxis:
Repeat
      Begin
            Sentencia 1;
            Sentencia 2;
            ...
            ...
            ...
            Sentencia n;
      End;
Until expresion lógica
Ejemplo:
(* El siguiente programa imprime las secuencias de caracteres hasta que se presione cualquier tecla *)
 Uses   wincrt;
Var      m : char;
            n : integer;
Begin
      Repeat
            Begin
                Write ('a e i o u');
                Write ('1 2 3 4 5');
            End;
      Until keypressed
End.

ejemplos de WHITE-DO.

program prog5;

uses crt;

var

x:integer;

begin

clrscr;

x:=1;

while x <= 5 do

begin

gotoxy(10,4+x);write(x,' pato');

x:=x+1;

end;

readln;
end.
OTRO EJEMPLO.

ejemplos:
Program Ej_While;Uses Crt;
 {El siguiente programa captura una cadena,
 hasta que se presione la tecla Esc(escape),
 cuyo ordinal es el #27.}
Const
  Esc = #27;Var
  nombre : string[30];
  tecla  : char;
  cont   : word;begin
  ClrScr;
  cont:=1;
  While (tecla<>Esc) do
    begin
      Write(cont,' Nombre : ');
      ReadLn(nombre);
      inc(cont);
      tecla:=ReadKey
    end
end.

otro ejemplo de repeat-until

program EJE13121;

uses Crt;

var
   Seguir : Char;
   Acumulador, Numero : Integer;

   { En Acumulador se va a guardar la suma de
     los numeros introducidos por el usuario. }

begin
   ClrScr;

   Acumulador := 0;
   repeat
      WriteLn;
      Write( '   Introduzca un numero entero: ' );
      ReadLn( Numero );

      Acumulador := Acumulador + Numero;

      WriteLn;
      Write( '   Desea introducir otro numero (s/n)?: ' );
      ReadLn( Seguir );
   until Seguir = 'n';

   { Mientras que el usuario desee introducir
     mas numeros, el bucle iterara. }

   WriteLn;
   Write( '   La suma de los numeros introducidos es: ', Acumulador );
end.

ejemplo de pascal.(repeat until)

program EJE13101;

uses Crt;

var Contador : Integer;

begin
   ClrScr;
   GotoXY( 4, 2 );

   Contador := 1; { Inicializacion del contador }
   repeat
      Write( Contador, ' ' );     { Salida }
      Contador := Contador + 1;   { Incremento }
   until Contador > 10;           { Condicion }
end.

CICLOS DE PASCAL

For –Do
Este ciclo ejecuta una serie de instrucciones incrementando o decrementando una variable hasta un tope determinado.
SINTAXIS GENERAL
For Variable:=Inicio To Tope Do
Begin
{Bloque De Instrucciones}
End;


Forma Incremental

For Variable:=Valor_Menor To Valor_Mayor Do
Begin
{Bloque De Instrucciones}
End;

Forma Decremental

 For Variable:=Valor_Menor To Valor_Mayor Do
Begin
{Bloque De Instrucciones}
End;

La variable controladora del ciclo es generalmente de tipo INTEGER, pero tambien se puede en algunas ocasiones declarar de tipo carácter asi:
For Letras:=’a’ to ‘z’ do
Begin
{En este ciclo se recorre el alfabeto de la ‘a’ a la ‘z’ de letra en letra}
End;

Similar a otras instrucciones, si el ciclo FOR – DO tiene una sola instrucción no requiere BEGIN – END, en caso contrario si!, una delas desventajas de este ciclo es que hasta que no se hallan ejecutado el número de instrucciones determinado no se detiene, si alguna vez tienes un problemilla de este tipo deberas recurrir a alguno de los otros dos : REPEAT – UNTIL o WHILE – DO.

Repeat-Until
EL CICLO "REPITA" (Como cariñosamente se le llama en la jerga de los programadores) actua de manera similar al ciclo WHILE – DO, con la pequeña diferencia de que en este se ejecutan las instrucciones y despues se evalua la condición.
Este no necesita BEGIN ni END, aunque tampoco dice nada si se los colocas.
SINTAXIS
Repeat
           {Bloque de instrucciones}
Until (Expresión_a_evaluar)
Program ciclo_repeat_until;
Uses crt;
Const
N=5;
Type
Vector = Array[1..N] of Integer;
Var
Vector_numeros : Vector;
Suma : Integer;
Promedio : Real;
I : Byte;
Begin
Clrscr;
Textcolor(LightMagenta);
Writeln(‘Lectura con ciclo REPEAT ‘);
Textcolor(White);
i:=0;{Notese que primero se debe inicializar la variable}
Repeat


I:=i+1;{La variable controladora del ciclo se incrementa en un valor determinado, en este caso hemos escogido 1, pero podría ser otro}
Write(‘Digite número :’);
Readln(Vector_numeros[i]);
Suma:= Suma + Vector_numeros[i];
Until (i>=N);
Ppromedio:=Suma/N;
Writeln(‘La Suma es = ‘,SUMA);
Writeln(‘El promedio es = ‘,PROMEDIO:0:2);
Readln;
End.
CICLO WHILE – DO
Este ejecuta una serie de instrucciones un número no determinado de veces hasta que se cumpla con una condición establecida , aunque tambien se puede hacer que trabaje de manera similar al ciclo FOR.
Una de las ventajas del ciclo WHILE es que puede evaluar variables de muchos mas tipos que el ciclo FOR(Recuerda que en este solo se pueden usar variables de tipo CARÁCTER y ENTERAS) entre ellas destacamos las de tipo STRING, BOOLEAN, INTEGER, REAL, ARREGLO.
El ciclo WHILE evalua y despues ejecuta instruccciones
Si lleva mas de una instrcción necesita BEGIN - END
SINTAXIS
While (Expresión_A_Evaluar) Do
Begin
       {Bloque De Instrucciones}
End;

Program Ciclo_While;
Uses Crt;
Const
    N=5;
Type
    Vector = Array[1..N] Of Integer;
Var
Vector_Numeros : Vector;
Suma : Integer;
Promedio : Real;
I : Byte;
Begin
Clrscr;
Textcolor(Lightmagenta);
Writeln(‘Lectura Con Ciclo While ‘);
Textcolor(White);
I:=0;{Notese Que Primero Se Debe Inicializar La Variable}
While (I<=N) Do
Begin

I:=I+1;{La Variable Controladora Del Ciclo Se Incrementa En Un Valor Determinado, En Este Caso Hemos Escogido 1, Pero Podría Ser Otro}
            Write(‘ Digite Número :’);


Readln(Vector_Numeros[I]);
Suma:= Suma +Vector_Numeros[I];
End;
Ppromedio:=Suma/N;
Writeln(‘La Suma Es = ‘,Suma);
Writeln(‘El Promedio Es ‘,Promedio:0:2);
Readln;
End.