Programación General > Pascal

 Tipos De Datos

(1/1)

ALCEST:
Me piden que defina tipos para un registro con número y palo de naipe

alguien me recomienda algo mejor q lo siguiente?


--- Citar ---program palo_diamante;
uses
        crt;
type
        rango = 1..13;
        vector=array[rango] of string;
        diamantes = record
                vec_diamantes:vector;
                end;



var
        palo_diamantes:diamantes;
        i:byte;

begin
     clrscr;
     with palo_diamantes do
        begin
            vec_diamantes[1]:='As';
            vec_diamantes[2]:='2';
            vec_diamantes[3]:='3';
            vec_diamantes[4]:='4';
            vec_diamantes[5]:='5';
            vec_diamantes[6]:='6';
            vec_diamantes[7]:='7';
            vec_diamantes[8]:='8';
            vec_diamantes[9]:='9';
            vec_diamantes[10]:='10';
            vec_diamantes[11]:='Valet';
            vec_diamantes[12]:='Dame';
            vec_diamantes[13]:='Roi';
        end;
     writeln('Palo de diamantes: ');
     writeln('---- -- --------- ');
     with palo_diamantes do
        for i:=1 to 13 do
          begin
              write('Carta Nº ',i,': ');
              writeln(vec_diamantes,' de Diamantes');
          end;
     readln;
end.
--- Fin de la cita ---

saludos y gracias!

Enko:
Se me hace que para el caso viene bien una enumeracion como tipo para el Palo.

--- Código: Text --- type   TPalo =(espada,basto,oro,copa);   TNaipe = record        Num: Byte;        Palo: TPalo;    end;    TBaraja = array[1..40] of TNaipe; o bien, TPalo puede ser byte:0: espada1: basto2: oro3: copapero en realidad con una enumeracion es exactamente lo mismo porquesi el palo es Espada por ejemplo Ord(TPalo)=0  Este codigo iniciaria la baraja y la mostraria en la pantalla.


--- Código: Text --- var  Baraja: TBaraja;  I: Integer;  Palo: String;begin  for i:=1 to 10 do  begin      Baraja[i].Palo = espada;      Baraja[i].Num = i;      Baraja[10+i].Palo = basto;      Baraja[10+i].Num = i;      Baraja[i+20].Palo = oro;      Baraja[i+20].Num = i;      Baraja[i+30].Palo = copa;      Baraja[i+30].Num = i;   end;for i:=1 to 40 dobegin    case Baraja[i].Palo of       0: Palo := 'Espada';       1: Palo := 'Basto';       2: Palo := 'Oro';       3: Palo := 'Copa;      end;      WriteLn(i, ': ', Baraja[i].Num, '   ', Palo);end;  

Navegación

[0] Índice de Mensajes

Ir a la versión completa