Domingo 22 de Diciembre de 2024, 16:52
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Random!!
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Random!! (Leído 2937 veces)
pascal
Nuevo Miembro
Mensajes: 4
Random!!
«
en:
Jueves 7 de Agosto de 2008, 12:04 »
0
Buenas, mi porblema es:
tengo que hacer un programa que al lanzar un dado X veces, sacar el porcentaje de de cada numero que ha salido. el problema es que al hacer el random como hago para que sea cada vez que tiro, es decir cada tirada que realice, que actue el random. Con un bucle while? y también como sería para que en el random no entrase el 0, solo fuese del 1 al 6, ay que son los nuemros de las caras del dado.
Espero su respuesta y muchas gracias por todo
Tweet
Enko
Miembro de PLATA
Mensajes: 1562
Nacionalidad:
Re: Random!!
«
Respuesta #1 en:
Sábado 9 de Agosto de 2008, 07:23 »
0
Código: Text
randomize;
for i :=1 to MAX do
begin
n:= random(6)+1;
writeln(n);
end;
readln;
pascal
Nuevo Miembro
Mensajes: 4
Re: Random!!
«
Respuesta #2 en:
Lunes 11 de Agosto de 2008, 10:56 »
0
gracias por tu ayuda amigo enko
pascal
Nuevo Miembro
Mensajes: 4
Re: Random!!
«
Respuesta #3 en:
Lunes 11 de Agosto de 2008, 11:42 »
0
acudo a ustedes con otro problema.
resulta que despues de hacer el random, lo que quiero es que cuente cuantas veces sale cada numero, y con lo cual hago un contador para que cuente con cada numero del 1 al 6 que genera el random. hago un bucle repeat dentro del for para el contador, pero al compilar me da error en el repeat, y el error es este : Type mismatch.alguien sabe porque me da ese error? gracias de nuevo
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Random!!
«
Respuesta #4 en:
Lunes 11 de Agosto de 2008, 18:05 »
0
Deberias poner el codigo para saber cual es el problema exactamente(no somos adivinos).
Aunque un type mismatch (tipos no coincidentes) significa por lo regular que estas tratando de guardar valores incompatibles en variables incompatibles, por ejemplo, un float en una variable integer.
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
pascal
Nuevo Miembro
Mensajes: 4
Re: Random!!
«
Respuesta #5 en:
Martes 12 de Agosto de 2008, 09:43 »
0
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
Moderador
Mensajes: 796
Nacionalidad:
Re: Random!!
«
Respuesta #6 en:
Martes 12 de Agosto de 2008, 19:33 »
0
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
;
repeat
J
:=
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
.
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
eternity
Miembro activo
Mensajes: 78
Nacionalidad:
Re: Random!!
«
Respuesta #7 en:
Viernes 17 de Octubre de 2008, 03:13 »
0
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!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Random!!