• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 12:42:55 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 12:42:55 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 02:29:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[June 16, 2025, 10:22:18 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426686
Total Topics: 31710
Online Today: 169
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 61
Guests: 88
Total: 149
panagiot
mhtsakos02
dimivage
dimitavram
Ntinouu
mpilas_giwrgos
gkaramp
kzmekos
NickSpan
Tserk
ZontanosThrylos
JTS
Pakapis5
anastasimi
mpizos
victoria
vajulin
DimKaratzas
mike1996
George_RT
vasillikiiiiii
chaniotism
dkoukn
iJasonOP
Xris
Angelos Asim
superkolios
chrichan
tzortzis
vas22
Fotis Roukoutakis
Joannapet
george14
jimalexoud
Summand
makato
menelaras
ppoug
glavdakis
eplysia
Agnotobouri
kakousios
thomassamaras
Yamal
Filpan10
acolak
kap
programmer2004
agapi
TheBadSalesman
Emilios
Vassoula
Solon
mpaltzak
Nikos_313
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads
με προσοχή στα ονόματα των αρχείων!
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομημένος Προγ.] Εργασία D 2008
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 ... 14 Go Down Print
Author Topic: [Δομημένος Προγ.] Εργασία D 2008  (Read 23507 times)
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
[Δομημένος Προγ.] Εργασία D 2008
« on: May 08, 2008, 01:50:09 am »

Εργασία D 2008

Ένα τηλεφωνικό κέντρο εξυπηρετεί Ν συνδρομητές (µάξιμουµ 100), οι αριθμοί κλήσης των οποίων είναι καταχωρημένοι σε ένα πίνακα σε αύξουσα σειρά. Σε κάθε συνδρομητή αντιστοιχεί μια θύρα εξόδου ενώ το κέντρο διαθέτει Μ (µάξιμουµ 30) θύρες για εισερχόμενες κλήσεις.
Όταν υπάρχει μια εισερχομένη κλήση ελέγχεται αν υπάρχει διαθέσιμη θύρα εισόδου και αν όχι η κλήση απορρίπτεται. Σε διαφορετική περίπτωση αναζητείται ο καλούμενος αριθμός στον πίνακα των συνδρομητών και αν ο αριθμός δεν υπάρχει ή είναι απασχολημένος η κλήση απορρίπτεται, διαφορετικά η θέση του καλούμενου αριθμού στον πίνακα συνδρομητών καταχωρείται ως τιμή στην πρώτη διαθέσιμη θύρα εισόδου και ο συνδρομητής τίθεται σε κατάσταση απασχολημένος. Όταν τελειώσει η συνδιάλεξη εκκαθαρίζεται το περιεχόμενο της αντίστοιχης θύρας εισόδου και ο συνδρομητής μπαίνει σε κατάσταση διαθέσιμος.
Η αναζήτηση του αριθμού του συνδρομητή γίνεται με τον αλγόριθμο της δυαδικής ανίχνευσης. Συμφωνά με αυτόν ελέγχεται αν ο ζητούμενος αριθμός ευρίσκεται μεταξύ του πρώτου και του τελευταίου αριθμού του ταξινομημένου πίνακα αν όχι ο ζητούμενος αριθμός δεν υπάρχει στον πίνακα, αν ναι επιλέγεται ο αριθμός που βρίσκεται στο μέσον του πίνακα.  Αν αυτός δεν είναι ο ζητούμενος το πρόβλημα ταυτίζεται με το αρχικό αν ο αλγόριθμός εφαρμοστεί στα δύο τμήματα που χωρίστηκε ο αρχικός πίνακας.
Να γραφεί πρόγραμμα που διαχειρίζεται το τηλεφωνικό κέντρο. Σε αυτό να ορισθεί η συνάρτηση find η οποία υλοποιεί, μέσα από μια recursion διαδικασία, τον αλγόριθμο δυαδικής ανίχνευσης για την αναζήτηση του καλούμενου αριθμού και να επιστρέφει τη θέση του στον πίνακα των συνδρομητών. Αν ο αριθμός δεν υπάρχει να επιστρέφει το -1.
Η συνάρτηση main του προγράμματος να ορίζει τον πίνακα των συνδρομητών και να εισάγει σε αυτόν κατά αύξουσα σειρά τους αντιστοίχους αριθμούς κλήσης. Στη συνέχεια να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας να ελέγχεται αρχικά αν έχει τερματιστεί κάποια συνδιάλεξη και αν ναι να ξεκαθαρίζεται η αντίστοιχη θύρα και να μπαίνει σε κατάσταση διαθέσιμος ο αντίστοιχος συνδρομητής. Κατόπιν να ελέγχεται αν υπάρχει εισερχόμενη κλήση και αν ναι, αν υπάρχει διαθέσιμη θύρα εισόδου, να διαβάζεται ο καλούμενος αριθμός, να καλείται η συνάρτηση find για να βρεθεί ο αριθμός στον πίνακα των συνδρομητών και αν ο αριθμός υπάρχει και δεν είναι απασχολημένος να καταχωρείται η θέση του αριθμού στην πρώτη διαθέσιμη θύρα εισόδου και ο συνδρομητής να μπαίνει σε κατάσταση απασχολημένος διαφορετικά η κλήση να απορρίπτεται.

Παρατηρήσεις
Οι θύρες εισόδου και εξόδου υλοποιούνται ως πίνακες ακεραίων αριθμών.
Μια θύρα εισόδου θεωρείται διαθέσιμη όταν έχει την τιμή -1
Ένας συνδρομητής θεωρείται διαθέσιμος όταν η αντίστοιχη θύρα εξόδου έχει τιμή 0 και απασχολημένος όταν η τιμή της θύρας είναι 1.
Μία σύνδεση θεωρείται ότι έχει επιτευχθεί όταν ο η θέση του συνδρομητή καταχωρηθεί ως τιμή σε μια διαθέσιμη θύρα εισόδου και η αντίστοιχη θύρα εξόδου πάρει τιμή 1.
Ο έλεγχος για ύπαρξη διαθέσιμης θύρας εισόδου και ο έλεγχος για την ύπαρξη εισερχόμενης κλήσης γίνετε με τη μορφή ερώτησης στην οποία ο χρήστης απαντά θετικά ή αρνητικά από το πληκτρολόγιο.
Σε κάθε επανάληψη της ανακύκλωσης μια μόνο θύρα εισόδου να μπορεί να απελευθερωθεί και μία μόνο αίτηση για σύνδεση να μπορεί να εξυπηρετηθεί
Logged
Papatanasis
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Posts: 1479



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #1 on: May 08, 2008, 01:57:06 am »

Καλα ποτε προλαβε κιολας??????????????? Tongue Tongue Tongue Tongue Tongue
Logged
ripper_george
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 684


Same Shit Different Day - SSDD


View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #2 on: May 08, 2008, 23:11:14 pm »

Help!!
Αν κάποιος έχει κάποια ιδέα για την εργασία, please assist!

Αυτός που καλεί συνδέεται με τον αριθμό που θέλει όταν αυτός (ο αριθμός) δεν είναι απασχολημένος και υπάρχει....

Όμως, αφού συνδεθεί και μετά, πως υποτίθεται ότι πρέπει να καταλάβουμε ότι η κλήση έχει τελειώσει????
Θα ρωτάμε κάθε φορά αν η συνομιλία με κάποιον αριθμό έχει τελειώσει???(Χαζό μου φαίνεται...)

Το interface πάνω κάτω τι βήματα να έχει???

1)Ρωτάμε αν υπάρχει εισερχόμενη κλήση...
2)Αν υπάρχει ψάχνουμε να βρούμε τον αριθμό.
3)Ι)Αν δεν τον βρούμε ή είναι απασχολημένος την απορρίπτουμε.
  ΙΙ)Αλλιώς τον συνδέουμε, και εκχωρούμε σε πίνακα με incoming calls, τον pointer του εκάστοτε χρήστη...

Μετά????????? Undecided

Ουσιαστικά, για ποιον γράφεται το πρόγραμμα??? Ο χρήστης θα είναι αυτός που θα παίζει το ρόλο και αυτού που καλεί, και αυτού που τερματίζει τις κλήσεις???

Any help is deeply appreciated!
Logged

Common sense is not so common.
-Voltaire-
They say that the fastest travelling thing in the world is light, but coming to think about it... Darkness has always been there first!!!!! Smiley
Komimis
Guest
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #3 on: May 08, 2008, 23:31:14 pm »

Εγώ θα είμαι περιεκτικός..

ΚΑΛΑ ΜΑΣ ΔΟΥΛΕΥΕΙ??
Logged
jeen
Νεούλης/Νεούλα
*
Gender: Male
Posts: 26



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #4 on: May 09, 2008, 00:26:32 am »

Όμως, αφού συνδεθεί και μετά, πως υποτίθεται ότι πρέπει να καταλάβουμε ότι η κλήση έχει τελειώσει????
Θα ρωτάμε κάθε φορά αν η συνομιλία με κάποιον αριθμό έχει τελειώσει???(Χαζό μου φαίνεται...)


Όσο χαζό και να σου φαίνεται κάπως έτσι πιστεύω πως είναι...Εμείς, δηλαδή οι συνδρομητές πρέπει να αποφασίσουμε πότε θα τελειώσει μία κλήση...

Το interface πάνω κάτω τι βήματα να έχει???

1)Ρωτάμε αν υπάρχει εισερχόμενη κλήση...
2)Αν υπάρχει ψάχνουμε να βρούμε τον αριθμό.
3)Ι)Αν δεν τον βρούμε ή είναι απασχολημένος την απορρίπτουμε.
  ΙΙ)Αλλιώς τον συνδέουμε, και εκχωρούμε σε πίνακα με incoming calls, τον pointer του εκάστοτε χρήστη...

Μετά?????????


Μετά πάλι απ'την αρχή...Θα ξαναρωτηθείς αν θέλεις να τερματίσεις μία κλήση, αν θέλεις να κάνεις μία καινούρια κτλ...Άλλωστε το αναφέρει η άσκηση...Η main να ορίζει μια ατέρμονα ανακύκλωση όπου σε κάθε επανάληψη της μια μόνο θύρα εισόδου να μπορεί να απελευθερωθεί, δηλαδή να τελείωσει μία κλήση, και μία μόνο αίτηση για σύνδεση να μπορεί να εξυπηρετηθεί...

Κάπως έτσι το σκέφτομαι...
Logged

Η βία δεν είναι λύση..Η Λία όμως είναι Βίσση..!
Γιώργος
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3796



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #5 on: May 09, 2008, 00:28:25 am »

Κι έλεγα ότι τα 'χα δει όλα, αλλά υπάρχουν ακόμα πιο καμένα!  Cheesy Cheesy




Λοιπόν, το πρόγραμμα όπως φαίνεται γράφεται για τον... τηλεφωνητή, δηλαδή για το σύστημα που διαχειρίζεται τις κλήσεις. Για το πώς "απελευθερώνεται" μία γραμμή: απ' ό,τι φαίνεται, σε κάθε επανάληψη (loop) θα ρωτάει το σύστημα τον τηλεφωνητή να εισάγει το id της κλήσης που τερματίζεται, ΕΑΝ υπάρχει, και μάλλον αυτό θα γίνεται πριν τον ρωτήσει ΕΑΝ υπάρχει εισερχόμενη κλήση κι αν ναι, ποια.
Logged

class Windows extends Throwable implements Failure
ripper_george
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 684


Same Shit Different Day - SSDD


View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #6 on: May 09, 2008, 02:19:44 am »

Και τώρα κάτι πιο ρητορικό....
Τι ακριβώς προσπαθεί να εξετάσει αυτή η άσκηση???? Tongue
Αν μπορούμε να δημιουργήσουμε το λογισμικό για κανένα τηλεφωνικό κέντρο του 1900???
Γιατί άμα να ρωτάς αν τελείωσε ο ομιλητής την κλήση του και αν υπάρχει καινούργια κλήση...... Ζήτω!!!!
Νομίζω ότι περισσότερα στοιχεία εξέτασε η C εργασία (Dynamic Memory Allocation etc) παρά η D, ενώ για την C
δεν είχαμε καν ακόμα ακούσει για Dynamic Memory Allocation....
Κάνω λάθος μήπως???? Tongue
Logged

Common sense is not so common.
-Voltaire-
They say that the fastest travelling thing in the world is light, but coming to think about it... Darkness has always been there first!!!!! Smiley
mademlis
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 144


Poison....


View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #7 on: May 09, 2008, 08:59:06 am »

Την παγίδα που λέγεται recursion την μυρίστηκε κανείς;
Διότι, το binary search πρέπει να γίνει αναδρομίκα.....

Logged

Μένουμε Ελλάδα
Πάμε Χαλκιδική
Πάμε Καλαμίτσι
Γιώργος
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3796



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #8 on: May 09, 2008, 13:27:44 pm »

Quote from: mademlis on May 09, 2008, 08:59:06 am
Την παγίδα που λέγεται recursion την μυρίστηκε κανείς;
Διότι, το binary search πρέπει να γίνει αναδρομίκα.....


Όχι αναγκαστικά. 8)
Google it και θα δεις. Wink

Για όσους το έχουν, υπάρχει στο τετράδιο μαθητή της ΑΕΠΠ Γ' Λυκείου (όσοι το 'χετε κρατήσει δηλαδή).



edit: Σοζ, λέει ότι όντως πρέπει να γίνει αναδρομικά (που είναι λιγότερο αποδοτικό, έλεος). Αρκεί να σκεφτεί κανείς την "φιλοσοφία" της δυαδικής αναζήτησης. Smiley




edit2: Επίσης δεν διευκρινίζει εάν θα πρέπει να τίθεται σε κατάσταση απασχολημένος και ο χρήστης που καλεί και αν ναι, πώς θα ξέρουμε ποιος είναι αυτός ο χρήστης. Wink


Κι η απορία της ημέρας: γιατί οι εκφωνήσεις να είναι gtp, οέο;
« Last Edit: May 09, 2008, 14:41:47 pm by Γιώργος » Logged

class Windows extends Throwable implements Failure
Komimis
Guest
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #9 on: May 09, 2008, 22:35:01 pm »

νομίζω ότι ο χρήστης που καλεί είναι άσχετος δεν έχει να κανει με τους συνδρομητές

α και τα νουμερα των συνδρομητών ποιά θα είναι!! και πώς τα βάζουμε!!

στήν πρώτη εκτέλεση της επανάληψης όλες οι θύρες εισόδου και οι συνδρομητές θα είναι διαθέσιμοι??

Logged
Γιώργος
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3796



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #10 on: May 09, 2008, 22:39:36 pm »

Quote from: Komimis on May 09, 2008, 22:35:01 pm
α και τα νουμερα των συνδρομητών ποιά θα είναι!! και πώς τα βάζουμε!!

στήν πρώτη εκτέλεση της επανάληψης όλες οι θύρες εισόδου και οι συνδρομητές θα είναι διαθέσιμοι??


Προφανώς 0..Ν-1 και "ναι" στο 2ο (I guess), έτσι όπως το 'δα. Smiley
Logged

class Windows extends Throwable implements Failure
Komimis
Guest
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #11 on: May 09, 2008, 23:24:02 pm »

Τι εννοεί όμως όταν γράφει "Η συνάρτηση main του προγράμματος να ορίζει τον πίνακα των συνδρομητών και να εισάγει σε αυτόν κατά αύξουσα σειρά τους αντιστοίχους αριθμούς κλήσης. " ??
Logged
Γιώργος
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3796



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #12 on: May 09, 2008, 23:50:57 pm »

Quote from: Komimis on May 09, 2008, 23:24:02 pm
Τι εννοεί όμως όταν γράφει "Η συνάρτηση main του προγράμματος να ορίζει τον πίνακα των συνδρομητών και να εισάγει σε αυτόν κατά αύξουσα σειρά τους αντιστοίχους αριθμούς κλήσης. " ??
Δηλαδή να έχει πχ:


2104444444
2310111111
2310222222
2310333333

κοκ, δηλαδή να είναι σε αύξουσα σειρά ο πίνακας. Smiley
Εφόσον η εκφώνηση δεν διευκρινίζει κάτι άλλο, υποθέτω πως θα πάρεις δεδομένο το ότι ο πίνακας θα είναι εξ' αρχής ταξινομημένος κατά αύξουσα σειρά.


Tip: αρχίστε γενικά από τη συνάρτηση find, γιατί είναι ανεξάρτητη απ' το πρόγραμμα και θα "φύγει" κι ένα κομμάτι του προγράμματος. Smiley
Logged

class Windows extends Throwable implements Failure
Komimis
Guest
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #13 on: May 09, 2008, 23:58:36 pm »

Η find είναι μόνο η αναζήτηση του αριθμού στη λίστα έτσι?

πώς χρησιμοποιώ η κάνω print την έξοδο (returned value) της find?? δλδ ή το -1 ή την διεύθυνση του συνδρομητή??
Logged
Γιώργος
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3796



View Profile
Re: [Δομημένος Προγ.] Εργασία D 2008
« Reply #14 on: May 10, 2008, 00:01:46 am »

Quote from: Komimis on May 09, 2008, 23:58:36 pm
Η find είναι μόνο η αναζήτηση του αριθμού στη λίστα έτσι?

πώς χρησιμοποιώ η κάνω print την έξοδο (returned value) της find?? δλδ ή το -1 ή την διεύθυνση του συνδρομητή??
find = recursive binary search (google it) Smiley
Αυτό λέει κι η εκφώνηση προφανώς.


Το πού το χρησιμοποιείς... στο λέει η εκφώνηση, στις εισερχόμενες κλήσεις.
Logged

class Windows extends Throwable implements Failure
Pages: [1] 2 3 ... 14 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...