• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 16, 2025, 19:01:32 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 16, 2025, 19:01:32 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[Today at 16:56:56]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by nmpampal
[Today at 16:30:35]

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

[Αρχές Οικονομίας] Να επι...
by _Trob
[Today at 13:28:21]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[Today at 12:13:45]

Αποτελέσματα Εξεταστικής ...
by Nikos_313
[Today at 12:01:53]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[Today at 10:22:18]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[Today at 01:56:37]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 15, 2025, 20:08:49 pm]

Αντικατάστασης πυκνωτή σε...
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]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]

Έναρξη Δηλώσεων Συμμετοχή...
by IEEE SB
[June 14, 2025, 00:10:19 am]

[Δυναμική Συμπεριφορά ΣΗΕ...
by soko_freta
[June 13, 2025, 01:05:36 am]
Στατιστικά
Members
Total Members: 9959
Latest: valco08
Stats
Total Posts: 1426674
Total Topics: 31711
Online Today: 208
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 81
Guests: 102
Total: 183
tzortzis
Saint_GR
thegreekbaron
George15
Giorgos2222
george14
tasos gourd
kraxtopoulos
themis01
Carot1456
Chrisapostol
pipitsenko
lelenia
despoina15
Giannis_Kako
marnas
Ntinomanolo123
EvanTsir
ntinara
andreaspaper
stloukas
Captain
PurpleWitch
mmikelo
Konstantina Karamani
christi
smantzaa
myrto
smoul
Paparouna
mavropan
kostas.de
anstaik
unreasonable
Konstantinoy
trelogauros7
Angelagfb
vajim
Nikos.Ts
AristeidisM
panagiwt1s
Nekt
vasilis saitis
AcDimitri
sofiastrataki
bigmort
jkara
valantis
gkougeor
maestros
dimitris kiziridis
Annapar
theodoridoueu
ArsenD
etsilika
Νικη
kourkou
chris_p30
Alex Kosmas
dmoral
kst
Τρου Ντετεκτιβ
daphnenik
Η ΤΡΑΠΟΥΛΑ ΤΟΥ ΠΑΠΠΟΥ ΜΟΥ
Petross
ChrisB999
Ma8hths Indou
astra
sassi
LambisTr
Nikos_313
DarkMagiK06
mdimitrig
nmpampal
Εμφάνιση

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

Νέα!
Επίσημη ενημέρωση για Αντιστοίχηση Μαθημάτων ΝΠΣ με ΠΠΣ και η συζήτηση στο forum.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
0 Members and 1 Guest are viewing this topic.
Pages: [1] Go Down Print
Author Topic: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)  (Read 2104 times)
vasilis94
Veteran
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1511



View Profile
[Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« on: May 26, 2014, 19:52:10 pm »

Άσκηση G

        Για την καταχώρηση των εισερχομένων κλήσεων που έγιναν προς έναν αριθμό τηλεφώνου η εταιρία κρατά ένα αρχείο κλήσεων για κάθε συνδρομητή. Το όνομα του αρχείου ταυτίζεται με τον αριθμό κλήσης του συνδρομητή. Όταν ο συνδρομητής έχει μια εισερχόμενη κλήση αναζητείται το αντίστοιχο αρχείο το οποίο ανοίγει για να προστεθεί στο τέλος του ο αριθμός του τηλεφώνου από το οποίο έγινε η κλήση.
        Να γραφεί το πρόγραμμα το οποίο αρχικά δημιουργεί ένα αρχείο με το όνομα numpers. Στη συνέχεια να διαβάζει τους αριθμούς κλήσης των συνδρομητών της εταιρίας και τους καταχωρεί με τη μορφή strings στο αρχείο. Αυτά τα strings θα είναι τα ονόματα των αρχείων που θα αντιστοιχούν σε κάθε συνδρομητή. Το πρόγραμμα να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας να διαβάζεται ο αριθμός κλήσης ενός συνδρομητή και ο αριθμός του τηλεφώνου που πραγματοποίησε την κλήση. Στη συνέχεια να αναζητείται στο αρχείο numpers το όνομα του αρχείου που αντιστοιχεί στον συνδρομητή, να ανοίγει το αντίστοιχο αρχείο συνδεόμενο με ένα δυαδικό κανάλι και να καταχωρείται σε αυτό ο αριθμός του τηλεφώνου που τον κάλεσε. Η ανακύκλωση να σταματά αν ως αριθμός του συνδρομητή δοθεί το 0. Στην περίπτωση αυτή το πρόγραμμα να εκτυπώνει για κάθε συνδρομητή τους αριθμούς των τηλεφώνων που τον έχουν καλέσει.

       Βοηθητικές παρατηρήσεις
       Ο αριθμός του συνδρομητή να διαβάζεται και να καταχωρείται με τη μορφή string ενώ ο αριθμός του τηλεφώνου που τον καλεί με τη μορφή ακεραίου τύπου long.
       Για την καταχώρηση και ανάγνωση των ονομάτων των αρχείων που αντιστοιχούν στους συνδρομητές να χρησιμοποιήσετε τις συναρτήσεις fscanf και fprintf.
       Για τη σύγκριση των strings μπορείτε να χρησιμοποιήσετε έτοιμες συναρτήσεις που διαθέτει ο μεταγλωττιστής που χρησιμοποιείτε. (Η σχετική συνάρτηση στον μεταγλωττιστή της Borland είναι η strcmp και ορίζεται στο αρχείο string.h).
Logged
Γρηγόρης
Καταξιωμένος/Καταξιωμένη
***
Posts: 133


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #1 on: May 26, 2014, 23:34:18 pm »



Τα λόγια είναι περιττά!  Grin Grin
Logged
lady_of_winter
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 3537


εφακ


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #2 on: May 28, 2014, 00:11:23 am »

έχει κανείς καμία ιδέα πως θα κάνουμε τα αρχεία για κάθε συνδρομητή?
εγώ σκέφτηκα να κάνω ένα πίνακα που περιέχει pointers και κάθε ένας από τους pointers θα αντιστοιχεί στο αρχείο ενός συνδρομητή.
και για το  μέγεθος του πίνακα θα κάνω ένα malloc. είναι αυτό σωστο?

Logged

They paint the world full of shadows... and then tell their children to stay close to the light. Their light. Their reasons, their judgments. Because in the darkness, there be dragons. But it isn't true. We can prove that it isn't true. In the dark, there is discovery, there is possibility, there is freedom in the dark once someone has illuminated it.
nikitas350
Καταξιωμένος/Καταξιωμένη
***
Posts: 201



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #3 on: May 28, 2014, 00:25:26 am »

Quote from: lady_of_winter on May 28, 2014, 00:11:23 am
έχει κανείς καμία ιδέα πως θα κάνουμε τα αρχεία για κάθε συνδρομητή?
εγώ σκέφτηκα να κάνω ένα πίνακα που περιέχει pointers και κάθε ένας από τους pointers θα αντιστοιχεί στο αρχείο ενός συνδρομητή.
και για το  μέγεθος του πίνακα θα κάνω ένα malloc. είναι αυτό σωστο?



I think so.
Logged
lady_of_winter
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 3537


εφακ


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #4 on: May 28, 2014, 00:28:05 am »

χαίρομαι για αυτό :p και κάτι τελευταίο τον πίνακα τον βάζουμε σαν FILE έτσι δεν ειναι?
Logged

They paint the world full of shadows... and then tell their children to stay close to the light. Their light. Their reasons, their judgments. Because in the darkness, there be dragons. But it isn't true. We can prove that it isn't true. In the dark, there is discovery, there is possibility, there is freedom in the dark once someone has illuminated it.
nikitas350
Καταξιωμένος/Καταξιωμένη
***
Posts: 201



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #5 on: May 28, 2014, 01:10:40 am »

Quote from: lady_of_winter on May 28, 2014, 00:28:05 am
χαίρομαι για αυτό :p και κάτι τελευταίο τον πίνακα τον βάζουμε σαν FILE έτσι δεν ειναι?

Ναι, FILE**.
Logged
lady_of_winter
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 3537


εφακ


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #6 on: May 28, 2014, 01:13:17 am »

ευχαριστώ πολυ!! Smiley Smiley
Logged

They paint the world full of shadows... and then tell their children to stay close to the light. Their light. Their reasons, their judgments. Because in the darkness, there be dragons. But it isn't true. We can prove that it isn't true. In the dark, there is discovery, there is possibility, there is freedom in the dark once someone has illuminated it.
zwitsa
Θαμώνας
****
Posts: 332



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #7 on: May 28, 2014, 17:43:44 pm »

Quote from: nikitas350 on May 28, 2014, 01:10:40 am
Quote from: lady_of_winter on May 28, 2014, 00:28:05 am
χαίρομαι για αυτό :p και κάτι τελευταίο τον πίνακα τον βάζουμε σαν FILE έτσι δεν ειναι?

Ναι, FILE**.

γιατί FILE**?
Logged

Σήμερα είμαστε, αύριο δεν είμαστε. Φάτε.
nikitas350
Καταξιωμένος/Καταξιωμένη
***
Posts: 201



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #8 on: May 28, 2014, 18:51:01 pm »

Quote from: zwitsa on May 28, 2014, 17:43:44 pm
Quote from: nikitas350 on May 28, 2014, 01:10:40 am
Quote from: lady_of_winter on May 28, 2014, 00:28:05 am
χαίρομαι για αυτό :p και κάτι τελευταίο τον πίνακα τον βάζουμε σαν FILE έτσι δεν ειναι?

Ναι, FILE**.

γιατί FILE**?

Γιατί συνήθως τα FILE τα χειρίζεσαι με τον pointer τους.
http://www.cplusplus.com/reference/cstdio/FILE/
Logged
lady_of_winter
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 3537


εφακ


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #9 on: May 28, 2014, 19:40:29 pm »

για οσούς ενδιαφέρονται την ίδια εργασία έβαλε και το 2010 και η λύση της υπάρχει στα downloads και είναι η άσκηση G.
Logged

They paint the world full of shadows... and then tell their children to stay close to the light. Their light. Their reasons, their judgments. Because in the darkness, there be dragons. But it isn't true. We can prove that it isn't true. In the dark, there is discovery, there is possibility, there is freedom in the dark once someone has illuminated it.
nikitas350
Καταξιωμένος/Καταξιωμένη
***
Posts: 201



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #10 on: May 28, 2014, 20:27:42 pm »

Πάρτε και την δικιά μου [του 2010] τότε:

Δεν είχα χρησιμοποιήσει FILE**, μάλλον δεν χρειάζεται να κρατάς στην μνήμη όλα τα αρχεία.

#include <stdio.h>
#include <string.h>

int main()
{
   char name[11], called[11], temp[11];
   unsigned int i, N;
   unsigned long int caller, tempnum;
   
   FILE *numpers, *tmp;
   numpers = fopen("numpers", "w");

   printf("Give the number of the costumers\n"), scanf("%d", &N);
   
   for (i = 0; i < N; i++) {
      printf("Give the call number of the costumer %d\n", i);
      scanf("%s", name);
      fprintf(numpers, "%s\n", name);
      tmp = fopen(name, "w");
      fclose(tmp);
   }
   
   fclose(numpers);
   
   numpers = fopen("numpers", "r");


   printf("Give the caller's number and the subscriber's number\n");
   scanf("%lu %s", &caller, called);
   
   while (*called != '0') {
      for (i = 0; i < N && strcmp(temp, called); i++) {
         fscanf(numpers,"%s", temp);
      }
      rewind(numpers);
      
      if (strcmp(temp,called))
         printf("Wrong subscriber's phone, please retry\n");
      else {
         tmp = fopen(called, "ab");
         fprintf(tmp, "%lu\n", caller);
         fclose(tmp);
      }
      printf("Give the caller's number and the subscriber's number\n");
      scanf("%lu %s", &caller, called);
   }

   
   for(i = 0; i < N; i++) {
      fscanf(numpers,"%s", temp);
      printf("Calls for number %s\n\n", temp);
      tmp = fopen(temp, "rb");
      while(!feof(tmp)) {
         fscanf(tmp,"%lu", &tempnum);
         if (!feof(tmp))
            printf("%lu\n",tempnum);
      }
      fclose(tmp);
      printf("\n");
   }
   fclose(numpers);
   return 0;
}
Logged
airpap
Ανερχόμενος/Ανερχόμενη
**
Posts: 79


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #11 on: May 29, 2014, 09:55:09 am »

να ρωτησω και εγω κατι... με το fprintf ή με το fscanf γινεται η καταχωρηση?
Logged
airpap
Ανερχόμενος/Ανερχόμενη
**
Posts: 79


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #12 on: May 29, 2014, 17:09:27 pm »

βασικα μπορει να μου πει καποιος την λειτουργια τους??  Smiley
Logged
Ancient
Θαμώνας
****
Posts: 332


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση G (Hμ/νία λήξης δηλώσεων: 1/06/2014)
« Reply #13 on: June 01, 2014, 17:41:11 pm »

Δε χρειάζεται πίνακας με pointers αφού σε κάθε επανάληψη ο χρήστης θα δίνει τον αριθμό κλήσης του συνδρομητή, οπότε γνωρίζεις ποιο αρχείο πρέπει να ανοίξεις.
Logged

Can. You. Hear. Me?

https://www.physics.princeton.edu/ph115/LQ.pdf
Pages: [1] Go Up Print
Jump to:  

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