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

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 18, 2025, 00:48:28 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[Today at 00:45:33]

[Μεταφορά και Διανομή ΗΕ]...
by Nikos_313
[Today at 00:10:29]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 17, 2025, 21:32:50 pm]

[Ψηφιακά Ολοκληρωμένα Κυκ...
by tzortzis
[June 17, 2025, 21:25:42 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by PAPARI69
[June 17, 2025, 20:59:13 pm]

[Γραφική] Λυμένα θέματα
by okanpala
[June 17, 2025, 18:56:22 pm]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[June 17, 2025, 14:25:00 pm]

Αντικατάστασης πυκνωτή σε...
by george14
[June 17, 2025, 13:58:20 pm]

Πότε θα βγει το μάθημα; -...
by tzortzis
[June 17, 2025, 13:19:53 pm]

Αποτελέσματα Εξεταστικής ...
by george14
[June 17, 2025, 12:08:25 pm]

[ΨEE] Γενικές απορίες και...
by Juror8
[June 17, 2025, 12:06:57 pm]

[Οργάνωση Υπολογιστών] Γε...
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 _Trob
[June 16, 2025, 13:28:21 pm]

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

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

[Σ.Π.Η.Ε.] Παλιά θέματα -...
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]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426704
Total Topics: 31710
Online Today: 205
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 40
Guests: 138
Total: 178
astakos1
Yamal
fkaravi
vagelismo
Elenit
babistso
BB
saristei
glavdakis
chris_p30
dtkyriak
andripappa
Σοφιστικέ Κοτόπουλο
Σουλης
qwertyuiop
gprok
arswagdapro
DemetriosL
kiriakos234
elias_farhood
chryssana
nikpamp
rafail zisiadis
Eleniiii
m.renia
tasos_ntv
athena_apo
Mr Watson
Captain
andyy
PurpleWitch
Nikos_313
vagk
giannisdomu
eli_k
micelethe
Εμφάνιση

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

Νέα!
Επίσημη ενημέρωση για Αντιστοίχηση Μαθημάτων ΝΠΣ με ΠΠΣ και η συζήτηση στο forum.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομημένος Πρ.] Εργασία Ε 2008
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 4 5 [6] 7 8 ... 10 Go Down Print
Author Topic: [Δομημένος Πρ.] Εργασία Ε 2008  (Read 17729 times)
oMpixlas
Καταξιωμένος/Καταξιωμένη
***
Posts: 128


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #75 on: May 18, 2008, 17:43:58 pm »

Quote from: Emfanever on May 18, 2008, 15:00:15 pm
Quote from: oMpixlas on May 18, 2008, 11:50:04 am
Loipon... Akouste ti ekana na me peite an einai swsto...
(L einai o synolikos arithmos twn sthlwn... dhladh an se mia grammh exei 5, sthn allh exei 3 kai sthn allh exei 8 o L=5+3+8)
int Z=N+L;
 P=(float**)malloc(Z*sizeof(float));
Kai prepei na einai swsto dioti efoson ta apothikeyei sthn mnhmh san se seira ara to mono pou exeis na kaneis einai na ftiakseis enan "monodiastato" pinaka apo bytes pou exei N+L stoixeia...

Ki epeishs... as mou ekshghsei kapoios to "Ένα σήμα αναγνωρίζεται ως αυθεντικό, όταν βρεθεί η τιμή του διαφέρει λιγότερο από έναν αριθμό e από μία από τις προκαθορισμένες τιμές του πίνακα." Eimai sigouros twa pia pws den kserei na ekfrazetai o anthrwpos... Nohmatika den vgazei nohma...

Αν L είναι ο συνολικός αριθμός στηλών όπως εξηγείς τότε ο πίνακας έχει L στοιχεία όχι N+L
Για το 2ο δες εδώ.


vazw kai to N giati tha kataxwrei kai \0... all den kserw kai pali... mallon dikio exeis... tha to dw an einai... thnx gia thn apnthsh

Logged
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #76 on: May 18, 2008, 17:47:17 pm »

To \0 το βάζει στα strings. Εδώ δεν παίζει κάτι τέτοιο!
Logged
antonios
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1236



View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #77 on: May 18, 2008, 18:01:53 pm »

Εχω γράψει αυτό για να κάνω τον έλεγχο, που χρειάζεται στο τελευταιο κομμάτι του προγράμματος, αλλά δεν δουλεύει..... Μήπως μπορεί να βοηθήσει κανείς πιο έμπειρος??
for (i=0;i<M;i++){
  printf("Dose tin endeixi tou %d simatos\n", i+1);
  scanf ("%f", &timi);
  for (j=0;j<n;j++){
    for (k=0;k<stathmoi;j++){
      p=timi-stathmoi[j];
      if (p<0)
      p=stathmoi[j]-timi;
      if (p<timi_e)
       printf("H timi pou dosate antistoixei ston Stathmo %d kai ton aisthitira %d", j+1, k+1);
       break;
   }               
 }
Logged
zeus90
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 810



View Profile WWW
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #78 on: May 18, 2008, 18:56:44 pm »

Quote from: AgentCain on May 18, 2008, 16:02:58 pm
Quote from: Emfanever on May 18, 2008, 15:58:07 pm
Στο e-thmmy παρόλο που έχω κάνει ομάδα, δε μπορώ να ανεβάσω την εργασία. Έχετε και εσείς το ίδιο πρόβλημα ακόμα?  Undecided

Δεν ξέρω αλλά το πρόβλημα πρέπει να είναι γενικότερο
Πήγα να κάνω ομάδα στις πιθανότητες και δεν με άφησε. Μάλλον θα περιμένουμε μέχρι τη Δευτέρα-Τρίτη

Το πρόβλημα πρέπει να έχει λυθεί.
Τουλάχιστον εγώ πριν από λίγο κατάφερα να κάνω ομάδα στις Πιθανότητες..... Tongue
Logged

“Έμαθα πως όταν κάποιος σκαρφαλώσει στην κορυφή ενός ψηλού λόφου, το μόνο που διαπιστώνει είναι πως πρέπει να σκαρφαλώσει σε πολλούς λόφους ακόμα..."
tomshare3
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 518


011101000110111101101101


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #79 on: May 18, 2008, 19:35:59 pm »

Quote from: antonios on May 18, 2008, 18:01:53 pm
Εχω γράψει αυτό για να κάνω τον έλεγχο, που χρειάζεται στο τελευταιο κομμάτι του προγράμματος, αλλά δεν δουλεύει..... Μήπως μπορεί να βοηθήσει κανείς πιο έμπειρος??
for (i=0;i<M;i++){
  printf("Dose tin endeixi tou %d simatos\n", i+1);
  scanf ("%f", &timi);
  for (j=0;j<n;j++){
    for (k=0;k<stathmoi;j++){
      p=timi-stathmoi[j];
      if (p<0)
      p=stathmoi[j]-timi;
      if (p<timi_e)
       printf("H timi pou dosate antistoixei ston Stathmo %d kai ton aisthitira %d", j+1, k+1);
       break;
   }               
 }


εχεισ μπερδεψει τις μεταβλητες στα for... το i το χρησημοποιεις για τις επαναληψεις του Μ.... ο πινακας μετα θελει δεικτες j,k..
Logged

..try not. Do. Or do not.
anonymous-root
Veteran
Καταστραμμένος
******
Posts: 8574


What do you want to troll today?


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

Quote from: Emfanever on May 15, 2008, 19:35:36 pm
Αυτό είναι ένα παράδειγμα για το πως περίπου θα γίνει ο πίνακας:

Code:
#include <stdio.h>
#include <stdlib.h>
void main()
{
   int i,j,n,**spiti ,*aisth;

   printf("Dwse ton arithmo twn spitiwn: ");
   scanf("%d",&n);

Στο κανονικό πρόγραμμα προφανώς οι τιμές δε θα δίνονται από τη rand() .


μήπως πρέπει να είναι

float **stathmoi;
int *aisth;
Logged
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #81 on: May 18, 2008, 23:26:43 pm »

Μάλλον ,ανάλογα με το τι θέλει ο καθένας.
Στο πρόγραμμα μου float το έκανα , απλά αυτό ήταν ένα πρόχειρο παράδειγμα και το έβαλα int.
Logged
anonymous-root
Veteran
Καταστραμμένος
******
Posts: 8574


What do you want to troll today?


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #82 on: May 18, 2008, 23:28:52 pm »

Quote from: Emfanever on May 18, 2008, 23:26:43 pm
Μάλλον ,ανάλογα με το τι θέλει ο καθένας.
Στο πρόγραμμα μου float το έκανα , απλά αυτό ήταν ένα πρόχειρο παράδειγμα και το έβαλα int.

και οι aisth int ;

γιατί όταν τα βάζω και τα 2 φλοατ μου μετραει μόνο για τον 1ο αισθητήρα κάθε σπιτιού Cheesy
Logged
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #83 on: May 18, 2008, 23:39:20 pm »

O aisth int αφού αποθηκεύει τον αριθμό των στοιχείων κάθε γραμμής.


Code:
#include <stdio.h>
#include <stdlib.h>
void main()
{
   int i,j,n,*aisth;
   float **spiti;

   printf("Dwse ton arithmo twn spitiwn: ");
   scanf("%d",&n);

   aisth=(int *)malloc(n*sizeof(int));
   printf("Arithmos aisthitirwn:\n");

   for (i=0;i<n;i++){
       printf("%dou spitiou=",i+1);
       scanf("%d",&aisth[i]);
   }

   spiti=(float**)malloc(n*sizeof(float *));

   for (i=0;i<n;i++)
       spiti[i]=(float *)malloc((aisth[i])*sizeof(float));

   for (i=0;i<n;i++)
       for (j=0;j<aisth[i];j++){
   printf("Dwse tin timi tou aisthitira %d %d : " ,i+1,j+1);
   scanf("%f",&spiti[i][j]);
       }
   

   printf("Pinakas:\n");

   for (i=0;i<n;i++){
        printf("\n Spiti %d: ",i+1);
        for (j=0;j<aisth[i];j++)
   printf("%-6f ",spiti[i][j]);
        }
   
     

   }

Δε δουλεύει αυτό??Έκανα μερικές προσθήκες
Logged
eddie
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 766


Αντρέα γύρνα πίσω!


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

Να ρωτήσω κι εγώ κάτι??
Στο παρακάτω μου βγάζει ο compiler "syntax error", αλλά δεν μπορώ να βρω τι φταίει....
Ο b είναι ο πίνακας με τις συχνότητες που δεν αντιστοιχούν πουθενά και ο p αυτός με τις αρχικές συχνότητες...


Code:
	if((b[i]=(float *)realloc(float **p,1*sizeof(float )))==NULL)
{
printf("Den yparxei epipleon mnimi gia epektasi");
exit(0);
}
Logged

Nothing ever changes when we pray...


Baile Átha Cliath, beimid ar ais!!!
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #85 on: May 19, 2008, 00:20:15 am »

Αφού μια φορά έχεις float * και μετά float ** κ επίσης βάλε exit(1)
Logged
ripper_george
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 684


Same Shit Different Day - SSDD


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

3 questions

1)
Όταν κάνουμε δέσμευση για 2χ2 πίνακα, όταν θα κάνουμε free...
Έστω έχουμε ορίσει **Α.
Κάνουμε
for (i....)
{
free(A)
}
και μετά
Free(A)
Η μπορούμε να πούμε κατευθείαν να πούμε
Free(A)
?????

2)
Επίσης, για το μέγεθος κάθε γραμμής του πίνακα, δεν θα ήταν πιο αποδοτικό
να καλούσαμε την _msize () ?????

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

3)
Τέλος, αν η realloc αποτύχει, για να κάνω Free πρέπει να έχω αποθηκεύσει τον πίνακα πριν κάνω realloc και να να κάνω αυτόν realloc η μπορώ κατευθείαν να κάνω free την realloc???? Δλδ:

F=malloc(k*sizeof());
F=realloc(F,n*sizeof());
if (F==NULL)
{
free(F);
}

.....
Είναι σωστό???
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
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #87 on: May 19, 2008, 03:12:07 am »

1)Freeing up the allocated memory

We should not forget to free the memory which we have allocated dynamically, starting from the lowest level. i.e, in the reverse order of allocations. If we free up the higher level pointers first the lower level pointers would be lost and we would not be able to free up the memory allocated to those pointers. This would lead to memory leaks. Given below is how we should free up the memory. 
Code:
//freeing up memory allocated to second level pointers

     for(i = 0; i < 4; i++) 
           free(float_values[i]);
//freeing up memory allocated to first level pointers
           free(float_values);
Με λίγα λόγια χρειάζεται το for

2) H _msize μπορεί να κάνει δουλειά ,αλλά δεν υπάρχει σε όλους τους compilers

3)
To έψαξα αρκετά και βρήκα τα εξής:
If realloc cannot find enough space at all, it returns a null pointer, and leaves the previous region allocated. [footnote] Therefore, you usually don't want to immediately assign the new pointer to the old variable. Instead, use a temporary pointer:
Code:
#include <stdio.h>
#include <stdlib.h>

int *newarray = (int *)realloc((void *)dynarray, 20 * sizeof(int));
if(newarray != NULL)
dynarray = newarray;
else {
fprintf(stderr, "Can't reallocate memory\n");
/* dynarray remains allocated */
}
Όμως απ'ότι κατάλαβα από τη στιγμή που εμείς χρησιμοποιούμε
if (pointer==NULL){
    printf("no memory");
    exit(1);
}
To πρόγραμμα τερματίζεται και επιστρέφουμε στο λειτ. σύστημα ,άρα απελευθερώνεται αυτόματα η μνήμη.Άρα η χρήση ενδιάμεσου pointer όπως λέει παραπάνω είναι περιττή.
 
« Last Edit: May 19, 2008, 04:15:38 am by Emfanever » Logged
tomshare3
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 518


011101000110111101101101


View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #88 on: May 19, 2008, 12:14:53 pm »

http://alexander.ee.auth.gr:8083/eTHMMY/archive%5C102%5CdownloadFile%5C3137%5CAskiseis-08%20kai%2009-05-08.zip

στο ετημμυ εχει αναλυτικο παραδειγμα για δυναμικη δεσμευση 1διαστατου κ 2διαστατου πινακα και για την χρηση της free!
Logged

..try not. Do. Or do not.
solli144
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 271



View Profile
Re: [Δομημένος Πρ.] Εργασία Ε 2008
« Reply #89 on: May 19, 2008, 14:33:04 pm »

παιδια πρέπει οπωσδήποτε στη malloc να γίνεται typecasting? Δηλαδή  :  p=(* int)malloc(N);
Νομίζω ο Κορτέσης είχε πει ότι γίνεται αυτόματα αν η p έχει δηλωθεί  :   int *p
δηλαδή ότι ο τυπος void γίνεται αυτόματα int σε τέτοια εντολή εκχώρισης.

διορθώστε με αν κανω λάθος
Logged
Pages: 1 ... 4 5 [6] 7 8 ... 10 Go Up Print
Jump to:  

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