esercizi di coniugazione verbi latini con turbo pascal 1.1 su mac

 

program latino;
{ desinenze come array di stringhe variabili }
  
  const tempo1='presente indicativo del verbo:';
             tempo2='imperfetto indicativo del verbo:';
                              
 var rad1:string[12];
        infinito:string[15];
        a,b:integer;
        des1:array[1..12] of string[10];
  
  procedure desinenze;
  begin
   des1[1]:='o';des1[2]:='as';des1[3]:='at';
   des1[4]:='amus';des1[5]:='atis';des1[6]:='ant';
   des1[7]:='abam';des1[8]:='abas';des1[9]:='abat';
   des1[10]:='abamus';des1[11]:='abatis';des1[12]:='abant';
  end;
  
  procedure pausa;
  begin
   writeln('premi return');
   readln;
   clearscreen;
  end;
             
begin
  writeln('scrivi infinito verbo latino:');
  readln(infinito);
  a:=length(infinito);
  rad1:=copy(infinito,1,a-3);
  pausa;
  desinenze;
  writeln(tempo1,infinito);
    for b:=1 to 6 do
      begin
      writeln(rad1,des1[b]);
      writeln;
      end;
      writeln('-------------------------');
      pausa;
   writeln(tempo2,infinito);   
    for b:=7 to 12 do
      begin
      writeln(rad1,des1[b]);
      writeln;
      end; 
    writeln('-----------------');
   pausa;
 end.      
              
        

program latino1;
{ desinenze come array di stringhe variabili }
{ procedura desinenze registrata come programma e richiamata con $I }
{ coniugazione sequenziale indicativo prima coniugazione }
{ per altre coniugazioni o tempi cfr.esempi in TURBO5 o TURBO3...}  
  
                              
 var rad1,rad2:string[12];
        infinito,perfetto:string[15];
        a,b:integer;
        des1:array[1..36] of string[10];
  
  {$I desinenze1}
  
   
  procedure pausa;
  begin
   writeln('premi return');
   readln;
   clearscreen;
  end;
  
  procedure coniuga(rad:string;x,y:integer;tempo:string);
  begin
   writeln(tempo,infinito);
    for b:=x to y do
      begin
      writeln(rad,des1[b]);
      writeln;
      end;
      writeln('-------------------------');
      pausa;
  end;    
          
begin
  writeln('scrivi infinito verbo latino prima coniugazione:');
  readln(infinito);
  a:=length(infinito);
  rad1:=copy(infinito,1,a-3);
  writeln('scrivi perfetto indicativo stesso verbo latino:');
  readln(perfetto);
  a:=length(perfetto);
  rad2:=copy(perfetto,1,a-1);
 
  pausa;
  desinenze1;
  coniuga(rad1,1,6,'presente indicativo del verbo:');
  coniuga(rad1,7,12,'imperfetto indicativo del verbo:');
  coniuga(rad1,13,18,'futuro indicativo del verbo:');
  coniuga(rad2,19,24,'perfetto indicativo del verbo :');
  coniuga(rad2,25,30,'piuccheperfetto indicativo del verbo:');
  coniuga(rad2,31,36,'futuro anteriore del verbo:');  
    writeln('-----------------');
   pausa;
 end.      
              
        
                          

program latino2;
{ desinenze come array di stringhe variabili }
{ procedura desinenze registrata come programma e richiamata con $I }
{ coniugazione sequenziale indicativo quattro coniugazione }
{ per altre coniugazioni o tempi cfr.esempi in TURBO5 o TURBO3...}  
  
                              
 var rad1,rad2:string[12];
        infinito,perfetto:string[15];
        a,b,coniug:integer;
        des1:array[1..36] of string[10];
         des2:array[1..36] of string[10];
          des3:array[1..36] of string[10];
           des4:array[1..36] of string[10];
           
  {$I desinenze1}
  {$I desinenze2}
  {$I desinenze3}
  {$I desinenze4}
  
  procedure pausa;
  begin
   writeln('premi return');
   readln;
   clearscreen;
  end;
  
  procedure coniuga(rad:string;x,y:integer;tempo:string;coniug:integer);
  begin
   writeln(tempo,infinito);
    for b:=x to y do
      begin
      case coniug of
         1:writeln(rad,des1[b]);
         2:writeln(rad,des2[b]);
         3:writeln(rad,des3[b]);
         4:writeln(rad,des4[b]);
        end;
      end;
      pausa;
  end;    
          
begin
  writeln('scrivi infinito verbo latino 1-2-3-4 coniugazione:');
  readln(infinito);
  a:=length(infinito);
  rad1:=copy(infinito,1,a-3);
  writeln('scrivi perfetto indicativo stesso verbo latino:');
  readln(perfetto);
  a:=length(perfetto);
  rad2:=copy(perfetto,1,a-1);
  writeln('indica coniugazione:1,2,3,4 ? ');
  readln(coniug); 
  clearscreen;
    case coniug of    
  1:desinenze1;
  2:desinenze2;
  3:desinenze3;
  4:desinenze4;
    end;
  
  coniuga(rad1,1,6,'presente indicativo del verbo:',coniug);
  coniuga(rad1,7,12,'imperfetto indicativo del verbo:',coniug);
  coniuga(rad1,13,18,'futuro indicativo del verbo:',coniug);
  coniuga(rad2,19,24,'perfetto indicativo del verbo :',coniug);
  coniuga(rad2,25,30,'piuccheperfetto indicativo del verbo:',coniug);
  coniuga(rad2,31,36,'futuro anteriore del verbo:',coniug);  
    writeln('-----------------');
   pausa;
 end.      
              
        
                          

program latino2c;
{ desinenze come array di stringhe variabili }
{ procedura desinenze registrata come programma e richiamata con $I }
{ coniugazione sequenziale indicativo seconda coniugazione }
{ per altre coniugazioni o tempi cfr.esempi in TURBO5 o TURBO3...}  
  
                              
 var rad1,rad2:string[12];
        infinito,perfetto:string[15];
        a,b:integer;
        des2:array[1..36] of string[10];
  
  {$I desinenze2}
  
   
  procedure pausa;
  begin
   writeln('premi return');
   readln;
   clearscreen;
  end;
  
  procedure coniuga(rad:string;x,y:integer;tempo:string);
  begin
   writeln(tempo,infinito);
    for b:=x to y do
      begin
      writeln(rad,des2[b]);
      writeln;
      end;
      writeln('-------------------------');
      pausa;
  end;    
          
begin
  writeln('scrivi infinito verbo latino seconda coniugazione:');
  readln(infinito);
  a:=length(infinito);
  rad1:=copy(infinito,1,a-3);
  writeln('scrivi perfetto indicativo stesso verbo latino:');
  readln(perfetto);
  a:=length(perfetto);
  rad2:=copy(perfetto,1,a-1);
 
  pausa;
  desinenze2;
  coniuga(rad1,1,6,'presente indicativo del verbo:');
  coniuga(rad1,7,12,'imperfetto indicativo del verbo:');
  coniuga(rad1,13,18,'futuro indicativo del verbo:');
  coniuga(rad2,19,24,'perfetto indicativo del verbo :');
  coniuga(rad2,25,30,'piuccheperfetto indicativo del verbo:');
  coniuga(rad2,31,36,'futuro anteriore del verbo:');  
    writeln('-----------------');
   pausa;
 end.      
              
        
                          

program latino3c;
{ desinenze come array di stringhe variabili }
{ procedura desinenze registrata come programma e richiamata con $I }
{ coniugazione sequenziale indicativo terza coniugazione }
{ per altre coniugazioni o tempi cfr.esempi in TURBO5 o TURBO3...}  
  
                              
 var rad1,rad2:string[12];
        infinito,perfetto:string[15];
        a,b:integer;
        des3:array[1..36] of string[10];
  
  {$I desinenze3}
  
   
  procedure pausa;
  begin
   writeln('premi return');
   readln;
   clearscreen;
  end;
  
  procedure coniuga(rad:string;x,y:integer;tempo:string);
  begin
   writeln(tempo,infinito);
    for b:=x to y do
      begin
      writeln(rad,des3[b]);
      writeln;
      end;
      writeln('-------------------------');
      pausa;
  end;    
          
begin
  writeln('scrivi infinito verbo latino terza coniugazione:');
  readln(infinito);
  a:=length(infinito);
  rad1:=copy(infinito,1,a-3);
  writeln('scrivi perfetto indicativo stesso verbo latino:');
  readln(perfetto);
  a:=length(perfetto);
  rad2:=copy(perfetto,1,a-1);
 
  pausa;
  desinenze3;
  coniuga(rad1,1,6,'presente indicativo del verbo:');
  coniuga(rad1,7,12,'imperfetto indicativo del verbo:');
  coniuga(rad1,13,18,'futuro indicativo del verbo:');
  coniuga(rad2,19,24,'perfetto indicativo del verbo :');
  coniuga(rad2,25,30,'piuccheperfetto indicativo del verbo:');
  coniuga(rad2,31,36,'futuro anteriore del verbo:');  
    writeln('-----------------');
   pausa;
 end.      
              
        
                          

program latino4c;
{ desinenze come array di stringhe variabili }
{ procedura desinenze registrata come programma e richiamata con $I }
{ coniugazione sequenziale indicativo quarta coniugazione }
{ per altre coniugazioni o tempi cfr.esempi in TURBO5 o TURBO3...}  
  
                              
 var rad1,rad2:string[12];
        infinito,perfetto:string[15];
        a,b:integer;
        des4:array[1..36] of string[10];
  
  {$I desinenze4}
  
   
  procedure pausa;
  begin
   writeln('premi return');
   readln;
   clearscreen;
  end;
  
  procedure coniuga(rad:string;x,y:integer;tempo:string);
  begin
   writeln(tempo,infinito);
    for b:=x to y do
      begin
      writeln(rad,des4[b]);
      writeln;
      end;
      writeln('-------------------------');
      pausa;
  end;    
          
