ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Σχετικά έγγραφα
ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

2 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ (επανάληψη στη γλώσσα C & εισαγωγή στη γλώσσα C++)

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

Εύρεση ν-στού πρώτου αριθμού

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 6 η

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ (επανάληψη στη γλώσσα C & εισαγωγή στη γλώσσα C++)

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 6 η

4.2 ΕΥΚΛΕΙΔΕΙΑ ΔΙΑΙΡΕΣΗ

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Αριθμητικά Συστήματα

Οι φυσικοί αριθμοί. Παράδειγμα

2 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ Κλάσεις, Αντικείμενα & Δομητές (Constructors)

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Οι Φυσικοί Αριθμοί. Παρατήρηση: Δεν στρογγυλοποιούνται αριθμοί τηλεφώνων, Α.Φ.Μ., κωδικοί αριθμοί κλπ. Πρόσθεση Φυσικών αριθμών

2.1 ΠΡΑΞΕΙΣ ΚΑΙ ΟΙ ΙΔΙΟΤΗΤΕΣ ΤΟΥΣ

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Γλώσσα Προγραμματισμού C

Ασκήσεις και δραστηριότητες

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Δομημένος Προγραμματισμός (ΤΛ1006)

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

viii. Α[7] Α[1] Α[3] + Α[8] 2. Δίνεται οι παρακάτω πίνακες ακεραίων Α και Β

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Τμήμα Τεχνολόγων Γεωπόνων - Φλώρινα

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

ΑΝΙΣΟΤΗΤΕΣ. Αν α-β>0 τότε α>β «Αν η διαφορά είναι θετικός αριθμός τότε ο πρώτος αριθμός δηλαδή το α είναι μεγαλύτερος από τον δεύτερο δηλαδή το β»

Υπολογιστικά & Διακριτά Μαθηματικά

4 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ

2. Να γράψετε έναν αριθμό που είναι μεγαλύτερος από το 3,456 και μικρότερος από το 3,457.

Αριθμητική Ανάλυση & Εφαρμογές

Καθηγητής Ε. Χ. ΖΙΟΥΛΑΣ

Χαρακτήρες διαιρετότητας ΜΚΔ ΕΚΠ Ανάλυση αριθμού σε γινόμενο πρώτων παραγόντων

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Επαναληπτικές Ασκήσεις. Ρίζου Ζωή

Μη γράφετε στο πίσω μέρος της σελίδας

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ

Επιμέλεια: Σπυρίδων Τζινιέρης-ΘΕΩΡΙΑ ΚΛΑΣΜΑΤΩΝ ΓΙΑ ΤΗΝ Α ΓΥΜΝΑΣΙΟΥ ΘΕΩΡΙΑ ΚΛΑΣΜΑΤΩΝ Α ΓΥΜΝΑΣΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

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

ΛΥΣΕΙΣ ΤΩΝ ΑΣΚΗΣΕΩΝ ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ ΤΙΣ ΓΙΟΡΤΕΣ (ΑΡΙΘΜΗΤΙΚΗ)

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ ΑΚΟΛΟΥΘΙΕΣ ΑΡΙΘΜΩΝ EΞΙΣΩΣΕΙΣ...47 ΠΡΟΛΟΓΟΣ... 9

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

Τμήμα Διοίκησης Τεχνολογίας Α/Α POSO Ν... SYN...

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Άσκηση 1 (κλιμακωτή χρέωση) Ένα γραφείο ενοικίασης αυτοκινήτων εφαρμόζει την παρακάτω τιμολογιακή πολιτική: Πάγιο 30 ευρώ

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

Μεταθέσεις και πίνακες μεταθέσεων

4.2 ΔΙΑΙΡΕΣΗ ΠΟΛΥΩΝΥΜΩΝ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΠΙΤΡΟΠΗ ΔΙΑΓΩΝΙΣΜΩΝ 76 ος ΠΑΝΕΛΛΗΝΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ Ο ΘΑΛΗΣ 14 Νοεμβρίου Ενδεικτικές λύσεις Β ΓΥΜΝΑΣΙΟΥ

6. Αφού δημιουργήσετε ένα πίνακα 50 θέσεων με ονόματα μαθητών να τον ταξινομήσετε αλφαβητικά με την μέθοδο της φυσαλίδας

ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΑΣΚΗΣΗ

Συνδυαστική Απαρίθμηση

* * * ( ) mod p = (a p 1. 2 ) mod p.

Πίνακες Γραμμικά Συστήματα

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΕΑΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

m + s + q r + n + q p + s + n, P Q R P Q P R Q R F G

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων; Στην αρχή

ΜΕΘΟΔΟΛΟΓΙΕΣ & ΑΣΚΗΣΕΙΣ ΓΙΑ ΤΗΝ ΑΛΓΕΒΡΑ ΤΗΣ Α ΛΥΚΕΙΟΥ

Μ Α Θ Η Μ Α Τ Ι Κ Α Α Γ Υ Μ Ν Α Σ Ι Ο Υ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Για i από 1 μέχρι Μ Εμφάνισε A[4,i] Τέλος_επανάληψης. (μονάδες 6) ΤΕΛΟΣ 1ης ΑΠΟ 7 ΣΕΛΙΔΕΣ

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

Ορισμένες σελίδες του βιβλίου

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version

ΕΞΕΤΑΣΗ ΙΑΝΟΥΑΡΙΟΥ (28/1/2011)

Θέμα Α 1. 1 Τα θέματα προέρχονται από Επαναληπτικά Διαγωνίσματα από το "Στέκι των Πληροφορικών" και Π. Τσιωτάκη

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

Αλγεβρικές Παραστάσεις

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ. 1ο ΓΕΛ ΠΕΥΚΗΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ B' ΤΕΤΡΑΜΗΝΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Εφαρμοσμένα Μαθηματικά ΙΙ

Transcript:

Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2017-2018 Τομέας Συστημάτων Παραγωγής Εξάμηνο Β Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης ΜΑΘΗΜΑ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (ΓΛΩΣΣΑ C) 26/02/2018 ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η ΑΣΚΗΣΗ 1 Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα υπολογίζει και θα εμφανίζει το αποτέλεσμα από το παρακάτω άθροισμα με ακρίβεια 10-2 και τουλάχιστον 30 όρους 1 3 3+ 5 5 7 + 2! 3! 4! Μετά τον υπολογισμό και την εμφάνιση του αποτελέσματος να εμφανίσετε το πλήθος των όρων που χρησιμοποιήθηκαν στον υπολογισμό. ΑΣΚΗΣΗ 2 Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα υπολογίζει και θα εμφανίζει το αποτέλεσμα από το παρακάτω άθροισμα με ακρίβεια 10-2 και τουλάχιστον 10 όρους 1 2! 3! 4! + + 23 34 45 56 Μετά τον υπολογισμό και την εμφάνιση του αποτελέσματος να εμφανίσετε το πλήθος των όρων που χρησιμοποιήθηκαν στον υπολογισμό. ΑΣΚΗΣΗ 3 Για ορισμένους θετικούς ακέραιους τριψήφιους αριθμούς ισχύει η εξής ιδιότητα: 1. υπολογίζουμε το άθροισμα των κύβων των ψηφίων του αριθμού 2. υπολογίζουμε το άθροισμα των ψηφίων του αριθμού 3. υπολογίζουμε τη διαφορά των τιμών που προέκυψαν από τα βήματα (1) και (2) και στη συνέχεια την τετραγωνική ρίζα του αριθμού που προκύπτει από την αφαίρεση. 4. υπολογίζουμε τον διψήφιο αριθμό που προκύπτει από τα 2 πρώτα ψηφία του αρχικού αριθμού και από αυτόν αφαιρούμε το τελευταίο ψηφίο του αρχικού αριθμού Οι αριθμοί από τα βήματα (3) και (4) είναι ίσοι! 1 + 5 + 3 1+ 5 + 3 = 15 3 3 3 3 Π.χ. ο αριθμός 153 : ( ) ( ) Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει, έναν σε κάθε γραμμή, όλους τους θετικούς τριψήφιους ακέραιους αριθμούς που πληρούν την παραπάνω ιδιότητα. 1

