Έχω κολλήσει με πρόγραμμα στην delphi

...IDE, compilers, κλπ

Συντονιστής: konnn

Έχω κολλήσει με πρόγραμμα στην delphi

Δημοσίευσηαπό yodan000 » 23 Νοέμ 2010, 22:27

Λοιπόν θέλω να κάνω ένα πρόγραμμα που να βρίσκει το άθροισμα 2 αριθμών βάζω a:=inputbox('Γεια','Δώσε τον α','α') και το ίδιο για το β και μετά βάζω c:=a+b αλλά πρέπει να διαλέξω αν θα βάλω real ή AnsiString και μου βγάζει σφάλματα.....
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση

Re: Έχω κολλήσει με πρόγραμμα στην delphi

Δημοσίευσηαπό sokoban4ever » 24 Νοέμ 2010, 05:52

Δεν ξέρω delphi αλλά είχα κάνει κάποτε pascal,
Την μεταβλητή c την όρισες;
και αν ναι τότε πριν την ανάθεση c:=a+b ; ?
Υπόψιν αν προσθέτεις έστω και έναν real αριθμό δεν μπορείς να τον σώσεις σε integer μεταβλητή.
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Έχω κολλήσει με πρόγραμμα στην delphi

Δημοσίευσηαπό yodan000 » 24 Νοέμ 2010, 17:58

κοίτα βάζω a,b,c:real αλλά τότε δεν μπορώ να βάλω την εντολή inputbox οπότε πρέπει να κάνω τον a,b AnsiString αλλά τότε δεν μπορώ να τους προσθέσω με τον c που είναι real άρα κάνω και τον c AnsiString αλλά τότε μου βγάζει τους αριθμούς δίπλα δίπλα χωρίς να κάνει πρόσθεση δλδ αν α=2,β=3 τότε c=23
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση

Re: Έχω κολλήσει με πρόγραμμα στην delphi

Δημοσίευσηαπό xqtr » 24 Νοέμ 2010, 20:08

Καταρχας, μην χρησιμοποιεις το Ansistring, σκετο string ειναι αρκετο.. συνεπως θα δηλωσεις τα a, b ως string:

Κώδικας: Επιλογή όλων
var
a,b:string;

Αφου εχεις ορισει τις μεταβλητες σου ως string, πολυ απλα δεν μπορεις να τις προσθεσεις απευθειας! Δεν ειναι αριθμοι, ειναι χαρακτηρες!
Για να τα προσθεσεις θα κανεις το εξεις:
Κώδικας: Επιλογή όλων
c:=strtoint(a)+strtoint(b);

Αν εισαι σιγουρος οτι ο χρηστης θα εισαγει ακεραιους αριθμους τοτε μπορεις να δηλωσεις το c και ως integer ή longint ή int64. Αυτα στη περιπτωση που εισαι σιγουρος οτι ο χρηστης θα εισαγει στα a,b ακεραιους αριθμους. Αν δεν εισαι σιγουρος τοτε θα βαλεις αυτο:
Κώδικας: Επιλογή όλων
c:=strtofloat(a)+strtofloat(b);
οπου ο c θα ειναι real.

έγραψε:...δίπλα δίπλα χωρίς να κάνει πρόσθεση δλδ αν α=2,β=3 τότε c=23

οταν εχεις μεταβλητες με κειμενο/χαρακτηρες και κανεις αυτο a+b+c+... τοτε στην pascal/delphi ενωνει τους χαρακτηρες/κειμενο. πχ.
Κώδικας: Επιλογή όλων
a:='Ubuntu';
b:='RuleZ!';
c:=a+b; // 'UbuntuRuleZ'
c:=a+' '+b; // 'Ubuntu RuleZ'


Ελπιζω να βοηθησα....
O χειμώνας έρχεται...
Γνώσεις ⇛ Linux: Μέτριο │ Προγραμματισμός: Ναι (Delphi/Lazarus) │ Αγγλικά: Καλά
Λειτουργικό : Ubuntu 14.04 σε Acer Aspire 5520
Προδιαγραφές ⇛ AMD Turion 1.8GHz │ 1GB │ ATI X700 │ Broadcom BCM4318 │LCD 15.4"
Άβαταρ μέλους
xqtr
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 508
Εγγραφή: 05 Φεβ 2009, 19:00
Εκτύπωση