begin
  writeln('scrivi infinito verbo latino quarta coniugazione:');
  readln(infinito);
  a:=length(infinito);
  rad1:=copy(infinito,1,a-3);
  writeln('scrivi perfetto indicativo stesso verbo latino:');
  readln(perfetto);
  a:=length(perfetto);
  rad2:=copy(perfetto,1,a-1);
 
  pausa;
  desinenze4;
  coniuga(rad1,1,6,'presente indicativo del verbo:');
  coniuga(rad1,7,12,'imperfetto indicativo del verbo:');
  coniuga(rad1,13,18,'futuro indicativo del verbo:');
  coniuga(rad2,19,24,'perfetto indicativo del verbo :');
  coniuga(rad2,25,30,'piuccheperfetto indicativo del verbo:');
  coniuga(rad2,31,36,'futuro anteriore del verbo:');  
    writeln('-----------------');
   pausa;
 end.      
              
        
                          

procedure desinenze1;
begin
 des1[1]:='o';des1[2]:='as';des1[3]:='at';
 des1[4]:='amus';des1[5]:='atis';des1[6]:='ant';
 des1[7]:='abam';des1[8]:='abas';des1[9]:='abat';
 des1[10]:='abamus';des1[11]:='abatis';des1[12]:='abant';
 des1[13]:='abo';des1[14]:='abis';des1[15]:='abit';
 des1[16]:='abimus';des1[17]:='abitis';des1[18]:='abunt';
 des1[19]:='i';des1[20]:='isti';des1[21]:='it';
 des1[22]:='imus';des1[23]:='istis';des1[24]:='erunt';
 des1[25]:='eram';des1[26]:='eras';des1[27]:='erat';
 des1[28]:='eramus';des1[29]:='eratis';des1[30]:='erant';
 des1[31]:='ero';des1[32]:='eris';des1[33]:='erit';
 des1[34]:='erimus';des1[35]:='eritis';des1[36]:='erint';
 end;
 

procedure desinenze2;
begin
 des2[1]:='eo';des2[2]:='es';des2[3]:='et';
 des2[4]:='emus';des2[5]:='etis';des2[6]:='ent';
 des2[7]:='ebam';des2[8]:='ebas';des2[9]:='ebat';
 des2[10]:='ebamus';des2[11]:='ebatis';des2[12]:='ebant';
 des2[13]:='ebo';des2[14]:='ebis';des2[15]:='ebit';
 des2[16]:='ebimus';des2[17]:='ebitis';des2[18]:='ebunt';
 des2[19]:='i';des2[20]:='isti';des2[21]:='it';
 des2[22]:='imus';des2[23]:='istis';des2[24]:='erunt';
 des2[25]:='eram';des2[26]:='eras';des2[27]:='erat';
 des2[28]:='eramus';des2[29]:='eratis';des2[30]:='erant';
 des2[31]:='ero';des2[32]:='eris';des2[33]:='erit';
 des2[34]:='erimus';des2[35]:='eritis';des2[36]:='erint';
 end;
 

procedure desinenze3;
begin
 des3[1]:='o';des3[2]:='is';des3[3]:='it';
 des3[4]:='imus';des3[5]:='itis';des3[6]:='unt';
 des3[7]:='ebam';des3[8]:='ebas';des3[9]:='ebat';
 des3[10]:='ebamus';des3[11]:='ebatis';des3[12]:='ebant';
 des3[13]:='am';des3[14]:='es';des3[15]:='et';
 des3[16]:='emus';des3[17]:='etis';des3[18]:='ent';
 des3[19]:='i';des3[20]:='isti';des3[21]:='it';
 des3[22]:='imus';des3[23]:='istis';des3[24]:='erunt';
 des3[25]:='eram';des3[26]:='eras';des3[27]:='erat';
 des3[28]:='eramus';des3[29]:='eratis';des3[30]:='erant';
 des3[31]:='ero';des3[32]:='eris';des3[33]:='erit';
 des3[34]:='erimus';des3[35]:='eritis';des3[36]:='erint';
 end;
 

procedure desinenze4;
begin
 des4[1]:='io';des4[2]:='is';des4[3]:='it';
 des4[4]:='imus';des4[5]:='itis';des4[6]:='iunt';
 des4[7]:='iebam';des4[8]:='iebas';des4[9]:='iebat';
 des4[10]:='iebamus';des4[11]:='iebatis';des4[12]:='iebant';
 des4[13]:='iam';des4[14]:='ies';des4[15]:='iet';
 des4[16]:='iemus';des4[17]:='ietis';des4[18]:='ient';
 des4[19]:='i';des4[20]:='isti';des4[21]:='it';
 des4[22]:='imus';des4[23]:='istis';des4[24]:='erunt';
 des4[25]:='eram';des4[26]:='eras';des4[27]:='erat';
 des4[28]:='eramus';des4[29]:='eratis';des4[30]:='erant';
 des4[31]:='ero';des4[32]:='eris';des4[33]:='erit';
 des4[34]:='erimus';des4[35]:='eritis';des4[36]:='erint';
 end;