02 DallAlgoritmo Al CodiceC-1
02 DallAlgoritmo Al CodiceC-1
I LINGUAGGI DI PROGRAMMAZIONE
1. Come sono rappresentati dati, risultati e istruzioni all'interno dell'elaboratore?
Risposta: sotto forma di sequenze di 0 e 1
2. Cos'è un programma?
Risposta: una sequenza ordinata di istruzioni, scritta in uno specifico linguaggio di
programmazione
3. Qual è l'unico linguaggio di programmazione che il processore sa eseguire?
Risposta: il linguaggio macchina
4. Come sono rappresentate le istruzioni in linguaggio macchina?
Risposta: in codice binario, cioè sotto forma di 0 e 1
5. Quali parti compongono un'istruzione in linguaggio macchina?
Risposta: codice operativo, eventuali operandi
6. Cosa indica il codice operativo?
Risposta: il tipo di operazione da eseguire
7. Riporta alcuni esempi di operazioni disponibili in linguaggio macchina.
Risposta: somma, sottrazione, caricamento di un valore in una locazione di memoria,
caricamento di un valore in un registro, salto ad una specifica locazione di memoria,
confronto bit a bit, operazioni logiche, halt
8. Cosa si intende per operando?
Risposta: la locazione di memoria o il registro sorgente dei dati o destinazione dei risultati
9. Come viene eseguito un programma in linguaggio macchina?
Risposta: attraverso il ciclo di fetch-decode-execute
10. Cosa si intende per linguaggio assembly?
Risposta: rappresentazione simbolica del linguaggio macchina, introdotta per rendere il
codice più leggibile al programmatore
11. Il processore è in grado di eseguire direttamente il linguaggio assembly?
Risposta: No. Anche se c'è una corrispondenza 1 a 1 tra codice macchina e assembly, il
processore non è in grado di "comprendere" i comandi psudomemonici dell'assembly,
perchè non sono scritti sotto forma di 0 e 1
12. Cos'è un assemblatore?
Risposta: è un programma che si occupa di tradurre un programma assembly in codice
macchina, cioè, di renderlo eseguibile.
13. Il linguaggio macchina è portabile?
Risposta: No. Il linguaggio macchina è fortemente legato all'HW, quindi ogni processore ha
un proprio specifico linguaggio macchina, che non può essere utilizzato su di un processore
diverso.
Pagina 1 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Pagina 2 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Pagina 3 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
13) A quale blocco dei flow chart corrisponde la parentesi graffa chiusa } del C++?
Risposta:
Risposta:
cin>>dato;
Pagina 4 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Risposta:
cout<<dato;
16) Codifica in C++ il seguente blocco di output del messaggio "Salve mondo"
Risposta:
cout<<"Salve Mondo";
17) Per effettuare l'input della variabile dato, viene scritta la seguente linea di codice:
cin>>dato
Quale errore contiene?
Risposta: manca il punto e virgola finale
18) Per effettuare l'input della variabile dato, viene scritta la seguente linea di codice:
cin>>"dato";
Quale errore contiene?
Risposta: il nome della variabile è scritto tra ""
19) Per effettuare l'input della variabile dato, viene scritta la seguente linea di codice:
cin<<dato;
Quale errore contiene?
Risposta: viene usato << al posto di >>
20) Per effettuare l'output del contenuto della variabile dato, viene scritta la seguente linea di
codice: cout<<dato
Quale errore contiene?
Risposta: manca il punto e virgola finale
21) Per effettuare l'output del contenuto della variabile dato, viene scritta la seguente linea di
codice: cout<<"dato";
Quale errore contiene?
Risposta: scrivendo "dato" invece di dato, si visualizza un messaggio e non il contenuto
della variabile
22) Per effettuare l'output del contenuto della variabile dato, viene scritta la seguente linea di
codice: cout>>dato;
Quale errore contiene? Risposta: è stato scritto >> invece che <<
Pagina 5 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
23) Per effettuare l'output del messaggio Hello World!, viene scritta la seguente linea di codice:
cout<<Hello World!;
Quale errore contiene?
Risposta: Il testo del messaggio deve essere racchiuso tra " "
24) Per effettuare l'output del messaggio Hello World!, viene scritta la seguente linea di codice:
cout<<"Hello World!"
Quale errore contiene?
Risposta: manca il ; a fine istruzione
25) Per effettuare l'output del messaggio Hello World!, viene scritta la seguente linea di codice:
cout>>"Hello World!";
Quale errore contiene?
Risposta: viene usato >> al posto di <<
26) Codifica in C++ il seguente blocco if:
Risposta: poichè il ramo if contiene una sola istruzione, non è obbligatorio l'uso delle
parentesi graffe, quindi sono ammesse le seguenti due soluzioni;
1) if (resto>0)
cout<<"Attendi erogazione resto";
2) if (resto>0)
{
cout<<"Attendi erogazione resto";
}
27) Codifica in C++ il seguente blocco if
Pagina 6 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Risposta: if (resto>0)
{
cout<<"Attendi erogazione resto";
cout<<resto;
}
In questo caso è obbligatorio l'uso delle parentesi graffe, perchè il numero di istruzioni nel
ramo if è maggiore di 1
28) Codifica in C++ il seguente blocco if-else
Risposta: if (resto>0)
cout<<"Attendi erogazione resto";
else
cout<<"Nessun resto da erogare";
29) Codifica in C++ il seguente blocco if-else
Risposta:
Poichè nel ramo else c'è una sola istruzione, si può scegliere se usare o no le parentesi graffe
Soluzione 1 if (resto>0)
{
cout<<"Attendi erogazione resto";
cout<<resto;
}
else
cout<<"Nessun resto da erogare";
Pagina 7 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Soluzione 2 if (resto>0)
{
cout<<"Attendi erogazione resto";
cout<<resto;
}
else
{
cout<<"Nessun resto da erogare";
}
30) Qual è la differenza tra = e == ?
Risposta: = è il simbolo di assegnamento = = è il simbolo di confronto
31) Dove si usa = ?
Risposta: nei blocchi di assegnamento
32) Dove si usa = =?
Risposta: nelle condizioni (if e test delle iterazioni)
33) Cosa significa < ?
Risposta: minore
34) Cosa significa <= ?
Risposta: minore o uguale
35) Cosa significa > ?
Risposta: maggiore
36) Cosa significa >= ?
Risposta: maggiore o uguale
37) Cosa significa != ?
Risposta: diverso
38) Cosa significa && ?
Risposta: operatore logico AND
39) Cosa significa || ?
Risposta: operatore logico OR
40) Cosa significa ! ?
Risposta: operatore logico NOT
41) Esprimi 25<x<50 usando l'operatore logico &&
Risposta: x>25 && x<50
Pagina 8 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Pagina 9 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Pagina 10 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
#include <iostream>
using namespace std;
Pagina 11 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 2
Scrivere un programma che consente all'utente di inserire un numero intero.
Il programma verifica se il numero è pari o dispari e scrive il risultato in output.
#include <iostream>
using namespace std;
// Programma per determinare se un numero è pari o dispari
Pagina 12 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 3
Scrivere un programma che chieda all'utente di inserire due numeri interi positivi, verifichi se il
primo numero inserito è divisibile per il secondo e lo comunichi con un messaggio in output.
#include <iostream>
using namespace std;
// Programma per determinare se m è divisibile n, m e n entrambi interi
Pagina 13 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 4
Al fine di poter compilare rapidamente le etichette dei prezzi nel periodo di saldi, un negozio ci
richiede di realizzare un software per il calcolo dello sconto e del prezzo finale. Il titolare del
negozio vuole poter disporre di un applicativo che gli chieda di inserire in input il prezzo pieno di
un articolo in euro e la percentuale di sconto da applicare. Il programma deve fornirgli in output
l'ammontare in euro dello sconto e il prezzo finale dell'articolo.
#include <iostream>
using namespace std;
// Programma per calcolare sconto e prezzo finale di un articolo
Pagina 14 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 5
Una compagnia aerea imbarca nella fila prioritaria le famiglie con bambini con meno di 6 anni.
Tutti gli altri passeggeri sono imbarcati nella coda non prioritaria.
Scrivere un programma che fa inserire all'addetto al gate
• 1 se sta imbarcando una famiglia con bambini
• 0 in tutti gli altri casi
Il programma deve scrivere come risultato sullo schermo un messaggio che indica la fila alla quale
indirizzare il passeggero.
#include <iostream>
using namespace std;
// Programma che individua la coda di imbarco di un passeggero
int main(int argc, char** argv) {
int tipoPasseggero;
cout<<"Inserisci 1 se famiglia con bambini"<<endl;
cout<<"Inserisci 0 in tutti gli altri casi"<<endl;
cin>>tipoPasseggero;
if (tipoPasseggero==0)
cout<<"Coda NON prioritaria"<<endl;
if (tipoPasseggero==1)
cout<<"Coda prioritaria"<<endl;
return 0;
}
Pagina 15 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
#include <iostream>
using namespace std;
// Programma che risolve l'equazione
// primo grado ax+b=0
int main(int argc, char** argv) {
float a,b,x;
cout<<"Inserisci a:";
cin>>a;
cout<<"Inserisci b:";
cin>>b;
if (a!=0)
{
x=-b/a;
cout<<"Risultato x= "<<x<<endl;
}
if (a==0 && b!=0)
cout<<"Impossibile";
if (a==0 && b==0)
cout<<"Indeterminata";
return 0;
}
Pagina 16 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 7: Scrivere un programma che fa inserire all'utente tre numeri interi diversi tra di loro,
rispettivamente nelle variabili a,b,c e che determina quale dei tre è il maggiore
#include <iostream>
using namespace std;
// Programma che determina il maggiore di tre
// numeri diversi tra loro
int main(int argc, char** argv) {
int a,b,c;
cout<<"Inserisci a:";
cin>>a;
cout<<"Inserisci b:";
cin>>b;
cout<<"Inserisci c:";
cin>>c;
if (a>b && a>c)
cout<<"Il maggiore e' "<<a;
if (b>a && b>c)
cout<<"Il maggiore e' "<<b;
if (c>a && c>b)
cout<<"Il maggiore e' "<<c;
return 0;
}
Pagina 17 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 8: Scrivere un programma che fa inserire all'utente tre numeri interi diversi tra di loro,
rispettivamente nelle variabili a,b,c e che determina quale dei tre è il minore
#include <iostream>
using namespace std;
// Programma che determina il minore di tre numeri
//diversi tra loro
int main(int argc, char** argv) {
int a,b,c;
cout<<"Inserisci a:";
cin>>a;
cout<<"Inserisci b:";
cin>>b;
cout<<"Inserisci c:";
cin>>c;
if (a<b && a<c)
cout<<"Il minore e' "<<a;
if (b<a && b<c)
cout<<"Il minore e' "<<b;
if (c<a && c<b)
cout<<"Il minore e' "<<c;
return 0;
}
Pagina 18 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 9:
Scrivere un programma che fa inserire dall'utente la sua età e che dice in output se l'utente è
maggiorenne o no.
#include <iostream>
using namespace std;
// Programma che determina se una persona è maggiorenne
int main(int argc, char** argv) {
int anni;
cout<<"Inserisci la tua eta': ";
cin>>anni;
if (anni<18)
cout<<"Sei minorenne"<<endl;
else
cout<<"Sei maggiorenne"<<endl;
return 0;
}
Pagina 19 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 10: Scrivere un programma che legge in input il punteggio conseguito da un candidato
all'esame Cambidge FCE e che scrive in output il corrispondente livello secondo i seguenti
parametri di valutazione:
• 0 < punti < 140 Non superato
• 140 < punti < 160 Livello B1
• 160 < punti < 173 Grade C
• 173 <punti < 180 Grade B
• 180 < punti< 190 Grade A
Pagina 20 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
#include <iostream>
using namespace std;
// Programma che determina il risultato conseguito da un candidato che ha
// sostenuto il Cambridge FCE
int main(int argc, char** argv) {
int punti;
cout<<"Quanti punti ha ottento il candidato? ";
cin>>punti;
if (punti<0)
cout<<"Valore punti non valido: deve essere maggiore di zero";
if (punti>=0 && punti<140)
cout<<"Esame non superato";
if (punti>=140 && punti<160)
cout<<"Livello B1";
if (punti>=160 && punti<173)
cout<<"Grade C";
if (punti>=173 && punti<180)
cout<<"Grade B";
if (punti>=180 && punti<=190)
cout<<"Grade A";
if (punti>190)
cout<<"Valore punti non valido: non puo' essere maggiore di 190";
return 0;
}
Pagina 21 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
#include <iostream>
using namespace std;
// Programma che calcola il BMI
int main(int argc, char** argv) {
float altezza,massa_corporea,bmi;
cout<<"Inserire altezza: ";
cin>>altezza;
cout<<"Inserire massa corporea:";
cin>>massa_corporea;
bmi=massa_corporea/(altezza^2);
if (bmi<19)
cout<<"Sottopeso";
if (bmi>=19 && bmi<24)
cout<<"Normopeso";
if (bmi>=24 && bmi<30)
cout<<"Sovrappeso";
if (bmi>=30)
cout<<"Obeso";
return 0;
}
Pagina 22 di 23
Corso di Informatica – Classe 2^ - Prof.ssa Claudia Tagliabo'
Esercizio 12
Scrivere un programma che fa inserire all'utente una temperatura espressa secondo la scala Celsius
e la converte in Kelvin. Se la temperaura inserita è minore dello zero assoluto, segnalare un
messaggio di errore.
#include <iostream>
using namespace std;
// Programma che converte un valore di temperatura da Celsius a Kelvin
int main(int argc, char** argv) {
float temperaturaCelsius, temperaturaKelvin;
cout<<"Inserire il valore di temperatua nella scala Celsius: ";
cin>>temperaturaCelsius;
temperaturaKelvin=temperaturaCelsius+273.15;
if (temperaturaKelvin>=0)
cout<<"Temperatura nella scala Kelvin: "<<temperaturaKelvin;
else
cout<<"Errore: valore di temperatura minore dello zero assoluto";
return 0;
}
Pagina 23 di 23