ARGENTOP2P

Soporte, Ayuda y Consultas => Programación en General => Mensaje publicado por: joaco_snm en Abril 25, 2006, 14:48:50

Título: .
Publicado por: joaco_snm en Abril 25, 2006, 14:48:50
.
Título: Re: Ayuda Pascal
Publicado por: snoop en Abril 25, 2006, 17:39:43
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
Título: Re: Ayuda Pascal
Publicado por: Predicador en Abril 25, 2006, 17:55:11
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.
Título: Re: Ayuda Pascal
Publicado por: Billy Gates en Abril 26, 2006, 09:26:57
Uté si q e' groso! :up: Yo entré contento de q podia ayudar a alguien y uté siempre postea antes  :'( :P
Título: Re: Ayuda Pascal
Publicado por: flasheadito en Abril 29, 2006, 21:10:29
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!
Título: Re: Ayuda Pascal
Publicado por: hardrocker en Abril 30, 2006, 14:08:19
Bueno, en mi caso, si necesitás algo de C, chiflá.

saludos
Título: Re: Ayuda Pascal
Publicado por: KaSPiTa! en Mayo 13, 2006, 18:29:38
necesitas algo de pascal? pedi nomas :) yo te ayudo...
cualquier cosa te dejo mi msn :
kasposo@gmail.com

salu2
Título: Re: Ayuda Pascal
Publicado por: tinchow en Mayo 27, 2006, 00:46:15
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
Título: Re: Ayuda Pascal
Publicado por: flasheadito en Mayo 27, 2006, 00:51:26
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?
Título: Re: Ayuda Pascal
Publicado por: tinchow en Mayo 27, 2006, 14:01:25
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
Título: Re: Ayuda Pascal
Publicado por: flasheadito en Mayo 27, 2006, 14:20:43
intenta con readkey();
creo que era asi no me acuerdo, si readkey; o readkey();

suerte
Título: Re: Ayuda Pascal
Publicado por: tinchow en Mayo 27, 2006, 20:54:28
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
Título: Re: Ayuda Pascal
Publicado por: flasheadito en Mayo 28, 2006, 01:13:12
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

Título: Re: Ayuda Pascal
Publicado por: tinchow en Mayo 29, 2006, 11:51:01
gracias capo por la info  :)