PROBLEMA Programmi in c++

francescocerrato200

Nuovo Utente
98
8
Comunque ti ricordo che sono al 2 anno di itis informatico... Ho iniziato a studiare il c++ una settimana prima delle vacanze.. Adesso non voglio vantarmi,ma a livello di voti e quindi oggettivamente parlando sono il migliore della mia classe... O al massimo sono primo insieme ad un altro ragazzo.. Cioè per farti capire il professore ci ha spiegato solamente le basi delle basi.. Infatti i miei compagni di classe solo a guardare le traccie non hanno capito nulla, anche perché ho dovuto e devono studiare i cicli che il professore non ha spiegato..E sicuramente verranno da me a chiedermi le foto di come li ho fatti...

In ogni caso, chiusa questa parentesi che non volevo scrivere, potresti aiutarmi con questo esercizio?


Inviato dal mio iPhone utilizzando Tapatalk




Inviato dal mio iPhone utilizzando Tapatalk
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,210
1,846
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Dato n, leggere n numeri interi e calcolare la somma dei numeri pari e la somma dei numeri dispari.

Codice:
#include<iostream>
using namespace std;
int main()
{
    int n,i,P,D,S,NUM;
    cout<<"Inserire un numero intero:"<<endl;
    cin>>n;
    for(i=1;i<=n;i++){
        cout<<i<<endl;
    }
    NUM=i/2;
    if (NUM=(float)NUM) i=D; else i=P;
    S=P+D;
    cout<<P<<"+"<<D<<"="<<S<<endl;
}

Ciò che hai scritto non rispetta la consegna: dato un numero N leggere N numeri e calcolare la somma dei pari e la somma dei dispari (posto come diceva rod che ci sono anche errori).
Inoltre spero che il docente vi abbia parlato delle convenzioni che si utilizzano solitamente con il maiuscolo ed il minuscolo nei riguardi delle variabili (maiuscolo = costante).
 

francescocerrato200

Nuovo Utente
98
8
Ciò che hai scritto non rispetta la consegna: dato un numero N leggere N numeri e calcolare la somma dei pari e la somma dei dispari (posto come diceva rod che ci sono anche errori).
Inoltre spero che il docente vi abbia parlato delle convenzioni che si utilizzano solitamente con il maiuscolo ed il minuscolo nei riguardi delle variabili (maiuscolo = costante).


Scusa n dovrebbe essere una seguenza di numeri.. Io non ho capito cosa devo fare.. Cioè finché sono più numeri da dare in input per poi distinguerli tra pari e dispari e farne la somma è semplice... Cioè in che senso "Leggere N numeri interi "?


Inviato dal mio iPhone utilizzando Tapatalk
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Scusa n dovrebbe essere una seguenza di numeri.. Io non ho capito cosa devo fare.. Cioè finché sono più numeri da dare in input per poi distinguerli tra pari e dispari e farne la somma è semplice... Cioè in che senso "Leggere N numeri"?


Inviato dal mio iPhone utilizzando Tapatalk
n non è una sequenza di numeri, è un numero. Se n è 5, devi inserire 5 numeri, se n è 124 devi inserire 124 numeri. Ovviamente nel programma questo n devi dirglielo tu
 

francescocerrato200

Nuovo Utente
98
8
n non è una sequenza di numeri, è un numero. Se n è 5, devi inserire 5 numeri, se n è 124 devi inserire 124 numeri. Ovviamente nel programma questo n devi dirglielo tu

Quindi mettiamo caso che n=5,ci sono 5 numeri.. Devo darli io in input... Cioè io non so come scriverli in codice.. Devo usare il for?


Inviato dal mio iPhone utilizzando Tapatalk
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Quindi mettiamo caso che n=5,ci sono 5 numeri.. Devo darli io in input... Cioè io non so come scriverli in codice.. Devo usare il for?


Inviato dal mio iPhone utilizzando Tapatalk
Esatto, significa che prima dici quanti numeri vuoi leggere (n), poi fai un ciclo per leggere n volte. Il ciclo farà un cin del numero, dovrai vedere se pari ( resto della divisione per 2 == 0 ) e sommarlo alla somma dei pari/dispari.
 

francescocerrato200

