Calculate13 Δημοσ. 19 Νοεμβρίου 2012 Δημοσ. 19 Νοεμβρίου 2012 Καλησπέρα προσπάθησα να φτιαξω ενα προγραμμα με pascal αλλα κατι εχω κανει λαθος και δεν ξερω τι μπορει καποιος να με βοηθησει ? > PROGRAM diktis_mazas_anthropou; VAR ILIKIA,BAROS,YPSOS,DMS: REAL; BEGIN WRITE('TO YPSOS SAS:'); READLN(YPSOS); WRITE('TO BAROS SAS:'); READLN(BAROS); WRITE('H ILIKIA SAS:'); READLN(ILIKIA); IF ILIKIA>18 THEN DMS:=BAROS/YPSOS^2; IF DMS<18.5 THEN WRITE('EISAI ADYNATO ATOMO'); ELSE IF DMS>=18.5 AND DMS<25 THEN WRITE('EISAI KANONIKO ATOMO'); ELSE IF DMS>=25 AND DMS<30 THEN WRITE('EISAI BARY ATOMO'); ELSE IF DMS>=30 THEN WRITE('EISAI YPERBARO ATOMO'); END; ELSE WRITE('TA STOIXEIA POU DWSATE DEN EINAI EGKYRA'); END; END.
Demon Lord Δημοσ. 20 Νοεμβρίου 2012 Δημοσ. 20 Νοεμβρίου 2012 Νομίζω πως το end; κάτω από την τελευταία else if δεν χρειάζεται! Τι πρόβλημα σου βγάζει;
mvaggel Δημοσ. 20 Νοεμβρίου 2012 Δημοσ. 20 Νοεμβρίου 2012 Δοκίμασε > PROGRAM diktis_mazas_anthropou; VAR ILIKIA,BAROS,YPSOS,DMS: REAL; BEGIN WRITE('TO YPSOS SAS:'); READLN(YPSOS); WRITE('TO BAROS SAS:'); READLN(BAROS); WRITE('H ILIKIA SAS:'); READLN(ILIKIA); IF ILIKIA>18 THEN BEGIN //<============================================ DMS:=BAROS/YPSOS^2; IF DMS<18.5 THEN WRITE('EISAI ADYNATO ATOMO')//; <============================================== ELSE IF DMS>=18.5 AND DMS<25 THEN WRITE('EISAI KANONIKO ATOMO')//; <============================================== ELSE IF DMS>=25 AND DMS<30 THEN WRITE('EISAI BARY ATOMO')//; <============================================== ELSE IF DMS>=30 THEN WRITE('EISAI YPERBARO ATOMO'); END //; <============================================== ELSE WRITE('TA STOIXEIA POU DWSATE DEN EINAI EGKYRA'); END; END.
migf1 Δημοσ. 20 Νοεμβρίου 2012 Δημοσ. 20 Νοεμβρίου 2012 Πέρα από τα συντακτικά λάθη με τα ; (πριν από else δεν θέλει ; ) και τα μη-ταιριασμένα begin-end, το σύμβολο ^ στην Pascal σημαίνει δείκτης και όχι δύναμη. Επίσης όταν έχεις περισσότερες από μια συνθήκες μέσα σε ένα if statement, πρέπει να τις εμπερικλείεις σε παρενθέσεις, ξεχωριστά την κάθε μία. Τέλος, θεωρείται καλή πρακτική να αρχικοποιείς πάντα τις μεταβλητές σου με default τιμές όταν τις πρωτο-ορίζεις, γιατί αλλιώς ξεκινάνε τη ζωή τους με ότι να 'ναι τιμές (στο συγκεκριμένο πρόγραμμα δεν έχεις πρόβλημα, αλλά καλό είναι να το συνηθίσεις από τώρα που είναι νωρίς). > program diktis_mazas_anthropou; var ilikia: Real = 0.0; baros: Real = 0.0; ypsos: Real = 0.0; dms: Real = 0.0; begin write('TO YPSOS SAS: '); readln(ypsos); write('TO BAROS SAS: '); readln(baros); write('H ILIKIA SAS: '); readln(ilikia); if ilikia > 18 then begin dms := baros / (ypsos * ypsos); if dms < 18.5 then writeln('EISAI ADYNATO ATOMO') else if (dms >= 18.5) AND (dms < 25.0) then writeln('EISAI KANONIKO ATOMO') else if (dms >= 25.0) AND (dms < 30.0) then writeln('EISAI BARY ATOMO') else if dms >= 30.0 then writeln('EISAI YPERBARO ATOMO'); end else writeln('TA STOIXEIA POU DWSATE DEN EINAI EGKYRA'); readln(); end.
Calculate13 Δημοσ. 20 Νοεμβρίου 2012 Μέλος Δημοσ. 20 Νοεμβρίου 2012 ευχαριστώ παιδιά !!! μόνο αλγόριθμο ξέρω και είπα να δοκιμάσω να κάνω ένα πρόγραμμα σε pascal . και δεν ξέρω καλά όλες τις εντολές . migf1 αυτό που έκανας στις μεταβλητές (var) δεν το ξέρω ... ισχύει αν το κάνω σε πρόγραμμα με αλγοριθμο(μιλάω για το μάθημα 3 λυκείου που κάνουμε αλγοριθμους σε πρόγραμμα) mvaggel αυτα δεν ξερω τι κανουν //<===
Demon Lord Δημοσ. 20 Νοεμβρίου 2012 Δημοσ. 20 Νοεμβρίου 2012 Αυτά τα // νομίζω πως σημαίνουν ότι δε θα εκτελεστεί κάποιο κομμάτι του κώδικα (ή αλγορίθμου στην περίπτωση μας)
migf1 Δημοσ. 20 Νοεμβρίου 2012 Δημοσ. 20 Νοεμβρίου 2012 ... migf1 αυτό που έκανας στις μεταβλητές (var) δεν το ξέρω ... ισχύει αν το κάνω σε πρόγραμμα με αλγοριθμο(μιλάω για το μάθημα 3 λυκείου που κάνουμε αλγοριθμους σε πρόγραμμα) Βάζει default τιμές στις μεταβλητές, δηλαδή τις αρχικοποιεί (variable initialization). Μπορεί ο compiler που χρησιμοποιείς να τις αρχικοποιεί από μόνος του σε 0 αν δεν το κάνεις εσύ, αλλά δεν μπορείς να βασιστείς σε αυτό, επειδή το πρότυπο της γλώσσας δεν εγγυάται αυτόματη αρχικοποίηση των μεταβλητών. Αυτό στην πράξη σημαίνει πως αν δεν αρχικοποιείς τις μεταβλητές που ορίζεις και θεωρείς δεδομένο πως αρχικοποιούνται αυτόματα σε 0, τότε μπορεί ο κώδικάς σου σε έναν άλλον compiler να σκάσει. mvaggel αυτα δεν ξερω τι κανουν //<=== Αυτά εκκινούν σχόλια μιας γραμμής. Ότι ακολουθεί μετά το τέλος της γραμμής δεν γίνεται compile, οπότε τα χρησιμοποιείς για να γράφεις σημειώσεις σε όποια σημεία του κώδικα κρίνεις πως χρειάζεται. Σημείωσε πως τα σχόλια στην στάνταρ Pascal περικλείονται σε { και } και μπορούν να περιέχουν πολλές γραμμές. Συνήθως για να είναι ευδιάκριτα, βάζουν και αστερίσκους, π.χ. > {* I am a Pascal comment *} {* So am I *} Νομίζω πως τα // δεν είναι στάνταρ Pascal (προέρχονται από την σύνταξη των C++ και C99). Οπότε και πάλι, αν θέλεις ο κώδικάς σου να γίνεται compile απροβλημάτιστα ακόμα κι αν αλλάξεις compiler, είναι καλή ιδέα να ακολουθείς όσο μπορείς τα στάνταρ πρότυπα, μιας και αυτά τα υποστηρίζουν οι περισσότεροι compilers (αν όχι όλοι). ΥΓ. Τέλος, η Pascal είναι πολύ καλή εκπαιδευτική γλώσσα, αλλά πλέον σπάνια χρησιμοποιείται... ακόμα και για εκπαιδευτικούς σκοπούς. Αν σε ενδιαφέρει να ασχοληθείς με τον κλάδο, ίσως είναι καλύτερη ιδέα να ξεκινήσεις με C (η οποία όμως είναι σαφώς πιο δύσκολη, και ως σύνταξη και ως γλώσσα). Το πρόγραμμα που έγραψες, σε C είναι κάπως έτσι... > #include <stdio.h> #include <stdlib.h> int main( void ) { float ilikia = 0.0; float baros = 0.0; float ypsos = 0.0; float dms = 0.0; printf( "TO YPSOS SAS: " ); scanf( "%f", &ypsos ); printf( "TO BAROS SAS: " ); scanf( "%f", &baros); printf( "H ILIKIA SAS: " ); scanf( "%f", &ilikia ); if ( ilikia > 18 ) { dms = baros / (ypsos * ypsos); if ( dms < 18.5 ) puts( "EISAI ADYNATO ATOMO" ); else if ( dms >= 18.5 && dms < 25.0 ) puts( "EISAI KANONIKO ATOMO" ); else if ( dms >= 25.0 && dms < 30.0 ) puts( "EISAI BARY ATOMO" ) else if ( dms >= 30.0 ) puts( "EISAI YPERBARO ATOMO" ); } else puts( "TA STOIXEIA POU DWSATE DEN EINAI EGKYRA" ); system("pause"); // Windows only return 0; } Αλλά, αν δεν σε ενδιαφέρει να εμβαθύνεις στον κλάδο, τότε νομίζω η Pascal είναι καλύτερη επιλογή για ξεκίνημα.
Calculate13 Δημοσ. 20 Νοεμβρίου 2012 Μέλος Δημοσ. 20 Νοεμβρίου 2012 ναι με ενδιαφέρει γιατι θελω να περάσω σε σχολή πληροφορικής τωρα ξερω στους αλγόριθμους μεχρι για-οσο αλλα οχι εμφολευμένες ... σιγα σιγα μαθαίνω έχω αρχίσει να κανω τα προγράμματα αλγορίθμων σε pascal . τωρα για c θα ασχοληθώ άμα περάσω
Calculate13 Δημοσ. 26 Δεκεμβρίου 2012 Μέλος Δημοσ. 26 Δεκεμβρίου 2012 @migf1 κατέβασα το προγραμμα NetBeans για να κανω τον κωδικα c που μου έδωσες προγραμμα αλλα οταν βαζω τον κωδικα μου βγαζει θαυμαστικα μπορεις να με βοηθήσεις ?
migf1 Δημοσ. 26 Δεκεμβρίου 2012 Δημοσ. 26 Δεκεμβρίου 2012 (επεξεργασμένο) Καλημέρα και χρόνια πολλά. Το NetBeans δεν συμπεριλαμβάνει C compiler, και από ότι είδα προτείνει είτε το mingw toolchain είτε το cygwin. Και τα 2 είναι μάλλον ταλαιπωρία να τα εγκαταστήσεις εφόσον είσαι ακόμα στην αρχή. Δοκίμασε είτε το Code:Blocks (μόλις είδα πως βγηκε νέα έκδοση) που έχει ξεχωριστό download που συμπεριλαμβάνει το mingw toolchain, είτε το Orwell Dev-C++ (επίσης περιλαμβάνει το mingw) είτε την Pelles C που είναι ολοκληρωμένο πακέτο ειδικά για C. Από τα 3 η πιο εύκολη και γρήγορη λύση είναι η Pelles C. Οι άλλες 2 υποστηρίζουν όμως και C++, με το Code::Blocks να είναι σαφώς ανώτερο σαν IDE (και πιο πολυπλοκο). Αν θες να "παιδευτείς" μπορείς να διαβάσεις εδώ πως μπορείς να στήσεις χειροκίνητα το mingw toolchain στα Windows, κι από εκεί και πέρα τα περισσότερα IDE τα κατεβάζεις σκέτα, χωρίς δλδ C/C++ compiler και θα στο βρίσκουν αυτόματα από το σύστημά σου κατά την εγκατάστασή τους (π.χ. το Code:Blocks και το NetBeans που έχω δοκιμάσει το κάνουν... το Orwell όχι, πρέπει να το ορίσεις μόνος σου στα Settings του). Στο παραπάνω link βασικά εξηγώ πως μπορούμε να στήσουμε το Notepad++ σαν IDE για όποια γλώσσα θέλουμε, αλλά 2-3 ποστς κάτω από το αρχικό εξηγώ πως μπορούμε να στήσουμε χειροκίνητα το mingw toolchain στα Windows. ΥΓ. Το Code::Blocks έχει leader έναν Έλληνα και υοστηρίζει και Ελληνικά. Στα Orwell DevC++ και Pelles C υπάρχουν ενσωματωμένες στις διανομές τους οι Ελληνικές μεταφράσεις που τους έχω κάνει Εφόσον όμως σκοπεύεις να ασχοληθείς με προγραμματισμό, σου προτείνω ανεπιφύλακτα να τα δουλέψεις στα Αγγλικά (και να μάθεις κι Αγγλικά αν δεν ξέρεις ήδη). EDIT: Χμ, τώρα που βλέπω και την εικόνα, ελπίζω να μην έγραψα όλο εκείνο το κατεβατό κι εσύ λέγοντας "θαυμαστικά" να εννοούσες τις κόκκινες υπογραμμίσεις Αν ναι, τότε δεν έχουν σχέση αυτά που σου έγραψα παραπάνω, απλώς απενεργοποίησε το SpellChecker του NetBeans. Επεξ/σία 26 Δεκεμβρίου 2012 από migf1
Calculate13 Δημοσ. 26 Δεκεμβρίου 2012 Μέλος Δημοσ. 26 Δεκεμβρίου 2012 χρόνια πολλά θέλω να ασχοληθώ με τον προγραμματισμό αλλα όχι απο τώρα ...όταν περάσω με το καλό σε μια σχολή πληροφορικής απλα ήθελα να δω πως γίνετε πρόγραμμα αυτός ο κώδικας . έψαξα λίγο στο νετ και βρήκα αυτο το πρόγραμμα στην photo αλλα δεν είναι αυτο που θέλω. ήθελα ενα προγραμμα που να του βαζω τον κώδικα και να μου το κανει προγραμμα για να δω πώς δουλεύει ... κατι σαν το Site: http://spinet.gr/glossomatheia/">γλωσσομάθεια που φτιάχνεις εναν αλγόριθμο σε προγραμμα και το τρέχει σαν πρόγραμμα σε μια μαυρη οθόνη . ευχαριστώ πάντως για την βοήθεια
pmav99 Δημοσ. 26 Δεκεμβρίου 2012 Δημοσ. 26 Δεκεμβρίου 2012 Άνοίξεις ένα καινούριο θέμα όπου θα περιγράφεις λίγο πιο αναλυτικά τι θες να βρεις. Εδώ είσαι εκτός θέματος. Πάντως αν θες να σπουδάσεις πληροφορική ή κάτι συναφές, δεν υπάρχει κανένας λόγος να μην ασχοληθείς από τώρα με κάποια γλώσσα.
Calculate13 Δημοσ. 26 Δεκεμβρίου 2012 Μέλος Δημοσ. 26 Δεκεμβρίου 2012 για να περάσω πρέπει να διαβάσω (μαθηματικα,φυσικη,...κλπ)
pmav99 Δημοσ. 26 Δεκεμβρίου 2012 Δημοσ. 26 Δεκεμβρίου 2012 Αν είσαι 3η λυκείου πάσο (αν και μάλλον προλαβαίνεις να ξεκλέψεις 2 απογεύματα για να δεις λίγη Python πχ). Αν όχι, τότε αυτά είναι απλά δικαιολογίες.
Calculate13 Δημοσ. 26 Δεκεμβρίου 2012 Μέλος Δημοσ. 26 Δεκεμβρίου 2012 λίγο pascal ξερω ...έχω αρχίσει και μετατρέπω τους αλγόριθμους απο ασκήσεις σε pascal . μπορώ να δω python αλλα για ποιο λόγο ?
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα