Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

di il
23 risposte

23 Risposte - Pagina 2

  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    Il tag code è un tastino che si trova sopra la finestra dell'input testo, è visualizzato quando entri in [Editor completo & Anteprima] e ha questo aspetto: [</>]

    con il tag code il tuo codice viene visualizzato così come è, e non vengono introdotti errori dovuti a sequenze di caratteri contenuti nel codice che possono essere interpretati come codici di formattazione.
    
    #include <iostream>
    using namespace std;
    
    int Mark = 0;
    int Rage1 = 0;
    int Rage2 = 0;
    int Rage3 = 0;
    int Rage4 = 0;
    int j = 0;
    int i = 0;
    int main() {
    for (j = 0; Mark <= 100; j++) {
    cout << "Enter Mark:"; cin >> Mark;
    if (Mark >= 0 & Mark <= 29) {
    Rage1++;
    }
    if (Mark >= 30 & Mark <= 39) {
    Rage2++;
    }
    if (Mark >= 40 & Mark <= 69) {
    Rage3++;
    }
    if (Mark >= 70 & Mark <= 100) {
    Rage4++;
    }
    
    
    cout << "0-29" << for (i = 0; i <= Rage1; i++) {
    cout << "*" << ;
    }
    
    cout << "30-39" << for (i = 0; i <= Rage2; i++) {
    cout << "*" << ;
    }
    
    cout << "40-69" << for (i = 0; i <= Rage3; i++) {
    cout << "*" << ;
    }
    
    cout << "70-100" << for (i = 0; i <= Rage4; i++) {
    cout << "*" << ;
    };
    };
    
    return 0;
    }
    
    Non vedo una possibilità di aiuto, visto che per scrivere un programma bisogna conoscere la sintassi almeno base.
    Ogni istruzione deve terminare con il puntovirgola.
    cout << "0-29 ";
    nel cout se metti << devi inserire anche cosa mandare in uscita.
    cout << "0-29" << è sbagliato, l'ultimo << non è seguito da nulla, non ci va.
    cout << "*" << ; stesso errore

    per andare accapo devi usare endl
    cout<<endl; lo devi inserire alla fine di ogni for.

    for (i = 0; i <= Rage4; i++) così ti stampa un asterisco anche quando Rage4 vale zero
    for (i = 0; i < Rage4; i++) così ti stampa gli asterischi quando rage 4 vale più di zero fino al numero richiesto
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    È normale che mi dica 1 errore e che dopo che ho provato a fare il debug, senza riuscirci, mi da tipo 30 errori??
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    nicco_sale ha scritto:


    è normale che mi dica 1 errore e che dopo che ho provato a fare il debug, senza riuscirci, mi da tipo 30 errori??
    Per rispondere a queste domande, prima dovrei sapere con quale S.O., IDE, compilatore, operi, e tu per comprenderle dovresti conoscere un po' il linguaggio.

    Non mi sembra che fornirti indicazioni sia di alcuna utilità, l'unica possibilità è quella di fornirti il codice corretto, ma non so se per te poi sarebbe un aiuto, anzi potrebbe indurti a non approfondire i concetti di base per programmare in C.

    Tutto dipende dallo scopo che si è prefissato chi ti ha dato l'eserrcizio.
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    Nel forum non si fornisce la pappa pronta per la soluzione di un esercizio.
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    Proviamo a scrivere un messaggio per la prima volta dai...
    Mi sembra di capire che il tutor deve poter inserire dei voti, che sono categorizzati in range, fino a che non viene inserito un voto superiore a 100.
    Provo a ragionare, non sapendo quanti voti inserirò prima di inserire un numero posso eseguire l'input:
    • Usando un ciclo while, inizializzando però Mark = 0.
    • Usando un ciclo do while, senza l'obbligo di Mark = 0.
    Quindi devo praticamente prendere in input Mark e controllare in quale categoria smistarlo, finchè non è superiore a 100.. Ragionando in questo modo, la variabile j può essere eliminata.
    Adesso utilizziamo dei cicli for per stampare gli asterischi perchè sappiamo, per ogni categoria, quanti voti sono stati inseriti.
    for (int i = 0; <condizione da valutare>; i++)
    Penso che la parte della stampa sia sbagliata quasi tutta (tipo cout << "0-29" << for (i = 0; i <= Rage1; i++).... ).
    Ti consiglio di andare a rivederti come usare il ciclo for (all'inizio ho notato nella condizione i = Rage) e per andare a capo, dopo <<, si usa endl.

    Inoltre, se ho visto bene, alla fine stampa anche il numero di studenti totali... quindi un'alternativa sarebbe utilizzare un'altra variabile (puoi semplicemente cambiare il nome alla variabile j, dato che era diventata inutilizzata) che viene incrementata dopo l'input di ogni voto, facendo attenzione perchè anche nel caso di voto superiore a 100 viene incrementata comunque... soluzioni semplici a quest'ultimo problema sono:
    • Inizializzare la variabile che conta gli studenti a -1.
    • Stampare la variabile che conta gli studenti decrementandola di 1.
    Altrimenti, senza utilizzare un'altra variabile, stampi la somma di Rage1, 2, 3, 4.
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    Grazie Rubik e NewBie12 (sono ringraziamenti sinceri, il discorso seguente è riferito ad altri messaggi), se faccio domande è perché non riesco nell esercizio, non perché mi fa fatica e voglio la pappa pronta, è una settimana che sono dietro a questo progetto, e molto probabilmente voi ci mettereste 5 min a farlo, ma non per questo dovete darmi contro, detto questo ho corretto il codice e non ci sono più errori ma l'output mi esce vuoto, qualcuno sa dirmi perché?
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    Questo è il codice corretto

    #include <iostream>
    using namespace std;


    int Mark = 0;
    int Rage1 = 0;
    int Rage2 = 0;
    int Rage3 = 0;
    int Rage4 = 0;
    int i = 0;
    int sum;


    int main() {

    while (Mark < 100); {

    cout << "Enter Mark:"; cin >> Mark;

    if (Mark >= 0 && Mark <= 29) {
    Rage1++;
    }
    if (Mark >= 30 && Mark <= 39) {
    Rage2++;
    }
    if (Mark >= 40 && Mark <= 69) {
    Rage3++;
    }
    if (Mark >= 70 && Mark <= 100) {
    Rage4++;
    }
    }

    sum = Rage1 + Rage2 + Rage3 + Rage4;

    cout << "0-29"; for (int i = 0; i < Rage1; i++) cout << "*" << endl;


    cout << "30-39"; for (int i = 0; i < Rage2; i++) cout << "*" << endl;


    cout << "40-69"; for (int i = 0; i < Rage3; i++) cout << "*" << endl;


    cout << "70-100"; for (int i = 0; i < Rage4; i++) cout << "*" << endl;


    cout << sum << "students in total" << endl;


    return 0;
    }


    grazie a tutti per il vostro tempo
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    Nessuna polemica, sono solo constatazioni, per esempio dopo averti detto in tutte le salse di usare il Tag code, perché senza non si capisce nulla, e se non si capisce nulla significa che non ti si può aiutare, ancora non lo usi.
    Segui le info che ti ho messo nel codice, ma anche se riesci sei in alto mare...
    
    #include <iostream>
    using namespace std;
    
    
    int Mark = 0;
    int Rage1 = 0;
    int Rage2 = 0;
    int Rage3 = 0;
    int Rage4 = 0;
    int i = 0;
    int sum;
    
    
    int main() {
    
    while (Mark <= 100); { // punto e virgola serve per chiudere le istruzioni il while è un ciclo non ci va
    
        cout << "Enter Mark:"; cin >> Mark;
    
        if (Mark >= 0 && Mark <= 29) {
            Rage1++;
        }
        if (Mark >= 30 && Mark <= 39) {
            Rage2++;
        }
        if (Mark >= 40 && Mark <= 69) {
            Rage3++;
        }
        if (Mark >= 70 && Mark <= 100) {
            Rage4++;
        }
    } // questa graffa chiude il while qui, invece va prima del return, spostala
    
        sum = Rage1 + Rage2 + Rage3 + Rage4;
    
        cout << "0-29"; for (int i = 0; i < Rage1; i++) cout << "*" << endl; // se metti endl qui ad ogni asterisco stampato vai accapo
    
        // cout<<endl; // va qui, stessa cosa sui successivi
        cout << "30-39"; for (int i = 0; i < Rage2; i++) cout << "*" << endl;
    
    
        cout << "40-69"; for (int i = 0; i < Rage3; i++) cout << "*" << endl;
    
    
        cout << "70-100"; for (int i = 0; i < Rage4; i++) cout << "*" << endl;
    
    
        cout << sum << "students in total" << endl;
    
    
        return 0;
    }
    
  • Re: Mi è stato dato questo esercizio da fare per scuola, qualcuno può aiutarmi che io non ne sono in grado?

    nicco_sale ha scritto:


    Grazie Rubik e NewBie12 (sono ringraziamenti sinceri, il discorso seguente è riferito ad altri messaggi), se faccio domande è perché non riesco nell esercizio, non perché mi fa fatica e voglio la pappa pronta, è una settimana che sono dietro a questo progetto, e molto probabilmente voi ci mettereste 5 min a farlo, ma non per questo dovete darmi contro, detto questo ho corretto il codice e non ci sono più errori ma l'output mi esce vuoto, qualcuno sa dirmi perché?
    Noi ci mettiamo 5 minuti perché sappiamo cosa si scrive in un cout e dove va una for. Solo perché abbiamo impiegato 10 minuti del nostro tempo a studiare questi argomenti, cosa che NON hai fatto e non vuoi fare tu.

    Queste sono le BASI del linguaggio che TU DEVI conoscere altrimenti non si inizia neanche un discorso in un forum.

    Non so da quanto ti dico di postare usando i TAG CODE e non lo fai infischiandotene tranquillamente e i consigli che ti sono stati dati da Rubik neanche li hai presi in considerazione. Quindi quello che vuoi è che ALTRI scrivano l'esercizio al posto tuo perché NON TI VA di studiare un minimo che basta.
Devi accedere o registrarti per scrivere nel forum
23 risposte