Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Δίνονται οι συντεταγμένες (xi,yi) n σημείων στα οποία έχουν εγκατασταθεί δέκτες οι οποίοι θα λαμβάνουν ένα σήμα από έναν κεντρικό σταθμό. Για να βρεθεί η θέση του κεντρικού σταθμού βρίσκονται τα δύο σημεία που απέχουν μεταξύ τους τη μεγα-λύτερη απόσταση και ως σημείο για την εγκατάσταση του σταθμού επιλέγεται το μέ-σον της ευθείας που ενώνει τα δύο αυτά σημεία. Επειδή το σήμα που θα φτάνει σε κάθε δέκτη δεν πρέπει να έχει ισχύ μικρότερη από μια ισχύ Pmin πρέπει να υπολογι-σθεί η ισχύς εκπομπής του κεντρικού σταθμού έτσι ώστε, για όλους τους δέκτες, η ισχύς του σήματος που θα φτάνει σε αυτούς να είναι τουλάχιστον ίση με την Pmin. Η ισχύς του σήματος που φτάνει σε ένα δέκτη δίνεται από τη σχέση P=Ptrans/dis2 όπου Ptrans η ισχύς με την οποία εκπέμπει ο σταθμός και dis η απόστασή του δέκτη από τον σταθμό εκπομπής.

Να γραφεί το πρόγραμμα που να διαβάζει τις συντεταγμένες (xi,yi) των σημείων που είναι εγκατεστημένοι οι δέκτες και τη ελάχιστη ισχύ Pmin με την οποία πρέπει να φτάνει το σήμα σε αυτούς. Το πρόγραμμα να υπολογίζει και να εκτυπώνει τις συ-ντεταγμένες της θέσης που θα εγκατασταθεί ο κεντρικός σταθμός εκπομπής καθώς και την ισχύ με την οποία πρέπει αυτός να εκπέμπει έτσι ώστε όλοι οι δέκτες να δέχο-νται το σήμα με ισχύ τουλάχιστον ίση με Pmin. Τέλος το πρόγραμμα να τυπώνει, για κάθε δέκτη, την τελική ισχύ του σήματος που θα φτάνει σε αυτόν αφού υπολογισθεί η τελική ισχύς με την οποία θα πρέπει να εκπέμπει ο κεντρικός σταθμός.

 

Σημείωση: Οι συντεταγμένες των σημείων ορίζονται ως προς ένα τοπικό σύστημα καρτεσιανών συντεταγμένων

Για τον αριθμό των σημείων να ορισθεί μια μέγιστη δυνατή τιμή. Ο πραγ-ματικός αριθμός να διαβάζεται από το πληκτρολόγιο και να γίνεται έλεγ-χος αν αυτός ξεπερνά τη μέγιστη τιμή.

Μπορειτε να βοηθησετε???

Δημοσ.

Πόσταρέ μας και τον κώδικα που έχεις γράψει ως τώρα για να δούμε που κόλλησες. Δε νομίζω κάποιος να σου δώσει ολόκληρη τη λύση χωρίς να παιδευτείς λιγάκι.

Δημοσ.

#include <stdio.h>

#include <math.h>

#define MAX 30

 

int main(void){

float x[MAX],y[MAX],Pmin,dis,dismax,xtrans,ytrans,Ptrans,P;

int i,n,j;

 

printf("Dwste ton arithmo twn shmeiwn twn dektwn\n");

scanf("%d",&n);

printf("Dwste thn timh ths elaxisths isxyos Pmin\n");

scanf("%f",&Pmin);

 

if(n>MAX){

printf("O arithmos pou dwsate kseperna th megisth timh dektwn\n");

}

else {

printf("Dwste tis syntetagmenes kathe dekth\n");

for(i=0;i<n;i++){

printf("Dekths %d\n",i);

scanf("&f %f",&x,&y);

}

for(i==0;i<n;i++){

for(j=0;j<n;j++){

dismax=0;

dis=sqrt(pow(x-x[j],2)+pow(y-y[j],2));

if(dis>dismax){

dismax=dis;

xtrans=(x[j]-x)/2;

ytrans=(y[j]-y)/2;

Ptrans=Pmin*pow(dismax,2);

 

printf("Oi syntetagmenes tou kentrikou stathmou einai oi x=%f kai y=%f",xtrans,ytrans);

printf("H elaxisth isxys me thn opoia prepei na ekpempei o stathmos einai\n",Ptrans);

}

else if(dis==0){

xtrans=x;

ytrans=y;

printf("Oi syntetagmenes tou kentrikou stathmou einai oi x=%f kai y=%f",xtrans,ytrans);

}

}

}

}

}

 

 

 

Αυτο εχω κανει...δν ξερω ουτε αν ειναι σωστο και ουτε πως να το προχωρησω!!

Δημοσ.

#include <stdio.h>

#include <math.h>

#define MAX 30

 

int main(void){

float x[MAX],y[MAX],Pmin,dis,dismax,xtrans,ytrans,Ptrans,P;

int i,n,j;

 

printf("Dwste ton arithmo twn shmeiwn twn dektwn\n");

scanf("%d",&n);

printf("Dwste thn timh ths elaxisths isxyos Pmin\n");

scanf("%f",&Pmin);

 

if(n>MAX){

printf("O arithmos pou dwsate kseperna th megisth timh dektwn\n");

}

else {

printf("Dwste tis syntetagmenes kathe dekth\n");

for(i=0;i<n;i++){

printf("Dekths %d\n",i);

scanf("&f %f",&x,&y);

}

for(i==0;i<n;i++){

for(j=0;j<n;j++){

dismax=0;

dis=sqrt(pow(x-x[j],2)+pow(y-y[j],2));

if(dis>dismax){

dismax=dis;

xtrans=(x[j]-x)/2;

ytrans=(y[j]-y)/2;

Ptrans=Pmin*pow(dismax,2);

 

printf("Oi syntetagmenes tou kentrikou stathmou einai oi x=%f kai y=%f",xtrans,ytrans);

printf("H elaxisth isxys me thn opoia prepei na ekpempei o stathmos einai\n",Ptrans);

}

else if(dis==0){

xtrans=x;

ytrans=y;

printf("Oi syntetagmenes tou kentrikou stathmou einai oi x=%f kai y=%f",xtrans,ytrans);

}

}

}

}

}

 

 

 

Αυτο εχω κανει...δν ξερω ουτε αν ειναι σωστο και ουτε πως να το προχωρησω!!

Δημοσ.
Δίνονται οι συντεταγμένες (xi' date='yi) n σημείων στα οποία έχουν εγκατασταθεί δέκτες οι οποίοι θα λαμβάνουν ένα σήμα από έναν κεντρικό σταθμό. Για να βρεθεί η θέση του κεντρικού σταθμού βρίσκονται τα δύο σημεία που απέχουν μεταξύ τους τη μεγα-λύτερη απόσταση και ως σημείο για την εγκατάσταση του σταθμού επιλέγεται το μέ-σον της ευθείας που ενώνει τα δύο αυτά σημεία. Επειδή το σήμα που θα φτάνει σε κάθε δέκτη δεν πρέπει να έχει ισχύ μικρότερη από μια ισχύ Pmin πρέπει να υπολογι-σθεί η ισχύς εκπομπής του κεντρικού σταθμού έτσι ώστε, για όλους τους δέκτες, η ισχύς του σήματος που θα φτάνει σε αυτούς να είναι τουλάχιστον ίση με την Pmin. Η ισχύς του σήματος που φτάνει σε ένα δέκτη δίνεται από τη σχέση P=Ptrans/dis2 όπου Ptrans η ισχύς με την οποία εκπέμπει ο σταθμός και dis η απόστασή του δέκτη από τον σταθμό εκπομπής.

Να γραφεί το πρόγραμμα που να διαβάζει τις συντεταγμένες (xi,yi) των σημείων που είναι εγκατεστημένοι οι δέκτες και τη ελάχιστη ισχύ Pmin με την οποία πρέπει να φτάνει το σήμα σε αυτούς. Το πρόγραμμα να υπολογίζει και να εκτυπώνει τις συ-ντεταγμένες της θέσης που θα εγκατασταθεί ο κεντρικός σταθμός εκπομπής καθώς και την ισχύ με την οποία πρέπει αυτός να εκπέμπει έτσι ώστε όλοι οι δέκτες να δέχο-νται το σήμα με ισχύ τουλάχιστον ίση με Pmin. Τέλος το πρόγραμμα να τυπώνει, για κάθε δέκτη, την τελική ισχύ του σήματος που θα φτάνει σε αυτόν αφού υπολογισθεί η τελική ισχύς με την οποία θα πρέπει να εκπέμπει ο κεντρικός σταθμός.

 