Nuovo Utente
98
8
Esatto, significa che prima dici quanti numeri vuoi leggere (n), poi fai un ciclo per leggere n volte. Il ciclo farà un cin del numero, dovrai vedere se pari ( resto della divisione per 2 == 0 ) e sommarlo alla somma dei pari/dispari.

Ma quindi con questo ciclo farò ripetere sempre lo stesso numero? Oppure lo aumento per 1?
Quindi come nel caso precedente faccio questo?:
Codice:
for(i=1;i<=n;i++)
{
cout<<i<<endl;
}





Inviato dal mio iPhone utilizzando Tapatalk
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Ma quindi con questo ciclo farò ripetere sempre lo stesso numero? Oppure lo aumento per 1?
Quindi come nel caso precedente faccio questo?:
Codice:
for(i=1;i<=n;i++)
{
cout<<i<<endl;
}

Inviato dal mio iPhone utilizzando Tapatalk
Questo codice stamperà 1,2,3,...,n. La riga del for andrebbe bene ( è buona prassi partire da 0 per contare, per questioni relative alla memoria ), Ma al posto del cout devi fare un cin, leggere il numero, decidere se pari/dispari, sommarlo alla relativa variabile di somma e solo alla fine (alias fuori dal ciclo) stampare le relative somme.
 

francescocerrato200

Nuovo Utente
98
8
Questo codice stamperà 1,2,3,...,n. La riga del for andrebbe bene ( è buona prassi partire da 0 per contare, per questioni relative alla memoria ), Ma al posto del cout devi fare un cin, leggere il numero, decidere se pari/dispari, sommarlo alla relativa variabile di somma e solo alla fine (alias fuori dal ciclo) stampare le relative somme.

Se non ti dispiace,potresti scriverlo sotto forma di codice,in modo tale che lo capisco meglio?



Inviato dal mio iPhone utilizzando Tapatalk
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Codice:
int n;
do {
  cout<<"Inserisci un numero maggiore di 0"<<endl;
  cin>>n;
} while( n <= 0 );

int sum_pari = 0;
int sum_dispari = 0;
int num;

for ( int i = 0; i < n; i++) {
  cin>>num;
  if ( num%2 == 0 ) 
     sum_pari += num;
  else
     sum_dispari += num;
}
 

Marcus Aseth

Utente Attivo
404
138
OS
Windows 10
Comunque ti ricordo che sono al 2 anno di itis informatico... Ho iniziato a studiare il c++ una settimana prima delle vacanze.. Adesso non voglio vantarmi,ma a livello di voti e quindi oggettivamente parlando sono il migliore della mia classe... O al massimo sono primo insieme ad un altro ragazzo.. Cioè per farti capire il professore ci ha spiegato solamente le basi delle basi.. Infatti i miei compagni di classe solo a guardare le traccie non hanno capito nulla.. E sicuramente verranno da me a chiedermi le foto di come li ho fatti...

In ogni caso, chiusa questa parentesi che non volevo scrivere, potresti aiutarmi con questo esercizio?


Inviato dal mio iPhone utilizzando Tapatalk

