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

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
H Στοά των Off Topic
by Katarameno
[June 18, 2025, 20:28:39 pm]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 18, 2025, 19:40:47 pm]

[ΣΗΕ ΙΙ] Γενικές απορίες ...
by chatzikys
[June 18, 2025, 19:26:00 pm]

Σιδηροδρομικό Δυστύχημα σ...
by Katarameno
[June 18, 2025, 18:22:39 pm]

[Μεταφορά και Διανομή ΗΕ]...
by tzortzis
[June 18, 2025, 07:55:05 am]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[June 18, 2025, 00:45:33 am]

[Ψηφιακά Ολοκληρωμένα Κυκ...
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]
Στατιστικά
Members
Total Members: 9965
Latest: Poli
Stats
Total Posts: 1426723
Total Topics: 31711
Online Today: 187
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 33
Guests: 138
Total: 171
Bit4Thought
kutsukellis
eli_k
steliosakritidis
Dimos Bachlas
Leou
vaggelisx
stavr0s16
thpanousis
anrkos
Papalamprous humor
Alice_8
gkg
Reidemption
athena_apo
geftihiakos
lefterish
florianm
eirinistyl
elias_farhood
Anita
Captain
tasos_ntv
acolak
maik
chryssana
AcademicWeapon!
Pakapis5
AgaG
leolam
Εμφάνιση

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

Νέα!
Για οποιοδήποτε πρόβλημα με register/login, στείλτε email στο contact@thmmy.gr.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομ. Προγρ.] Εργασία D
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 7 8 [9] 10 11 ... 14 Go Down Print
Author Topic: [Δομ. Προγρ.] Εργασία D  (Read 18243 times)
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #120 on: May 17, 2009, 14:05:56 pm »

Θα μπορούσες να κάνεις έναν έλεγχο με εμφωλευμένες for όπως έκανα εγώ για να checkάρεις ,αν 2 αεροπλάνα απέχουν <10km χρησιμοποιώντας τον πίνακα, με τις καρτεσιανές τους συντεταγμένες με τον γνωστό τύπο για την απόσταση 2 σημείων, με μία εντολή if η οποία αν αληθεύει να καλείς την cover.
« Last Edit: May 17, 2009, 20:09:27 pm by Merlin » Logged
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #121 on: May 17, 2009, 14:06:52 pm »

Για την cover δεν ρώτησες?
Logged
MaGill
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 135


I've been down so god damn long!


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #122 on: May 17, 2009, 14:07:23 pm »

Προσπάθω να καταλάβω την κλήση με αναφορά μέσα απο τις σημειώσης και έχει σταματήσει το μυαλό μου. Μπορέις να με βοηθήσεις για το συγκεκριμένο παράδειγμα? Ο 2ος τρόπος που προτείνεις απαγορεύεται γιατί η cl_pos πρέπει να είναι void.
Logged
MaGill
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 135


I've been down so god damn long!


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #123 on: May 17, 2009, 14:08:25 pm »

Quote from: Merlin on May 17, 2009, 14:06:52 pm
Για την cover δεν ρώτησες?
Όχι φίλε, για την main και την cl_pos.
Logged
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #124 on: May 17, 2009, 14:13:50 pm »

Γενικά με την κλήση με αναφορά στην συνάρτηση δεν περνάνε μόνο αντίγραφα των μεταβλητών αλλά οι ίδιες οι διευθύνσεις τους,έτσι ώστε ότι μεταβολές γίνονται στο block της συνάρτησης να επηρρεάζουν και  τις μεταβλητές που δώθηκαν ως ορίσματα από την main.Στο συγκεκριμένο παράδειγμα θέλεις κλήση με αναφορά απλά και μόνο επειδή οι συναρτήσεις δεν πρέπει να τυπώνουν αποτελέσματα.Για να κάνεις κλήση με αναφορά δηλώνεις τις τυπικές παραμέτρους ως pointers ως εξής:
void cl_pos(.......float *x,float *y); //το πρότυπο της συνάρτησης
cl_pos(......&x,&y);//κλήση
void cl_pos(.....float *x,float *y){.....}//σώμα συνάρτησης
Logged
ΡΕΣΑΛΤΟ
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 797