Σημείωση: Οι συντεταγμένες των σημείων ορίζονται ως προς ένα τοπικό σύστημα καρτεσιανών συντεταγμένων

Για τον αριθμό των σημείων να ορισθεί μια μέγιστη δυνατή τιμή. Ο πραγ-ματικός αριθμός να διαβάζεται από το πληκτρολόγιο και να γίνεται έλεγ-χος αν αυτός ξεπερνά τη μέγιστη τιμή.

Μπορειτε να βοηθησετε???[/quote']

 

Από όλο αυτό το κείμενο, το μόνο που έγραψες ήταν η τελευταία σειρά!!!

 

 

Sent from my iPhone using Insomnia

Δημοσ.

 

>
#include <stdio.h>
#include <math.h>
#define MAX 30

int main(void){
   float x[MAX],y[MAX],Pmin,dis,dismax,xtrans,ytrans,Ptrans,P;
   int i,n,j;
   
   printf("Dwste ton arithmo twn shmeiwn twn dektwn\n");
   scanf("%d",&n);
   printf("Dwste thn timh ths elaxisths isxyos Pmin\n");
   scanf("%f",&Pmin);
   
   if(n>MAX){
             printf("O arithmos pou dwsate kseperna th megisth timh dektwn\n");
             }
   else {
        printf("Dwste tis syntetagmenes kathe dekth\n");
        for(i=0;i<n;i++){
                         printf("Dekths %d\n",i);
                         scanf("&f %f",&x[i],&y[i]);
                         }
        for(i==0;i<n;i++){
        for(j=0;j<n;j++){
                         dismax=0;
                         dis=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));
                         if(dis>dismax){
                                        dismax=dis;
                                        xtrans=(x[j]-x[i])/2;
                                        ytrans=(y[j]-y[i])/2;
                                        Ptrans=Pmin*pow(dismax,2);
                                        
                                        printf("Oi syntetagmenes tou kentrikou stathmou einai oi x=%f kai y=%f",xtrans,ytrans);
                                        printf("H elaxisth isxys me thn opoia prepei na ekpempei o stathmos einai\n",Ptrans);
                                        }
                         else if(dis==0){
                              xtrans=x[i];
                              ytrans=y[i];
                               printf("Oi syntetagmenes tou kentrikou stathmou einai oi x=%f kai y=%f",xtrans,ytrans);
                               }
                               }
                               }
                               }
                               }
        
                               
        
                              

Αυτο εχω κανει...δν ξερω ουτε αν ειναι σωστο και ουτε πως να το προχωρησω!!

 

 

Το να μην ξερεις αν ειναι σωστο ειναι ενα προβλημα. Υπαρχει τροπος

αν το δωσεις στον compiler και δοκιμασεις να το τρεξεις με κάποια test cases

δηλαδη δικιες σου εισοδους ωστε να δεις αν τελικα υπολογιζει εκεινο για το οποιο προοριζεται ενα αυτο.

 

Μια δικια μου γνωμη ειναι να χρησιμοποιησεις συναρτήσεις μεσα στον κωδικα σου. Μην στοιβάζεις ολοκληρη την λειτουργια

του προγραμματος σε μια main() σπάσε το προγραμμα σε ρουτινες. (Διαιρει και βασιλευε που λενε) -αυτη ειναι και η βάση του διαδικαστικού προγραμματισμου-

Μεσα απο την main δοκιμασε μετα να καλεις αυτες τις συναρτησεις και να εκτυπωνεις το αποτελεσμα.

 

p.s Δεν βλεπω κατι το δυσκολο στον κωδικα σου παντως. Απλα χρησιμοποιεις σε κάποια φάση ένα ενθετο loop για να υπολογισεις την αποσταση 2 σημειων των οποιων οι συντεταγμενες εχουν αποθηκευθει σε εναν δισδιαστατο πινακα. (1 κλεφτη ματια εριξα τελειως) ετσι?

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...