PDA

Visualizza la versione completa : [C++] Ripetere esecuzione di un intero programma


futureshow11
21-11-2007, 18:17
Mi spiego meglio...

Ho un programmino, a fine programma solitamente esce...

C'è un modo per far tornare da capo il programma??

Io ho pensato al ciclo do While, Ma senza inserire un ciclo??

Spero che avete capito, altrimenti faccio un esempio!!

Grazie ciao

oNaSsI$
21-11-2007, 18:20
potresti utilizzare l'istruzione goto...
mi raccomando però a non abusarne..l'utlizzo esagerato di questa istruzione rende il codice illeggibile,perciò si sconsiglia sempre di utilizzarlo...

futureshow11
21-11-2007, 18:26
Originariamente inviato da oNaSsI$
potresti utilizzare l'istruzione goto...
mi raccomando però a non abusarne..l'utlizzo esagerato di questa istruzione rende il codice illeggibile,perciò si sconsiglia sempre di utilizzarlo...

ok grazie per la dritta, però io sono proprio alle prime armi, mi spiegheresti che funzione è?

menphisx
21-11-2007, 18:32
while(1){
/*Codice*/
if(condizione_uscita) break;
}

futureshow11
21-11-2007, 18:41
Originariamente inviato da menphisx


while(1){
/*Codice*/
if(condizione_uscita) break;
}



Scusa la mia ignoranza... ho alcune domande..

While (1) sta per cosa??
// Codice, che tipo di codice metto??
if(Condizione uscita) break; cioè??

Sono primino in ste cose e vorrei capirle!! se sei così gentile da aiutarmi mi fai un piacere

menphisx
21-11-2007, 18:47
while(1){
/*Codice*/
if(condizione_uscita) break;
}

while(1): non so se lo sai ma in C qualsiasi valore numerico diverso da zero è vero, zero è falso.
Siccome while cicla per vero, cioè se la condizione tra le parentesi è vera, lui esegue il codice tra le graffe, in questo caso sarà sempre vera.

/*Codice*/: qua ci metti il tuo codice, quello che devi fare.

if(condizione_uscita) break; : semplicemente devi garantire che l'algoritmo finisca, se non metti una condizione di uscita, il codice verrà eseguito all'infinito.

:ciauz:

futureshow11
21-11-2007, 18:49
Originariamente inviato da menphisx

while(1){
/*Codice*/
if(condizione_uscita) break;
}

while(1): non so se lo sai ma in C qualsiasi valore numerico diverso da zero è vero, zero è falso.
Siccome while cicla per vero, cioè se la condizione tra le parentesi è vera, lui esegue il codice tra le graffe, in questo caso sarà sempre vera.

/*Codice*/: qua ci metti il tuo codice, quello che devi fare.

if(condizione_uscita) break; : semplicemente devi garantire che l'algoritmo finisca, se non metti una condizione di uscita, il codice verrà eseguito all'infinito.

:ciauz:

Grazie, ma questa non è una funzione goto vero?

futureshow11
21-11-2007, 18:51
Ti scrivo anche il mio programmino che è per la scuola, così mi dai una dritta se c'è qualche cosa di sbagliato o se posso modificare qualche cosa!! Se hai voglia!!





// [Dati due operandi e un operatore matematico stampare il relativo risultato]





#include<conio.h>

#include<iostream.h>



int main(){



clrscr();



float n1,n2; //Variabili dei due numeri inseriti

float a; //Variabile del risultato

char scelta; //Variabile per la scelta



cout<<"Inserire il primo numero ";

cin>>n1; //Assegna il valore inserito alla variabile n1

cout<<"\nInserire il secondo numero ";

cin>>n2; //Assegna il valore inserito alla variabile n2

cout<<"\nScegliere quale operatore si vuole utilizzare [+,-,*,/]. [5] Per fine programma ";

cin>>scelta; //Assegna la scelta dell'operatore che si vuole utilizzare



switch (scelta){ //Menù di scelta dell'operatore scelto in precedenza

case '+' : { //Scelta numero 1

a=n1+n2;

cout<<"\nIl risultato della somma e' uguale a "<<a;// Somma dei due operandi

}

break;

case '-': { //Scelta numero 2

a=n1-n2;

cout<<"\nIl risulta della sottrazione e' uguale a "<<a; //Sottrazione

}

break;

case '*': { //Scelta 3

a=n1*n2;

cout<<"\nIl prodotto fra i due addendi e' "<<a; //Prodotto

}

break;

case '/': { //Scelta 4

if ((n1!=0)&&(n2!=0)){ //Condizione per verificare che gli operandi siano diversi da 0

a=n1/n2;

cout<<"\nLa divisione tra i due e' "<<a; //Divisione con operandi diversi da 0

}

else{ //Condizione falsa se gli operandi sono uguali a 0

cout<<"\nErrore, uno degli operandi e' uguale a 0";

}

} //Chiusura scelta 4

break;

default: { //Scelta per finire il programma

cout<<"\nIl programma Š concluso";

}

} // Chiusura dello Switch





getch();

return 0;

} //Fine programma

menphisx
21-11-2007, 18:51
Il goto non si usa perchè non fa parte della programmazione strutturata.
http://it.wikipedia.org/wiki/Programmazione_strutturata

menphisx
21-11-2007, 18:53
Per farti capire:
http://it.wikipedia.org/wiki/Spaghetti_code

Loading