Archivi tag: C++

Tutorial e trucchi su C++

C++ – Calcolo età e data di nascita con funzioni

Hai difficoltà a fare esercizi con le funzioni? Nessun problema! Oggi ti mostrerò un semplice esercizio che ti aiuterà a capire meglio l’argomento.

Il testo è il seguente:

Crea un programma che calcoli l’anno di nascita sapendo l’età e l’età sapendo l’anno di nascita. Tenere presente l’anno attuale.

Dovremo quindi creare un menù di scelta dove l’utente sceglierà se eseguire il calcolo dell’anno di nascità o dell’età.

Letta la consegna, iniziamo a svolgere l’esercizio:


int eta(int x) {
	
	return 2022-x;
	
}

Come prima cosa, scrivo una delle due funzioni che mi servono per far funzionare il programma. A mia scelta, ho scritto la funzione eta. Questa ci permette di trovare l’età sapendo l’anno di nascita.

Il calcolo che svolgerò sarà 2022-x

x rappresenta l’anno inserito dall’utente in input. Sottraendo i due valori si ottiene l’età.

int annodinascita(int y) {
	
	return 2022-y;
	
}

Successivamente scrivo la seconda funzione. La funzione annodinascita serve a calcolare,appunto, l’anno di nascita sapendo l’età.

Il calcolo che svolgerò sarà 2022-y.

y rappresenta l’età inserita dall’utente in input. Sottraendo i due valori si ottiene l’anno di nascita.

int main () {
	
	int s, et, an;
	
	cout<<"---COSA VUOI TROVARE?---"<<endl;
	cout<<"1) Eta' sapendo l'anno di nascita"<<endl;
	cout<<"2) Anno di nascita sapendo l'eta'"<<endl;
	cin>>s;

Iniziamo ora a scrivere la funzione principale, il main. Per prima cosa inizializzo le variabili.

s rappresenta la scelta che farà l’utente nel menù che dovremo creare. et rappresnta l’eta e an l’anno di nascità

Dopo aver inizializzato, creo il menù di scelta che verrà utilizzato dall’utente. Scrivo in output le opzioni descrivendole e in input la variabile s.

Ora, ho due modi per scrivere la parte dove il programma calcolerà ciò che vogliamo sapere. O utilizzo lo Switch Case, o utilizzo l’if. In questo caso, io ho scelto lo Switch Case. Alla fine dell’articolo lascerò il programma completo, potrete trovare in esso le due opzioni eseguibili. Sia il pezzo di codice con l’if che quello con lo Switch.

switch (s) {
		
case 1:    cout<<"Inserisci l'anno di nascita: "<<endl;
           cin>>an;
	   cout<<"L'eta' e' uguale a "<<eta(an)<<endl;
break;
		
case 2:    cout<<"Inserisci l'eta': "<<endl;
	   cin>>et;
	  cout<<"L'anno di nascita' e' il  <<annodinascita(et)<<endl;

break;
	}  

Se l’utente dovesse scegliere 1, il programma chiederà di inserire l’anno di nascita in input. Verrà svolta la funzione eta, e il risultato uscirà in output.

Al contrario, se dovesse scegliere 2, il programma chiederà in input l’età. Successivamente svolgerà la funzione annodinascita che verrà stampata in output.

Il programma ora si può considerare concluso. Visto? Non era così difficile! Ma se hai ancora difficoltà non esitare a scrivere un commento o a contattarci via mail a redazioneprogrammazionepertutti@gmail.com

Programma completo – versione Switch Case:

#include <iostream>
using namespace std;

int eta(int x) {
	
	return 2021-x;
	
}

int annodinascita(int y) {
	
	return 2021-y;
	
}

int main () {
	
	int s, et, an;
	
	cout<<"---COSA VUOI TROVARE?---"<<endl;
	cout<<"1) Eta' sapendo l'anno di nascita"<<endl;
	cout<<"2) Anno di nascita sapendo l'eta'"<<endl;
	cin>>s;

switch (s) {
		
case 1:    cout<<"Inserisci l'anno di nascita: "<<endl;
           cin>>an;
	   cout<<"L'eta' e' uguale a "<<eta(an)<<endl;
break;
		
case 2:    cout<<"Inserisci l'eta': "<<endl;
	   cin>>et;
	  cout<<"L'anno di nascita' e' il  <<annodinascita(et)<<endl;

break;
	}  

}

Programma completo – versione If:

#include <iostream>
using namespace std;

int eta(int x) {
	
	return 2021-x;
	
}

int annodinascita(int y) {
	
	return 2021-y;
	
}

int main () {
	
	int s, et, an;
	
	cout<<"---COSA VUOI TROVARE?---"<<endl;
	cout<<"1) Eta' sapendo l'anno di nascita"<<endl;
	cout<<"2) Anno di nascita sapendo l'eta'"<<endl;
	cin>>s;

if (s==1) {
		
		cout<<"Inserisci l'anno di nascita: "<<endl;
		cin>>an;
		cout<<"L'eta' e' uguale a "<<eta(an)<<endl;
	}
	else {
		
		cout<<"Inserisci l'eta': "<<endl;
		cin>>et;
		cout<<"L'anno di nascita' e' il "<<annodinascita(et)<<endl;
	} 
}

Esercizi con Array su C++

Primo esercizio: dato un Array in I, vedere quali sono i valori pari e ristamparli

#include <iostream>

using namespace std;

int main()
{
    int i=0,n,j=0,x;

    do // definisco gli array
    {
        cout<<"dimmi la dimensione dell'array"<<endl;
        cin>>n;

    }while(n<=0);

    int v[n], p[n];


    for (i=0; i<n ; i++) //insrimento
    {
        cout<<"dimmi il "<<i+1<<"^ valore"<<endl;
        cin>>v[i];
    }

    i=0;

    while(i<n) //scorro l'array e verifico se trovo valori pari con l'if
    {

        x=v[i];

        if(x%2==0)     //se la divisione del valore in v[i] = 0 significa che il numero è pari e quindi lo accetto
        {
            p[j]=x;  //mi ricordo il valore pari
            j++;     //mi ricordo quanti sono i valori pari
        }


        i++; // incremento il contatore
    }


    for (i=0; i<j ; i++) //visulizzo l'array dei pari
        cout<<"Il "<<i+1<<"^ valore: "<<p[i]<<" ";

    cout<<endl<<"i valori pari sono: "<<j<<endl; //do in O i valori pari



system ("pause");
return 0;    
}

Diagramma a blocchi:

Secondo Esercizio: dato un array di char contiamo quante sono le vocali , le consonanti e quante a sono state inserite. Poi stampiamo 2 array: uno per le vocali e l’altro per le consonanti

#include <iostream>

using namespace std;

int main()
{
 
    int i=0,j=0,k=0,a=0,n;
    char x;

    do
    {
        cout<<"dimmi la dimensione array"<<endl;
        cin>>n;

    }while(n<=0);

    char v[n], voc[n], c[n];

    for (i=0; i<n ; i++) //insrimento
    {
        cout<<"dimmi il "<<i+1<<"^ valore"<<endl;
        cin>>v[i];
    }

    i=0;
    while (i<n)
    {
        x=v[i];

        if(x =='a' || x =='e' || x == 'i' || x == 'o' || x == 'u')//verifico che il valore sia una vocale
        {
            voc[j]=x; //ricordo nell array delle vocali
            j++; //aumento il contatore delle vocali

            if(x == 'a') //verifico se il valore è una a 
                a++; // se fosse vero aumento il contatore delle a 
        }

        else

        {
            c[k]=x; //se la condizione è falsa abbiamo trovato una consonate quindi me la salvo nella array delle consonati
            k++; //aumento il contatore delle consonanti
        }

        i++;
    }



    for (i=0; i<j ; i++) //visulizzo l'array delle vocali
        cout<<"La "<<i+1<<"^ vocale: "<<voc[i]<<endl;

    for (i=0; i<k ; i++) //visulizzo l'array delle consonanti
        cout<<"La "<<i+1<<"^ consonanti: "<<voc[i]<<endl;

    cout<<"le a sono: "<<a<<" Le vocali sono: "<<j<<" Le consonante sono: "<<k<<endl;// visualizzo quante a qunte vocali quante consonanti ci sono


system ("pause");
return 0;
}

Diagramma a blocchi:

Scambio variabili in C++

Hai iniziato a programmare in C++, ma non sai come effettuare uno scambio tra variabili. Niente paura! Te lo spieghiamo noi.

Come scambiare due variabili

Anche se può sembrare semplice, alcuni programmatori alle prime armi trovano difficoltà nel creare questo tipo di scambio. Il mio consiglio è di provarlo a fare da solo senza copiare ed incollare ciò che scriverò di seguito.

Prima di tutto dobbiamo dare un nome alle nostre variabili. Per pura e piacevole comodità, le chiamerò x e y. Ad esse va aggiunta un altra variabile “temporale”, ovvero temp. Ci permetterà di dare in prestito un valore quando ne avremo bisogno. Inizializziamo quindi le tre:

	float x, y, temp;

Vi ricordo che mettendo float possiamo usare anche i numeri con la virgola, il che renderà tutto più semplice in fase di programmazione.

Dopo aver inizializzato le nostre variabili, dobbiamo assegnargli un valore. In questo esempio, sarà l’utente che utilizzerà il programma ad inserire dei valori. In un altro caso, potrebbe essere già il programma a darveli. Detto questo, diciamo all’utente di inserire un valore ad x e uno a y:

	cout<<"Inserisci x  ";
	cin>>x;
	cout<<"Inserisci y  ";
	cin>>y;

Ora che abbiamo il valore di x e il valore di y, non ci resta altro che svolgere il problema che ci siamo posti all’inizio. Ovvero scambiare le due variabili. Quindi x avrà il valore di y e y il valore di x.

In questo esempio il valore di x sarà 1 mentre quello di y sarà 2.

Le righe da scrivere sono 3. Per farvi capire meglio vi spiegherò tutto passaggio per passaggio. In questo momento x=1, y=2, temp=0.

temp=x;

Il primo passaggio da fare, come vedete qui sopra, è scrivere temp=x. In questo modo temp, che valeva zero, ora avrà un valore uguale a x, cioè 1. La nostra variabile temporanea d’appoggio farà nel programma il “lavoro sporco”.

Ora quindi x=1, y=2, temp=1.

x=y;

Nel secondo passaggio scriviamo che x è uguale a y. Quindi se prima x aveva un valore pari a 1, ora ha un valore di 2, cioè quello dell’altra variabile. Fatto questo, y rimarrà col valore da noi assegnato e non subirà cambiamenti.

Ora quindi x=2, y=2, temp=1:

y=temp;

Nel terzo ed ultimo passaggio del nostro problema, y sarà uguale a temp. Quindi se prima y aveva un valore pari a 2 ora avrà un valore uguale a 1, cioè quello della variabile d’appoggio. Così facendo y avrà il valore che precedentemente aveva x e viceversa.

Nel passaggio finale x=2, y=1, temp=1.

N.B.= La variabile temp nel passaggio finale rimarrà con il valore della prima variabile da noi assegnata. Questo non ci causa problemi in quanto temp nelle finalità di questo algoritmo è solo una variabile d’appoggio. Ha fatto il lavoro sporco, e già questo basta.

Bene, ora possiamo stampare sullo schermo le nostre variabili con i valori invertiti.

cout<<"Scambio effettuato!  ";
	cout<<"x = "<<x;
	cout<<"  y = "<<y;

In questo modo il programma darà in output i due valori da noi scambiati.

Di seguito, il programma completo:

#include <iostream>
using namespace std;
int main () {
	float x, y, temp;
	cout<<"inserisci x  ";
	cin>>x;
	cout<<"Inserisci y  ";
	cin>>y;
	temp=x;
	x=y;
	y=temp;
	
	cout<<"Scambio effettuato!  ";
	cout<<"x = "<<x;
	cout<<"  y = "<<y;
}

Spero che ora ti sia tutto chiaro, e che questo tipo di cose non ti facciano più paura. Per qualsiasi domanda scrivi un commento o contattaci a: programmazionepertutti@gmail.com @redazioneprogrammazionepertutti

While e Do While: cosa sono e come utilizzarli

Di Francesco Rosati e Francesco Tramis

Se stai leggendo questo articolo, è perchè probabilmente non sai cosa sono i cicli While e Do While. Nessun problema! Siamo qui per aiutarti. Ti spiegeremo brevemente come scriverli nella pratica (C++) e come disegnarli nella teoria.

La differenza dei due cicli sta nella posizione della condizione. Di seguito le spiegazioni:

Do While

Questo è un ciclo Postcondizionale. In esso la condizione è posta dopo le varie operazioni da noi effettuate. Nei cicli Do While l’esecuzione del blocco viene effettuata almeno una volta, cosa che non accade nel While.

While

Questo è un ciclo Precondizionale. Come si può vedere, a differenza del precedente ciclo, la condizione è posta prima delle operazioni. Questo, come detto in precedenza, fa si che l’esecuzione del blocco possa anche non essere eseguita nemmeno una volta. Ovviamente questo dipende dal caso.

While e Do While in C++

Ora che abbiamo analizzato il funzionamento e l’aspetto dei 2 cicli, andiamo a vedere come si inseriscono in un compilatore del linguaggio C++.

while(c++)

Questa è la rappresentazione di un ciclo precondizionale su un compilatore, come possiamo notare ci sono 2 parentesi graffe il quale scopo è rappresentare l’inizio e la fine del ciclo.

Do While(C++)

Questo invece è come si presenta un ciclo Do While, postcondizionale, all’interno dei vari compilatori e possiamo subito notare una differenza rispetto al ciclo While, ovvero il punto e virgola alla fine. Quest’ultimo viene inserito per rappresentare la fine del ciclo.

L’articolo è giunto al termine. Per qualsiasi domanda scriveteci qui sotto nei commenti. Risponderemo il prima possibile.

Cos’è il compilatore e un accenno a C++

Sai cos’è un compilatore? Ed un codice C? Se la risposta è no, sei nell’articolo giusto.

In questo articolo vi spiegheremo cos’è e a cosa serve un compilatore e cosa sono i linguaggi ad alto livello.

Funzione di un compilatore

Il compilatore è un programma per computer che trasforma un codice ad alto livello (C, C++, Python, Swift) in linguaggio macchina (codice binario formato da 0 e 1) quindi comprensibili dell’elaboratore

Quale compilatore usare?

Una cosa molto importante da fare prima di poter procedere nella programmazione, è la scelta del compilatore. Noi personalmente vi consigliamo Code::Blocks.

Come si scrive un codice in C++

Per scrivere un codice in un linguaggio di programmazione (nel nostro caso C++) abbiamo bisogno di un algoritmo disegnato su Diagramma a Blocchi (DaB) (per farli al computer noi consigliamo AlgoBuild o Flowgorithm). Dopo aver creato il nostro algoritmo graficamente, bisogna passare alla fase di “Codifica” dove determinate forme sul DaB si trasformano in stringe.

Come “codificare”

Iniziamo dalla prima istruzione che dovreste sapere cioè la dichiarazione di una variabile; questo è il codice per dichiarare una variabile

 int X;

Ma come si inserisce un numero da tastiera? Bisogna usare il comando cin. Questo comando che è appartenente alla libreria iostream e ci permette di far apprendere un numero da tastiera memorizzata in una varabile. Ecco un codice di esempio:

 cin>> X;

Ora che il tuo elaboratore ha appreso un numero dovrai fargli fare delle operazioni matematiche. Vediamo un esempio:

Di seguito riportiamo un codice per incrementare di 1 una variabile a scelta (in questo caso la variabile X)

X=X+1;

Dopo aver fatto l’addizione con la variabile vi potrebbe essere salita la voglia di “stamparlo” a schermo, cioè di farlo uscire in output. Ci viene in aiuto sempre un comando della libreria iostream, cioè il Cout  che permette di scrivere a schermo sia variabili che stringhe di testo. Facciamo dei rapidi esempi:

cout<<espressione1;
 cout<<espressione1<<espressione2;

Nell’ipotetico caso che tu debba vedere se una variabile è più grande di un’altra variabile ti servirà una condizione: l’if.

Si scrive così in C++:

if (condizione) {
  Espressionevera{
}
Else {
Espressionefalsa
}

In questo articolo ci siamo focalizzati sui compilatori e sul codice C++, facendo un piccolo formulario. Spero vi sia piaciuto, io vi aspetto al prossimo articolo, sempre qui su programmazionepertutti.code.blog