Serve aiuto

di il
13 risposte

Serve aiuto

Ciao a tutti, sono nuovo di questo forum. Vi anticipo che non sono un programmatore e che mi sono iscritto perché mi serve aiuto, ora e magari per il futuro. Vi spiego la mia situazione. Sono al terzo anno di un liceo scientifico opzioni scienze applicate. Mi iscrissi a questo indirizzo perché mi affascinava l'informatica. Ebbene, sto ancora a 0, e non per colpa mia, proprio tutta la classe sta a terra. Abbiamo avuto un professore peggio dell'altro e in C++ fino ad ora sono riuscito a fare solo un paio di programmi con la semplice variabile cout . Ora per domani devo portare il seguente programma: immettere una sequenza di 25 numeri (positivi e negativi), contare i numeri dispari e sommare i numeri positivi a due cifre. Ci ho provato tutta la mattinata ma non ci riesco proprio. Non vi chiedo di farlo al posto mio (sono troppo secchione per ridurmi così), vi chiedo solo di aiutarmi un po' con qualche consiglio su come strutturarlo. Grazie

13 Risposte

  • Re: Serve aiuto

    Abbiamo avuto un professore peggio dell'altro
    E' davvero sempre colpa degli insegnanti?
    vi chiedo solo di aiutarmi un po' con qualche consiglio su come strutturarlo
    Descrivi in pseudo-codice come si può risolvere il problema.
  • Re: Serve aiuto

    Purtroppo ci hanno dato dei professori incapaci. Non lo dico per giustificarmi, anche perché questi stessi professori mi hanno sempre messo bei voti. Forse quello di quest'anno è capace, ma ancora non ha capito bene la situazione e per tutto il trimestre non ha fatto che rovinarci ancora di più, solo ora sta facendo marcia indietro (Comunque abbiamo cambiato 3 prof in 3 anni).

    Se per pseudo-codice intendi l'algoritmo, eccolo:
    1.ci metto la variabile numero (il numero che scrivo), quella di output per la somma dei numeri positivi a 2 cifre e faccio 2 contatori, uno che mi conta i numeri (contanum) che immetto, e uno che mi conta solo quelli dispari (contadisp)
    2.azzero i contatori
    3. Faccio un Do-While, tale che se contanum è minore di 25 mi ripete il ciclo da questo punto
    4. immetto numero
    5. Faccio un if: se quando divido "numero" per 2 mi da resto 1, allora farà contadisp=contadisp+1. I due rami si ricongiungono
    6. Un altro if: se "numero è maggiore di 9" faccio somma=somma+numero. I due rami si ricongiungono
    7. Faccio contanum=contanum+1
    8. Una volta che contanum è maggiore di 25 l'algoritmo va avanti e mi da come output somma e contadisp.
    FINE
  • Re: Serve aiuto

    Purtroppo ci hanno dato dei professori incapaci.
    Per favore, non dare la colpa agli altri. Tu chi sei per giudicare?

    Scrivi meno prolisso:
    - cntdisp=0
    - sumpari=0
    - cntnum=0
    - fintantochè cntnum < 25
      - leggo num
      - cntnum ++
      - se num % 2 != 0 (dispari) cntdisp++
      - altrimenti (pari) se num > 9 && num < 100 sumpari = sumpari + num
    - fineciclo
    - stampa sumpari e cntdisp
    Ora quale difficoltà incontri a scrivere il codice?
  • Re: Serve aiuto

    Scusa avevo letto male, i due if sono così
      - se num % 2 != 0 (dispari) cntdisp++
      - se num > 9 && num < 100 sumpari = sumpari + num
    
    Avevo capito che dovevi sommare i pari invece di positivi; anche la variabile sumpari dovrebbe essere rinominata in sumpos o qualcosa del genere
  • Re: Serve aiuto

    Non riesco a fare l'If e il Do-While...
  • Re: Serve aiuto

    Inizia con il solo if, facendo inserire 1 solo valore (al while ci arrivi dopo)
    Per una spiegazione dell'if suggerisco di rileggere il proprio libro di testo oppure
  • Re: Serve aiuto

    Se non provi come si fa a dire dove sbagli?

    L'unica sarebbe scrivere il codice per te ma non è quello che vuoi ...
  • Re: Serve aiuto

    Allora, forse ho capito... Solo non so come faccio a scrivere che che il resto deve essere pari a 0 nell'if, potete scrivermelo? Grazie.
  • Re: Serve aiuto

    Anche come scrivere l'intervallo 9<x<100 nell'altro if.
  • Re: Serve aiuto

    Per il resto usa l'operatore modulo %

    Per la if scrivi le due parti legate da una &&

    Leggi sul libro come si scrive una if e provaci!
  • Re: Serve aiuto

    Allora aveva funzionato, però avevo sbagliato un if, il primo, dove ho messo che il resto doveva essere uguale a 0. Ho corretto e mi ha dato questo errore: collect2.exe [Error] ld returned 1 exit status

    Ho provato a riportarlo come quando funzionava ma adesso non funziona proprio più, che faccio?
  • Re: Serve aiuto

    Lo vuoi scrivere qui il codice o no?
  • Re: Serve aiuto

    Era un errore di C++, ho chiuso e riaperto ed è scomparso. Il codice è del tutto funzionante, grazie a tutti e 2 per l'aiuto!

    #include <iostream>
    #include <stdlib.h>

    using namespace std;

    int main ()
    {
    int numero, contanumero, contadisp, somma;

    contanumero=0;

    contadisp=0;

    somma=0;

    do {
    cout << "inserisci un numero";

    cin >> numero;

    if(numero%2!=0)
    contadisp=contadisp+1;

    if(numero>9 && numero <99)
    somma=somma+numero;

    contanumero=contanumero+1;

    }while(contanumero<25);

    cout << contadisp;

    cout << somma;

    system ("PAUSE");
    return 0;
    }
Devi accedere o registrarti per scrivere nel forum
13 risposte