Helena | |
| 2006-05-20 17:55 - Respuestas: 5 - Tema nº: 2413700
Pentium IV, 256MB Sistema operativo Windows xp home
Estoy intentando resolver estos ejercicios, pero no estoy segura de que esté bien encaminada, y sinceramente, ya estoy hecha un lío. Os agradecería muchísimo que me ayudarais.
Ejercicio 1
Un boleto de quinielas es una matriz(array) de 15 caracteres (quien introduzca los datos se preocupará de que dichos caracteres sean 1,x ó 2, nosotros no tenemos por qué hacerlo).
En una UNIT llamada quiniela, has de definir:
a) El tipo de datos llamado "TipoBoleto".
b) Los procedimientos: "LeeBoleto", para asignar valor a un dato de este tipo y "EscribeBoleto" para presentarlo en pantalla.
c) La función "ComparaBoletos" con dos entradas del tipo TipoBoleto, que devuelva el número de coincidencias entre ambos boletos (una coincidencia quiere decir que el mismo carácter ocupa el mismo lugar; por ejemplo: si uno de los boletos es el boleto premiado, la función "Comparaboletos" devuelve el número de aciertos que tiene el otro boleto).
EJERCICIO 2.
(En esta pregunta hay que utilizar la unit de la pregunta anterior).
En un fichero 'a:\boletos.dat' (si se trae un CD será d:\boletos.dat' tienes que tener guardados 10 boletos de quinielas que se supone que hemos jugado la semana anterior. Los partidos ya se han jugado, y por lo tanto ya sabemos cuál ha sido el boleto premiado.
Has de hacer un programa que pida en primer lugar el boleto premiado, y después, leyendo los datos del fichero anterior y utilizando la función "ComparaBoletos", presente en pantalla el número de aciertos que tiene cada uno de los diez boletos jugados.
En un disco (o disquette) tienes que tener grabados los ficheros:
- Quiniela.pas con el código fuente de la unit.
- Quiniela.tpu con la unit compilada
- Boletos.pas con el código fuente del programa
- Boletos.dat con los datos (tipoboleto) guardados | |
|
|
Hurricane | |
|
Re: Problemas con ejercicios de programación Turbo Pascal - 2006-05-21 23:42 - Respuesta 2
Veamos.... Dice que necesitas un Array de 15 elementos, cuyos valores pueden ser 1, x ó 2.
QUINELA.PASCode: Unit Quinela;
Type
TipoBoleto = Array[1..15] of char; {Tipo definido parea una quinela}
{Los números del boleto serán almacenados en 'Boleto'}
Procedure LeeBoleto(Var Boleto: TipoBoleto);
{Los números del 'Boleto' serán desplegados en pantalla}
Procedure EscribeBoleto(Boleto: TipoBoleto);
{Devuelve el núnmero de coincidencias entre 'Boleto1' y 'Boleto2'}
Function ComparaBoletos(Boleto1, Boleto2: TipoBoleto) :Integer;
Implementation
Procedure LeeBoleto(Var Boleto: TipoBoleto);
Var
Indice :Integer;
Begin
WriteLn('INGRESE LOS VALORES DE SU BOLETO:');
For Indice := 1 to 15 do
Begin
Write('[', Indice, ']? ');
ReadLn(Boleto[Indice]);
End; {For}
End; {LeeBoleto}
Procedure EscribeBoleto(Boleto: TipoBoleto);
Var
Indice :Integer;
Begin
For Indice := 1 to 15 do
WritelN('[', Indice, '] ', Boleto[Indice]);
End; {EscribeBoleto}
Function ComparaBoletos(Boleto1, Boleto2: TipoBoleto) :Integer;
Var
Index, Coincidencias :Integer;
Begin
Coincidencias := 0;
For Indice := 1 to 15 do
If (Boleto1[Indice]=Boleto2[Indice]) then
Coincidencias := Coincidencias + 1;
ComparaBoletos := Coincidencias;
End; {ComparaBoletos}
End. {Unit Quinela}
Esa sería la Unidad que te solicitan. Primero, plantea todas las dudas que tengas y de ahí continuamos.
Saludos
HURRICANE
| |
|
|
Helena | |
|
Re: Problemas con ejercicios de programación Turbo Pascal - 2006-05-22 21:02 - Respuesta 3
Hola Hurricane.
Muchímas gracias por tu mensaje. Lo que me has mandado lo tenía ya más o menos hecho, aunque me ha venido muy bien tu respuesta para asegurarme de que lo que yo tenía estaba bien planteado. El resto también lo tengo ya terminado, así que no voy a abusar más de tu tiempo. Muchas gracias de nuevo. Un Saludo. Helena | |
|
|
Hurricane | |
|
Re: Problemas con ejercicios de programación Turbo Pascal - 2006-05-24 17:37 - Respuesta 4
Mientras podamos ayudar, por acá estaremos.
Saludos
HURRICANE
| |
|
|
tanobrian | |
|
Re: Problemas con ejercicios de programación Turbo Pascal - 2007-05-09 22:32 - Respuesta 5
Añadir al programa anterior lo necesario para que clasifique las llamadas en Nacionales (N), Provinciales (P) y Locales (L) y realizar los mismo cálculos que antes para cada tipo de llamada (duración y numero de llamadas Nacionales, duración y numero de llamadas Provinciales y duración y numero de llamadas Locales). El programa también debe solicitar, después de presentar los resultados, si se desea realizar de nuevo todo el proceso anterior.
El resultado debe ser similar a esto:
Introduzca la duración de la llamada en minutos (0 para terminar): 5
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: p
Introduzca la duración de la llamada en minutos (0 para terminar): 15
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: n
Introduzca la duración de la llamada en minutos (0 para terminar): 20
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: l
Introduzca la duración de la llamada en minutos (0 para terminar): 40
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: p
Introduzca la duración de la llamada en minutos (0 para terminar): 0
-Especificación llamadas Nacionales, Provinciales y Locales-
El numero de llamadas nacionales a sido: 1 y su duración: 15.00 minutos.
El numero de llamadas provinciales a sido: 2 y su duración: 45.00 minutos.
El numero de llamadas locales a sido: 1 y su duración: 20.00 minutos.
-Totales-
Numero de llamadas: 4
Duración total: 80.00 minutos.
Duración media: 20.00 minutos.
Desea continuar para realizar otra lista de llamadas? S/N: n
| |
|
|
|