PDA

Visualizza la versione completa : [C++] Tornare al punto iniziale (del programma)


luapaul
02-11-2005, 15:01
Ciao a tutti! sono proprio alle primissime armi, ho iniziato da poco più di 2 settimane, e le mie fonti di insegnamento sono solamente i vari tutorial che trovo su internet.
E' da un po che sto cercando il modo di tornare nel punto inziale del programma una volta averlo terminato.
Esempio banale. inserico due numeri e il programma mi fa la somma. appena finito di fare la somma, vorrei poter tornare a reinserire altri due numeri diversi senza dover chiudere il programma e riavviarlo.

Grazie in anticipo!

netarrow
02-11-2005, 15:06
basta fare un ciclo ad uscita controllata(es. do ... while).
Cmq da questa domanda sembra che il tuo tutorial sia tutt'altro che buono oppure stai facendo il passo più lungo della gamba, in linguaggi articolati come C++ è sempre meglio leggere un buon libro(dall'inizio alla fine naturalmente, ne trovi anche di gratuiti in rete, come Thinking C++, vol1 anche in ita, il vol2 solo in ing) e fare quello che hai imparato, se ti rendi conto che stai facendo qualcosa di più avanzato potresti capire in maniera errata l'argomento e quando lo affronterà la guda/libro sarà difficile mettersi con la giusta mentalità.

Ad esempio, potresti usare goto in questo caso(giusto in teoria, ma debellato nella pratica), abituarti con quello e dopo avere difficoltà a sostituirlo con i cicli quando ti verranno richiesti.

:ciauz:

luapaul
02-11-2005, 15:11
grazie del suggerimento. ma nn è ke per questa volta mi diresti il codice che devo mettere dato ke sto lavorando su un programma è nn riesco proprio ad andare avanti :confused:

netarrow
02-11-2005, 15:25
Ecco un esempio:



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

int main() {
int a, b, somma;
char ris;

do {
cout << "Inserire due numeri interi\n";
cin >> a;
cin >> b;
somma = a+b;
cout << "Fa " << somma << endl;
cout << "Un altro caso?s/n";
cin >> ris;
} while(toupper(ris) == 'S');

system("pause");
return 0;
}


:ciauz:

luapaul
02-11-2005, 21:43
grazie mille! è proprio quello ke volevo. nn è ke mi potresti spiegare l'ultimo pezzo del codice?

netarrow
03-11-2005, 13:20
questo?

system("pause");
return 0;

Praticamente system serve per chiamare comandi del sistema, in dos pause serve a far venire "premere un tasto per continuare..." se non lo metti il tuo programma si aprirebbe e si chiuderebbe subito alla fine senza che tu possa leggere l'output.

Il return dice nei casi generali delle funzioni che valore viene ritornato, se tu fai la funzione somma:

int somma(int a, int b) {
return a+b;
}

facendo questo:

cout << somma(5, 2);

scriveresti 7

Nel caso particolare del main se la funzione ritorna 0 vuol dire "programma terminato per fine del flusso, quindi senza errori" se invece viene ritornato 1 o altri codici di errori(diversi da 0) vuol dire "terminato causa errore"

Il toupper fa la maiuscola e il resto credo sia chiaro.

:ciauz:

Loading