Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Correzione codice Pascal ?

    Scrivi il codice in Pascal di una retta in forma esplicita e in forma implicita, dati a, b, c.

    codice:
    Program Retta;
    var 
    a:integer; 
    b:integer; 
    c:integer; 
    
    
    begin 
    writeln('Inserisci il coefficiente a');
    readln(a);
    writeln('Inserisci il coefficiente b');
    readln(b);
    writeln('Inserisci il coefficiente c');
    readln(c);
    
    
    writeLn(a,'x +',b,'y +',c,'= 0'); 
    writeLn; 
    writeLn('y =',-(a/b),'x',-(c/b)); 
    
    
    readLn; 
    end.

    Il compilatore mi da questo errore :
    Hint: use DIV instead to get an integer result.
    Ultima modifica di LeleFT; 03-07-2015 a 13:44 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    (a/b) e (c/b) sono (per come sono scritte) divisioni Real (con numeri reali, non con numeri interi).
    Il compilatore ti sta suggerendo (è un Hint, non dovrebbe essere un errore, ma un suggerimento) di usare l'operatore DIV al posto dell'operatore / per ottenere una divisione intera (cioè un numero intero).

    codice:
    var intero: Integer;
        a, b: Integer;
    ...
    (* Divisione fra interi *)
    intero := (a DIV b);

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    (a/b) e (c/b) sono (per come sono scritte) divisioni Real (con numeri reali, non con numeri interi).
    Il compilatore ti sta suggerendo (è un Hint, non dovrebbe essere un errore, ma un suggerimento) di usare l'operatore DIV al posto dell'operatore / per ottenere una divisione intera (cioè un numero intero).

    codice:
    var intero: Integer;
        a, b: Integer;
    ...
    (* Divisione fra interi *)
    intero := (a DIV b);

    Ciao.
    Scritto in questo modo, il compilatore non mi da più nessun errore ma quando apro il programma, la forma esplicita mi da dei problemi. ( vedi la foto in allegato )

    Program Retta;
    var
    a:integer;
    b:integer;
    c:integer;


    begin
    writeln('Inserisci il coefficiente a');
    readln(a);
    writeln('Inserisci il coefficiente b');
    readln(b);
    writeln('Inserisci il coefficiente c');
    readln(c);


    writeLn(a,'x +',b,'y +',c,'= 0');
    writeLn;
    writeLn('y =',-(a DIV b),'x',-(c DIV b));


    readLn;
    end.

    Immagine.jpg

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Stai usando degli interi, dei numeri senza la virgola. Forse vorresti usare dei real?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Come detto... quello del compilatore NON E' un errore, è un suggerimento (lui vede che usi due variabili intere e ti suggerisce di effettuare la divisione intera). Non significa né che il tuo codice fosse sbagliato, né che tu debba seguire il suggerimento del compilatore.

    Il tuo codice era corretto, io ti ho solo spiegato cos'era quel Hint mostrandoti un esempio d'uso dell'operatore DIV.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Come detto... quello del compilatore NON E' un errore, è un suggerimento (lui vede che usi due variabili intere e ti suggerisce di effettuare la divisione intera). Non significa né che il tuo codice fosse sbagliato, né che tu debba seguire il suggerimento del compilatore.

    Il tuo codice era corretto, io ti ho solo spiegato cos'era quel Hint mostrandoti un esempio d'uso dell'operatore DIV.


    Ciao.

    Si ho capito, ma comunque il primo codice che ho scritto, sempre nella forma esplicita me lo scrive in un modo strano ( vedi la foto in allegato )Immagine1.jpg

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il "modo strano" si chiama "notazione scientifica" ...

    https://it.wikipedia.org/wiki/Notazione_scientifica

    E' una "fissazione" dei computer scrivere i valori reali in questo modo :-)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Definitivamente ti servono variabili float, o double meglio ancora.
    Dubito fortissimamente sia un problema di ottimizzazione intera (c'è scritto retta immagino altro non sia che geometria analitica).

    Per inciso il "trucchetto" per convertire interi in float (durante le operazioni) è moltiplicare per 1.0

  9. #9
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Il "modo strano" si chiama "notazione scientifica" ...

    https://it.wikipedia.org/wiki/Notazione_scientifica

    E' una "fissazione" dei computer scrivere i valori reali in questo modo :-)
    bhè non ci allarghiamo... è la funzione di conversione, normalmente sono memorizzati in formato IEEE

  10. #10
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Notazione scientifica in base 2 con qualche trucchetto
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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 © 2024 vBulletin Solutions, Inc. All rights reserved.