ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό Ενότητα 5: Εντολές Επανάληψης Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών Συστημάτων
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σκοποί ενότητας... 4 Περιεχόμενα ενότητας... 4 Ασκήσεις... 5 Άσκηση 1... 5 Άσκηση 2... 5 Άσκηση 3... 5 Άσκηση 4... 6 Άσκηση 5... 7 Ασκήσεις για τον σπουδαστή... 7 Άσκηση 1 (Άσκηση για τον σπουδαστή)... 7 Άσκηση 2 (Άσκηση για τον σπουδαστή)... 8
Σκοποί ενότητας Σκοπός της ενότητας είναι η πρακτική εξάσκηση του εκπαιδευόμενου με έννοιες που έχουν αναλυθεί στο αντίστοιχο τμήμα της θεωρίας, με την επίλυση ασκήσεων. Πιο αναλυτικά οι σκοποί είναι Να εξοικειωθούν με την χρήση των εντολών επανάληψης για εκτέλεση εντολών επαναληπτικά. Να γνωρίσουν την χρήση των εντολών break και continue για αλλαγή του τρόπου εκτέλεσης επαναλήψεων Να κατανοήσουν πότε και εντολής επανάληψης ενδείκνυται να χρησιμοποιήσουν για την υλοποίηση ενός προγράμματος Να μάθουν τον τρόπο υπολογισμού αθροισμάτων και γινομένων καθώς και την εύρεση πλήθους σε ένα πρόγραμμα Περιεχόμενα ενότητας Η ενότητα του εργαστηρίου περιλαμβάνει ασκήσεις για το μάθημα: Εισαγωγή στον προγραμματισμό.
Ασκήσεις Άσκηση 1 Να εμφανίζεται πολλαπλασιαστικός πίνακς των αριθμών1 έως 10 μεταξύ τους int main(int argc, char *argv[]) printf("\n"); int k,p,i; for (i=1;i<=10;i++) for ( k=1;k<=10;k++) p=i*k; printf("%4d ",p); printf("\n"); return EXIT_SUCCESS; Άσκηση 2 Μετά την εισαγωγή ενός ακέραιου αριθμού να ευρίσκεται και εμφανίζεται το άθροισμα των αριθμών από το 1 έως τον αριθμό αυτό. Σε περίπτωση που δοθεί αρνητικός αριθμός ο αριθμός να μετατρέπεται σε θετικό int main(int argc, char *argv[]) int i, num; int total=0; printf("dose erithmo gia prostesi "); scanf("%d",&num); if (num<0)num=-num; for(i=1;i<=num;i++) total+=i; if (i==num) printf("%d ",i); else printf("%d + ",i); printf("= %d \n\n\n", total); printf("athroisma 1 eos %d = %d\n\n\n", num,total); return 0; Άσκηση 3 Μπάλα ρίπτεται από ύψος και αναπηδά. Δεδομένου ότι η μπάλα αναπηδά στα 2/3 του προηγούμενου ύψους πόσες φορές αναπήδησε και ποιο το ύψος που φθάνει κάθε φορά. Να ληφθεί υπόψη ότι κάτω από το 0.2cm η μπάλα σταματά να αναπηδά. Το αρχικό ύψος να εισάγεται.
int main() const double orio=0.02; double ArxikoYpsos; int anapidiseis=0; printf("dose arxiko ipsos = "); scanf("%lf", &ArxikoYpsos); printf(" H balla peftei apo %.2f metra\n",arxikoypsos); double ipsos=arxikoypsos; while (ipsos >=orio) ipsos *=2./3.; anapidiseis++; printf("\nanapidisi %3d",anapidiseis); printf(" ipsos %8.2f meters", ipsos); printf("\n\nh balla anapidise %d fores\n\n", anapidiseis); return 0; Άσκηση 4 Πόσοι αριθμοί θα πρέπει να εισάγει ένας χρήστης από το πληκτρολόγιο ώστε το άθροισμά τους να ξεπεράσει το 100 και ποιο το συνολικό άθροισμα; int main(int argc, char *argv[]) int total, num; int plithos=0; total=0; while (total<100) printf("dose erithmo gia prostesi "); scanf("%d",&num); plithos++; total+=num; printf("\n\ndothikan %d plithos arithmon", plithos); printf("sinoliko athroisma %d\n\n\n", total); return 0;
Άσκηση 5 Να εισάγονται αρνητικοί και ακέραιοι αριθμοί και όταν εισαχθεί το μηδέν να εμφανίζεται το πλήθος των θετικών και αρνητικών αριθμών που εισήχθηκαν. Το πρόγραμμα να υλοποιηθεί με do while και με while. int main(int argc, char *argv[]) int m, thet, arn ; thet=0;arn=0; do printf("dose ena arithmo oxi miden"); scanf("%d",&m); if (m>0) thet++; else if (m<0) arn++; while(m!=0); printf("edoses %d thetikous %d arnitikou \n",thet,arn ); printf("==========================\n"); int n; thet=0, arn=0 ; while(1) printf("dose ena arithmo oxi miden"); scanf("%d",&n); if (n>0) thet++; else if (n<0) arn++; else break; printf("edoses %d thetikous %d arnitikou \n",thet,arn ); return EXIT_SUCCESS; Ασκήσεις για τον σπουδαστή (Κάποιες από τις ασκήσεις αυτές μπορούν να λυθούν στην διάρκεια του εργαστηρίου για εμβάθυνση ορισμένων εννοιών. Όμως συνήθως λύνονται με πρωτοβουλία του σπουδαστή και μπορούν να συζητηθούν με το διδάσκοντα καθηγητή του εργαστηρίου ) Άσκηση 1 (Άσκηση για τον σπουδαστή) Πόσοι αριθμοί που εισάγονται από το πληκτρολόγιο πρέπει να αφαιρεθούν από ένα αρχικό ποσό 1000 Ευρώ ώστε το υπόλοιπο να είναι 0. Να ληφθεί υπόψη ότι δεν επιτρέπεται να αφαιρεθεί αριθμός που να ξεπερνά το τρέχον υπόλοιπο. Η άσκηση αυτή προσομοιάζει το υπόλοιπο των χρημάτων που βρίσκεται σε ένα λογαριασμό
δηλαδή ο πελάτης έχει δικαίωμα να αποσύρει χρήματα αρκεί να μην υπερβεί το υπόλοιπο που βρίσκεται στον λογαριασμό του. Άσκηση 2 (Άσκηση για τον σπουδαστή) Να γραφεί το πρόγραμμα σε γλώσσα C που να βρίσκει το πλήθος ψηφίων ενός ακέραιου αριθμού. Να χρησιμοποιηθεί η εντολή do.while Κατόπιν να μετασχηματίστε την επαναληπτική διαδικασία do.. while και να επιλύεται το πρόβλημα με τον ίδιο τρόπο με χρήση της εντολής while. Βεβαιωθείτε ότι όταν εισάγεται ο αριθμός 0 εμφανίζεται και πάλι το σωστό πλήθος ψηφίων.