Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Escribir un programa que permita al usuario seleccionar entre 3 formas de generación de
- números aleatorios:
- - Monedas (cara/cruz)
- - Dados tradicionales
- - Dados personalizados (máximo > 3)
- Permitir elegir la cantidad de eventos que se van a realizar (por ejemplo: una o más
- monedas).
- }
- program azar;
- var
- g_opcion: Char;
- g_n: Word;
- g_max: Byte;
- procedure menu(var opcion: Char);
- begin
- writeln('Ingrese una opción');
- writeln('1) Tirar una moneda');
- writeln('2) Tirar varias monedas');
- writeln('3) Tirar un dado');
- writeln('4) Tirar varios dados');
- writeln('5) Tirar un dado personalizado');
- writeln('6) Tirar varios dados personalizados');
- writeln('s) Salir');
- readln(opcion);
- end;
- procedure tirar_moneda(n: Word);
- var
- moneda: Byte;
- i: Word;
- begin
- for i := 1 to n do
- begin
- moneda := random(2);
- if moneda = 0 then
- write('O ')
- else
- write('X ');
- end;
- writeln();
- end;
- procedure tirar_dado(n: Word; max: Byte);
- var
- dado: Byte;
- i: Word;
- begin
- for i := 1 to n do
- begin
- dado := random(max) + 1; // 1 - max
- write(dado, ' ');
- end;
- writeln();
- end;
- procedure ingreso_maximo(var max: Byte);
- begin
- readln(max);
- while max < 3 do
- begin
- writeln('El valor ingresado no es válido (debe ser > 3)');
- readln(max);
- end;
- end;
- begin
- randomize();
- repeat
- menu(g_opcion);
- if g_opcion <> 's' then
- begin
- case g_opcion of
- '1': tirar_moneda(1);
- '2':
- begin
- writeln('Ingrese cantidad de eventos:');
- readln(g_n);
- tirar_moneda(g_n);
- end;
- '3': tirar_dado(1, 6);
- '4':
- begin
- writeln('Ingrese cantidad de eventos:');
- readln(g_n);
- tirar_dado(g_n, 6);
- end;
- '5':
- begin
- writeln('Cuál es el valor máximo del dado:');
- ingreso_maximo(g_max);
- tirar_dado(1, g_max);
- end;
- '6':
- begin
- writeln('Ingrese cantidad de eventos:');
- readln(g_n);
- writeln('Cuál es el valor máximo del dado:');
- ingreso_maximo(g_max);
- tirar_dado(g_n, g_max)
- end;
- else
- writeln('Opción no válida');
- end;
- end;
- until g_opcion = 's';
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement