.

Publicado por joaco_snm, Abril 25, 2006, 14:48:50

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

joaco_snm

.
.

snoop

por "sentencias repetitivas" creo que te referis a "bucles" osea While, until, y for.
Estas sentencias son utilizadas para realizar una acción mas de una vez.
Fijate si este link te sirve: http://www.itlp.edu.mx/publica/tutoriales/pascal/u4_4_3.html
¿ Tu emule te aparece así ---- ? ¡¡ Tenés LOWID !! : >>SOLUCIÓN<<

Predicador

#2
A ver, en pascal hay tres estructuras repetitivas, vemos:
while la_condicion_es_verdadera  do
begin
  sentencias_aca;
end;

El while se es un tipo de repeticion con pre-test, esto es que se evalua la condicion antes de la ejecucion del test y la repeticion se mantiene siempre y cuando la condicion sea verdadera. En este tipo de ciclos, el cuerpo del while se ejecuta 0 o mas veces (algo asi como * (estrella de Kleene) en expresiones regulares). Lo usos podrian ser millones, pero te pongo un ejemplo pequeño: se lee un numero de teclado y si este es menos que 6 se realiza una sumatoria desde ese numero hasta 6 y se imprime el resultado:
Program suma;

var num, suma : integer;

begin
suma := 0;
readln(num);
while (num <=6) do
begin
  suma := suma + num;
  num := num + 1;
end;
writeln(suma);
end.

o sea, si ingresas 4 la salida por pantalla seria 4 + 5 +6 o sea 15



repeat
  sentencias_aca;
until la_condicion_es_verdadera

Repeat es muy parecido al while, pero es post-test, por ende el codigo dentro del repeat se ejecuta siempre al menos una vez (algo asi como + en expresiones regulares). Se usa cuando al menos una pasada es necaria y las demas dependen de la condicion. Tambien miles de ejemplos hay y depende de lo que uno quiera lograr, pero por hacer un ejemplito simple digamos que queremos que el usuario ingrese por teclado un numero menor o igual a 6, entonces hacemos:
Program Ingresa;

var num : integer;

begin
repeat
  readln(num);
until (num <= 6)
writeln(num);
end.

Si ingresa 8, no pasara nada y esperara que se ingrese otro numero, si ingresa 4 imprime 4


Fijate que while y repeat son muy parecidos, pero ojo en una cosa, con while el ciclo se repite mientras la condicion sea verdadera y en repeat se repite hasta que la condicion sea verdadera.



for i := 1 to 6 do
begin
  writeln(i);
end;

El for se usa cuando necesitas que un cierto grupo de sentencias se repitan un numero fijo (o dado por una variable) de veces. Nota que no esta basado en condicion. Ejemplo, sumar los numeros del 1 al 6:
Program Smatoria;

var num, suma : integer;

begin
suma := 0;
for num := 1 to 6 do
begin
  suma := suma + num;
end;
writeln(suma);
end.


Algo para notar es que solo usando IF y GOTO (si, el GOTO tambien esta en pascal) se pueden construir cualquiera de estas tres estructuras repetitivas, solo que de una manera sucia y no elegante, ya que el GOTO es algo que debemos evitar a toda costa por que deforma las estructuras, elimina la belleza del codigo y crea muy malos habitos (si, como los de las monjas :P)
Baii y espero que haya sido util mi muy resumida explicacion, cualquier cosa pregunta.
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen

Billy Gates

Uté si q e' groso! :up: Yo entré contento de q podia ayudar a alguien y uté siempre postea antes  :'( :P
Porque aceptar lo que ellos dicen que esta mal, si su verdad es tan falsa?

flasheadito

Pascal lo vi en progra I, y tengo varias cosas, si necesitas ayuda, o ejercicios no tenes mas que pedir y vamos a ayudarte en la medida que podamos, saludos!

hardrocker

Bueno, en mi caso, si necesitás algo de C, chiflá.

saludos
-·=»‡«=·- M€ÐÏØ€VØ-·=»‡«=·-

KaSPiTa!

necesitas algo de pascal? pedi nomas :) yo te ayudo...
cualquier cosa te dejo mi msn :
kasposo@gmail.com

salu2

tinchow

ya q ta abierto me gustaria hacer una preguntita haber si me pueden ayudar. Recien toy empezando con pascal y necesito saber cual es el equivalente de la sentencia getch(); de c que me permite vusualizar en la pantalla los datos de salida.

desde ya muchas gracias

flasheadito

para visualizar una variable en c,por pantalla, tenes que usar la sentencia printf ej;

int i=50;
printf("El numero es %d\n",i);

a eso te referias?

tinchow

no a lo q me refiero es que cuando vos pones por ej

#include <stdio.h>
void main()
{
printf ("Hola mundo");
}

en turbo c++ no me devuelve el valor en la misma pantalla que corre el programa sino que vas poder visualizar el valor la proxima vez que lo corras. Para solucionar esto agregan la libreria conio.h y despues del printf pones getch();
quedando así

#include <stdio.h>
#include <conio.h>

void main()
{
clrscr();
printf ("Hola mundo");
getch();
}

Igualmente en visual c++ creo q esto se corrije solo pasa en el turbo c++ de DOS

yo queria saber como podia hacer eso en turbo pascal

muchas gracias

flasheadito

intenta con readkey();
creo que era asi no me acuerdo, si readkey; o readkey();

suerte

tinchow

gracias che aunque no me funca, no t hagas drama veo si despues busco un tutorial o algo.
una preg: en pascal se usan librerias?, capaz por eso me tira error
gracias

flasheadito

si, en definitiva las librerias son un conjunto de funciones, y se "llaman" dentro del programa con el comando uses ej:

uses crt;

leete esto

http://www.ciudadcentral.com/paginas/?pagina=ver&idpagina=40271


tinchow

gracias capo por la info  :)