Come usare un controllo per terminare un ciclo for

di il
31 risposte

Come usare un controllo per terminare un ciclo for

Buonasera !
Ho scritto il codice seguente.
Funziona bene, ma vorrei fare una piccola modifica.
Vorrei che il ciclo for, quando giri >= 5000 si fermi ed esca la frase che adesso leggete in basso all'ultima riga.

int main()
{
	int cv, giri, kw, nm, j;
	nm = 350;
	j = 0;
	for(giri=1500;giri<=6000;giri+=300)
		{
			cv = (nm * giri)/9550;
			kw = cv / 1.36;
			j++;
			printf("\n\n %d) A %d giri al minuto i CV sono %d \n\n mentre i kw sono: %d ",j,giri,cv,kw);
		}
	if(giri>=5000)
		printf("\n\n\n *** Attenzione oltre i 5000 giri c'e' rischio rottura motore *** \n\n\n");
}
Come si può fare ?

31 Risposte

  • Re: Come usare un controllo per terminare un ciclo for

    1) break.
    2) condizione sul for: giri<5000 !


    ACQUISTARE e STUDIARE un manuale su C o sul C++!
  • Re: Come usare un controllo per terminare un ciclo for

    Che senso ha arrivare fino a 6000 nel for se devi terminarlo prima ...?

    P.S. Come e perché scrivi codice in C se non lo studi su un libro?
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    Che senso ha arrivare fino a 6000 nel for se devi terminarlo prima ...?

    P.S. Come e perché scrivi codice in C se non lo studi su un libro?

    La mia era solo una prova. Volevo visualizzare la scritta della rottura del motore appena superato un certo limite.

    Un'altra prova, e se si può visualizzare la frase di prima, con il for che continua fino a 6000.

    I libri ne ho due. Uno sul linguaggio C ed un altro sul C++. Li sto studiando. Ho già fatto decine e decine di codici funzionanti. Ogni tanto esce fuori qualche prova particolare.
  • Re: Come usare un controllo per terminare un ciclo for

    Metti l'if all'interno del for
  • Re: Come usare un controllo per terminare un ciclo for

    ProgrammD ha scritto:


    Ogni tanto esce fuori qualche prova particolare.
    Ma applicare una for o una if non mi sembrano "prove particolari". Siamo all' abc del linguaggio ...
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    ProgrammD ha scritto:


    Ogni tanto esce fuori qualche prova particolare.
    Ma applicare una for o una if non mi sembrano "prove particolari". Siamo all' abc del linguaggio ...
    Il mettere una if dentro una for, non è neanche spiegato dentro i libri.
    Per chi è all'inizio, ciò che non è spiegato nei libri rientra nei "casi particolari".
  • Re: Come usare un controllo per terminare un ciclo for

    ProgrammD ha scritto:


    oregon ha scritto:


    ProgrammD ha scritto:


    Ogni tanto esce fuori qualche prova particolare.
    Ma applicare una for o una if non mi sembrano "prove particolari". Siamo all' abc del linguaggio ...
    Il mettere una if dentro una for, non è neanche spiegato dentro i libri.
    Per chi è all'inizio, ciò che non è spiegato nei libri rientra nei "casi particolari".
    Scusa la franchezza, ma questa è una fesseria.
  • Re: Come usare un controllo per terminare un ciclo for

    Detto anche: baggianate.

    E come dire: ho i blocchetti della Lego, ma se non mi dicono come devono essere messi, non sono in grado di comporli per realizzare, che ne so, una casetta!

    Diciamo che tu i libri li usi come base per il monitor, INVECE di aprirli per STUDIARE.

    Dentro un for ci sta' uno statement, e gli statement sono ....

    BASTA STUDIARE!
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    ProgrammD ha scritto:


    Ogni tanto esce fuori qualche prova particolare.
    Ma applicare una for o una if non mi sembrano "prove particolari". Siamo all' abc del linguaggio ...
    Io direi all' ' (apostrofo)

    Comunque più produttivamente
    
     kw = cv / 1.36;
    
    non va bene (in C e cugini) con variabili definite intere.
    Potresti fare "per cento diviso centrotrentasei", se non vuoi usare float, e non hai problemi di overflow.
  • Re: Come usare un controllo per terminare un ciclo for

    Studiando, ho concluso con questo quesito.
    Ecco il risultato:
    
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    	int cv, nm, kw, giri, min, max, i;
    	min = 1200;
    	max = 6000;
    	nm = 350;
    	i=0;
    	
    	for(giri=min; giri<max; giri+=300)
    	{
    		if(giri>5000)
    			{
    				i++;
    				cv=((giri*nm)/9550);
    				kw = (cv*100)/136;
    				printf("\n\n  %d ) Attenzione !!! Oltre i %d giri al minuto e con %d Cv e %d di Kw, SI ROMPE IL MOTORE !!! \n\n",i,giri,cv,kw);}
    		else
    			{
    				cv = (giri*nm)/9550;
    				kw = (cv * 100)/136;
    				i++;
    				printf("\n\n  %d )  A %d giri al minuto ci sono %d CV e %d Kw", i, giri, cv, kw);}
    	}
    }
    
    Sicuramente continuerò a studiare gli altri argomenti del linguaggio C/C++.
    Se avete segnalazioni per libri, dite pure. Io ne ho due, ma non so se posso citarli nel forum (forse sarebbe meglio in messaggio privato).
    Buona domenica.
  • Re: Come usare un controllo per terminare un ciclo for

    La for non raggiunge max e soprattutto, i calcoli vanno eseguiti fuori dalla if, una sola volta.
    Questo ovviamente i libri non lo dicono, ma è talmente ovvio ...

    L'unica cosa differente è la printf...


    P.S. Mi chiedo come mai tu stia cercando di imparare il C ... non penso che a 50 anni tu possa trovare lavoro in questo ambito dell'informatica partendo da zero ...
  • Re: Come usare un controllo per terminare un ciclo for

    Fornire il titolo (autore&casa editrice) dei libri su cui stai studiando non e' pubblicita' occulta

    @oregon ha ragione: il C e' un linguaggio di programmazione per uso abbastanza specifico (basso livello, driver, applicazioni per il quale servono alte performance), semplice per quanto riguarda la sintassi (uno dei piu' semplici), DECISAMENTE complicato per quanti riguarda l'uso della memoria, che praticamente non esiste e quindi bisogna utilizzare strategie decismanete sofisticate.

    Inoltre imparare UN linguaggio di programmazione (un programmatore medio ne conosce molti di piu') NON IMPLICA IMPARARE A PROGRAMMARE: cosi' come conoscere la grammatica italiana NON IMPLICA che uno sappia scrivere un romanzo.

    Saper programmare e' come saper scrivere un romanzo: se uno sa scrivere un romanzo, lo sa fare in qualunque lingua, allo stesso modo, una persona che sa programmare, lo sa fare in QUALUNQUE linguaggio di programmazione.

    Nota: se il C e' difficile, il C++ e' un incubo

    Comunque, sicuramente piu' accessibile del Whistapace o del Malbolge

    https://it.wikipedia.org/wiki/Whitespac
    https://it.wikipedia.org/wiki/Malbolg
    https://it.wikipedia.org/wiki/Linguaggio_di_programmazione_esoterico
  • Re: Come usare un controllo per terminare un ciclo for

    Piccola modifica al codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    int cv(int, int);
    
    int cv(int n1, int n2)
    {
    	int c;
    	return c = ((n1*n2)/9550);
    }
    int main()
    {
    	int nm, giri, min, max, i,k;
    	min = 1200;
    	max = 6000;
    	nm = 350;
    	i = 0;
    
    	for(giri=min; giri<=max; giri+=300)
    	{
    		if(giri>5000)
    			{
    				i++;
    				printf("\n\n  %d ) Attenzione !!! Oltre i %d giri al minuto e con %d Cv, SI ROMPE IL MOTORE !!! \n\n",i,giri,cv(giri,nm));
    			}
    		else
    			{
    				i++;
    				printf("\n\n  %d )  A %d giri al minuto ci sono %d CV", i, giri, cv(giri,nm));
    			}
    	}
    }
    
    Ho tolto i Kw, perchè non riesco a collegare nella funzione kw la funzione cv.
    Un altro pò di studio !!
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    La for non raggiunge max e soprattutto, i calcoli vanno eseguiti fuori dalla if, una sola volta.
    Questo ovviamente i libri non lo dicono, ma è talmente ovvio ...

    L'unica cosa differente è la printf...


    P.S. Mi chiedo come mai tu stia cercando di imparare il C ... non penso che a 50 anni tu possa trovare lavoro in questo ambito dell'informatica partendo da zero ...
    A quasi 50 anni .... ho la necessità di cambiare lavoro. L'informatica è solo una delle opzioni.
Devi accedere o registrarti per scrivere nel forum
31 risposte