Per poter effettuare delle condizioni abbiamo la
necessita di saper differenziare cosa è maggiore cosa è minore e
cosa è uguale. Per fare ciò ci vengono in aiuto i tre caratteri >
< =. Facciamo un esempio vediamo quale tra le due variabili di
nome Variabile1 e Variabile2 è più grande in questo semplice
esempio.
Variabile1:=15;
Variabile2:=5;
if
(Variabile1<Variabile2) then
writeln('La
variabile1 è maggiore!')
else
if (Variabile1>Variabile2) then
writeln('La
variabile2 è maggiore')
else
if(Variabile1=Variabile2) then
writeln('Le
due variabili sono uguali');
E' possibile anche mescolare questi caratteri per
semplificare la scrittura di condizioni, ad esempio ipotizziamo di
dover dire che la variabile1 è maggiore o uguale a 10, lo potremmo
fare così ((Variabile1>10)OR(Variabile1=10))
o così (Variabile1>=10). Come si può
notare la seconda versione è più veloce da scrivere e anche più
facile da leggere.
Esattamente come in qualsiasi linguaggio si presenterà
l'occasione in cui si devono usare o/e. Facciamo due esempi per
capire cosa intendo:
Arrivano
Andrea e Marco.
Potrebbe
arrivare Andrea o
Marco.
Come si può evidenziare da queste due frasi di esempio
la possibilità di dire OR/AND è importantissima e così lo è anche
per un linguaggio di programmazione, soprattutto quando si vogliono
effettuare condizioni multiple, ad esempio la variabile1 deve essere
maggiore di 5 e la variabile2 deve essere minore di 15. Questo ultimo
esempio si può tradurre informaticamente con
((Variabile1>5)AND(Variabile2<15)).
Written by xinyimanposted in Lazarus 1.0 Ottobre 17, 2011, 03:04:00 pm23003 ViewsRating: 0 (0 Rates)Print
A volte può essere utile stabilire il sistema operativo, per poter rendere le nostre applicazioni multi piattaforma, cambiando dei parametri. Per fare questo basta usare la seguente funzione:
function GetOsVer: string;
begin
{$IFDEF WIN32}
if WindowsVersion = wv95 then Result:='Windows 95'
else if WindowsVersion = wvNT4 then Result:='Windows NT v.4'
else if WindowsVersion = wv98 then Result:='Windows 98'
else if WindowsVersion = wvMe then Result:='Windows ME'
else if WindowsVersion = wv2000 then Result:='Windows 2000'
else if WindowsVersion = wvXP then Result:='Windows XP'
else if WindowsVersion = wvServer2003 then Result:='Windows Server 2003'
else if WindowsVersion = wvVista then Result:='Windows Vista'
else if WindowsVersion = wv7 then Result:='Windows 7'
else Result:='Unknown';
{$ENDIF}
{$IFDEF UNIX}
Result:='Linux';
{$ENDIF}
end;
Utilizzando il seguente codice nella sezione uses della unit che contiene la funzione GetOSVer:
{$IFDEF WIN32}
,Win32Proc //serve per stabilire i vari sistemi operativi
{$ENDIF}
A questo indirizzo puoi scaricare un esempio www.lazaruspascal.it/esempi/Get_OS.zip
function RecuperaHtml(Url: string): string;
var http : THTTPSend;
page : TStringList;
i : longint;
risultato: string;
begin
risultato:='';
http:=THTTPSend.Create;
page:=TStringList.Create;
try
if not http.HTTPMethod('GET',Url) then
begin
RecuperaHtml:='';
exit;
end
else
begin
page.LoadFromStream(http.Document);
for i:=0 to page.Count-1 do
risultato:=risultato + UpCase(page[i]);
end;
http.Clear;
page.Clear;
finally
http.Free;
page.Free;
end;
RecuperaHtml:=risultato;
end;
end.
Fatto questo andiamo nella form del nostro progetto e aggiungiamo la libreria GetHtml nella sezione uses della nostra form. Alla form aggiungiamo una TEditBox, un campo TMemo, e un TButton. Lasceremo i nomi di default ovvero Edit1, Memo1 e Button1.
Creiamo l'evento Click per il pulsante e andiamo a scriverci dentro il seguente codice:
procedure TForm1.Button1Click(Sender: TObject);
var
CodicePag: string;
begin
CodicePag:=RecuperaHtml(Edit1.Text);
Memo1.Text:=CodicePag;
end;
Compilate, eseguite e scrivete un url nella EditBox, premete il pulsante e vedrete il codice HTML nel campo memo.
Generalmente in ogni discorso si arriva in un punto in cui si esprime il concetto del "se" o "oppure". Bene, il Pascal come linguaggio di programmazione non fa eccezione. Vediamo come si fa proseguendo con il programma che abbiamo realizzato nell'articolo "Input di dati". Il programma in questione, se avete provato a realizzarlo e testarlo, dice: "Inserire un numero da uno a dieci: ". Ma se si inseriscono valori numerici differenti da quelli previsti, non esegue nessun controllo e vengono stampati lo stesso. Questo perchè ancora non sappiamo come differenziare i numeri validi da quelli non validi. Per fare ciò si ricorre al "if". Vediamo come verrebbe modificato il codice del programma prima menzionato se usassimo un if.
write('Inserisci un numero da uno a dieci: '); readln(PrimaVariabile); if ((PrimaVariabile > 0) and (PrimaVariabile < 11)) then writeln('Il numero da te immesso e'': ', PrimaVariabile) else if ((PrimaVariabile > 10) and (PrimaVariabile < 21)) then writeln('Il numero da te immesso e'' compreso tra 11 e 20') else writeln('Il numero da te immesso non e'' compreso tra 1 e 10!');
repeat until keypressed;
Analizziamo ora il codice: dopo aver letto la variabile di nome PrimaVariabile possiamo notare il costrutto
se (Condizione1) allora Operazione che si vuol fare oppure se(Condizione2) allora Operazione che si vuol fare oppure Operazione che si vuol fare
Come si può capire da questi semplici esempi, il comando if è alla base di tutti i programmi.
Precedentemente abbiamo detto che ogni riga deve terminare con il punto e virgola, ma se andiamo a vedere l'esempio appena esposto, noteremo che su alcune righe il punto e virgola non c'è. Questo perché la riga subito dopo l'if è considerata come il codice da eseguire se la condizione è verificata, altrimenti esegue quello che c'è nell'else; quindi non necessita del punto e virgola per specificare dove finisce la riga.
Abbiamo visto che se si verificano le condizioni, allora si esegue una sola riga. In realtà ci si può trovare di fronte alla necessità di dover eseguire più di una riga di codice, e per fare ciò bisogna usare il "begin end". Modificando il vecchio esempio andremo a capire meglio cosa intendo.
write('Inserisci un numero da uno a dieci: '); readln(PrimaVariabile);
if ((PrimaVariabile > 0) and (PrimaVariabile < 11)) then writeln('Il numero da te immesso e'': ', PrimaVariabile) else if ((PrimaVariabile > 10) and (PrimaVariabile < 21)) then begin writeln('Il numero da te immesso e'' superiore ma non troppo'); writeln ('Eseguo piu'' di una riga di codice!'); end else writeln('Il numero da te immesso non e'' compreso tra 1 e 10!');
repeat until keypressed;
Come possiamo notare, la prima condizione, se verificata, esegue la stessa operazione di prima, mentre la seconda condizione, se verificata, oltre a stampare quello che stampava la prima, esegue un'operazione in più, ma solo se si è verificata quella condizione. Per far capire al compilatore che le due righe in questione vanno eseguite solo se il numero immesso è compreso tra 11 e 20, allora racchiudo le operazioni tra begin e end (ed ogni riga termina con il punto e virgola, begin end esclusi). Ma il comando if non è il solo che permette la gestione delle scelte, infatti è presente anche il comando case che opera al pari dell'if. Vediamo un esempio per capire come funziona.
writeln('Inserisci un numero tra uno e dieci: '); readln(PrimaVariabile);
case PrimaVariabile of 1..10: writeln('Numero compreso tra 1 e 10.'); 11..20: writeln('Numero compreso tra 11 e 20.'); else writeln('Altro numero.'); end;
Notiamo che laddove prima esisteva il costrutto "if then else" ora esiste il costrutto "case of else". Vediamo ora come si può usare.
Case variabile of Condizione1: ; Condizione2: ; . . . . . CondizioneN: ; else
end;
Questo modo di gestire le scelte è comodo, perché in realtà dovremmo scrivere molti if per esprimere un concetto. In tal caso conviene usare il case. Allo stesso modo dell'if, se abbiamo la necessita di eseguire più operazioni all'avverarsi di una data condizione, useremo il costrutto begin end.
Questo blog non rappresenta una testata giornalistica poiché viene
aggiornato senza alcuna periodicità. Non può pertanto considerarsi un
prodotto editoriale ai sensi della legge n. 62/2001.
Questo sito utilizza cookie, anche di terze parti, per offriti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.