ΑΣΚΗΣΗ 4 Ο αριθμός 24 έχει την παρακάτω ιδιότητα. Εάν επιλέξουμε έναν οποιονδήποτε πρώτο (prime) αριθμό, μεγαλύτερο του 3, τον υψώσουμε στο τετράγωνο, και από το αποτέλεσμα που θα προκύψει αφαιρέσουμε την μονάδα τότε το 24 είναι πάντοτε ένας διαιρέτης αυτού του αποτελέσματος. Π.χ. Επιλέγω τον 17 (είναι πρώτος αριθμός). Το τετράγωνό του είναι 289. Αφαιρώντας 1 προκύπτει 288. Η διαίρεση 288/24 δίνει αποτέλεσμα 12. Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα επιβεβαιώνει την παραπάνω ιδιότητα για όλους τους πρώτους αριθμούς που είναι μεγαλύτεροι του 3 και μικρότεροι του 100. (ΥΠΟΔΕΙΞΗ : Το παρακάτω τμήμα κώδικα σε γλώσσα C βρίσκει αν ένας ακέραιος και θετικός αριθμός k 2 είναι πρώτος (prime) αριθμός ). i=2; flag=0; while ((i<=k/2) && (flag==0)) { if (k%i==0) flag=1; i++; } if (flag==0) printf("number %4d is prime \n",k); ΑΣΚΗΣΗ 5 Να γραφεί πρόγραμμα σε γλώσσα C που θα υπολογίζει και θα εμφανίζει το αποτέλεσμα από το παρακάτω άθροισμα : 1 1 1 1 1 S = 1 + + + 3 5 7 41 43 Μετά τον υπολογισμό και την εμφάνιση του αποτελέσματος να βρεθεί και να εμφανιστεί η διαφορά του με τον αριθμό π. ΑΣΚΗΣΗ 6 Να γραφεί πρόγραμμα σε γλώσσα C που θα υπολογίζει και θα εμφανίζει το αποτέλεσμα από το παρακάτω άθροισμα : 1 1 1 S = 6 1+ + + + 4 9 900 Μετά τον υπολογισμό και την εμφάνιση του αποτελέσματος να βρεθεί και να εμφανιστεί η διαφορά του με τον αριθμό π. ΑΣΚΗΣΗ - 7 Για ορισμένους ακέραιους και θετικούς αριθμούς ισχύει η παρακάτω ιδιότητα: Το άθροισμα που προκύπτει από την επαναλαμβανόμενη πρόσθεση είτε των ψηφίων του αριθμού είτε από την πρόσθεση του νέου αριθμού σε αυτόν που δημιουργήθηκε αμέσως πριν, ισούται με τον αριθμό που εξετάζεται π.χ. για τον αριθμό 75 : 7 + 5 = 12, 5 +12 = 17, 12 +17 = 29, 17 + 29 = 46, 29 + 46 = 75 Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει όλους τους αριθμούς που πληρούν αυτήν την ιδιότητα και είναι μικρότεροι του 1000. Στο τέλος θα πρέπει να εμφανίζεται και το πλήθος των αριθμών αυτών (ΥΠΟΔΕΙΞΗ: μερικοί τέτοιοι αριθμοί είναι οι : 14, 19, 28, 47,.) 2

ΑΣΚΗΣΗ 8 Να γραφεί πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει όλες τις τετράδες ακεραίων αριθμών, έστω αβγδ,,,, που : ( ) ανήκουν στο διάστημα [1,20], είναι διαφορετικές μεταξύ τους (δηλαδή να αποφύγετε την επανάληψη τετράδων όπως ( αβγδ,,, ), ( αγδβ,,, ), (,,, ) γαβδ κλπ), και ικανοποιούν την ιδιότητα: 2 2 2 2 α + β + γ = δ Παράδειγμα : 1 2 +4 2 +8 2 =9 2, αλλά όχι 1 2 +2 2 +2 2 =3 2, διότι επαναλαμβάνεται το 2. Επίσης: 1. Να βρεθεί και να εμφανιστεί το πλήθος αυτών των διαφορετικών μεταξύ τους τετράδων. 2. Να δημιουργηθεί ένας μονοδιάστατος αριθμητικός πίνακας ακεραίων που θα περιέχει τις πρώτες 10 τέτοιες τετράδες (αν υπάρχουν λιγότερες τότε θα περιέχει ακριβώς όσες υπάρχουν) ΑΣΚΗΣΗ - 9 Ορισμένοι ακέραιοι και θετικοί αριθμοί μπορούν να γραφούν στη μορφή mm kk, όπου mm, kk ακέραιοι και θετικοί αριθμοί μεγαλύτεροι ή και ίσοι του 2. Π.χ. 9=3 2 (mm = 3, kk = 2) 64 = 2 6 = 4 4 = 8 2 (mm = 2, kk = 6), (mm = 4, kk = 4), (mm = 8, kk = 2) (για ορισμένους αριθμούς υπάρχουν περισσότερα από ένα ζεύγη τιμών (mm, kk) ) Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει όλους τους αριθμούς που μπορούν να γραφούν με τη συγκεκριμένη μορφή, τουλάχιστον με ένα ζεύγος (mm, kk) και είναι μικρότεροι του 1000. Για όσους μπορούν να γραφούν με περισσότερα του ενός, διαφορετικά ζεύγη (mm, kk) να βρίσκονται, να μετρώνται και να εμφανίζονται όλα, μαζί με το πλήθος τους (π.χ. για τον αριθμό 64 θα εμφανίζονται τα ζεύγη : (2,6) (4,4) (8,2) πλήθος = 3). ΑΣΚΗΣΗ - 10 Θεωρείστε μια σειρά ακεραίων θετικών αριθμών στην περιοχή [1-999], πλήθους Ν (Ν = γνωστό). Η εισαγωγή των αριθμών μπορεί να γίνει με οποιονδήποτε τρόπο (εντολή scanf_s, χρήση συνάρτησης δημιουργίας τυχαίων αριθμών) αρκεί να υπάρχει έλεγχος εγκυρότητας τιμών. Για κάθε αριθμό της σειράς, έστω xx, να δημιουργήσετε ένα νέο αριθμό, έστω yy, που θα προκύπτει από την αντιστροφή των ψηφίων του και στη συνέχεια να βρείτε την απόλυτη τιμή της διαφοράς του αριθμού από τον νέο αριθμό, έστω zz, (δηλ. zz = xx yy ). Μια νέα σειρά, θα περιλαμβάνει εκείνους τους αριθμούς zz, για τους οποίους ισχύει : aa < zz < bb, όπου aa, bb δύο γνωστά όρια, και aa < bb. Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα δημιουργεί και θα εμφανίζει τη σειρά των αριθμών zz. Στο τέλος θα πρέπει να εμφανίζεται και το πλήθος αυτών των αριθμών. Παράδειγμα : Αριθμός =719, αντίστροφος =917, διαφορά zz = 719 917 = 202 Αν aa = 100, bb = 200 τότε ο αριθμός 202 δεν θα ανήκει στη νέα σειρά. 3

ΑΣΚΗΣΗ - 11 Θεωρείστε μια σειρά ακεραίων θετικών αριθμών στην περιοχή [1-999], πλήθους Ν (Ν = γνωστό). Η εισαγωγή των αριθμών μπορεί να γίνει με οποιονδήποτε τρόπο (εντολή scanf_s, χρήση συνάρτησης δημιουργίας τυχαίων αριθμών) αρκεί να υπάρχει έλεγχος εγκυρότητας τιμών. Χρησιμοποιώντας όλους τους αριθμούς της πρώτης σειράς να δημιουργηθεί μία δεύτερη σειρά αριθμών, από την πρώτη, που θα περιλαμβάνει όλους τους αριθμούς της πρώτης σειράς, που ικανοποιούν την παρακάτω ιδιότητα: Το άθροισμα του πηλίκου και του υπόλοιπου της διαίρεσης του αριθμού από την πρώτη σειρά, με το άθροισμα των ψηφίων του αριθμού να είναι ίσο. Παράδειγμα : Ο αριθμός 55. Άθροισμα των ψηφίων του =10. 55/10 = 5 και υπόλοιπο 5. Άρα ο αριθμός 55 θα ανήκει στη νέα σειρά αριθμών. Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα δημιουργεί και θα εμφανίζει τη δεύτερη σειρά αριθμών. Στο τέλος θα πρέπει να εμφανίζεται και το πλήθος των αριθμών της δεύτερης σειράς. ΑΣΚΗΣΗ - 12 Να γίνει εισαγωγή τιμών σε μονοδιάστατο πίνακα ακεραίων θετικών αριθμών στην περιοχή [1-999], Ν στοιχείων (Ν = γνωστό). Η εισαγωγή των αριθμών μπορεί να γίνει με οποιονδήποτε τρόπο (εντολή scanf_s, χρήση συνάρτησης δημιουργίας τυχαίων αριθμών), αρκεί να υπάρχει έλεγχος εγκυρότητας τιμών. Να δημιουργηθεί νέος πίνακας που θα περιλαμβάνει τις διαφορές των στοιχείων του αρχικού πίνακα, ανά ζεύγη, κατ απόλυτη τιμή, ως εξής (διαφορά του 1 ου με το Ν-οστό στοιχείο, του 2 ου στοιχείου με το Ν-1-οστό στοιχείο κ.ο.κ.), ταξινομημένες σε αύξουσα διάταξη, χωρίς να χρησιμοποιηθεί διαδικασία ταξινόμησης. Αν ο αριθμός Ν είναι άρτιος τότε θα υπολογιστούν οι διαφορές για τα αντίστοιχα ζεύγη. Παράδειγμα: Αρχικός πίνακας, Ν=10 14 7 91 27 53 72 8 5 33 44 Διαφορές : 14-44 =30, 7-33 =26, 91-5 =87, 27-8 =19, 53-72 =19, Νέος πίνακας σε αύξουσα διάταξη: 19 19 26 30 87 ΑΣΚΗΣΗ - 13 Να γραφεί πρόγραμμα σε γλώσσα C για το παρακάτω πρόβλημα: Να δημιουργηθεί, χρησιμοποιώντας αποκλειστικά τυχαίους αριθμούς, μονοδιάστατος αριθμητικός πίνακας ακεραίων θετικών αριθμών Ν θέσεων, όπου Ν είναι θετικός και άρτιος αριθμός (Ν = γνωστό) στον οποίο θα α, β π.χ. για Ν=14 υπάρχουν ζεύγη τιμών, έστω ( ) 45 3 18 2 9 4 91 1 77 8 50 3 7 2 Για τις τιμές αβ, πρέπει να ισχύει ότι: 0 < α 100 και 0 < β < 10. Να δημιουργηθεί και να εμφανιστεί ένας νέος πίνακας που θα περιέχει τα γινόμενα όλων των στοιχείων των ζευγών ( α, β ) δηλ. α β, σε αύξουσα διάταξη, χωρίς να χρησιμοποιηθεί διαδικασία ταξινόμησης. Π.χ. για το παράδειγμα ο νέος πίνακας θα είναι: 14 36 36 91 135 150 616 4

ΑΣΚΗΣΗ 14 Να γραφεί πρόγραμμα σε γλώσσα C για το παρακάτω πρόβλημα: Να δημιουργηθούν, χρησιμοποιώντας αποκλειστικά τυχαίους αριθμούς (συνάρτηση rand()), δύο μονοδιάστατοι αριθμητικοί πίνακες ακεραίων αριθμών Ν θέσεων (π.χ. Ν = 20), έστω Α και Β ως εξής: Ο πίνακας Α περιέχει θετικούς ακεραίους αριθμούς στο διάστημα [0,99]. Κάθε αριθμός πρέπει να υπάρχει μία μόνον φορά. Ο πίνακας Β περιέχει τη συχνότητα εμφάνισης του αντίστοιχου στοιχείου του πίνακα Α (περιοχή τιμών για τα στοιχεία του πίνακα Β : [1,10]). Στη συνέχεια : 1. να γίνει εμφάνιση των πινάκων Α και Β. 2. να υπολογιστεί και να εμφανιστεί η ποσότητα: N α β i i= 1 N i= 1 β i i ΑΣΚΗΣΗ - 15 Οι αριθμοί Rhonda (ακέραιοι και θετικοί αριθμοί) διαθέτουν την ακόλουθη ιδιότητα: Το γινόμενο των ψηφίων ενός αριθμού Rhonda είναι ίσο με το γινόμενο του αριθμού 10 επί το άθροισμα των διαιρετών του που είναι πρώτοι αριθμοί. Παράδειγμα : ο αριθμός 1568 είναι αριθμός Rhonda διότι 1568 = 2 2 2 2 2 7 7 1 5 6 8 = 240 240 = 10 (2 + 2 + 2 + 2 + 2 + 7 + 7) Να γραφεί αλγόριθμος ή πρόγραμμα σε γλώσσα C που θα βρίσκει όλους τους τετραψήφιους αριθμούς Rhonda ( περιοχή [1000, 9999] ) και θα τους καταχωρεί σε έναν μονοδιάστατο αριθμητικό πίνακα. Στη συνέχεια θα εμφανίζει τα περιεχόμενα του πίνακα καθώς και το πλήθος των στοιχείων του. (ΥΠΟΔΕΙΞΗ : το πλήθος των τετραψήφιων αριθμών Rhonda είναι μικρότερο του 20). (ΥΠΟΔΕΙΞΗ 1 η : Το παρακάτω τμήμα κώδικα σε γλώσσα C βρίσκει αν ένας ακέραιος και θετικός αριθμός kk 2 είναι πρώτος (prime) αριθμός ). i=2; flag=0; while ((i<=k/2) && (flag==0)) { if (k%i==0) flag=1; i++; } if (flag==0) printf("number %4d is prime \n",k); (ΥΠΟΔΕΙΞΗ 2 η : Οι αριθμοί Rhonda στο διάστημα [1000, 9999] είναι οι εξής : 1568, 2835, 4752, 5265, 5439, 5664, 5824, 5832, 8526). 5

ΑΣΚΗΣΗ - 16 Οι αριθμοί Mersenne (ακέραιοι και θετικοί), έστω MM nn έχουν τη μορφή MM nn = 2 nn 1 Ένας αριθμός Mersenne λέγεται Mersenne prime αν είναι πρώτος αριθμός και ο αριθμός nn είναι πρώτος αριθμός. Π.χ. ο αριθμός 3 είναι Mersenne prime. Να γραφεί πρόγραμμα σε γλώσσα C που θα καταχωρεί σε μονοδιάστατο αριθμητικό πίνακα όλους τους Mersenne prime αριθμούς που είναι μικρότεροι του 10000. Στο τέλος να εμφανιστούν τα στοιχεία του πίνακα καθώς και το πλήθος τους. (ΣΧΟΛΙΟ : οι Mersenne prime που είναι μικρότεροι του 10000 είναι : 3, 7, 31, 127, 8191 ). ΑΣΚΗΣΗ - 17 Ένας αριθμός Proth είναι ένας ακέραιος και θετικός αριθμός NN που μπορεί να εκφραστεί στη μορφή: όπου kk είναι ένας περιττός ακέραιος αριθμός nn ένας θετικός ακέραιος αριθμός και 2 nn > kk NN = kk 2 nn + 1 Να γραφεί πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει σε αύξουσα σειρά όλους τους αριθμούς Proth που είναι μικρότεροι του 1000. Στο τέλος θα πρέπει να εμφανίζεται και το πλήθος τους. ΔΕΝ ΠΡΕΠΕΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΔΙΑΔΙΚΑΣΙΑ ΤΑΞΙΝΟΜΗΣΗΣ!!! ΠΑΡΑΔΕΙΓΜΑ : οι δέκα πρώτοι κατά σειρά αριθμοί Proth είναι : 3, 5, 9, 13, 17, 25, 33, 41, 49, 57 ΣΧΟΛΙΑ : Οι τιμές προκύπτουν για διάφορους συνδυασμούς των kk, nn. Π.χ. Για kk = 1 και nn = 1, 2, 3, 4, 5 ισχύει η ανισότητα 2 nn > kk και προκύπτουν οι τιμές NN = 3, 5, 9, 17, 33 Ομοίως για kk = 3 και nn = 2, 3, 4 ισχύει η ανισότητα 2 nn > kk και προκύπτουν οι τιμές NN = 13, 25, 49 Η τιμή ΝΝ = 41 προκύπτει για kk = 5, nn = 3 ΑΣΚΗΣΗ - 18 Ένας ακέραιος και θετικός αριθμός ονομάζεται αριθμός Smith εφόσον δεν είναι πρώτος (prime) και το άθροισμα των ψηφίων του είναι ίσο με το άθροισμα των ψηφίων των διαιρετών του που είναι πρώτοι αριθμοί (εξαιρώντας από τους διαιρέτες το 1). Παραδείγματα : 274 = 2 137 2 + 7 + 4 = 2 + (1 + 3 + 7) = 13 4937775 = 3 5 5 65837 4 + 9 + 3 + 7 + 7 + 7 + 5 = 3 + 5 + 5 + (6 + 5 + 8 + 3 + 7) = 42 Να γραφεί πρόγραμμα σε γλώσσα C που θα καταχωρεί σε μονοδιάστατο αριθμητικό πίνακα όλους τους αριθμούς Smith που είναι μικρότεροι του 1000. Στο τέλος να εμφανιστούν τα στοιχεία του πίνακα καθώς και το πλήθος τους. (ΣΧΟΛΙΟ : μερικοί αριθμοί Smith, ξεκινώντας από την αρχή : 4, 22, 27, 58, 85, 94, 121, 166, 202, 265, 274, 319, 346,...). 6

ΑΣΚΗΣΗ 19 Η καταλανική τριάδα (Catalan s triangle) είναι το τρίγωνο αριθμών Κάθε στοιχείο είναι το άθροισμα του στοιχείου που βρίσκεται ακριβώς πάνω από αυτό και αυτού που βρίσκεται αριστερά του. Π.χ. 9=5+4. Να γραφεί πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει το σχετικό τρίγωνο καταλανικών τριάδων για nn = 20. ΑΣΚΗΣΗ 20 Ένας ακέραιος και θετικός αριθμός kk λέγεται kk ssssssssssh εάν δεν έχει ως διαιρέτες πρώτους αριθμούς που είναι μεγαλύτεροι του kk. Ο πίνακας που ακολουθεί δείχνει ορισμένους kk ssssssssssh αριθμούς για μικρές τιμές του kk. kk kk ssssssssssh 2 1, 2, 4, 8, 16, 32, 64, 128, 256, 512,... 3 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24,... 5 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16,... 7 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15,... 11 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14,... Να γραφεί πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει όλους τους kk ssssssssssh αριθμούς που είναι μικρότεροι του 200 για όλους τους πρώτους αριθμούς kk που είναι μικρότεροι του 100. ΑΣΚΗΣΗ 21 Η παραγωγή ενός προϊόντος για Ν περιόδους παραγωγής (Ν = γνωστό) καταχωρείται σε ένα μονοδιάστατο πίνακα πραγματικών θετικών αριθμών Α. Σε κάθε μία από τις Ν περιόδους αντιστοιχούν 2 βάρδιες παραγωγής, η ημερήσια βάρδια και η νυχτερινή βάρδια. Να γραφεί πρόγραμμα σε γλώσσα C που θα υλοποιεί τα εξής: 1. θα εισάγει στον πίνακα Α τα δεδομένα παραγωγής, σε μορφή ζευγών ανά περίοδο παραγωγής. Το 1 ο στοιχείο κάθε ζεύγους αντιστοιχεί στην ημερήσια παραγωγή και το 2 ο στοιχείο στη νυχτερινή παραγωγή. Πρέπει να εξασφαλίσετε ότι όλα τα δεδομένα θα είναι θετικοί πραγματικοί αριθμοί στην περιοχή [30.0, 200.0]. 2. θα δημιουργεί στη συνέχεια δύο νέους πίνακες με ονόματα H και Β που θα περιέχουν : a. ο πίνακας Η τις ποσότητες ημερήσιας παραγωγής που είναι μεγαλύτερες κατά 15% από τον μέσο όρο της συνολικής ημερήσιας παραγωγής των Ν περιόδων. b. Αν LIMIT ( = ΓΝΩΣΤΟ ) είναι η επιθυμητή συνολική παραγωγή των Ν περιόδων κατά τη νυχτερινή βάρδια, ο πίνακας Β θα περιέχει μόνον εκείνες τις ποσότητες νυχτερινής παραγωγής που αποτελούν το πλεόνασμα της επιθυμητής συνολικής παραγωγής κατά τη νυχτερινή βάρδια. 3. Θα εμφανίζει τα στοιχεία των πινάκων Η και Β. 7

ΠΑΡΑΔΕΙΓΜΑ για Ν=6, LIMIT =250.0 Περίοδος 1 2 3 4 5 6 Βάρδια Η B Η B Η B Η B Η B Η B Παραγωγή 150. 80. 190. 70. 195. 170. 30. 55. 100. 95. 145. 125. Για το ερώτημα 2b : 80.0 + 70.0 + 170.0 =320.0 >250.0 οπότε ο πίνακας Β θα είναι 70.0 ( = 320.0-250.0 ) 55.0 95.0 125.0 ΑΣΚΗΣΗ 22 Το παρακάτω τμήμα κώδικα σε γλώσσα C βρίσκει αν ένας ακέραιος και θετικός αριθμός kk 2 είναι πρώτος (prime) αριθμός. i=2; flag=0; while ((i<=k/2) && (flag==0)) { if (k%i==0) flag=1; i++; } if (flag == 0) printf("number %4d is prime \n",k); Θεωρείστε σε σειρές (ανά 10 σε κάθε σειρά) πρώτους (primes) ακέραιους αριθμούς. Η σειρά με αριθμό i = 1 ξεκινά από τον πρώτο αριθμό 2. Η επόμενη σειρά περιλαμβάνει τους επόμενους 10 πρώτους (primes) ακέραιους αριθμούς καταχωρημένους σε φθίνουσα διάταξη. Οι σειρές δημιουργούνται επαναληπτικά (σε αύξουσα και φθίνουσα διάταξη των πρώτων αριθμών αντίστοιχα) μέχρις ότου το άθροισμα των στοιχείων που βρίσκονται στη διαγώνιο που φαίνεται με έντονο περίγραμμα (παρακάτω) υπερβεί μια δεδομένη τιμή n (n = γνωστό, δίνεται ως σταθερά στην αρχή του προγράμματος). Π.χ. για n = 500 δημιουργούνται οι παρακάτω σειρές: i = 1 2 3 5 7 11 13 17 19 23 29 i = 2 71 67 61 59 53 47 43 41 37 31 i = 3 73 79 83 89 97 101 103 107 109 113 i = 4 173 167 163 157 151 149 139 137 131 127 i = 5 179 181 191 193 197 199 211 223 227 229 Το άθροισμα 29+37+107+139+199=511 είναι μεγαλύτερο του n = 500 και η επανάληψη σταματά. Να γραφεί πρόγραμμα σε γλώσσα C που : 1. θα βρίσκει και θα εμφανίζει τις σειρές αυτές (τα στοιχεία σε πλαίσιο προφανώς δεν θα εμφανίζονται σε πλαίσιο!). 2. θα καταχωρεί σε ένα μονοδιάστατο πίνακα ακεραίων θετικών αριθμών, έστω X, όλα τα στοιχεία που ανήκουν στην προαναφερόμενη διαγώνιο. Δηλ. ο πίνακας Χ, στο τέλος, θα είναι = {29,37,107,139,199} 3. Θα εμφανίζει τα στοιχεία του πίνακα Χ καθώς και το άθροισμα των στοιχείων που. 8

ΑΣΚΗΣΗ 23 Σε ένα Πανεπιστημιακό Τμήμα πρόκειται να καταρτιστεί μία λίστα για τα μαθήματα της εξεταστικής περιόδου. Για κάθε μάθημα είναι γνωστά: 1. Ο κωδικός του μαθήματος (ακέραιος στην περιοχή [1-99] ) 2. Το εξάμηνο στο οποίο ανήκει (ακέραιος στην περιοχή [1-9]) 3. Το πλήθος των φοιτητών & φοιτητριών που πρόκειται να δώσουν εξετάσεις (ακέραιος 1-999) Να γραφεί πρόγραμμα σε γλώσσα C που θα υλοποιεί τα εξής : 1. Θα εισάγει δεδομένα σε έναν πίνακα ακεραίων με 3*Ν σε πλήθος θέσεις, σύμφωνα με τα παραπάνω. Ο γνωστός αριθμός Ν >0 δηλώνει το πλήθος των μαθημάτων για τα οποία θα πραγματοποιηθούν εξετάσεις (δηλ. ενδεχομένως για κάποια μαθήματα δεν θα διενεργηθούν εξετάσεις). Η εισαγωγή θα γίνει αποκλειστικά και μόνο με χρήση τυχαίων αριθμών - συνάρτηση rand( ) - στα όρια που έχουν δοθεί για κάθε τριάδα στοιχείων. ΠΡΟΣΟΧΗ!! Ο κάθε κωδικός μαθήματος θα πρέπει να υπάρχει μόνον μία φορά στον πίνακα!! 2. Θα εμφανίζει μία λίστα των μαθημάτων που πρόκειται να εξεταστούν, ανά εξάμηνο. Η λίστα θα είναι ταξινομημένη κατά αύξουσα σειρά εξαμήνου και κατά αύξουσα σειρά του κωδικού μαθήματος μέσα στο κάθε εξάμηνο, ΧΩΡΙΣ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΔΙΑΔΙΚΑΣΙΕΣ ΤΑΞΙΝΟΜΗΣΗΣ! Στο τέλος κάθε εξαμήνου θα πρέπει να εμφανίζεται ο μέσος όρος των ατόμων που πρόκειται να δώσουν εξετάσεις. Αριθμητικό ΠΑΡΑΔΕΙΓΜΑ, Ν=8. 15 2 45 49 7 190 74 8 77 91 1 120 30 1 170 72 8 71 55 7 115 77 8 70 Αποτελέσματα : ΕΞΑΜΗΝΟ : 1 μαθήματα : 30, 91 μέσος όρος: 145 (=(170+120)/2 ) ΕΞΑΜΗΝΟ : 2 μαθήματα : 15 μέσος όρος: 45 ΕΞΑΜΗΝΟ : 7 μαθήματα :49, 55 μέσος όρος: 153 (=(190+115/2 ) ΕΞΑΜΗΝΟ : 8 μαθήματα :72, 74, 77 μέσος όρος: 73 (=(71+77+70)/3) ΑΣΚΗΣΗ 24 Μία παραγωγική μονάδα κατασκευάζει εξαρτήματα που στη συνέχεια χρησιμοποιούνται για τη συναρμολόγηση προϊόντων. Ο κωδικός κάθε εξαρτήματος είναι μοναδικός και χρησιμοποιείται μόνον σε ένα από τα προϊόντα. Για κάθε εξάρτημα είναι γνωστά: 1. Κωδικός εξαρτήματος (ακέραιος αριθμός στην περιοχή [1-999]), 1. Κωδικός προϊόντος ( ακέραιος αριθμός στην περιοχή [1-10] ), 2. Πλήθος τεμαχίων του εξαρτήματος που χρησιμοποιούνται για την παραγωγή μίας μονάδας του προϊόντος ( ακέραιος αριθμός >0 ) Να γραφεί πρόγραμμα σε γλώσσα C που θα υλοποιεί τα εξής: 1. Θα εισάγει δεδομένα σε έναν πίνακα ακεραίων με 3*Ν σε πλήθος θέσεις, σύμφωνα με τα παραπάνω. Ο γνωστός αριθμός Ν>0 δηλώνει το πλήθος των εξαρτημάτων που κατασκευάζονται στην παραγωγική μονάδα. Η εισαγωγή θα γίνει αποκλειστικά και μόνο με χρήση τυχαίων αριθμών - συνάρτηση rand( ) - στα όρια που έχουν δοθεί, για κάθε τριάδα στοιχείων. ΠΡΟΣΟΧΗ!! Ο κάθε κωδικός εξαρτήματος θα πρέπει να υπάρχει μόνον μία φορά στον πίνακα!! 2. Θα εμφανίζει μία λίστα των εξαρτημάτων που κατασκευάζονται, ανά προϊόν. Η λίστα θα είναι ταξινομημένη κατά αύξουσα σειρά του κωδικού προϊόντος και κατά αύξουσα σειρά του κωδικού εξαρτήματος μέσα στο κάθε προϊόν, ΧΩΡΙΣ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΔΙΑΔΙΚΑΣΙΕΣ ΤΑΞΙΝΟΜΗΣΗΣ! Στο τέλος κάθε προϊόντος θα πρέπει να εμφανίζεται και το συνολικό πλήθος των τεμαχίων όλων των εξαρτημάτων του προϊόντος. 9

Αριθμητικό ΠΑΡΑΔΕΙΓΜΑ, Ν=8. 15 9 4 197 3 10 514 9 7 911 4 120 305 4 17 72 3 11 770 4 5 222 3 8 Αποτελέσματα : ΠΡΟΪΌΝ : 3 ΕΞΑΡΤΗΜΑΤΑ : 72, 197, 222 σύνολο τεμαχίων: 29 ΠΡΟΪΌΝ : 4 ΕΞΑΡΤΗΜΑΤΑ :305, 770, 911 σύνολο τεμαχίων: 142 ΠΡΟΪΌΝ : 9 ΕΞΑΡΤΗΜΑΤΑ :15, 514 σύνολο τεμαχίων: 11 ΑΣΚΗΣΗ 25 Να γραφεί κώδικας σε γλώσσα C για τον παρακάτω αλγόριθμο: 1. Δημιουργία ενός θετικού τυχαίου αριθμού m : 2 m 1500 2. Εύρεση όλων των διαιρετών του m που είναι πρώτοι αριθμοί (prime numbers), βάσει του κώδικα που παρατίθεται στη συνέχεια 3. Προσδιορισμός του αριθμού n που θα είναι το γινόμενο των γνήσιων διαιρετών του αριθμού m με περιττό πλήθος εμφανίσεων. Κάθε τέτοιος γνήσιος διαιρέτης θα συμμετέχει μόνον μία φορά στον προσδιορισμό του αριθμού n. 4. Προσδιορισμός του αριθμού z= mn 5. Εύρεση του αριθμού k για τον οποίο ισχύει ότι 2 k = mn 6. Εμφάνιση των αριθμών mnk,, σύμφωνα με την προδιαγραφή του παραδείγματος. Παράδειγμα, έστω m = 90 Διαιρέτες (γνήσιοι) του 90 : 2, 3, 3, 5 Διαιρέτες με περιττό πλήθος εμφανίσεων: 2, 5 n = 2 5 = 10, z = 90 10 = 900, m= 90, n= 10, k = 30 2 k = 30 (30 = 900) (ΥΠΟΔΕΙΞΗ : Το παρακάτω τμήμα κώδικα σε γλώσσα C βρίσκει αν ένας ακέραιος και θετικός αριθμός k 2 είναι πρώτος (prime) αριθμός ). i=2; flag=0; while ((i<=k/2) && (flag==0)) { if (k%i==0) flag=1; i++; } if (flag==0) printf("number %4d is prime \n",k); 10

ΑΣΚΗΣΗ 26 Θεωρείστε Ν πόλεις (Ν= γνωστό), για τις οποίες είναι γνωστές οι συντεταγμένες τους x, y ένα γνωστό ζεύγος αριθμητικών θετικών τιμών τύπου double για κάθε πόλη. Οι συντεταγμένες δημιουργούνται τυχαία στην περιοχή τιμών [0.0, 999.0] και καταχωρούνται σε έναν μονοδιάστατο αριθμητικό πίνακα που περιλαμβάνει τις συντεταγμένες για όλες τις πόλεις. Να γραφεί πρόγραμμα σε γλώσσα C που θα βρίσκει την πόλη (ή τις πόλεις) που απέχουν τη μικρότερη συνολική απόσταση από όλες τις υπόλοιπες πόλεις, με ακρίβεια 10-2. Το πρόγραμμα θα εμφανίζει τον α/α της πόλης (ή των πόλεων) καθώς και την μικρότερη συνολική απόσταση. ΠΑΡΑΔΕΙΓΜΑ για Ν=5 (2.5, 5.0), (5.1, 3.0), (1.0, 9.0), (5.4, 54.0), (5.5, 2.1) Η πόλη με την μικρότερη συνολική απόσταση, 60.81, είναι η πόλη με συντεταγμένες (2.5, 5.0) Η απόσταση δύο σημείων ( x1, y 1) και ( x2, y 2) στον δισδιάστατο καρτεσιανό χώρο είναι : ( x x ) + ( y y ) 2 2 2 1 2 1 i i ΑΣΚΗΣΗ 27 Θεωρείστε έναν μονοδιάστατο πίνακα ακεραίων θετικών αριθμών Ν θέσεων (Ν= γνωστό). 1. Να εισάγετε τιμές στον πίνακα με χρήση τυχαίων αριθμών στην περιοχή [1,99]. 2. Ορίζουμε ως pivot το στοιχείο που υπάρχει στην αρχική (1 η θέση) του πίνακα. Να διαμερίσετε τον πίνακα, δημιουργώντας έναν νέο πίνακα, σε δύο τμήματα ως εξής: ο νέος πίνακας περιλαμβάνει στο πρώτο του τμήμα, σε αύξουσα διάταξη, χωρίς να χρησιμοποιηθεί διαδικασία ταξινόμησης, όλες τις τιμές του αρχικού πίνακα που είναι μικρότερες ή και ίσες από την τιμή που υπάρχει στη θέση pivot. Στη συνέχεια, υπάρχει η τιμή της θέσης pivot και ακολουθούν, στο δεύτερο τμήμα του, οι τιμές του αρχικού πίνακα που είναι μεγαλύτερες της τιμής που υπάρχει στη θέση pivot, όπως εμφανίζονται στον αρχικό πίνακα, από αριστερά προς τα δεξιά. 3. Να εμφανίσετε τους δύο πίνακες ΠΑΡΑΔΕΙΓΜΑ για Ν=10 αρχικός πίνακας 7 2 7 14 16 3 8 1 27 5 νέος πίνακας 1 2 3 5 7 7 14 16 8 27 11

ΑΣΚΗΣΗ 28 Θεωρείστε έναν πίνακα που περιέχει δυαδικά ψηφία, δηλ. 0 και 1, υπό μορφή αριθμών τύπου short int, μεγέθους Ν (Ν = γνωστό, άρτιος αριθμός και Ν>200). Να υλοποιήσετε υπό μορφή προγράμματος σε γλώσσα C την παρακάτω διαδικασία: Εξέταση στο αρχικό ήμισυ του πίνακα, του πλήθους των 1. Εάν το πλήθος αυτό είναι μονό τότε η εξέταση θα συνεχιστεί στο πρώτο ήμισυ του εξεταζόμενου μέρους του πίνακα (δηλ. στο αρχικό ¼ των στοιχείων του αρχικού πίνακα), ενώ, εάν το πλήθος αυτό είναι άρτιο, η εξέταση θα συνεχιστεί στο δεύτερο ήμισυ δηλ. στο 2 ο τέταρτο των στοιχείων του αρχικού πίνακα). Σε κάθε εξέταση (διάσχιση) μέρους του εξεταζόμενου τμήματος του πίνακα θα εμφανίζετε: τη θέση του 1 ου και του τελευταίου στοιχείου της εξεταζόμενης περιοχής και το πλήθος των 1. Η διαδικασία ολοκληρώνεται όταν το μέγεθος του εξεταζόμενου πίνακα γίνει 1 (δηλ. ελάχιστο) ΠΑΡΑΔΕΙΓΜΑ για Ν=16 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 BHMA 1 1 1 0 1 0 1 1 0 Πλήθος των 1 = 5, Θέση του 1 ου στοιχείου 1 η, θέση τελευταίου στοιχείου 8η 1 1 0 1 Πλήθος των 1 = 3, Θέση του 1 ου στοιχείου 1 η, θέση τελευταίου στοιχείου 4η 1 1 Πλήθος των 1 = 2, Θέση του 1 ου στοιχείου 1 η, θέση τελευταίου στοιχείου 2η 1 Πλήθος των 1 = 1, Θέση του 1 ου στοιχείου 1 η, θέση τελευταίου στοιχείου 1η, μέγεθος του πίνακα = 1, ΤΕΛΟΣ ΔΙΑΔΙΚΑΣΙΑΣ ΑΣΚΗΣΗ 29 Η απόσταση δύο σημείων 1 1 1 ( x, y, z ) και ( x2, y2, z 2) στον τρισδιάστατο καρτεσιανό χώρο είναι : ( x x ) + ( y y ) + ( z z ) 2 2 2 2 1 2 1 2 1 Δύο μονοδιάστατοι αριθμητικοί πίνακες, έστω a και b, περιέχουν τριάδες τιμών double που αντιστοιχούν στις συντεταγμένες Ν και Μ σημείων αντίστοιχα (Ν, Μ = γνωστά, ορίζονται ως σταθερές του προγράμματος). 1. Να εισάγετε δεδομένα στους πίνακες a και b μόνον με χρήση τυχαίων αριθμών (συνάρτηση rand()) στην περιοχή τιμών [0.0, 99.9]. 2. Να θεωρήσετε ένα γνωστό σημείο C στον χώρο με γνωστές συντεταγμένες xc, yc, z C (ορίζονται ως σταθερές του προγράμματος). a. Χρησιμοποιώντας όλα τα στοιχεία του πίνακα a να βρείτε τη συνολική απόσταση όλων των σημείων του πίνακα a από το σημείο C. b. Χρησιμοποιώντας όλα τα στοιχεία του πίνακα b να βρείτε ποιο σημείο του πίνακα b απέχει τη μικρότερη απόσταση από το σημείο C, με ακρίβεια υπολογισμού 10-3 (ένα σημείο προσδιορίζεται εντός του πίνακα από τη θέση που έχει στον πίνακα). Αν τα σημεία με τη μικρότερη απόσταση είναι περισσότερα από ένα να τα εμφανίσετε όλα. Στο τέλος να εμφανίσετε και την τιμή αυτής της ελάχιστης απόστασης. 12

