Come usare un controllo per terminare un ciclo for

di il
31 risposte

31 Risposte - Pagina 2

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

    La funzione cv è sbagliata ... deve essere
    
    int cv(int n1, int n2)
    {
    	return ((n1*n2)/9550);
    }
    
    e i++ va messo PRIMA della if, una sola volta, come ti ho detto prima.

    E non devi ripetere la visualizzazione dei valori con due printf simili ... NE BASTA UNA SOLA fuori dalla if.
    Nella if devi mettere SOLO quello che è diverso ...

    Per la questione dei kw non ho capito la difficoltà.
    A quasi 50 anni .... ho la necessità di cambiare lavoro. L'informatica è solo una delle opzioni.
    Imparare il C non mi pare una opzione utile, a parte il fatto che mi sembra tu faccia molta fatica già con le cose elementari.
    Te lo dico con franchezza, lascia stare il C ... fai prima a fare altro nel mondo dell'informatica.
  • Re: Come usare un controllo per terminare un ciclo for

    Forse è meglio se "punti" su qualcosa di diverso.
    E' come se vuoi diventare medico sui 50 anni. Certo, puoi farlo, ma non è che abbia una particolare logica.
    Se sei, che so, un tecnico radiologo, un biologo, farmacista, un dentista o qualcosa del genere potrebbe avere un minimissimo senso.
    Altrimenti dubito che ti verrebbe in mente di farlo.
  • Re: Come usare un controllo per terminare un ciclo for

    ProgrammD ha scritto:


    ...
    A quasi 50 anni .... ho la necessità di cambiare lavoro. L'informatica è solo una delle opzioni.
    Spannometricamente, partendo da zero, servono:

    1) un anno di STUDIO per iniziare a comprendere che cosa vuol dire programmare. I concetti fondamentali che si devono padroneggiare ragionevolmente, sono: algoritmi, strutture dati
    2) poi serve imparare un linguaggio di programmazione e concetti quali: ingegneria del software (come si organizza un programma in moduli), un minimo di teoria sulla gestione dei dati, basi di programmazione concorrente
    3) bisogna imparare a programmare seguendo il paradigma della programmazione ad oggetti. Fondamentale studiare i design patterns
    4) quindi bisogna studiare i linguaggi e le le librerie che si usano nel contesto in cui ci si vuole cimentare: applicazione Web (front-end oppure back-end, per ogn'uno dei quali esistono specifici linguaggi di programmazione), App per cellulari.

    In pratica un'altro paio d'anni di studio.

    Non mi spingerei piu' in la data la neccessita' di acquisire ulteriori competenze tecniche.

    Ad esempio:
    per lavorare nell'ambito dell'IoT, serve conoscere il C/C++ e assembler
    in ambito bancario, COBOL
    in ambito Web: Java,C#,PHP,Javascript
    in ambito App: Java
    ecc...

    Ma, ovviamente, il linguaggio e' solo una piccolissima parte delle cose da imparare. La parte piu' imponente e' conoscere le librerie che si usano correntemente, e le diverse architetture che si usano in vari contesti:
    - MVC + programmazione basata su eventi per le interfacce grafiche
    - programmazione basata su messsaggi per la realizzazione di sistemi client server
    - ecc ...

    Per fare un esempio, per passare da programmatore generico ad un settore molto specialistico che sta' prendendo piede attualmente, serve un anno di STUDIO per acquisre le competenze base, ed altri tre anni di STUDIO per avere un'iniziale padronanza del settore. E questo pur avendo gia' un bagaglio culturale universitario completo e magari anche diversi anni di pratica sul campo.

    Insomma:
    - per poter imparare a programmare a livelli molto base, servono, quindi, 3/4 anni: il percorso di studio di uno studente delle superiori.
    - per poter fare lavori un po' piu' complessi, servono altri 3/4 anni: il percorso di studio di uno studente universitario.

    Purtroppo (o per fortuna), come ti e' gia' stato fatto notare, programmare e' un'attivita' che richiede un adeguato (al giorno d'oggi, discretamente ampio) bagaglio culturale e tecnico: non ci si inventa da un giorno all'altro.
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    Per la questione dei kw non ho capito la difficoltà.
    La questione la riassumo con questo codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    int cav(int n1,int n2, int n3)
    {
    	n3 = 9550;
    	return ((n1*n2)/n3);
    }
    int kw(int n1)
    {
    	int a, b, c;
    	n1 = cav(a,b,c);
    	return (n1/1.36);
    }
    int main()
    {
    	int a = 1200;
    	int b = 320;
    	int c, d;
    	printf("\n vedi i CV:  %d",cav(a,b,c));
    	printf("\n vedi i KW:  %d",kw(d));
    }
    
    L'uso di una funzione all'interno di un'altra l'ho fatto, ma forse era un esempio troppo facile.
    Questa volta l'uso della funzione cv, messa all'interno della funzione kw non mi permette di calcolare i kw.
  • Re: Come usare un controllo per terminare un ciclo for

    Circa gli anni di studio per i linguaggi di programmazione, l'avevo intuito.
    Mi accontenterò di studiare i linguaggi informatici per piccole cose, fare piccoli programmi a tempo perso.
  • Re: Come usare un controllo per terminare un ciclo for

    Hai fatto molta confusione ... le costanti le scrivi direttamente, come ti avevo mostrato prima. Però dovresti lavorare con dei float e non con int

    E questo dipende dal fatto che stai studiando male/poco.

    Fra l'altro non si capisce PERCHE' vorresti usare le funzioni in questo tuo programmino da poche linee ... forse non hai capito il suggerimento che ti avevo dato inizialmente. Il fatto è che NON rispondi chiaramente su quello che ti si scrive ...
    
    int cav(int n1, int n2)
    {
    	return ((n1*n2) / 9550);
    }
    
    int kw(int cv)
    {
    	return (cv / 1.36);
    }
    
    int main()
    {
    	int a = 1200;
    	int b = 320;
    
    	printf("\n vedi i CV:  %d", cav(a, b));
    	printf("\n vedi i KW:  %d", kw(cav(a, b)));
    
    	return 0;
    }
    
    fare piccoli programmi a tempo perso
    Non per lavoro, come avevi detto prima ...
  • Re: Come usare un controllo per terminare un ciclo for

    Devi ripartire dalle BASI!

    Il tuo esempietto e' completamente cannato:

    1) alla funzione cav passi 3 parametri, 2 con un valore ragionevole ed il terzo (c) NON INIZIALIZZATO, quindi con un valore del picchio.
    2) l'uso della funzione kw e' pure peggio: la chiami con un parametro NON INIZIALIZZATO e nella sua implementazione usi la funzione cav a cui passi tre parametri non inizializzati.
    3) usi degli interi invece che dei numeri con virgola: la divisione tra interi ritorna interi, QUINDI 1/2 ritorna ZERO, NON 0.5

    Ora spiegare che cosa e' una funzione, che cosa e il' passaggio parametri per valore o per riferimento, che cosa e' il casting, come vengono valutate le espressioni matematiche, non e' una cosa che si puo' spiegare in un post: ci sono CAPITOLI dedicati nei libri.

    Quindi, visto che e' chiaro che stai tentando di affrontare un problema senza conoscere bene lo strumento che vuoi utilizzare (il linguaggio C), e' ovvio che c'e' solo una cosa da fare:

    ricominciare da zero

    Questo non vuol dire che non puoi scrivere nel forum per delle delucidazioni, ma quello che ci aspettiamo e' che tu scriva:

    nel libro tale, capitolo tale, pagina tale, c'e' scritto: bla bla bla, bli. Non capisco che cosa si vuole intendere con bli.

    Siamo qui' per spiegare dettagli che possono essere oscuri, NON come alternativa ad un buon libro di testo su cui STUDIARE.

    Infine, un linguaggio di programmazione si impara in qualche giorno/settimana, se e' particolarmente complesso.

    Il problema e' che conoscere un linguaggio di programmazione NON VUOL DIRE SAPER PROGRAMMARE!
  • Re: Come usare un controllo per terminare un ciclo for

    Ringrazio tutti per consigli ed aiuto.

    Se troverò qualche argomento ostico sui due libri che ho, chiederò lumi (come detto da migliorabile).

    Sicuramente, la programmazione informatica me la tengo come passatempo e per piccole cose.

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

    Ma almeno il codice l'hai provato?
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    Ma almeno il codice l'hai provato?
    Funziona. Grazie.
  • Re: Come usare un controllo per terminare un ciclo for

    Quello lo sospettavo ... ma l'hai compreso? Hai dubbi? Capiti gli errori che facevi?
  • Re: Come usare un controllo per terminare un ciclo for

    oregon ha scritto:


    Quello lo sospettavo ... ma l'hai compreso? Hai dubbi? Capiti gli errori che facevi?
    Questo sulle funzioni l'ho capito.
    Sto studiando altri argomenti: i puntatori.
    Non appena salta fuori qualche dubbio/difficoltà chiederò.
  • Re: Come usare un controllo per terminare un ciclo for

    Quali libri stai usando per lo studio?

    Come te la cavi con l'inglese?

    Per il linguaggio C, questi posono essere dei riferimenti, se ti dobbiamo dire che cosa leggere:

    QUESTO e' il manuale originale (la BIBBIA, praticamente da sapere a MEMORIA se si vuole programmare in C), tradotto in italiano, scritto da coloro che HANNO INVENTATO il linguaggio (la BIBBIA, appunto ):


    In alternayiva

    http://www.agentgroup.unimore.it/Zambonelli/didattica/corsore/LucidiPDF/C1_IntroAlC.pdf
    https://eineki.files.wordpress.com/2010/02/guidac.pd

    Prima di passare ai PUNTATORI, e quindi alle problematiche relative all'ALLOCAZIONE DI MEMORIA (argomento DECISAMENTE complicato), e' meglio non avere dubbi su funzioni, passaggio parametri e strutture di controllo!

    Per iniziare, oltre la manuale sul linguaggio di programmazione, serve STUDIARE questo:



    Avere il LIBRO e' SEMPRE una BUONA COSA.

    In alternativa puoi usare questo (e' uno stralcio, Universita' di Napoli):



    oppure questo (Universita' di Catania):

    http://www.dmi.unict.it/nicosia/lectures/programmazione-scientifica/algo.pdf

    Per l'allocazione della memoria:

    http://www.lepillole.it/fondamenti/slides/FdI_20121206_dispensa_allocazione_dinamica.pdf

    Quando conoscerai questi PDF come le tue tasche, si potra' dire di avere una BASE INIZIALE da cui partire per trattare argomenti un po' piu' complessi (e INTERESSANTI, ovviamente
  • Re: Come usare un controllo per terminare un ciclo for

    migliorabile ha scritto:


    Quali libri stai usando per lo studio?

    Come te la cavi con l'inglese?

    Per il linguaggio C, questi posono essere dei riferimenti, se ti dobbiamo dire che cosa leggere:

    QUESTO e' il manuale originale (la BIBBIA, praticamente da sapere a MEMORIA se si vuole programmare in C), tradotto in italiano, scritto da coloro che HANNO INVENTATO il linguaggio (la BIBBIA, appunto ):


    In alternayiva

    http://www.agentgroup.unimore.it/Zambonelli/didattica/corsore/LucidiPDF/C1_IntroAlC.pdf
    https://eineki.files.wordpress.com/2010/02/guidac.pd

    Prima di passare ai PUNTATORI, e quindi alle problematiche relative all'ALLOCAZIONE DI MEMORIA (argomento DECISAMENTE complicato), e' meglio non avere dubbi su funzioni, passaggio parametri e strutture di controllo!

    Per iniziare, oltre la manuale sul linguaggio di programmazione, serve STUDIARE questo:



    Avere il LIBRO e' SEMPRE una BUONA COSA.

    In alternativa puoi usare questo (e' uno stralcio, Universita' di Napoli):



    oppure questo (Universita' di Catania):

    http://www.dmi.unict.it/nicosia/lectures/programmazione-scientifica/algo.pdf

    Per l'allocazione della memoria:

    http://www.lepillole.it/fondamenti/slides/FdI_20121206_dispensa_allocazione_dinamica.pdf

    Quando conoscerai questi PDF come le tue tasche, si potra' dire di avere una BASE INIZIALE da cui partire per trattare argomenti un po' piu' complessi (e INTERESSANTI, ovviamente
    Attualmente sto studiando su:
    - Dalla a alla z passando per c (linguaggio C);
    - Che c serve ? (linguaggio C++).

    Circa l'inglese non ho problemi.

    Grazie per le tue indicazioni.
  • Re: Come usare un controllo per terminare un ciclo for

    Io ci andrei cauto: l'ultimo link (ho preso solo quello) è a livello didattico proprio minimo, per non dire dilettantesco.
    Gli altri non so, non ho voglia
Devi accedere o registrarti per scrivere nel forum
31 risposte