Sei sulla pagina 1di 10

Le istruzioni di selezione nel C e

nel C++
3
Il concetto di scelta e di selezione.
L’istruzione if e la sua sintassi.
Un esempio pratico.
La selezione.
Il progetto di Arduino proposto
nella prima lezione, di cui qui a
lato è presentata la simulazione
su Tinkercad, utilizza il comando
if/else ovvero quella che
comunemente è detta
istruzione di selezione.
Nell’analisi con i diagrammi di
flusso è rappresentata con il
seguente simbolo:
La selezione.
Il comando di selezione è spesso chiamato anche
blocco decisionale per indicare tutte le istruzioni
relative al comandi if/else.
Per spiegare più nel dettaglio e in modo più chiaro
il funzionamento e la sintassi di questo comando,
analizziamo il codice immesso in Arduino per il
controllo del led a mezzo fotoresistenza, risolvendo
l’esercizio proposto in una lezione precedente
ovvero il disegno del diagramma di flusso partendo
dallo sketch di Arduino.
Nella finestra qui a lato è rappresentato lo sketch
nell’IDE di Arduino.
Per disegnare il diagramma di flusso, vi ricordo che
ogni blocco rappresenta un comando, eccetto che
la definizione delle costanti e delle variabili.
Analisi di uno sketch di Arduino.
Questo è il diagramma di flusso relativo allo sketch
Inizio
di Arduino.
Considerazioni.
1. Notate che il diagramma di flusso, così come
Leggi Pin A1 nella realtà lo sketch di Arduino, non si
conclude ma viene seguito all’infinito.
2. Nel diagramma di flusso non sono inserite le
no definizioni delle variabili perché in alcuni
si
linguaggi non è necessario definirle in anticipo.
Pin>500
3. Il diagramma di flusso rappresenta le azioni di
pertinenza dell’algoritmo non la sintassi della
scrittura del software in un dato linguaggio.
Pin 9=LOW Pin 9=HIGH 4. Il diagramma di flusso è la rappresentazione di
un algoritmo non la rappresentazione grafica di
un software.
Risoluzione di un problema semplice.
Consideriamo un problema estremamente C
semplice: il calcolo dell’area e del perimetro di un H
triangolo rettangolo. Sotto la figura sono riportate
le formule per il calcolo dell’area e del perimetro
con le quali dobbiamo implementare un
algoritmo.
A B
Implementare: in informatica questo verbo
assume il significato di realizzazione concreta di un
programma partendo dalla sua definizione logica 𝐴𝐵 ∙ 𝐴𝐶 𝐴𝐻 ∙ 𝐵𝐶
(algoritmo). Da qui, implementare un algoritmo 𝑆= =
2 2
significa realizzare un codice che realizzi
l’algoritmo stesso.
2𝑝 = 𝐴𝐵 + 𝐵𝐶 + 𝐴𝐶
La definizione logica del problema può essere
rappresentata a mezzo di un diagramma di flusso.
Algoritmo di calcolo dell’area e del perimetro.
Inizio Qui a sinistra è riportato il diagramma di
flusso del problema proposto; alato di ogni
blocco è stata inserita la spiegazione
cateti a, b /*Inserire da tastiera i due dell’operazione eseguita dal blocco. Le
ipotenusa c cateti e l’ipotenusa*/ operazioni che richiedono l’intervento
dell’utente sono quelle inserite all’interno
2p=a+b+c /*Calcolare il perimetro*/ di un parallelogramma.
Per renderlo operativo e quindi
automatizzarlo in un dispositivo elettronico
𝑎∙𝑏 /*Calcolare l’area*/ occorre implementare un codice che renda
𝐴= il calcolo automatico. Possiamo scrivere il
2
codice sia in C sia in C++. Nella pagina
successiva sono riportati i codici scritti nei
Stampa /*Stampare a video i
due diversi linguaggi.
A e 2p risultati*/

Fine
Algoritmo di calcolo dell’area e del perimetro.
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5{
6 float a,b,c,A,P;
7 printf("Inserisci il cateto minore\n");
8 scanf("%f",&a);
Codice in C
9 printf("inserisci il cateto maggiore\n");
10 scanf("%f",&b);
11 c=sqrt(pow(a,2)+pow(b,2));
12 A=a*b/2;
13 P=a+b+c;
14 printf("L'ipotenusa è:%f\n",c);
15 printf("L'area è:%f\n",A);
16 printf("Il perimetro è:%f\n",P);
17 return 0;
18 }
Algoritmo di calcolo dell’area e del perimetro.
Inizio float a,b,c,A,P;
printf("Inserisci il cateto minore\n");
scanf("%f",&a);
cateti a, b printf("inserisci il cateto maggiore\n");
ipotenusa c scanf("%f",&b);

2p=a+b+c P=a+b+c

𝑎∙𝑏
𝐴= A=a*b/2
2

Stampa printf("L'area è:%f\n",A);


A e 2p printf("Il perimetro è:%f\n",P);

Fine
Algoritmo di calcolo dell’area e del perimetro.
1 #include <iostream>
2 #include <cmath>
3
4 using namespace std;
5
6 int main()
7 {
8 float a,b,c,A,P;
9 cout << "Inserisci il cateto minore" << endl;
10 cin>>a;
11 cout<<"Inserisci il cateto maggiore"<<endl;
Codice in C++
12 cin>>b;
13 c=sqrt(pow(a,2)+pow(b,2));
14 A=a*b/2;
15 P=a+b+c;
16 cout<<"L'ipotenusa vale: "<<endl;
17 cout<<c<<endl;
18 cout<<"Il perimetro vale:"<<endl;
19 cout<<P<<endl;
20 cout<<"L'area vale:"<<endl;
21 cout<<A<<endl;
22 return 0;
23 }
Algoritmo di calcolo dell’area e del perimetro.
Inizio float a,b,c,A,P;
cout << "Inserisci il cateto minore" << endl;
cin>>a;
cateti a, b
cout<<"Inserisci il cateto maggiore"<<endl;
ipotenusa c
cin>>b;

2p=a+b+c P=a+b+c

𝑎∙𝑏
𝐴= A=a*b/2
2

Stampa
cout<<"Il perimetro vale:"<<endl;
A e 2p
cout<<P<<endl;
cout<<"L'area vale:"<<endl;
Fine cout<<A<<endl;