Linux & Programmazione. L'esempio del Pascal

Da Wizard linux team wiki.

Jump to: navigation, search

Contents

Linux & Programmazione; L’esempio del Pascal

Precisazioni:questa guida non vi insegna a programmare, ma vi aiuta a configurare il vostro S.O. preferito, per quanto riguarda la programmazione.

Dopo aver installato il sistema operativo, dobbiamo avere installato su “More applicationsàSviluppoàAmbienti di sviluppo” il KDevelop; In caso contrario, provvedere ad installarlo, andando su “SistemaàConfigurazioneàGestione pacchettiàInstalla software”; Nella schermata che vi apparirà, dovete mettere “KDevelop”, selezionate il pacchetto e avviate l’installazione;

Una volta installato, apritelo (ALT+F2àKdevelop);

Questo programma è un editor di testi che si adatta, in base al linguaggio, con diversi colori alle righe di codice; Racchiude una minima parte dei linguaggi di programmazione, ma sono quelli più usati; Fra questi abbiamo: C, Java, Phyton, PHP, Perl ecc… Per molti linguaggi come ad esempio Perl, esiste già un compilatore nel sistema, quindi, prima di andare a scaricarne uno, accertatevi che sia presente.;

Come da titolo, prenderò in considerazione il Pascal; Uno dei migliori compilatori per questo linguaggio è il FreePascalCompilator (abbreviato FPC); Potete prelevare l’ultima versione del software da http://www.freepascal.org Una volta scaricati i sorgenti, oppure il pacchetto RPM o DEB ed averli installati, il compilatore è presente nel sistema, per prova aprite la Konsole e digitate “fpc”; Se vi apparirà l’help, vuol dire che funziona;

In questo momento ci viene in aiuto il Kdevelop; Create un nuovo progetto (ProjectàNew); Selezionate il linguaggio di programmazione (pascalàSimple Program) e create la cartella del progetto; Cancellate il programma di esempio (il famosissimo HelloWorld =D) e cominciate a scrivere il vostro sorgente. Quando avete finito basterà andare su BuilàBuil project o spingere F8;

In fondo al progettò apparirà una finestra con i passaggi e comandi che altrimenti dovreste fare voi manualmente dalla console; Se il nel sorgente non ha riscontrato errori, alla fine verrà scritto” *** Success ***”

Immagine:Hvc.jpg

In questo momento il file eseguibile verrà creato dentro la cartella; Se volete avviarlo ciccate su BuilàExecute Program; Vi apparirà la Konsole con il vostro programma in esecuzione (per quanto riguarda il pascal. Se invece il sorgente comprende la programmazione ad oggetti, apparirà una finestra);

Queste operazioni, come ho detto in precedenza, si possono fare anche manualmente, creando il sorgente in un file di testo e rinominarlo con estensione pas o pp; Una volta salavato, basterà aprire la Konsole, posizionarsi nella cartella dove c’è il file e digitare fpc “nome+file.estenzione” (senza virgolette); e verrà creato l’eseguibile se il compilatore non ha trovato errori; A questo punto basterà richiamarlo: “./nome+file”

Immagine:Hvc1.jpg

COMPILARE ALTRI LINGUAGGI MANUALMENTE:

Da Konsole e posizionati nella cartella del file digitare per…

C/C++:

gcc NomeFile.c –o NomeEseguibile (inizialmente lo compila e se non ha trovato errori, crea l’eseguibile con il nome che gli avete dato);

Java:

Javac NomeFile.java (compilazione) Java NomeClasse (Avvio. Il nome della classe è quella che si specifica all’interno del sorgente java (class ….)

Perl:

perl NomeFile.PL (compilazione ed esecuzione)

File Prova in Pascal

{
     Copyright (C) 2005 by H a V o C                                             
     HaVoC@Linux                                                             
                                                                            
     This program is free software; you can redistribute it and/or modify   
     it under the terms of the GNU General Public License as published by   
     the Free Software Foundation; either version 2 of the License, or      
     (at your option) any later version.                                    
                                                                            
     This program is distributed in the hope that it will be useful,        
     but WITHOUT ANY WARRANTY; without even the implied warranty of         
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          
     GNU General Public License for more details.                           
                                                                            
     You should have received a copy of the GNU General Public License      
     along with this program; if not, write to the                          
     Free Software Foundation, Inc.,                                        
     59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.              
}


program semplice;
uses crt;
var var_array:array[1..100] of integer;
    i,c,c2:integer;
    sequenza:boolean;
    scelta:char;
    esci:string;
begin
repeat
{Menu'}
clrscr;
writeln;
writeln(' A) Visualizza 100 numeri random ');
writeln(' B) Conta quanti sono uguali al primo numero generato ');
writeln(' C) Verifica se esiste almeno un numero uguale a 10 ');
writeln(' D) Conta le coppie contigue di 10 ci sono ');
readln(scelta);
{Visualizza 100 numeri random}
case scelta of
'a','A':
begin
     clrscr;
     writeln('I numeri random creati sono: ');
     writeln;
     randomize;
     for i:=1 to 100
     do begin
     var_array[i]:=random(50)+1;
     write(' ',var_array[i]);
     end;
      writeln;
      writeln;
          writeln('Vuoi uscire dal programma? [S/N]');
          readln(esci);
end;
{Conta quanti sono uguali al primo}
'b','B':
begin
     clrscr;
     c:=0;
     c2:=0;
     writeln;
     randomize;
     for i:=1 to 100
     do begin
     var_array[i]:=random(50)+1;
     if var_array[i]=var_array[i-c]
     then
       INC(C2);
       inc(c);
       end;
     if c2=0
     then begin
          writeln('Non sono stati creati numeri uguali al primo');
          writeln;
          writeln('Vuoi uscire dal programma? [S/N]');
          readln(esci);
          end
     else begin
           writeln('Sono stati trovati ',c2,' numeri uguali al primo');
           writeln;
           writeln('Vuoi uscire dal programma? [S/N]');
           readln(esci);
          end;
end;
{Verifica l'esistenza del 10 nella sequanza random}
'c','C':
begin
     clrscr;
     c:=0;
     writeln;
     randomize;
     for i:=1 to 100
     do begin
     var_array[i]:=random(50)+1;
     INC(C);
     if var_array[i]=10
     then begin
        writeln('ATTENZIONE: Ho trovato un 10 alla posizione ',c);
        writeln('Il programma si chiudera''');
        writeln;
        readln;
        exit;
        end;
     end;
     writeln('Non ho trovato nessun 10');
     writeln;
     writeln('Vuoi uscire dal programma? [S/N]');
     readln(esci);
end;
{Verifica l'esistenza di coppie di 10 contigue nel programma}
'd','D':
begin
     clrscr;
     c:=0;
     sequenza:=false;
     writeln;
     randomize;
     for i:=1 to 100
     do begin
     var_array[i]:=random(50)+1;
     if (var_array[i]=var_array[i-1]) and (sequenza=false) and (var_array[i]=10)
     then begin
        INC(C);
        sequenza:=true;
        end
     else sequenza:=false;
     end;
     if c=0
     then begin
     writeln('Non sono state trovate coppie contigue di 10');
      writeln;
      writeln('Vuoi uscire dal programma? [S/N]');
      readln(esci);

     end
     else begin
          writeln('Ho trovato ',c,' coppie contigue di 10');
          writeln;
          writeln('Vuoi uscire dal programma? [S/N]');
          readln(esci);

     end;
end;
end;
{Controlla la scelta dell'utente per uscire}
until (esci='S') or (esci='s');
end.

wizard linux team