8elw magali boithia stin c

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
picoz
Δημοσιεύσεις: 7
Εγγραφή: 24 Νοέμ 2008 22:13

8elw magali boithia stin c

Δημοσίευση από picoz » 24 Νοέμ 2008 22:25

Θέμα 1ο
Φτιάξτε πρόγραμμα που θα διαβάζει από το πληκτρολόγιο έναν θετικό ακέραιο αριθμό και θα τυπώνει στην οθόνη αν είναι δύναμη του 2 ή όχι. Σε περίπτωση που αριθμός που δόθηκε από το πληκτρολόγιο είναι δύναμη του 2, θα τυπώνει στην οθόνη ποια δύναμη του 2 είναι (βλ. δείγματα εκτέλεσης). Θα τυπώνει επίσης όλα τα απαιτούμενα βήματα (βλ. δείγματα εκτέλεσης).

Επισημάνσεις:
• Το πρόγραμμά σας θα πρέπει να εμφανίζει κατάλληλες προτροπές και πληροφορίες στο χρήστη μέσω προτάσεων/κειμένου στα αγγλικά.
• Το πρόγραμμά σας θα πρέπει να ελέγχει ότι ο αριθμός που δόθηκε από το πληκτρολόγιο είναι μεγαλύτερος του μηδενός. Αν δοθεί αριθμός μικρότερος ή ίσος του μηδενός, τότε θα ζητείται να δοθεί και πάλι (δηλ. εκτελείται επανάληψη μέχρι να δοθεί θετική τιμή για τον αριθμό).
• Αν ο αρχικός αριθμός που δόθηκε από το πληκτρολόγιο είναι περιττός και μεγαλύτερος του 1, τότε προφανώς δεν είναι δύναμη του 2.
• Αν ο αρχικός αριθμός που δόθηκε από το πληκτρολόγιο είναι ίσος με 1, τότε προφανώς είναι δύναμη του 2 (1=2^0).
• Αν ο αρχικός αριθμός που δόθηκε από το πληκτρολόγιο είναι άρτιος τότε ένας απλός αλγόριθμος για να βρείτε αν είναι δύναμη του 2 ή όχι είναι ο εξής: Εκτελέστε διαδοχικές ακέραιες διαιρέσεις μέχρι το πηλίκο να είναι 1 ή περιττός αριθμός μεγαλύτερος του 1. Στην πρώτη περίπτωση ο αριθμός είναι δύναμη του 2 ενώ στη δεύτερη περίπτωση δεν είναι. Θα έχετε και μια μεταβλητή στην οποία θα καταχωρείτε το πλήθος των διαιρέσεων που εκτελέστηκαν για να τυπωθεί στην οθόνη ποια δύναμη του 2 είναι ο δοσμένος αριθμός (εφόσον είναι δύναμη του 2).
• Όταν ο τελεστής της διαίρεσης (/) δέχεται ως τελεστέους δύο ακέραιες τιμές, εκτελείται ακέραια διαίρεση.


Δείγμα εκτέλεσης 1:
$./ex1-1.exe

Give a positive integer: 5

The process checking whether 5 is a power of 2 or not is printed:
5 is an odd number greater than 1.

5 is not a power of 2.


Δείγμα εκτέλεσης 2:
$./ex1-1.exe

Give a positive integer: 12

The process checking whether 12 is a power of 2 or not is printed:
12 is an even number.
12:2 = 6
6:2 = 3


12 is not a power of 2.


Δείγμα εκτέλεσης 3:
$./ex1-1.exe

Give a positive integer: 16

The process checking whether 16 is a power of 2 or not is printed:
16 is an even number.
16:2 = 8
8:2 = 4
4:2 = 2
2:2 = 1


16 is a power of 2.
16 = 2^4



Δείγμα εκτέλεσης 4:
$./ex1-1.exe

Give a positive integer: 64

The process checking whether 64 is a power of 2 or not is printed:
64 is an even number.
64:2 = 32
32:2 = 16
16:2 = 8
8:2 = 4
4:2 = 2
2:2 = 1


64 is a power of 2.
64 = 2^6













Θέμα 2ο
Φτιάξτε πρόγραμμα που θα μετατρέπει έναν (μη αρνητικό) ακέραιο αριθμό Κ του δεκαδικού συστήματος σε αριθμητικό σύστημα με βάση b. Το πρόγραμμα θα διαβάζει από το πληκτρολόγιο τους ακέραιους αριθμούς Κ, b. Θα ελέγχει ότι ο Κ είναι μεγαλύτερος ή ίσος του μηδενός και επίσης ότι 2≤b≤9 (ο τελευταίος περιορισμός μπήκε για λόγους απλότητας όσον αφορά την υλοποίηση της μετατροπής). Υπενθυμίζεται ότι η μετατροπή από το δεκαδικό σύστημα σε άλλο αριθμητικό σύστημα γίνεται με τη διαδικασία των διαδοχικών ακέραιων διαιρέσεων (μέχρι το πηλίκο να γίνει μηδέν). Το πρόγραμμά σας θα πρέπει να εκτυπώνει στην οθόνη:
• Όλα τα απαιτούμενα βήματα για τον υπολογισμό του τελικού αποτελέσματος δηλ. κάθε διαίρεση που εκτελείται, το πηλίκο και το υπόλοιπο της κάθε διαίρεσης.
• Το τελικό αποτέλεσμα δηλ. τον ισοδύναμο αριθμό του Κ στο αριθμητικό σύστημα με βάση b.