Ειμαστε μαζοχιστές.....


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #125 on: May 17, 2009, 14:17:53 pm »

κληση με αναφορα με απλα λογια:

οταν δηλωνεις πριν τη main τη συναρτηση και οταν γραφεις το σωμα της μετα τη συναρτηση main, τοτε βαζεις στα ορισματα το * για να επιστρεψεις τιμες στη main.
επισης στις θεσεις που βρισκεται ορισμα που θα υποστει  αλλαγη τιμης εκ της καλουμενης συναρτησεως, θα βαζεις μπροστα το &.

πχ:
#include......
void blabla(int papaki, float babulas, int *k);
main()
{
int ayto_tha_dosei_timi_sto_k, avakas;
float taleporos;
...
blabla(avakas, taleporos,&ayto_tha_dosei_timi_sto_k);
}
void blabla(int papaki, float babulas, int *k)
{
papaki=babulas+(*k)
*k=babulas^babulas
...
}

Στο παρανω παραδειγμα θελουμε η ayto_tha_dosei_timi_sto_k να παρει την τιμη που επιστρεφει η συναρτηση blabla
γραφουμε οταν οριζουμε τη συναρτηση πανω και κατω απο τη main τη μεταβλητη k με το συμβολο *
οταν την καλουμε χρησιμοποιουμε το συμβολο & στην αντιστοιχη θεση.
επισης οταν στη συναρτηση που γραψαμε εχουμε εντολες με μια μεταβλητη με το συμβολο *, παντα το χρησιμοποιουμε
Logged

Όσες κι αν χτίζουν φυλακές
κι αν ο κλοιός στενεύει
ο νους μας είναι αληταριό
που όλο θα δραπετεύει
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #126 on: May 17, 2009, 14:21:23 pm »

Quote from: MaGill on May 17, 2009, 14:08:25 pm
Quote from: Merlin on May 17, 2009, 14:06:52 pm
Για την cover δεν ρώτησες?
Όχι φίλε, για την main και την cl_pos.

στείλε με pm ότι έχεις γράψει για να καταλάβω καλύτερα τι θέλεις
Logged
MaGill
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 135


I've been down so god damn long!


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #127 on: May 17, 2009, 14:29:34 pm »

#include <stdio.h>
#include <math.h>
void cl_pos(float *r[30],float *az[30]);
int main(){
  float y[30],x[30],sx[30],sy[30];
  float portx,porty;
  float az[30],r[30];
  int flight[30];
  int N,i;
  printf("Dose stigma aerodromiou, x kai y.");
  scanf("%f%f",&portx,&porty);
  if(portx<0||porty<0){
    printf("Prepei na doseis thetikes times gia x kai y!!!");
  }
  printf("Gia posa aeroplana theleis na doulepseis? Apo 1 mexri 30");
  scanf("%d",&N);
  for(i=0;i<N-1;i++){
    printf("Dose arithmo ptisis gia to %d aeroplano.\n",i+1);
    scanf("%d",&flight);
    printf("Dose apostasi apo aerodromio kai azimouthio gia to %d aeroplano.\n",i+1);
    scanf("%f%f",&r,&az);
    cl_pos(&r[30],&az[30]);
    printf("To %d aeroplano exei arithmo ptisis %d kai stigma %f, %f.\n",i+1,flight,sx,sy);
  }
} 
 
void cl_pos(float *r[30],float *az[30]){
  float y[30],x[30],sx[30],sy[30];
  y=cos(*az)*(*r);
  x=sin(*az)*(*r);
  sx=portx+0,009*x;
  sy=porty+0,009*y;
}     

Ευχαριστώ πολύ, μου λύσατε τον εγκεφαλο! Shocked Η cl_pos πως γίνεται να βλέπει τα i?
Logged
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #128 on: May 17, 2009, 14:32:17 pm »

Μπορείς να το βάλεις σαν όρισμα της.
Logged
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #129 on: May 17, 2009, 14:32:40 pm »

Γιατί να το βλέπει όμως?
Logged
MaGill
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 135


I've been down so god damn long!


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #130 on: May 17, 2009, 14:37:20 pm »

Aφού τη χρησιμοποιώ μέσα στην επανάληψη.
Logged
MaGill
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 135


I've been down so god damn long!


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #131 on: May 17, 2009, 14:39:35 pm »

#include <stdio.h>
#include <math.h>
void cl_pos(float *portx,float *porty,int *i,float *r[30],float *az[30]));
int main(){
  float y[30],x[30],sx[30],sy[30];
  float portx,porty;
  float az[30],r[30];
  int flight[30];
  int N,i;
  printf("Dose stigma aerodromiou, x kai y.");
  scanf("%f%f",&portx,&porty);
  if(portx<0||porty<0){
    printf("Prepei na doseis thetikes times gia x kai y!!!");
  }
  printf("Gia posa aeroplana theleis na doulepseis? Apo 1 mexri 30");
  scanf("%d",&N);
  for(i=0;i<N-1;i++){
    printf("Dose arithmo ptisis gia to %d aeroplano.\n",i+1);
    scanf("%d",&flight);
    printf("Dose apostasi apo aerodromio kai azimouthio gia to %d aeroplano.\n",i+1);
    scanf("%f%f",&r,&az);
    cl_pos(float &portx,float &porty,int &i,&r[30],&az[30]);
    printf("To %d aeroplano exei arithmo ptisis %d kai stigma %f, %f.\n",i+1,flight,sx,sy);
  }
} 
 
void cl_pos(float *portx,float *porty,int *i,float *r[30],float *az[30]){
  float y[30],x[30],sx[30],sy[30];
  y=cos(*az)*(*r);
  x=sin(*az)*(*r);
  sx=*portx+0,009*x;
  sy=*porty+0,009*y;
}     
 
             
Αυτό είναι μια βελτιωμένη έκδοση Smiley Μπορείς να μου πεις τι λάθη έχει? sy sx y και x είναι πίνακες. Σάλατα τα έκανα!                         
Logged
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #132 on: May 17, 2009, 14:47:19 pm »

Στο πρόγραμμα που έγραψες η cl_pos δεν χρησιμοποιεί το i πουθενά,φαντάζομαι το βλέπεις,άρα δεν υπάρχει λόγος να το βάλεις σαν όρισμά της Smiley.Επίσης τον έλεγχο για θετικές τιμές στο διάβασμα των portx porty καλό είναι να τις κάνεις με while.Με την if θα κάνει μόνο μια φορά τον έλεγχο και αν δώσεις 2η φορά πάλι αρνητική τιμή θα το αγνοήσει
Logged
MaGill
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 135


I've been down so god damn long!


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #133 on: May 17, 2009, 14:49:50 pm »

Το i βρίσκεται στους πίνακες που ανέφερα παραπάνω.
Logged
Merlin
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377


The Phantom Blot


View Profile
Re: [Δομ. Προγρ.] Εργασία D
« Reply #134 on: May 17, 2009, 14:59:51 pm »

Στην συνάρτησή σου περνάς το i-στο στοιχείο του πίνακα,όχι το ίδιο το i.Δεν υπάρχει κανένας απολύτως λόγος να περάσεις και το i αφού δεν χρησιμεύει σε καμία εκφραση από αυτές που είναι μέσα στο block της συνάρτησης
Logged
Pages: 1 ... 7 8 [9] 10 11 ... 14 Go Up Print
Jump to:  

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