Agenda Pascal (Uso Dei Record)

 

Ecco a voi un piccolo listato in pascal che permette di capire il funzionamento dei record.

Per capire meglio il funzionamento dei record in pascal ho scelto di scrivere una piccola agenda.
Da come potete leggere di seguito, capite che questo piccolo programmino vi permette di inserire e visualizzare delle informazioni all’interno di questa agenda.
Siamo coscenti che una soluzione del genere è obsoleta in quanto replicabile (in maniera più veloce leggera e ottimizzata) con un qualsiasi DBMS.
Questo listato è scritto per permettere a coloro che non conoscono queste vecchie tecnologie di capire bene come prima(prima dell’avvento dei database) si strutturavano i dati(Questo è uno dei tanti modi) in maniera semi inteligente.

(I Record che si usano in pascal a livello logico ricordano molto i record di una tabella di un database)

A questo listato mancano due comode procedure, prego a coloro che leggono questo articolo a scopo didattico, di provare a scriverle.
Le procedure in questione sono :
Elimina Record
e Salva su disco

Listato:

USES CRT;
type
  persona = record
    nome : string[20];
    telefono : string[10];
  end;
var
  a: array[1..100] of persona;
  lung_agenda: integer;
 
Procedure aggiungi_ad_agenda;
  var
    i, n: integer;
  begin
    clrscr;
    repeat
      write('Quanti nominativi desideri aggiungere? : ');
      readln(n);
    until n>=1;
    for i:=lung_agenda+1 to lung_agenda+n do begin
      with a[i] do begin
        write('    nome: ');
        readln(nome);
        write('     telefono: ');
        readln(telefono);
      end;
    end;
    lung_agenda := lung_agenda+n;
  end;
 
procedure leggi_agenda;
  var
    i: integer;
  begin
    clrscr;
    writeln;
    writeln('AGENDA');
    for i:=1 to lung_agenda do
      write(a[i].nome,'      ', a[i].telefono);
      writeln;
      write('Premi invio per continuare...');
      readln;
    end;
 
procedure menu;
  var
  scelta: integer;
  begin
    clrscr;
    lung_agenda := 0;
    scelta := -1;
    while scelta <> 0 do begin
      clrscr;
      gotoxy(25,8); write('GESTIONE AGENDA');
      gotoxy(26,10); write('1. Aggiungi');
      gotoxy(26,11); write('2. Visualizza');
      gotoxy(26,12); write('0. Fine');
      gotoxy(28,19); write('Scegliere una opzione');
      readln(scelta);
      clrscr;
      case scelta of
          1: aggiungi_ad_agenda;
          2: leggi_agenda;
      end;
    end;
  end;
 
begin
  menu;
end.

pa007

Founder di Pa007World. Laureato in Ingegneria Informatica all'Università di Pisa e studente di Master of Science in Embedded Computing Systems presso la Scuola Superiore Sant'anna e l'Università di Pisa. Appassionato da sempre di informatica e tecnologia. Home page: http://www.pa007world.com