Επισημάνσεις:
• Το πρόγραμμά σας θα πρέπει να εμφανίζει κατάλληλες προτροπές και πληροφορίες στο χρήστη μέσω προτάσεων/κειμένου στα αγγλικά.
&#8226; Το πρόγραμμά σας θα πρέπει να ελέγχει ότι ο αριθμός Κ που δόθηκε από το πληκτρολόγιο είναι μεγαλύτερος ή ίσος του μηδενός. Αν δοθεί Κ<0, τότε θα ζητείται να δοθεί και πάλι ο Κ (δηλ. εκτελείται επανάληψη μέχρι να δοθεί τιμή για το Κ μεγαλύτερη ή ίση του μηδενός). Ανάλογος έλεγχος θα γίνεται και για το διάβασμα της τιμής του b (2&#8804;b&#8804;9).
&#8226; Αποθηκεύστε τα υπόλοιπα των διαιρέσεων σε έναν πίνακα. Μετρήστε πόσες διαιρέσεις εκτελέστηκαν (μέχρι το πηλίκο να γίνει μηδέν). Για να εκτυπωθεί στην οθόνη ο ισοδύναμος αριθμός στο αριθμητικό σύστημα με βάση b, θα πρέπει να εκτυπώστε στην οθόνη τα στοιχεία του πίνακα σε αντίστροφη σειρά.
&#8226; Όταν ο τελεστής της διαίρεσης (/)δέχεται ως τελεστέους δύο ακέραιες τιμές, εκτελείται ακέραια διαίρεση.
&#8226; Ο τελεστής για τον υπολογισμό του υπολοίπου της διαίρεσης είναι: %.


Δείγμα εκτέλεσης 1:
$./ex1-1.exe

Give a decimal number. The value of the number should be >=0
Decimal Number: 14

Give the base of the numerical system. The value of the base should be within [2,9].
Base: 11
Value out of range. Give value again
Base: 3

The conversion process is printed:
14:3 -> 4 2
4:3 -> 1 1
1:3 -> 0 1

Given decimal number: 14
Given base: 3
The equivalent number is: 112



Δείγμα εκτέλεσης 2:
$./ex1-1.exe

Give a decimal number. The value of the number should be >=0
Decimal Number: 10

Give the base of the numerical system. The value of the base should be within [2,9].
Base: 2

The conversion process is printed:
10:2 -> 5 0
5:2 -> 2 1
2:2 -> 1 0
1:2 -> 0 1

Given decimal number: 10
Given base: 3
The equivalent number is: 1010




















Θέμα 3ο

Φτιάξτε πρόγραμμα που αρχικά θα διαβάζει από το πληκτρολόγιο ένα σύνολο από ακεραίους αριθμούς και θα τους εισάγει σε πίνακα ακεραίων. Στη συνέχεια θα διαπερνά ένα-ένα όλα τα στοιχεία του πίνακα και θα τυπώνει στην οθόνη διάφορες πληροφορίες. Οι πληροφορίες που θα εμφανίζονται στην οθόνη είναι οι εξής: (α) όλοι οι αριθμοί του πίνακα, (β) ο μεγαλύτερος αριθμός του πίνακα, (γ) ο μικρότερος αριθμός του πίνακα, (δ) τους άρτιους (ζυγούς) αριθμούς του πίνακα με τη σειρά εμφάνισής τους στον πίνακα, (ε) τους περιττούς (μονούς) αριθμούς του πίνακα με τη σειρά εμφάνισής τους στον πίνακα.




Επισημάνσεις:
&#8226; Το πρόγραμμά σας θα πρέπει να εμφανίζει κατάλληλες προτροπές και πληροφορίες στο χρήστη μέσω προτάσεων/κειμένου στα αγγλικά.
&#8226; Το πρόγραμμά σας θα πρέπει να ελέγχει ότι ο αριθμός που δόθηκε από το
πληκτρολόγιο και αντιπροσωπεύει το πλήθος των αριθμών που θα
διαβαστούν είναι μεγαλύτερος του μηδενός και μικρότερος από το
πλήθος(Ν) των στοιχείων που μπορεί να χωρέσει ο πίνακας (Α[Ν]) που θα
ορίσετε. Έτσι θα γνωρίζει το πρόγραμμά σας στη συνέχεια πόσους αριθμούς πρέπει να διαβάσει από το πληκτρολόγιο για να καταχωρηθούν στον πίνακα. Το πρόγραμμά σας θα πρέπει να ελέγχει ότι ο αριθμός που δόθηκε από το πληκτρολόγιο και αντιπροσωπεύει το πλήθος των αριθμών που θα διαβαστούν είναι μεγαλύτερος του μηδενός.

Δείγμα εκτέλεσης:

$./ex1-3.exe

How many numbers will you give: -4
Value out of range.

How many numbers will you give: 5


You must give 5 numbers.
Give number 1: 78
Give number 2: 34
Give number 3: 6
Give number 4: 580
Give number 5: 15


You gave the following numbers:
78, 34, 6, 580, 15

The maximum number is: 580

The minimum number is: 6

The even numbers given are the following:
78, 34, 6, 580

The odd numbers given are the following:
15



Δείγμα εκτέλεσης 2:

$./ex1-3.exe

How many numbers will you give: 10


You must now give 10 numbers.
Give number 1: 5
Give number 2: 16
Give number 3: 43
Give number 4: 123
Give number 5: 15
Give number 6: 32
Give number 7: 1
Give number 8: 15
Give number 9: 25
Give number 10: 20


You gave the following numbers:
5, 16, 43, 123, 15, 32, 1, 15, 25, 20

The maximum number is: 123

The minimum number is: 1

The even numbers given are the following:
16, 32, 20

The odd numbers given are the following:
5, 43, 123, 15, 1, 15, 25

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

8elw magali boithia stin c

Δημοσίευση από dva_dev » 24 Νοέμ 2008 22:32

Ρίξε μια ματιά σε αυτό πρώτα, θα σε διαφωτίσει αρκετά.

picoz
Δημοσιεύσεις: 7
Εγγραφή: 24 Νοέμ 2008 22:13

8elw magali boithia stin c

Δημοσίευση από picoz » 24 Νοέμ 2008 22:53

Ma den 3erw katholou c... pos na prospathisw na tin lisw....
Einai san na les se ena mwro poso kanei 1+1 kai auto na min 3erei na sou apantisei... Esi tote ti tha kaneis? den 8a tou peis tin lisi?

Άβαταρ μέλους
Pavel
Honorary Member
Δημοσιεύσεις: 1046
Εγγραφή: 08 Αύγ 2003 00:05
Τοποθεσία: UK

8elw magali boithia stin c

Δημοσίευση από Pavel » 24 Νοέμ 2008 23:24

Για να έχεις αυτή την εργασία σημαίνει πως είσαι και σε αντίστοιχη σχολή.

Αν δεν ξέρεις καθόλου C, ξεκίνα το διάβασμα.
Εσύ είσαι τρελός.

alex599
Δημοσιεύσεις: 66
Εγγραφή: 17 Δεκ 2008 01:11
Τοποθεσία: Πάτρα

8elw magali boithia stin c

Δημοσίευση από alex599 » 17 Δεκ 2008 01:45

Οι ασκήσεις είναι πολύ ωραίες με την έννοια ότι εμπεριέχουν πολλά σημαντικά κομμάτια της C.

Θα συμφωνήσω με τους πιο πάνω να ξεκινήσεις διάβασμα,να γράψεις κώδικες, μόνο έτσι θα μάθεις!
while(!dead()) ++knowledge;

Άβαταρ μέλους
xarisss
Δημοσιεύσεις: 693
Εγγραφή: 06 Σεπ 2002 18:02
Τοποθεσία: Volos
Επικοινωνία:

8elw magali boithia stin c

Δημοσίευση από xarisss » 17 Δεκ 2008 10:39

Προφανώς ο Picoz δεν έχει πρόβλημα να πληρώσει για να του λύσουν τις ασκήσεις, έτσι;
Γιατί κι εγώ, πχ που δεν έχω ιδέα από υδραυλικά, αν θέλω να αλλάξω νιπτήρα και δεν έχω χρόνο να πειραματιστώ μόνος μου, τον υδραυλικό που θα φωνάξω θα τον πληρώσω, σωστά;
Εκτός κι αν ο υδραυλικός θεωρήσει ότι αφού δεν ξέρω τίποτα πρέπει να δουλέψει τζάμπα για μένα...
PRO-PRO.gr
Πρωτάθλημα Προγνωστικών

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

8elw magali boithia stin c

Δημοσίευση από dva_dev » 17 Δεκ 2008 17:20

Προφανώς ο Picoz δεν έχει πρόβλημα να πληρώσει για να του λύσουν τις ασκήσεις, έτσι;
Μάλλον αν ήθελε να πληρώσει θα το είχε βάλει στην "Αναζήτηση και Παροχή Υπηρεσιών", όπως θα το είχε και κάποιος που έψαχνε υδραυλικό για να του αλλάξει νιπτήρα. Αν έψαχνε κάποιον να του δώσει οδηγίες για να αλλάξει ο ίδιος νιπτήρα, τότε εδώ θα ήταν το σωστό σημείο.

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες