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

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[Μικροεπεξεργαστές] Γενικ...
by EyeThere
[Today at 13:43:51]

Πότε θα βγει το μάθημα; -...
by Tasos Bot
[Today at 11:58:51]

Thmmy-συνάντηση Μάρτιος 2...
by RivenT
[Today at 11:02:32]

[Διανεμημένη Παραγωγή] Γε...
by chatzikys
[March 02, 2026, 21:13:00 pm]

[Επιχειρησιακή Έρευνα Ι] ...
by Nikos_313
[March 02, 2026, 17:29:40 pm]

[Ισχύος Ι] Ερωτήσεις Προφ...
by chatzikys
[March 02, 2026, 15:06:04 pm]

[Τεχνολογία Ηλεκτροτεχνικ...
by Nikos_313
[March 02, 2026, 12:13:36 pm]

Αποτελέσματα Εξεταστικής ...
by Tasos Bot
[March 02, 2026, 11:49:09 am]

H Στοά των Off Topic
by Nikos_313
[March 01, 2026, 22:13:22 pm]

[ΑΝΤΙΣΤΑΣΗ] ΑΝΑΚΟΙΝΩΣΗ ΣΧ...
by Χαρούμενη Πατάτα
[March 01, 2026, 21:43:58 pm]

[Λειτουργικά Συστήματα] Γ...
by Mr Watson
[February 28, 2026, 15:25:08 pm]

[ΣΦ ΗΛ-ΜΗΧ] ΠΑΝΕΡΓΑΤΙΚΗ -...
by Χαρούμενη Πατάτα
[February 28, 2026, 12:16:11 pm]

Ποιο τραγούδι ακούσατε 5+...
by Nikos_313
[February 27, 2026, 23:03:48 pm]

[ΣΦ ΗΛ-ΜΗΧ] Αφίσα ΦΣ για ...
by Χαρούμενη Πατάτα
[February 27, 2026, 13:08:37 pm]

[ΣΦ ΗΛ-ΜΗΧ] ΣΥΝΤΟΝΙΣΤΙΚΗ ...
by Χαρούμενη Πατάτα
[February 27, 2026, 12:17:33 pm]

Ανοιχτή Κοπή Βασιλόπιτας ...
by IEEE SB
[February 27, 2026, 11:02:52 am]

Που βρίσκεται το Ερευνητι...
by geomourat
[February 26, 2026, 21:23:56 pm]

[Η/Μ Πεδίο I] Γενικές απο...
by Mr Watson
[February 26, 2026, 20:50:16 pm]

[Ισχύος I] Γενικές απορίε...
by chatzikys
[February 26, 2026, 13:24:13 pm]

[Η/Μ Πεδίο ΙΙ] Γενικές απ...
by tony stank
[February 26, 2026, 12:40:44 pm]
Στατιστικά
Members
Total Members: 10362
Latest: xyz
Stats
Total Posts: 1430572
Total Topics: 31967
Online Today: 495
Online Ever: 9872
(February 17, 2026, 10:41:42 am)
Users Online
Users: 33
Guests: 248
Total: 281
CrocMonitor
stefanos hios
grepanis
antreak
Giannis Masterio
mike1996
jimalexoud
themis01
giorgosss03
mmikelo
cheinopor
sassi
gkouskou
dsaragiotis
CodeBro
iliaskou
Saint_GR
Ganastop
leolam
Gaspard
apob
rigas_s
stmanzaf
aggp
kvas
Χαρούμενη Πατάτα
lsim
chrysolog
RogueSoftware
Tasaras
leorizos
Εμφάνιση

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

Νέα!
Πρόγραμμα Επαναληπτικής Εξεταστικής 2025-2026
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt, tony stank) > [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
0 Members and 1 Guest are viewing this topic.
Pages: [1] Go Down Print
Author Topic: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)  (Read 2153 times)
Talaipa
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 276



View Profile
[Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« on: November 28, 2016, 17:56:18 pm »



Nα φτιάξετε μια συνάρτηση η οποία να εξομοιώνει ένα ζάρι. Στη συνέχεια να καλέσετε τη συνάρτηση 1.000.000 φορές και να υπολογίσετε τη συχνότητα εμφάνισης του κάθε αριθμού του ζαριού. Στο τέλος του πρόγραμματος θα τυπώνει πόσες φορές εμφανίστικε το κάθε νούμερο.

Για να δημιουργείται κάθε φορά τυχαίους «διαφορετικούς» αριθμούς μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα

time_t t;

srand(time(&t));
Logged
TheoProt
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 718


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« Reply #1 on: November 29, 2016, 02:37:30 am »

Έχει κάνει καθόλου στη θεωρία κεφάλαιο για pointers ;






edit: tag
« Last Edit: November 29, 2016, 10:08:22 am by Αλντεμπαράν » Logged
Talaipa
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 276



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« Reply #2 on: November 29, 2016, 09:53:33 am »

όχι!
Logged
kostino
Νεούλης/Νεούλα
*
Posts: 18


View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« Reply #3 on: November 30, 2016, 04:48:15 am »

αν αντι για time_t t; srand(time(&t)); χρησιμοποιησω srand(time(NULL)); αλλαζει τιποτα?
Logged
Oumuamua
Καταξιωμένος/Καταξιωμένη
***
Posts: 183



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« Reply #4 on: December 04, 2016, 12:57:28 pm »

Λύση ?
Logged

https://youtu.be/Elp0XKqhvpI
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« Reply #5 on: December 04, 2016, 15:16:30 pm »

Quote from: Toublo4 on December 04, 2016, 12:57:28 pm
Λύση ?

Code:
#include <stdlib.h>
#include <stdio.h>

#define N_repeats 1000000

void main(){

int i;
int number1 = 0; //Ενας counter που θα μετρα τις εμφανισεις του 1
int number2 = 0; //Ομοια για το 2 κλπ.
int number3 = 0;
int number4 = 0;
int number5 = 0;
int number6 = 0;

//Οριζουμε μια μεταβλητη τυπου time_t με την οποια seedαρουμε την srand
//ετσι σε καθε εκτελεση του αλγοριθμου θα ξεκιναμε απο διαφορετικο σημειο
//της rand και αρα θα παιρνουμε διαφορετικα νουμερα

    time_t t; //επιστεφει το χρονο σε δευτερολεπτα που περασε απο την 1 Ιαν 1970 (νομιζω)
    srand(time(&t));


    for (i=0; i<N_repeats; i++){
    //Χρησιμοποιουμε μια switch case αλλα γινετε και με 6 if
    //Στην switch case δεν ξεχναμε τα break αλλιως θα "μπει" σε ολα τα cases
    switch(dice_roll()){
    case 1:
    number1++; //Αυξανουμε τον counter των ασσων κατα 1
    break;
    case 2:
    number2++; //Αυξανουμε τον counter των δυαριων κατα 1 κλπ...
    break;
    case 3:
    number3++;
    break;
    case 4:
    number4++;
    break;
    case 5:
    number5++;
    break;
    case 6:
    number6++;
    break;
    }
    }

    //Εμφανιζουμε τις συχνοτητες
    //Για να γινει σωστα η διαιρεση αλλαζουμε τον τυπο των counters μας απο int σε float
    //Χρησιμοποιουμε %f για να εμφανισουμε τον δεκαδικο που παραγεται απο τη διαιρεση
    printf("Freq 1: %f%\n", (float) number1 / N_repeats * 100);
    printf("Freq 2: %f%\n", (float) number2 / N_repeats * 100);
    printf("Freq 3: %f%\n", (float) number3 / N_repeats * 100);
    printf("Freq 4: %f%\n", (float) number4 / N_repeats * 100);
    printf("Freq 5: %f%\n", (float) number5 / N_repeats * 100);
    printf("Freq 6: %f%\n\n", (float) number6 / N_repeats * 100);

    //Και τους αριθμους εμφανισεων
    printf("Num of 1: %d \n", number1);
    printf("Num of 2: %d \n", number2);
    printf("Num of 3: %d \n", number3);
    printf("Num of 4: %d \n", number4);
    printf("Num of 5: %d \n", number5);
    printf("Num of 6: %d", number6);
}

int dice_roll(){
//Η rand() θα επιστρεψει ενα νουμερο στο [0,RAND_MAX] με RAND_MAX > 32767
    //Το rand() % 6 θα δωσει ενα νουμερο στο [0, 5] και με το + 1  στο [1,6]
return rand() % 6 + 1;
}

εδιτ: δε πρόσεξα ότι έλεγε συνάρτηση
« Last Edit: December 04, 2016, 19:03:33 pm by Apostolof » Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
George_RT
Veteran
Εθισμένος στο ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 852



View Profile
Re: [Δομημένος Προγραμματισμός] Άσκηση 3 (Ημ/νία λήξης: 4/12/2016)
« Reply #6 on: December 05, 2016, 13:34:43 pm »

Quote from: Toublo4 on December 04, 2016, 12:57:28 pm
Λύση ?
Και μια δικιά μου εκδοχή

Code:
/*------------------------------------Άσκηση 3---------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define REPEATS 1000000

//Δημιουργία τυχαίων αριθμών  [1,6]
int randdice()
{
return (rand() % 6) + 1 ;
}


void calcfr()
{
time_t t;
srand(time(&t));
int frequency[6]={0};
unsigned int i,j;

for(i=0;i<REPEATS;i++)
{
int te=randdice();
frequency[te - 1]++; //Μετρητής , ελέγχει τι έφερε το ζάρι και αυξάνει +1 στον πίνακα τον αντίστοιχο αριθμό
printf("%d ", te);
}
printf("\n");
for(j=0;j<6;j++)
{
printf("Ο αριθμός %d εμφανίστηκε %d φορές με συχνότητα εμφάνισης   %lf  \n",j+1,frequency[j],(float)frequency[j]/REPEATS);
}
}

int main(int argc, char *argv[])
{
system("chcp 1253");
calcfr();
return 0;
}
Logged
Pages: [1] Go Up Print
Jump to:  

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