Programación General > Pascal

 Random!!

<< < (2/2)

pascal:

--- Código: Text ---var    num, n, i,contador1,contador2,contador3,contador4,contador5,contador6 : integer;   porcentaje : real;     begin   randomize;     writeln('Escriba cuantas veces se tira el dado.');   readln(num);    for i:=1 to num do      begin           n:= random(6) +1;          { writeln(n); }           contador1:=0;           contador2:=0;           contador3:=0;           contador4:=0;           contador5:=0;           contador6:=0;                         repeat                              if n=1 then                              contador1:=contador1 + 1                              else if n=2 then                              contador2:= contador2 + 1                              else if n=3 then                              contador3:= contador3 + 1                              else if n=4 then                              contador4:= contador4 + 1                              else if n=5 then                              contador5:= contador5 + 1                              else if n=6 then                              contador6:= contador6 + 1;                        until num;        end; 
el error me lo da en el repeat!

ProfesorX:
Exactamente es un type mismatch, en esta parte:


--- Código: Pascal --- until num;  
Esta esperando un valor boleano, y tienes un valor entero.

Lo que necesitas es un contador para el ciclo tambien, que vaya de 1 hasta el numero de veces que quieres lanzar el dado.
Lo puedes hacer con otro for, o si lo quieres hacer con repeat..until, debes poner lo siguiente, en la parte de repeat:


--- Código: Pascal --- J:=0;repeatJ:=J+1;  
En la parte del until:


--- Código: Text --- until J = Num;  
el J=num devuelve un valor boleano, aunque eso creo que ya lo sabes :P.

eternity:
es mucho mas facil si pruebas esto, por ahi no sabes lo que es un array y yo meti la pata

--- Código: Text --- program respuesta;type   vec_caras = array [0..5] of integer; {esto es por que voy a operar con modulos, MOD}var   caras: vec_caras;   n: byte; {n para el numero}   c, i: integer; {c para la cantidad de veces que vas a tirar el dado, i es el contador para un for}begin   randomize;   write ('cuantas veces se tirará el dado?: '); readln(c);   for i:=1 to c do    begin       n:= random(6)+1; {ahora no recuerdo si el random va de 0 a n-1, si es asi esta bien el cod}       vec_caras[n mod 6]:=vec_caras[n mod 6] + 1; {esto incrementa en 1 el vector en esa posicion}    end;  for i:=0 to 5 do     writeln('caras [ ',i+1,' ] = ',caras[i]);end.         
mira si te sirve!

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa