Problema esercizio C/++

di il
23 risposte

Problema esercizio C/++

Salve a tutti,
da neofita quale sono ho deciso di percorrere per hobby la strada della programmazione in C/++. Sto seguendo una guida online che reputo abbastanza attendibile e completa, ed è reperibile a questo indirizzo ---> https://www.youtube.com/watch?v=AehEtQ3XVV4&list=PL0qAPtx8YtJfZpJD7uFxAXglkiHSEhktG; la lezione a cui faccio riferimento è la 23. Arrivato alla parte riguardante gli esercizi, per svolgerli si richiede l'utilizzo semplice e basico dei tipi primitivi e gli operatori if/else.
L'esercizio in questione è questo:
- Inserire un'età, dire se siamo in presenza di un maggiorenne o minorenne; inoltre controllare eventuali errori da parte dell'utente: numeri negativi e numeri maggiori di 120
Questo è quello che ho scritto, su cui sto sbattendo la testa, ma non funge:
#include <iostream>

using namespace std;

int main()
{
    //VARIABILI


    int eta=0;
    int mag=18;
    int minor=17;


    cout << "Inseriamo l'eta' : ";
    cin >> eta;



    // Stabiliamo quali valori non vanno digitati



    if ( eta <= -1 )
        cout << "E' un numero negativo, sbagliato! " << endl;
        return 0;
        
    if ( eta >= 120 )
        cout << "E' un numero troppo grande, sbagliato! " << endl;
        return 0;


    //CONDIZIONI PER CAPIRE SE SIA MINORENNE
    // O MAGGIORENNE

    if ( eta > mag )
        cout << "Sei maggiorenne! ";

    if ( eta <= minor )
        cout << "Sei minorenne! ";


    return 0;
}

Sbaglio sicuramente la parte inerente alla dichiarazioni dei valori da non eseguire, però non saprei come andare avanti. Help me, please!

23 Risposte

  • Re: Problema esercizio C/++

    If() for() e while() necessitano del blocco { } se le istruzioni sono più di una, altrimenti si applicano solo all'istruzione successiva. Nel tuo caso si passa sempre dal primo "return 0".

    p.s.: youtube è l'ultimo dei posti dove imparare a programmare
  • Re: Problema esercizio C/++

    If/else non sono "operatori" e mi sembra che stai prendendo la strada sbagliata.

    Prendi un LIBRO sul linguaggio C e comincia a studiarlo altrimenti proporrai nel forum sempre più thread per mancanza di conoscenza di base.
  • Re: Problema esercizio C/++

    Visto che sei neofita, passa a Python. Decisamente piu' semplice del C++

    E' inutile tentare di imparare a guidare una macchina di F1 se non si sa nemmeno guidare il triciclo.

  • Re: Problema esercizio C/++

    Ringrazio tutti per le risposte e in parte me le aspettavo. Ad ogni modo ci sta una guida per principianti che voi consigliate? Ho trovato queste due guide online:
    -
    -
  • Re: Problema esercizio C/++

    Dai un'occhiata anche qui: http://www.bo.cnr.it/corsi-di-informatica/corsoCstandard/Lezioni/01Indice.html
  • Re: Problema esercizio C/++

    Se proprio non te la senti con Python, impara prima il C come ti ha detto oregon. Non è tempo perso: poi puoi passare facilmente a linguaggi C like ad oggetti come C#, Java o C++
  • Re: Problema esercizio C/++

    Vi ringrazio per le risposte. Ho trovato questa guida in pdf:

    A Complete Guide to Programming in C++Ulla Kirch-PrinzPeter Prinz



    Che ne dite?

    P.s. Ho visto Python, però preferisco cimentarmi nel C++.
  • Re: Problema esercizio C/++

    Risolut0 ha scritto:


    Vi ringrazio per le risposte. Ho trovato questa guida in pdf:

    A Complete Guide to Programming in C++Ulla Kirch-PrinzPeter Prinz



    Che ne dite?

    P.s. Ho visto Python, però preferisco cimentarmi nel C++.
    È vecchiotto, il C++ è cambiato radicalmente negli ultimi 7 anni. E' valido qualsiasi libro che riesca a spiegarti almeno questo codice
    #include<iostream>
    using namespace std;
    
    template<typename T>
    T somma(T v) {
        return v;
    }
    
    template<typename T, typename... Args>
    T somma(T primo, Args... args) {
        return primo + somma(args...);
    }
    
    int main(void) {
        auto somma1 = somma(1, 2, 3, 4);
        cout << somma1 << endl;
        auto somma2 = somma(1.0, 2.0, 3.0, 4.5);
        cout << somma2 << endl;
        string a = "10";
        string b = ".7";
        auto somma3 = somma(a, b);
        cout << somma3 << endl;    
        cin.ignore();
        return 0;
    }
  • Re: Problema esercizio C/++

    Weierstrass ha scritto:



    questo codice ...
    ... senza dimenticare un

    #include <string>
  • Re: Problema esercizio C/++

    oregon ha scritto:


    Weierstrass ha scritto:



    questo codice ...
    ... senza dimenticare un

    #include <string>
    Certo, in realtà è chiamato da iostream, ma è giusto esplicitarlo
  • Re: Problema esercizio C/++

    Non è sempre chiamata da iostream
  • Re: Problema esercizio C/++

    oregon ha scritto:


    Non è sempre chiamata da iostream
    Giusto perché sei tu, sono andato a rileggermi la norma e sì, hai ragione, non è obbligatoriamente inclusa anche se faccio fatica a immaginare un compilatore che non ne generi la chiamata implicita

    Comunque il punto era mostrare un po' di codice C++11, così dà una rapida occhiata al libro e decide se è valido
  • Re: Problema esercizio C/++

    Ciao ragazzi, quello che vi ho linkato mi è sembrato davvero carino e fatto bene. Ho cercato un bel pò, ma a questo punto non saprei quale scegliere. Potreste gentilmente indicarmene voi qualcuno, cosi tagliamo la testa al toro
  • Re: Problema esercizio C/++

    In realta' quello e solo UNO di molti libri sul C++ su cui dovrai studiare (ogn'uno fa 800/1200 pagine). Per cui non c'e' da 'scegliere', te li dovrai spazzolare TUTTI.

    STL Standard Template Library
    Template
    Boost (altra libreria estensione delle STL)
    C++11/C++17 nuovi standard del linguaggio

    E questo SOLO per scrivere applicazioni console moolto semplici
    Perche c'e' poi la questione

    Gestione della memoria
    Multithreading

    Ed altri 200/300 argomenti
Devi accedere o registrarti per scrivere nel forum
23 risposte