Re: Έχω κολλήσει με πρόγραμμα στην delphi

Δημοσίευσηαπό cyberpython » 24 Νοέμ 2010, 22:25

@yodan: Πάρε ένα καλό βιβλίο για προγραμματισμό σε Pascal αφού θέλεις να μάθεις Delphi και ξεκίνα από εκεί (π.χ. είναι πολύ βασικό να κατανοήσεις τη διαφορά ανάμεσα σε διαφορετικούς τύπους δεδομένων).
Τώρα, για το πρόβλημά σου, όπως σου είπαν και παραπάνω, η Inputbox επιστρέφει string (οπότε δε μπορείς να κάνεις πράξεις).
Μπορείς όμως να χρησιμοποιήσεις την strtoint/strtofloat για μετατροπή σε ακέραιο/αριθμό κινητής υποδιαστολής και ίσως να θέλεις πρώτα να περάσεις το αποτέλεσμα της inputbox από την trim για να "διώξεις" tabs και κενά. Επίσης, καλό είναι να βάλεις τον κώδικα σε ένα try-except block σε περίπτωση που ο χρήστης δε δώσει έγκρυ τιμή (π.χ. 3a)

Κώδικας: Επιλογή όλων
procedure CalculateSum();
var
a,b,c:extended;
aStr,bStr: string;
begin
Try
aStr := InputBox('Give a number', 'A:', '1');
aStr := Trim(aStr);
a := StrToFloat(aStr);
bStr := InputBox('Give a number', 'B:', '1');
bStr := Trim(bStr);
b := StrToFloat(bStr);
c := a + b;
ShowMessage('C is '+floattostr(c));
except
on E : Exception do
begin
ShowMessage('Invalid value');
end;
end;
end;
Κοινότητα ΕΛ/ΛΑΚ Οικονομικού Πανεπιστημίου Αθηνών / Ubuntu-gr / My Web Log
Επίπεδο Γνώσεων Linux: Μέτριο, Προγραμματισμός: Ναι, Aγγλικά: Καλά
Λειτουργικό : Ubuntu 10.04 - 32bits
Η/Υ : Intel Core2 4400@2 GHz / 2GB DDR2 RAM / GeForce 8400 GS 512MB / Creative SB Audigy SE
Άβαταρ μέλους
cyberpython
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 733
Εγγραφή: 14 Μάιος 2008, 13:22
Εκτύπωση

Re: Έχω κολλήσει με πρόγραμμα στην delphi

Δημοσίευσηαπό yodan000 » 25 Νοέμ 2010, 17:55

οκ ευχαριστώ.... βιβλίο για pascal έχω... αλλά δεν είναι ακριβώς οι ίδιες οι εντολές με την delphi οπότε το σταμάτησα...
Υ.Γ. ξέρετε κάποιον καλό οδηγό για delphi στα ελληνικά μου είπαν αυτόν http://dide.flo.sch.gr/Plinet/Tutorials ... elphi.html αλλά μου φαίνεται κάπως δύσκολος...
1 Linux: Μέτριος ┃ Προγραμματισμός: Καθόλου ┃ Αγγλικά: Προχωρημένος
2 Ubuntu Gnome τελευταία έκδοση
3 Intel Core i3 CPU M 370 2.40GHz ‖ RAM 3819 MiB ‖ Acer Aspire 5742G
4 NVIDIA Corporation Device [10de:0df1] (rev a1)
5 eth0: Broadcom NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01) ⋮ wlan0: Atheros Inc. AR9287 Wireless Network Adapter (PCI-Express) [168c:002e] (rev 01)
yodan000
saintTUX
saintTUX
 
Δημοσιεύσεις: 1681
Εγγραφή: 12 Ιαν 2010, 00:32
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού