1 Ολυμπιάδα Πληροφορικής Μάθημα 3
2 Στόχοι μαθήματος Δομή Επανάληψης Εντολή while Εντολή for
Δομή Επανάληψης Χρησιμοποιείται όταν θέλουμε μια ομάδα εντολών να επαναληφθεί πολλές φορές. Για παράδειγμα: Εκτύπωση ενός πίνακα δεδομένων Υπολογισμός αθροίσματος ή γινομένου Έλεγχος τιμών μέχρι να δοθεί η σωστή τιμή. 3
Δομή Επανάληψης Παράδειγμα 1 Θέλουμε να βρούμε το άθροισμα των αριθμών από το 1 μέχρι το 100 Λύση 1 Sum= Λύση 2 Counter=1 Sum=0 Εφόσον counter<=100 { sum=sum+counter counter=counter+1 } 4
Δομή Επανάληψης Παράδειγμα 2 Θέλουμε να βεβαιωθούμε ότι ένας αριθμός είναι μεγαλύτερος του 0 Λύση Διάβασε num Εφόσον num<=0 { τύπωσε μήνυμα λάθους ξαναδιάβασε num } 5
Εντολή while Σύνταξη while(συνθήκη) { εντολές } Οι εντολές εκτελούνται εφόσον η συνθήκη είναι αληθής (true) 6
Παράδειγμα 1 Να δημιουργήσετε ένα πρόγραμμα που να δέχεται Ν ακέραιους αριθμούς και να βρίσκει το άθροισμά τους. Το πρόγραμμα να σταματά μόλις δοθεί ο αριθμός 0. 7
Παράδειγμα 1 #include using namespace std; int main(){ int num,sum=0; cin>>num; while(num!=0){ sum=sum+num; cin>>num; } cout<<sum<<endl; return 0; } 8
Εντολή for Σύνταξη for(αρχική τιμή μετρητή;έλεγχος;αύξηση μετρητή){ εντολές } Συνήθως χρησιμοποιούμε την εντολή for όταν ξέρουμε εκ των προτέρων τον αριθμό των επαναλήψεων 9
Παράδειγμα 2 Να δημιουργήσετε το πρόγραμμα που βρίσκει το άθροισμα των άρτιων αριθμών από το 0 μέχρι το
Παράδειγμα 2 #include using namespace std; int main(){ int i,sum=0; for(i=0; i<=10; i=i+2) { sum = sum + i; } cout<<sum<<endl; return 0; } 11
Παράδειγμα 3 Ένας αριθμός αποκαλείται αριθμός Armstrong όταν το άθροισμα των ψηφίων του υψωμένα στην 3 η μας δίνει τον ίδιο τον αριθμό. (π.χ. 153 = ). Να δημιουργήσετε το πρόγραμμα που τυπώνει όλους τους 3-ψήφιους αριθμούς Armstrong. 12
Παράδειγμα 3 # include using namespace std; int main(){ int sum,num,ek,dek,mon; for(num=100; num<=999; num++) { ek=num/100; dek=num%100/10; mon=num%100%10; sum=pow(ek,3)+ pow(dek,3)+ pow(mon,3); if (sum==num) cout<<num<<endl; } // end for return 0; } 13
Παράδειγμα 4 Να δημιουργήσετε το πρόγραμμα που τυπώνει στο αρχείο p4.out τον πίνακα πολλαπλασιασμού 10x10 14
Παράδειγμα 4 #include using namespace std; int main(){ FILE *fout; fout=fopen("p4.out","w"); int i,j; for (i=1; i<=10; i++) { for (j=1; j<=10; j++) fprintf (fout, "%4d", i*j); fprintf (fout,"\n"); } return 0; } 15