Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - file
Forum - Pascal - file

Avatar
petercriss (Normal User)
Newbie


Messaggi: 12
Iscritto: 20/05/2010

Segnala al moderatore
Postato alle 13:24
Giovedì, 20/05/2010
ciao a tutti ho appena finito di creare questo programma ...nel quale devo fare una creazione di un file e fare un'inserimento una stampa e un'inserimento al centro solo k non riesco a fare la procedura di inserimento al centro potreste darmi una mano purtroppo quando è stato spiegato nn ero presente

Codice sorgente - presumibilmente Pascal

  1. program file_cd;uses crt;
  2. type compactdisk=record                                 {dichiarazione record}
  3.                   titolo:string[20];
  4.                   numerotracce:integer;               {campi del record}
  5.                   prezzo:real;
  6.                   autore:string[20];
  7.                 end;
  8. cd=file of compactdisk;                              {inizializzazione struttura dati}
  9. var f:cd;
  10.     rec:compactdisk;                                 {dichiarazione delle variabili utilizzate}
  11.     a:integer;
  12.     x:string;
  13.     sce:integer;
  14. procedure crea(var f1:cd);               {procedura creazione}
  15. begin
  16.  
  17.   rewrite(f1);                         {apertura file}
  18.   reset(f1);
  19.   repeat
  20.   writeln('INSERISCI I DATI DEL CD');
  21.   writeln('-------------------------------------------------');
  22.   writeln('inserisci il titolo dell album');
  23.   readln(rec.titolo);       { inserimento campo }
  24.   writeln('inserisci il numero delle tracce presenti nel cd');
  25.   readln(rec.numerotracce);  { inserimento campo }
  26.   writeln('inserisci l autore del cd');
  27.   readln(rec.autore);         { inserimento campo }
  28.   writeln('inserisci il prezzo del cd');
  29.   readln(rec.prezzo);         { inserimento campo }
  30.   writeln('--------------------------------------------------');
  31.   writeln('vuoi inserire un altro cd? s/n');  {richiesta di un nuovo elemento}
  32.   readln(x);                  { lettura scelta}
  33.   writeln('');
  34.   write(f1,rec);
  35.  
  36.   clrscr;
  37.   until x='n';                {scalta}
  38.   close(f1);                  {chiusura file}
  39. end;                                           {fine}
  40. procedure stampa(var f1:cd);    {procedura stampa}
  41. begin  
  42.   clrscr;                                {inizio}
  43.   reset(f1);                            {apertura file}
  44.   while not eof(f1) do                 {ciclo precondizionato}
  45.     begin                                {inizio}
  46.       read (f1,rec);
  47.       writeln('titolo dell album:  ',rec.titolo);    {stampa album}
  48.       writeln('numero tracce:  ',rec.numerotracce);  {stampa numero delle tracce}
  49.       writeln('autore del cd:  ',rec.autore);                       {stampa del nome dell'autore}
  50.       writeln('prezzo del cd:  ',rec.prezzo:2:2 ,'  euro');                       {stampa del prezzo}
  51.       writeln('');
  52.     end;
  53.     close(f1);                                       {chiusura}
  54. end;
  55. procedure inserimento(var f1:cd);                    {procedura inserimento}
  56. begin  
  57.   clrscr;                                             {inizio}
  58.   reset(f1);
  59.   while not eof(f1) do                                      {apertura file}
  60.         read (f1,rec);
  61.         writeln('inserisci il titolo del nuovo album');       {lettura campo}
  62.         readln(rec.titolo);
  63.         writeln('inserisci il numero delle tracce presenti nel nuovo cd');{lettura campo}
  64.         readln(rec.numerotracce);
  65.         writeln('inserisci l autore del nuovo cd');                       {lettura campo}
  66.         readln(rec.autore);
  67.         writeln('inserisci il prezzo del nuovo cd');                      {lettura campo}
  68.         readln(rec.prezzo);
  69.         write(f1,rec);
  70.   Close(f1);
  71.                                                               {chiusura file}
  72. end;                                                                      {fine}
  73. procedure inserimento_al_centro(var f1:cd);
  74.   begin  
  75.   clrscr;                                             {inizio}
  76.   reset(f1);
  77.   while not eof(f1) do
  78.       begin
  79.         read (f1,rec);
  80.         writeln('dopo quale elemento vuoi inserire il nuovo cd?');
  81.         readln(a);
  82.         writeln('inserisci il titolo del nuovo album');       {lettura campo}
  83.         readln(rec.titolo);
  84.         writeln('inserisci il numero delle tracce presenti nel nuovo cd');{lettura campo}
  85.         readln(rec.numerotracce);
  86.         writeln('inserisci l autore del nuovo cd');                       {lettura campo}
  87.         readln(rec.autore);
  88.         writeln('inserisci il prezzo del nuovo cd');                      {lettura campo}
  89.         readln(rec.prezzo);
  90.  
  91.  
  92.       end;
  93.         write(f1,rec);
  94.         close(f1);
  95.  
  96. end;
  97. begin                           {inizio}
  98.   clrscr;
  99.   assign(f,'cd.dat');                  {assegnazione dello spazio nella memoria di massa}
  100.   crea(f);                              {creazione}
  101.   clrscr;
  102.   repeat                                {ripeti}
  103.     clrscr;
  104.     writeln('MENU DI SCELTA CD-ROM');          {menu al video}
  105.     writeln('---------------------');
  106.     writeln(' 1)inserisci un nuovo cd');
  107.     writeln(' 2)stampa lista dei cd');
  108.     writeln(' 3)inserimento al centro');
  109.     writeln(' 8)uscire');
  110.     writeln('---------------------');
  111.     writeln('');
  112.     repeat                                                {ripeti}
  113.     writeln('quale paragrafo vuoi consultare?');          {scelta}
  114.     readln(sce);                                          {lettura variabile scelta}
  115.   until (sce>0) and (sce<4) or (sce=8);                   {fine ciclo fino a che}
  116.   case sce of                                             {case}
  117.   1: begin
  118.        clrscr;
  119.        inserimento(f);
  120.        writeln('...premere invio per continuare...');
  121.        readln();
  122.      end;                                                 {procudure scelte}
  123.   2: begin
  124.        clrscr;
  125.        stampa(f);
  126.        readln;
  127.        writeln('...premere invio per continuare...');
  128.        readln();
  129.  
  130.      end;
  131.  
  132.    3:begin
  133.       clrscr;
  134.       inserimento_al_centro(f);
  135.       readln;
  136.       writeln('...premere invio per continuare...');
  137.       readln();
  138.  
  139.      end;
  140.     end;
  141.   until (sce=8);                                       {fine ciclo finoa che sce =8}
  142. end.  {fine}



Ultima modifica effettuata da Phi il 01/06/2010 alle 13:15
PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 14:25
Giovedì, 20/05/2010
Spero di aver capito giusto.

Comunque io userei un array :

Codice sorgente - presumibilmente Delphi

  1. program file_cd;
  2. uses crt;
  3.  
  4. type
  5. compactdisk=record
  6.  titolo:string[20];
  7.  numerotracce:integer;
  8.  prezzo:real;
  9.  autore:string[20];
  10. end;
  11. cd=file of compactdisk;
  12. Tcd = array of compactdisk;
  13.  
  14. var
  15. f:cd;
  16. rec:Tcd;
  17. i : longword;
  18. x:char;
  19. sce:integer;
  20.  
  21. procedure crea(var f1:cd);
  22. begin
  23.  setlength(rec,1);
  24.  repeat
  25.   writeln('INSERISCI I DATI DEL CD');
  26.   writeln('-------------------------------------------------');
  27.   with rec[high(rec)] do begin
  28.    writeln('inserisci il titolo dell album');
  29.    readln(titolo);       { inserimento campo }
  30.    writeln('inserisci il numero delle tracce presenti nel cd');
  31.    readln(numerotracce);  { inserimento campo }
  32.    writeln('inserisci l autore del cd');
  33.    readln(autore);         { inserimento campo }
  34.    writeln('inserisci il prezzo del cd');
  35.    readln(prezzo);         { inserimento campo }
  36.   end;
  37.   writeln('--------------------------------------------------');
  38.   writeln('vuoi inserire un altro cd? s/n');  {richiesta di un nuovo elemento}
  39.   readln(x);                  { lettura scelta}
  40.   if x<>'n' then setlength(rec,high(rec)+2);
  41.   clrscr;
  42.  until x='n';                {scalta}
  43.  rewrite(f1);
  44.  for i := 0 to high(rec) do write(f,rec[i]);
  45.  close(f1);
  46. end;                                           {fine}
  47.  
  48. procedure stampa(var f1:cd);    {procedura stampa}
  49. var rec:compactdisk;
  50. begin
  51.  clrscr;                                {inizio}
  52.  reset(f1);                            {apertura file}
  53.  while not eof(f1) do begin
  54.   read (f1,rec);
  55.   writeln('titolo dell album:  ',rec.titolo);    {stampa album}
  56.   writeln('numero tracce:  ',rec.numerotracce);  {stampa numero delle tracce}
  57.   writeln('autore del cd:  ',rec.autore);                       {stampa del nome dell'autore}
  58.   writeln('prezzo del cd:  ',rec.prezzo:2:2 ,'  euro');                       {stampa del prezzo}
  59.   writeln('');
  60.  end;
  61.  close(f1);                                       {chiusura}
  62. end;
  63.  
  64. procedure inserimento(var f1:cd);
  65. begin
  66.  clrscr;                                             {inizio}
  67.  reset(f1);
  68.  setlength(rec,1);
  69.  while not eof(f1) do begin
  70.   read(f1,rec[high(rec)]);
  71.   setlength(rec,high(rec)+2);
  72.  end;
  73.  Close(f1);
  74.  with rec[high(rec)]do begin
  75.   writeln('inserisci il titolo del nuovo album');       {lettura campo}
  76.   readln(titolo);
  77.   writeln('inserisci il numero delle tracce presenti nel nuovo cd');{lettura campo}
  78.   readln(numerotracce);
  79.   writeln('inserisci l autore del nuovo cd');                       {lettura campo}
  80.   readln(autore);
  81.   writeln('inserisci il prezzo del nuovo cd');                      {lettura campo}
  82.   readln(prezzo);
  83.  end;
  84.  rewrite(f1);
  85.  for i := 0 to high(rec) do write(f,rec[i]);
  86.  close(f1);
  87. end;                                                                      {fine}
  88. procedure inserimento_al_centro(var f1:cd);
  89. var a : word;
  90. begin
  91. clrscr;
  92. reset(f1);
  93. setlength(rec,1);
  94. while not eof(f1) do begin
  95.  read(f1,rec[high(rec)]);
  96.  setlength(rec,high(rec)+2);
  97. end;
  98. Close(f1);
  99.  
  100. writeln('CD : ci sono ',high(rec),' elementi');
  101. writeln('dopo quale elemento vuoi inserire il nuovo cd?');
  102. repeat readln(a); until (a <= high(rec));
  103. for i := a to (high(rec)-1) do rec[i+1]:=rec[i];
  104. with rec[a-1] do begin
  105.  writeln('inserisci il titolo del nuovo album');       {lettura campo}
  106.  readln(titolo);
  107.  writeln('inserisci il numero delle tracce presenti nel nuovo cd');{lettura campo}
  108.  readln(numerotracce);
  109.  writeln('inserisci l autore del nuovo cd');                       {lettura campo}
  110.  readln(autore);
  111.  writeln('inserisci il prezzo del nuovo cd');                      {lettura campo}
  112.  readln(prezzo);
  113. end;
  114. rewrite(f1);
  115. for i := 0 to high(rec) do write(f,rec[i]);
  116. close(f1);
  117. end;
  118.  
  119.  
  120. // MAIN
  121.  
  122. BEGIN
  123.   clrscr;
  124.   assign(f,'cd.dat');                  {assegnazione dello spazio nella memoria di massa}
  125.   crea(f);                              {creazione}
  126.   clrscr;
  127.   repeat                                {ripeti}
  128.     clrscr;
  129.     writeln('MENU DI SCELTA CD-ROM');          {menu al video}
  130.     writeln('---------------------');
  131.     writeln(' 1)inserisci un nuovo cd');
  132.     writeln(' 2)stampa lista dei cd');
  133.     writeln(' 3)inserimento al centro');
  134.     writeln(' 8)uscire');
  135.     writeln('---------------------');
  136.     writeln('');
  137.     repeat                                                {ripeti}
  138.     writeln('quale paragrafo vuoi consultare?');          {scelta}
  139.     readln(sce);                                          {lettura variabile scelta}
  140.   until (sce>0) and (sce<4) or (sce=8);                   {fine ciclo fino a che}
  141.   case sce of                                             {case}
  142.   1: begin
  143.        clrscr;
  144.        inserimento(f);
  145.        writeln('...premere invio per continuare...');
  146.        readln();
  147.      end;                                                 {procudure scelte}
  148.   2: begin
  149.        clrscr;
  150.        stampa(f);
  151.        readln;
  152.        writeln('...premere invio per continuare...');
  153.        readln();
  154.  
  155.      end;
  156.  
  157.    3:begin
  158.       clrscr;
  159.       inserimento_al_centro(f);
  160.       readln;
  161.       writeln('...premere invio per continuare...');
  162.       readln();
  163.  
  164.      end;
  165.     end;
  166.   until (sce=8);                                       {fine ciclo finoa che sce =8}
  167. END.  {fine}


PM Quote
Avatar
francescomattia (Normal User)
Newbie


Messaggi: 6
Iscritto: 07/04/2010

Segnala al moderatore
Postato alle 17:02
Mercoledì, 26/05/2010
si potrebbe fare con la doppia copiatura???? gentilmente qualcuno mi può dare una mano???

PM Quote