Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Originariamente inviato da pallinopinco
    Potresti modificare il tuo post inserendo il codice indentato in un blocco [CODE]? COsì non si capisce un granché...
    modificato

    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

    Salento 12 !! Ultras Lecce !!

  2. #12
    nonostante l'esempio di king64 continuo a non capire

    non è giornata oggi..
    Sarà colpa del lunedì, riprova domani magari sarai più fortunato...

    King64 ti ha fornito una soluzione funzionante, basta sostituire la funzione "Pari" con il confronto corretto e gestire l'inserimento di stringhe (read/readln) e la stampa dei risultati (write/writeln).

    Puoi terminare il ciclo quando l'utente inserisce uno zero.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #13
    codice:
    numero := 42;
    positivi := 0;
    negativi := 0;
    while numero <> 0 do
     begin
       write('Inserisci un numero diverso da zero: ');
       readln(numero);
       if numero > 0 then inc(positivi) else if numero < 0 then inc(negativi);
     end;
    Prova a costruire qualcosa intorno a questo nucleo (rappresenta il 90% del programma).
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  4. #14
    VVoVe: Adesso mi sono accorto che il problema richiedeva numeri negativi e positivi , mentre ho postato una soluzione per pari e dispari . E ovvio che il confronto va fatto in base al segno . :master:

  5. #15
    ciao raga...

    grazie per le risposte...

    oggi pomeriggio, dopo un bel pranzo e un caffè, son riuscito a "sbloccarmi" e a trovare una possibile soluzione...

    che ne dite?

    codice:
    program numeri_positivi_e_negativi;
    uses crt;
    var cont,neg,pos,n,num1:integer;
        mpos,mneg:real;
    
    begin
    clrscr;
    cont:=0;
    neg:=0;
    pos:=0;
    writeln('numeri sequenza: ');
    readln(n);
    while cont<=n do
            begin
                    writeln('dammi numero: ');
                    readln(num1);
                    if num1<>0
                            then
                                     begin
                                            pos:=pos+1;
                                     end
                            else
                                     begin
                                            neg:=neg+1;
                                     end;
    cont:=cont+1;
            end;
    writeln('i numeri positivi sono: ' ,pos);
    writeln;
    writeln('i numeri negativi sono: ' ,neg);
    writeln;
    mpos:=pos*n/100;
    writeln('la media dei positivi è: ' ,mpos:5:2);
    writeln;
    mneg:=neg*n/100;
    writeln('la media dei negativi è: ' ,mneg:5:2);
    writeln;
    writeln('premi un tasto per tornare indietro...');
    readkey;
    end.
    la soluzione mi sembra abbastanza efficace...e la sinstassi è corretta...

    che ne dite?

    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

    Salento 12 !! Ultras Lecce !!

  6. #16
    che ne dite?
    Che ad occhio non funziona...

    Dovresti prendere spunto dal codice di King64 per quanto riguarda il calcolo della percentuale e dal mio per l'incremento dei 2 contatori.

    In particolare:

    Cosa verifica la condizione "if num1<>0"?

    Devi calcolare la media o la percentuale? In entrambi i casi il tuo codice è errato.

    Bevi un altro paio di caffè...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  7. #17
    Con il test
    codice:
    if num1<>0
    incrementerai solo la variabile pos , perchè è la prima condizione verificata che il compilatore trova . Otteresti lo stesso risultato se al posto della variabile pos ponessi la variabile neg , ovvero un risultato errato . Il test corretto è
    codice:
    if num1>0
    Per il calcolo delle percentuali devi sostituire le istruzioni:
    codice:
    mpos:=pos*n/100;
    
    mneg:=neg*n/100;
    rispettivamente con
    codice:
    mpos:=pos*100/n;
    
    mneg:=neg*100/n;
    Saluti

  8. #18
    per quanto riguarda la sintassi

    codice:
    if n mum1<>0 ...
    è stato una errore "casuale", visto che avevo provato a cambiare quella condizione per una prova.
    Nell'esercizio ho messo:

    codice:
    if num1>0 ...
    Per quanto riguarda

    codice:
    mpos:=pos*n/100;
    
    mneg:=neg*n/100;
    correggo subito grazie...

    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

    Salento 12 !! Ultras Lecce !!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.