μεταβλητες σε pascal-βοηθεια

Συζητήσεις σχετικές με την Delphi και την πρόγονη της Pascal

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
stef1986
Δημοσιεύσεις: 3
Εγγραφή: 17 Οκτ 2008 19:11

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από stef1986 » 17 Οκτ 2008 19:26

μου ζητηθηκε να γραφει προγραμμα όπου τα δεδομενα εισοδου ειναι τυπου real και longint,ενώ τα δεδομένα εξόδου είναι τύπου longint.Το προγραμμα δεν τρέχει.Μήπως ξέρετε πως θα γίνει μια πράξη ΄π.χ κερδος(longint)=τιμή_υλικού(longint)*φπα(real)+τιμή_υλικού(longint)*Πλήθοσ_τεμαχίων(Longint)
;;;;;;;;;;;;;;;;;;;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από dva_dev » 18 Οκτ 2008 02:06

Χρειάζεσαι type casting στον τύπο δεδομένων που θέλεις να κάνεις τη μετατροπή.
π.χ από real -> long integer:
longIntegerVar := LongInt( realVar );

http://docs.hp.com/en/B3476-90015/apbs04.html
http://banchao.cs.su.ac.th/gpc-doc/gpc_170.html

stef1986
Δημοσιεύσεις: 3
Εγγραφή: 17 Οκτ 2008 19:11

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από stef1986 » 19 Οκτ 2008 16:53

αυτό μέσα στο προγραμμα που θα γραφτεί? στισ δηλώσεισ?
και θελω να μετατρέψω από longint σε real
σε ευχαριστω για τη βοηθεία σου

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από dva_dev » 19 Οκτ 2008 19:17

κερδος(longint)=τιμή_υλικού(longint)*φπα(real)+τιμή_υλικού(longint)*Πλήθοσ_τεμαχίων(Longint)
Φαντάζομαι στον κώδικα σου θα έχεις μια εντολή του στύλ:

Κώδικας: Επιλογή όλων

κερδος:=τιμή_υλικού*φπα+τιμή_υλικού*Πλήθοσ_τεμαχίων;
άλλαξε το σε κάτι του στύλ:

Κώδικας: Επιλογή όλων

κερδος:=longint(τιμή_υλικού*φπα+τιμή_υλικού*Πλήθοσ_τεμαχίων);

Άβαταρ μέλους
Hermeia
Honorary Member
Δημοσιεύσεις: 987
Εγγραφή: 02 Αύγ 2004 00:14
Τοποθεσία: Αθήνα
Επικοινωνία:

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από Hermeia » 19 Οκτ 2008 20:12

συγνώμη για την παρέμβαση, αλλα δεν χρειάζεται μια αγκύλη ή κάτι (ή να γραφτεί διαφορετικά η εξίσωση..
ή έχω χάσει επισόδεια στην προτεραιότητα των τελεστών πράξεων..

πχ. η τελική τιμή δεν είυαι στ'αλήθεια
τιμη-μοναδας*φπα + τιμη μαναδας*πληθος

αλλα θα μπορούσε αριστα να ήταν

τιμη_μοναδας * πλήθος * (1+φπα)
.. οπου και όλα τα ΕΠΙ ειναι ισότιμα ..


και πάλι συγνωμη
(ακυρο αν δεν γίνονται πρώτα όλα τα επι και μετά όλα τα συν που γράφονται στη σειρά χωρίς παρενθέσεις )
Hermeia the InfoSharer
Η Γνώση είναι Δύναμη
Εικόνα

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από dva_dev » 19 Οκτ 2008 21:14

Τα * έχουν προτεραιότητα έναντι των +

Αυτό που λες είναι αυτό που είχαμε κάνει κάποτε στο σχολείο:
a*b + a*c = a*(b+c).
Νομίζω είναι η επιμεριστική ιδιότητα του πολ/σμού (κάποιος 18- ή μαθηματικός να το επιβεβαιώσει τώρα, αλλιώς ας σωπάσει για πάντα).

gianpan
Δημοσιεύσεις: 275
Εγγραφή: 03 Ιουν 2006 16:53
Επικοινωνία:

μεταβλητες σε pascal-βοηθεια

Δημοσίευση από gianpan » 21 Οκτ 2008 23:19

stef1986 έγραψε:κερδος(longint)=τιμή_υλικού(longint)*φπα(real)+τιμή_υλικού(longint)*Πλήθοσ_τεμαχίων(Longint)
;;;;;;;;;;;;;;;;;;;
αν κατάλαβα καλά θες η μεταβλήτη που θα έχει το τελικό αποτέλεσμα (η έξοδος σου δλδ) να είναι longint;;

Κάτι τέτοιο μήπως παίζει :

Κώδικας: Επιλογή όλων

var 
kerdos,timi_ilikou,plithos : longint;
fpa : real;
begin
kerdos := round(timi_ilikou*fpa) + timi_ilikou*plithos
end.
γιατί και αν πας απο real->int θα χάσεις δεκαδικά και με την round επίσης και τελικά η έξοδος σου (το kerdos) θα είναι longint.

Απάντηση

Επιστροφή στο “Delphi, Pascal”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες