[C] Esercizio: somma di interi positivi crescenti

di il
8 risposte

[C] Esercizio: somma di interi positivi crescenti

Presi in input una sequenza di numeri interi positivi sommali; il programma si arresta solo quando viene inserito un numero minore del precedente. Al termine dell'esecuzione, in output verrà emessa la somma così calcolata

8 Risposte

  • Re: [C] Esercizio: somma di interi positivi crescenti

    E quindi? Lo vuoi scritto da noi? Vuoi anche un caffè? Una rivista?
  • Re: [C] Esercizio: somma di interi positivi crescenti

    
    def s(a,b):
        return 1+s(a-1,b) if a > 0 else s(a,b-1)+1 if b > 0 else 0
    def d(a,b):
        return 1+d(a-1,b) if a > 0 else d(a,b-1)-1 if b > 0 else 0
    def a(l):
        return 0 if l == [] else l[0] if l[1:] == [] else s(a([l[0]]),a(l[1:])) if d(l[1],l[0]) > 0 else a([l[0]])
    
    in pseudocodice
  • Re: [C] Esercizio: somma di interi positivi crescenti

    Io ho provato a farlo così ma non funziona. potete aiutarmi?
    
    #include "stdio.h" 
    #include "stdlib.h" 
    main()
    {
    int s,a,b;
    printf("Inserisci numeri:");
    scanf("%d",&a);
    while(b>a)
    {
    s=a;
    printf("Inserisci numero: ");
    scanf("%d",&b);
    }
    s=a+b;
    printf("Il risultato è %d",&s);
    system("pause");
    return 0;
    }
    
  • Re: [C] Esercizio: somma di interi positivi crescenti

    migliorabile ha scritto:


    
    def s(a,b):
        return 1+s(a-1,b) if a > 0 else s(a,b-1)+1 if b > 0 else 0
    def d(a,b):
        return 1+d(a-1,b) if a > 0 else d(a,b-1)-1 if b > 0 else 0
    def a(l):
        return 0 if l == [] else l[0] if l[1:] == [] else s(a([l[0]]),a(l[1:])) if d(l[1],l[0]) > 0 else a([l[0]])
    
    in pseudocodice
    Sono un ragazzo del secondo liceo scientifico. Non abbiamo fatto pseudocodifica. Abbiamo fatto flowchart e codifica c
  • Re: [C] Esercizio: somma di interi positivi crescenti

    In queste situazioni suggerisco di affrontare un problema più semplice e arrivare alla soluzione aumentando pian piano la complessità del problema in modo da capire le soluzioni.
    Inizia con un semplice ciclo che richiede l'inserimento di numeri finché non viene dato 0 e alla fine stampa la somma di tutti questi valori.
  • Re: [C] Esercizio: somma di interi positivi crescenti

    La pseudocodifica e' la versione PIU' SEMPLICE dello scrivere in uno specifico linguaggio di programmazione.

    Gli algoritmi in pseudocodice SI STUDIANO, si possono anche convertire i FLOWCHART

    ed eventualmente anche si implementano


    Comunque, giusto per correttezza:

    1) non e' pseudocodice ma Python
    2) usa pesantemente la ricorsione, ed e' ESTREMAMENTE inefficente
    3) fa ESATTAMENTE quello che hai specificato
    4) qui non si fanno gli esercizi, ma al piu' si aiuta a capire perche' non funzionano.

    Ora, PERCHE" il tuo algoritmo non funziona?
  • Re: [C] Esercizio: somma di interi positivi crescenti

    migliorabile ha scritto:


    La pseudocodifica e' la versione PIU' SEMPLICE dello scrivere in uno specifico linguaggio di programmazione.

    Gli algoritmi in pseudocodice SI STUDIANO, si possono anche convertire i FLOWCHART

    ed eventualmente anche si implementano


    Comunque, giusto per correttezza:

    1) non e' pseudocodice ma Python
    2) usa pesantemente la ricorsione, ed e' ESTREMAMENTE inefficente
    3) fa ESATTAMENTE quello che hai specificato
    4) qui non si fanno gli esercizi, ma al piu' si aiuta a capire perche' non funzionano.

    Ora, PERCHE" il tuo algoritmo non funziona?
    Quando eseguo il programma e inserisco i valori escono fuori risultati sbagliati. Come risolvo? Ho forse sbagliato la codifica?
  • Re: [C] Esercizio: somma di interi positivi crescenti

    Jacopino, guarda il ciclo while: b>a!!!
    b secondo te a cosa é uguale??
    Tu gli hai dato un valore iniziale (inizializzare dice niente)? No. Quindi lui prende quello che trova in memoria e fa delle operazioni nel tuo programma sballando tutto. Idem per s. É buona norma dare un valore neutro ad una variabile prima di fare un operazione come somma o prodotto (0 valore neutro per la somma, 1 valore neutro per il prodotto)

    Poi Migliorabile ti ha fornito un suggeriemento utilizzando python!!! Questo linguaggio necessita dell'identazione altrimenti non funziona. In C hai il ";" per far capire al compilatore che l'istruzione é finita e puó passare alla successiva; ma comunque abituati a dare una struttura piú leggibile al tuo codice usando il tab o lo spazio magari. Fallo ora perché se ti abitui da subito su questi programmi semplici poi lo fai sempre.

    Poi vediamo gli altri errori che escono!!!!
Devi accedere o registrarti per scrivere nel forum
8 risposte