ΑΣΚΗΣΗ 30 Πίνακας ακεραίων Ν θέσεων (Ν= γνωστό και Ν>300), έστω a, περιέχει ακέραιες θετικές τιμές στην περιοχή [1,9]. Να θεωρήσετε ότι οι τιμές αυτές αντιστοιχούν σε ορισμένα χρώματα. Ένας δεύτερος πίνακας, έστω b, με πλήθος θέσεων Μ=4 περιέχει ένα συγκεκριμένο μοτίβο τεσσάρων οποιωνδήποτε χρωμάτων από αυτά που υπάρχουν στον πίνακα a. Να γραφεί πρόγραμμα σε γλώσσα C που θα βρίσκει και θα εμφανίζει: Σε ποιες θέσεις του πίνακα a υπάρχει το μοτίβο που περιέχεται στον πίνακα b. Το πρόγραμμα θα πρέπει να εμφανίζει, για κάθε εμφάνιση του συγκεκριμένου μοτίβου, τη θέση έναρξης του μοτίβου και τη θέση πέρατος του μοτίβου ΠΑΡΑΔΕΙΓΜΑ Πίνακας a, με Ν = 21 Πίνακας b: 2 6 7 8 1 4 9 4 3 7 8 1 4 5 5 7 1 8 3 2 9 7 8 1 4 ΑΠΟΤΕΛΕΣΜΑΤΑ 1 η εμφάνιση : έναρξη θέση 3, πέρας θέση 6 2 η εμφάνιση : έναρξη θέση 10, πέρας θέση 13 ΑΣΚΗΣΗ 31 1. Να δημιουργηθεί αριθμητικός πίνακας ακεραίων, Ν θέσεων (Ν = γνωστό και Ν>100), που θα περιέχει τριψήφιους τυχαίους ακέραιους θετικούς αριθμούς (χρήση της συνάρτησης rand() ). 2. Για κάθε στοιχείο του πίνακα να βρείτε το άθροισμα των διαιρετών του εκτός από τον ίδιο τον αριθμό (δηλ. στο άθροισμα των διαιρετών δεν θα πρέπει να περιλαμβάνεται ο ίδιος ο αριθμός) και χρησιμοποιώντας κατάλληλα τον παρακάτω κώδικα προγράμματος σε γλώσσα C, που βρίσκει εάν ένας θετικός ακέραιος αριθμός είναι πρώτος αριθμός (prime number), να δημιουργήσετε έναν νέο πίνακα που θα περιέχει όλα τα στοιχεία του αρχικού πίνακα δεδομένων για καθένα από τα οποία το άθροισμα των διαιρετών του είναι πρώτος (prime) αριθμός. Τα στοιχεία του νέου πίνακα θα είναι ταξινομημένα σε αύξουσα διάταξη, χωρίς να χρησιμοποιήσετε κάποια μέθοδο ταξινόμησης. (ΥΠΟΔΕΙΞΗ : Ο πρώτος prime αριθμός είναι το 2). ΠΑΡΑΔΕΙΓΜΑ: Αρχικός πίνακας για Ν=8 69 55 47 88 65 4 32 82 αριθμός διαιρέτες άθροισμα prime 69 1, 3, 23 27 ΟΧΙ 55 1, 5, 11 17 ΝΑΙ 47 1 1 ΟΧΙ 88 1, 2, 4, 8, 11, 22, 44 92 ΟΧΙ 65 1, 5, 13 19 ΝΑΙ 4 1, 2 3 ΝΑΙ 32 1, 2, 4, 8, 16 31 ΝΑΙ 82 1, 2, 41 44 ΟΧΙ Νέος πίνακας, ταξινομημένος 4 32 55 65 13

#include <stdio.h> int n, i, c = 0; void main() { printf("enter any number n:"); scanf_s("%d", &n); for (i = 1; i <= n; i++) { if (n % i == 0) c++; } if (c == 2) printf("%5d is a Prime number\n",n); else printf("%5d is not a Prime number\n",n); } ΑΣΚΗΣΗ 32 1. Να δημιουργηθεί αριθμητικός πίνακας ακεραίων, Ν θέσεων (Ν = γνωστό και Ν>20), που θα περιέχει τριψήφιους τυχαίους ακέραιους θετικούς αριθμούς (χρήση της συνάρτησης rand() ) στην περιοχή [1, 999]. 2. Για κάθε στοιχείο του πίνακα να βρείτε τους διαιρέτες του που είναι πρώτοι (prime) χρησιμοποιώντας κατάλληλα τον παρακάτω κώδικα προγράμματος σε γλώσσα C, που βρίσκει εάν ένας θετικός ακέραιος αριθμός είναι πρώτος αριθμός (prime number). Να εισάγετε όλους αυτούς τους διαιρέτες που είναι πρώτοι (prime), όλων των στοιχείων του πίνακα, μαζί με τη συχνότητα εμφάνισής τους, σε έναν νέο πίνακα, σε ζεύγη. Κάθε τέτοιο ζεύγος θα αποτελείται από τον διαιρέτη και τη συχνότητα εμφάνισής του. Τα στοιχεία του νέου πίνακα θα είναι ταξινομημένα σε αύξουσα διάταξη του πρώτου στοιχείου (δηλ. του διαιρέτη) κάθε ζεύγους, χωρίς να χρησιμοποιήσετε κάποια μέθοδο ταξινόμησης. (ΥΠΟΔΕΙΞΗ : Ο πρώτος prime αριθμός είναι το 2). ΠΑΡΑΔΕΙΓΜΑ: Αρχικός πίνακας για Ν=5 2 84 63 62 15 αριθμός διαιρέτες 2 2 84 2, 3, 4, 6, 7, 12, 14, 21, 28, 42, 84 63 3, 7, 9, 21, 63 62 2, 31, 62 15 3, 5, 15 Οι διαιρέτες που είναι prime, με τις συχνότητές του είναι (ζεύγη) : (2,3), (3,3), (5,1), (7,2), (31,1) Νέος πίνακας ζευγών, ταξινομημένος 2 3 3 3 5 1 7 2 31 1 #include <stdio.h> int n, i, c = 0; void main() { printf("enter any number n:"); scanf_s("%d", &n); for (i = 1; i <= n; i++) { if (n % i == 0) c++; } if (c == 2) printf("%5d is a Prime number\n",n); else printf("%5d is not a Prime number\n",n); } 14

ΑΣΚΗΣΗ 33 Αριθμητικός πίνακας ακεραίων περιέχει N ζεύγη τιμών (N = γνωστό και Ν>50) που αντιστοιχούν στην ημερήσια παραγόμενη ενέργεια (θετικές ακέραιες τιμές στην περιοχή [0,999] ) M διαφορετικών ανεμογεννητριών με κωδικούς από 1 έως και Μ (Μ= γνωστό και 1<=Μ<=20), για τις ημέρες του ιδίου έτους. Κάθε κωδικός ανεμογεννήτριας μπορεί να εμφανίζεται περισσότερες από μία φορές στον πίνακα. Μικρό παράδειγμα για Ν=8 και Μ=3 (δηλ. κωδικοί ανεμογεννητριών 1, 2 και 3) : 450 2 135 1 500 1 200 3 560 2 450 1 700 2 250 3 Να γραφεί πρόγραμμα σε γλώσσα C που: 1. Θα εισάγει τυχαία δεδομένα στον πίνακα, με χρήση της συνάρτησης rand(), στα όρια των τιμών που έχουν δοθεί. 2. Θα βρίσκει και θα εισάγει σε ένα νέο πίνακα τη συνολική ετήσια παραγόμενη ενέργεια για κάθε ανεμογεννήτρια, υπό μορφή ζευγών (κωδικός ανεμογεννήτριας, συνολική ετήσια παραγόμενη ενέργεια). Οι κωδικοί ανεμογεννητριών θα καταχωρούνται στον νέο πίνακα σε αύξουσα διάταξη. Ο νέος πίνακας για το ανωτέρω παράδειγμα θα είναι: 1 1085 2 1710 3 450 3. Θα εμφανίζει στην οθόνη τα στοιχεία του νέου πίνακα, ένα ζεύγος τιμών σε κάθε γραμμή της οθόνης, καθώς και το γενικό σύνολο, ως εξής: ΑΝΕΜΟΓΕΝΝΗΤΡΙΑ : 1 ΣΥΝΟΛΟ : 1085 ΑΝΕΜΟΓΕΝΝΗΤΡΙΑ : 2 ΣΥΝΟΛΟ : 1710 ΑΝΕΜΟΓΕΝΝΗΤΡΙΑ : 3 ΣΥΝΟΛΟ : 450 ΓΕΝΙΚΟ ΣΥΝΟΛΟ : 3145 15