Disponibili per il download una nuova esercitazione e le note relative a espressioni e istruzioni. Se ancora non l'avete fatto, approfittate della pausa per svolgere tutti gli esercizi.
Prima della ripresa delle lezioni pubblicherò possibili soluzioni e potrete così confrontarle con quanto fatto da voi.
Scusi professore, ho un problema con l'esercizio 3:
RispondiEliminaSe provo a fare inserire due vector da cin fino a che non viene digitato EOF, appena compilo il programma e do il primo EOF per fare terminare l'inserimento nel primo vector, il programma non mi fa più inserire nulla neanche nel secondo vector, terminando. Il codice è questo:
vector v1,v2;
int x,y;
cout<<"inserisci il primo vector"<>x)
v1.push_back(x);
cout<<"inserisci il secondo vector"<>y)
v2.push_back(y);
Per risolvere ho provato a fare terminare l'inserimento inserendo da tastiera 0, ma non mi sembra un'ottima soluzione.
Come altro si può risolvere?
Grazie
Non si riesce a vedere il codice. In quello pubblicato non ci sono espressioni di input..
EliminaHa ragione, per qualche motivo parte del codice mi è stata cancellata al momento di postare il commento.. a questo punto le passo il codice tramite pastebin:
Elimina- Questo è il codice che volevo usare ma che non funziona (terminato il primo inserimento con un EOF non mi fa inserire più nulla) -> http://pastebin.com/VxMxyf9t
- Questo è il codice che ho usato per far funzionare il programma (però non posso più inserire 0 nei vector) -> http://pastebin.com/Nd8LB8ZC
(mi sono accorto di aver scritto nel cout "0 per terminare" anche nel primo codice, ma ovviamente non è vero)
EliminaIo sono fuori Palermo e purtroppo non ho un compilatore per verificare ma non mi sembra strano che dopo che inserisci un eof nello stream questo rimane in stato di errore e ti ritorna falso.
EliminaDevi cercare su internet come resettare lo stream dopo che si e' verificato un eof.
Ho risolto, lo scrivo qui magari qualcuno ha lo stesso problema, bisogna usare:
Eliminastd::cin.clear();
per resettare lo stream una volta inserito il primo eof, così appena arriva al secondo cin non lo salta ma fa inserire nuovamente da tastiera
Grazie comunque per l'aiuto, professore
Salve professore volevo chiederle se questa potrebbe essere una soluzione dell'esercizio 4
RispondiEliminagrazie anticipatamente
int main(){
string s1 ,s2 ;
do {
if (!s1.empty() && !s2.empty()){
if (s1==s2){
cout << "Le stringhe sono uguali" ;
} else {
s1 < s2 ? cout << s1 << " < " << s2 : cout << s2 << " < " << s1 ;
}
}
cout << "\nInserisci due stringhe : " ;
}while(getline(cin,s1) && getline(cin,s2));
return 0;
}
Come dicevo al tuo collega sono fuori sede e non ho accesso a un compilatore per verificare, comunque leggendolo mi sembra che il tuo codice faccia quanto richiesto,
RispondiEliminascusi non avevo letto sopra, comunque grazie
EliminaProfessore scusi il ritardo,
RispondiEliminanon riesco a capire bene cosa chieda l'esercizio 5, anche perchè la parte di codice presente nella consegna non compila..
Essenzialmente ti chiede di scrivere un programmino con funzionalità analoga usando un do/while. A breve comunque pubblicherò possibili soluzioni.
RispondiEliminaGrazie della risposta Professore, alla fine il problema era la funzione get_size che doveva essere definita.
Elimina