Lascia perdere i voti che non vogliono dire assolutamente nulla essendo relativi ed arbitrari, ovvero basta avere standard bassi e dare 10 a chi sa scrivere "int main(){ }" per avere una classe di geni, e paragonarsi agli altri alunni che hanno studiato in quello stesso ambiente con quegli standard bassi può dare soltanto un falso senso di competenza.
Io per esperienza personale avendo studiato il C++ da autodidatta partendo con una semplice playlist di circa 70 video su youtube (da 4-10 min l'uno) semplicemente guardando ed ascoltando, in una o 2 settimane di tempo ero molto piu avanti di così, il return 0 veniva praticamente spiegato nei primi 10 minuti con l' "Hello World"... percui magari suggerisco di studiare per conto tuo, se ti interessa la materia.

Come rodhellas ha mostrato ti serve '%' chiamato anche "modulus operator", percui ti consiglio di fare una ricerca su quello.

@rodhellas: è meglio se non gli davi la soluzione imo, ma solo un suggerimento di cosa studiare per arrivarci o una spiegazione del modulus operator, così che lui potesse trarre la conclusione di come usarlo per risolvere il problema, o fallire il test per mancanza di impegno :/
Anche fallire il test ha i suoi meriti imo, perchè il professore così si rende conto di star facendo un lavoro un pò scarso (sempre che questo sia davvero il caso) e quindi magari ri-spiega bene tutto all'intera classe.
 
Ultima modifica:

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Lascia perdere i voti che non vogliono dire assolutamente nulla essendo relativi ed arbitrari, ovvero basta avere standard bassi e dare 10 a chi sa scrivere "int main(){ }" per avere una classe di geni, e paragonarsi agli altri alunni che hanno studiato in quello stesso ambiente con quegli standard bassi può dare soltanto un falso senso di competenza.
Io per esperienza personale avendo studiato il C++ da autodidatta partendo con una semplice playlist di circa 70 video su youtube (da 4-10 min l'uno) semplicemente guardando ed ascoltando, in una o 2 settimane di tempo ero molto piu avanti di così, il return 0 veniva praticamente spiegato nei primi 10 minuti con l' "Hello World"... percui magari suggerisco di studiare per conto tuo, se ti interessa la materia.

Come rodhellas ha mostrato ti serve '%' chiamato anche "modulus operator", percui ti consiglio di fare una ricerca su quello.

@rodhellas: è meglio se non gli davi la soluzione imo, ma solo un suggerimento di cosa studiare per arrivarci o una spiegazione del modulus operator, così che lui potesse trarre la conclusione di come usarlo per risolvere il problema, o fallire il test per mancanza di impegno :/
Anche fallire il test ha i suoi meriti imo, perchè il professore così si rende conto di star facendo un lavoro un pò scarso (sempre che questo sia davvero il caso) e quindi magari ri-spiega bene tutto all'intera classe.
Eh lo so, ma se non ha comunque capito come fare l'esercizio non gli serve a nulla il mio codice

Inviato da LG-M700 tramite App ufficiale di Tom\'s Hardware Italia Forum
 

pabloski

Utente Èlite
2,868
916
  • Mi piace
Reazioni: rodhellas

francescocerrato200

Nuovo Utente
98
8
Lascia perdere i voti che non vogliono dire assolutamente nulla essendo relativi ed arbitrari, ovvero basta avere standard bassi e dare 10 a chi sa scrivere "int main(){ }" per avere una classe di geni, e paragonarsi agli altri alunni che hanno studiato in quello stesso ambiente con quegli standard bassi può dare soltanto un falso senso di competenza.
Io per esperienza personale avendo studiato il C++ da autodidatta partendo con una semplice playlist di circa 70 video su youtube (da 4-10 min l'uno) semplicemente guardando ed ascoltando, in una o 2 settimane di tempo ero molto piu avanti di così, il return 0 veniva praticamente spiegato nei primi 10 minuti con l' "Hello World"... percui magari suggerisco di studiare per conto tuo, se ti interessa la materia.

Come rodhellas ha mostrato ti serve '%' chiamato anche "modulus operator", percui ti consiglio di fare una ricerca su quello.

@rodhellas: è meglio se non gli davi la soluzione imo, ma solo un suggerimento di cosa studiare per arrivarci o una spiegazione del modulus operator, così che lui potesse trarre la conclusione di come usarlo per risolvere il problema, o fallire il test per mancanza di impegno :/
Anche fallire il test ha i suoi meriti imo, perchè il professore così si rende conto di star facendo un lavoro un pò scarso (sempre che questo sia davvero il caso) e quindi magari ri-spiega bene tutto all'intera classe.

Accetto la tua idea,infatti quando mi inviate un codice io non lo scrivo subito, ma cerco prima di capirlo..
Adesso proverò anche io a guardami un paio di video...

Ah inoltre volevo rispondere alla frase "e quindi magari RI-SPIEGA bene tutto all'intera classe"... Lui oltre alle prime tre cose che si scrivono in un programma e al cin e al cout non ha spiegato nulla..


Inviato dal mio iPhone utilizzando Tapatalk
 

francescocerrato200

Nuovo Utente
98
8
Temo che gli serva per mostrarlo al professore e beccarsi un altro 10 :asd:

Il problema dei giovani d'oggi è che non si appassionano a niente e non capiscono che i risultati veri si possono ottenere solo sudando.

Non credo che se una persona si metta a studiare il c++ per l'intero giorno sia di Natale che della vigilia lo faccia solo per il voto... Potevo anche semplicemente copiarli l'8 di Gennaio in classe..


Inviato dal mio iPhone utilizzando Tapatalk
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili