Lanike71 Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 4 λεπτά πριν, k33theod είπε Έτσι είναι. Και εδώ είναι μια περίτπωση που δεν θέλουμε το περιέχομενο του while να εκτελεστεί τουλάχιστον μία φορά. Γιατί δε θέλουμε; Αφού λέει ότι δίνει από το πληκτρολόγιο αριθμούς, άπειρες φορές. Η διαδικασία είναι "δίνω από το πληκτρολόγιο αριθμούς", ακόμα και αν ο πρώτος αριθμός τελικά είναι το -99.
bjj-p Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 39 λεπτά πριν, Lanike71 είπε Γιατί δε θέλουμε; Αφού λέει ότι δίνει από το πληκτρολόγιο αριθμούς, άπειρες φορές. Η διαδικασία είναι "δίνω από το πληκτρολόγιο αριθμούς", ακόμα και αν ο πρώτος αριθμός τελικά είναι το -99. επειδη δεν πρεπει να σπανε και οι υπολοιποι κανονες, οπως και το να γινει σωστη αρχικοποιηση των τιμων.
albNik Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 (επεξεργασμένο) Οι αριθμοι ειναι απειροι δλδ να μην τους αποθηκεύσεις (σε λιστα, πινακα κλπ). Θα πρεπει να αποθηκεύεις σε μεταβλητές μόνο το τρέχων σύνολο αριθμών, άθροισμα, ελάχιστο, μέγιστο κλπ. Αν εχεις διαβασει π.χ. εως τωρα 10 αριθμους με μεσο ορο = 1000 και μετα διαβασεις το 50 ποσο ειναι ο νεος μεσος ορος των 11 αριθμων; Επεξ/σία 30 Νοεμβρίου 2020 από albNik
k33theod Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 (επεξεργασμένο) @Lanike71 Ακόμα και για τα πιο απλά υπάρχουν διαφορετικές απόψεις μεταξύ των ειδικών 😀. Πλάκα κάνω δεν είμαι σε καμία περίπτωση ειδικός. Το σκεπτικό για μένα είναι όταν έχω βρόγχο τον κρατάω όσο πιο 'φτωχό' μπορώ. Νομίζω οι πράξεις που έβαλα είναι οι ελάχιστες δυνατές. Το if(num == -99) procedure = false; ασ πούμε το θεωρώ 'λάθος'. Θα εκτελεστεί 'άπειρες' φορές χωρίς λόγο. Με το σκεπτικό ότι δεν μπορώ να αφαιρέσω κάποια πράξη από το while αν το εκτελέσω μία φορά θα μου δώσει ένα numbers, ένα sum ένα max και ένα min που δεν χρειάζονται και θα εκτυπωθούν αν δεν αλλάξω κάτι στα print μετά το βρόγχο.. Επεξ/σία 30 Νοεμβρίου 2020 από k33theod
Lanike71 Δημοσ. 30 Νοεμβρίου 2020 Δημοσ. 30 Νοεμβρίου 2020 48 λεπτά πριν, k33theod είπε @Lanike71 Ακόμα και για τα πιο απλά υπάρχουν διαφορετικές απόψεις μεταξύ των ειδικών 😀. Πλάκα κάνω δεν είμαι σε καμία περίπτωση ειδικός. Το σκεπτικό για μένα είναι όταν έχω βρόγχο τον κρατάω όσο πιο 'φτωχό' μπορώ. Νομίζω οι πράξεις που έβαλα είναι οι ελάχιστες δυνατές. Το if(num == -99) procedure = false; ασ πούμε το θεωρώ 'λάθος'. Θα εκτελεστεί 'άπειρες' φορές χωρίς λόγο. Με το σκεπτικό ότι δεν μπορώ να αφαιρέσω κάποια πράξη από το while αν το εκτελέσω μία φορά θα μου δώσει ένα numbers, ένα sum ένα max και ένα min που δεν χρειάζονται και θα εκτυπωθούν αν δεν αλλάξω κάτι στα print μετά το βρόγχο.. Από αυτή την άποψη έχεις δίκιο, εκτελείται χωρίς λόγο. Απλά, έχω ως κύριο μέλημα να έχω τον ελάχιστο κώδικα, με βοηθά να τον διαβάσω-κατανοήσω πιο γρήγορα.
mariamx83 Δημοσ. 8 Δεκεμβρίου 2020 Μέλος Δημοσ. 8 Δεκεμβρίου 2020 ευχαριστώ πολύ όλους για τις απαντήσεις και το χρόνο σας.
papmel Δημοσ. 15 Δεκεμβρίου 2020 Δημοσ. 15 Δεκεμβρίου 2020 (επεξεργασμένο) Αναφορά σε κείμενο program Project2; {$APPTYPE CONSOLE} uses SysUtils; var userval:string; intval:int64; totalSum:int64; mesosoros:real; maxvalue:Int64; minvalue:Int64; totalNumbers:Int64; begin maxvalue:=0; minvalue:=high(int64); totalNumbers:=0; while true do begin write("Give Integer or -99") readln(userval); if userval<>'' Then begin intval:=StrtoInt64Def(userval,-99); case intval of -99: begin if totalNumbers=0 Then exit; writeln('totalNumbers:'+formatfloat('0',totalNumbers)); writeln('minvalue:'+formatfloat('0',minvalue)); writeln('maxvalue:'+formatfloat('0',maxvalue)); writeln('mesosoros:'+formatfloat('0.00000',mesosoros)); readln; halt; end; else inc(totalNumbers); if intval<minvalue then minvalue:=intval; if intval>=maxvalue then maxvalue:=intval; totalSum:=totalSum+intval; mesosoros:=totalSum / totalNumbers; end; end; end; end. Σε pascal αλλα η λογικη ειναι ιδια. Επεξ/σία 15 Δεκεμβρίου 2020 από papmel
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα