Dracumel Δημοσιεύτηκε January 19, 2005 Κοινοποίηση Δημοσιεύτηκε January 19, 2005 Ο κώδικας μου είναι ο εξής: #include <stdlib.h> #include <stdio.h> #include <malloc.h> #include <time.h> #include <conio.h> void init_signal(double *s,unsigned long N) { unsigned long i; printf("Intializing signal...\n"); for(i=0;i<N;i++){ *(s+i)=0.0; } } void fill_signal(double *s,unsigned long N) { unsigned long i; printf("Fill signal...\n"); srand((unsigned)time(NULL)); //use it only once for(i=0;i<N;i++){ *(s+i)=rand() % 200; } } void print_signal(double *s,unsigned long N) { unsigned long i; printf("Printing...\n"); for(i=0;i<N;i++){ printf("%10.4f\n",*(s+i)); } } void show_menu() { printf("***********************\n"); printf("* 1: Intialize Signal *\n"); printf("* 2: Fill Signal *\n"); printf("* 3: Print Signal *\n"); printf("* 4: Print Average *\n"); printf("* 5: Minimum Signal *\n"); printf("* 6: Maximum Signal *\n"); printf("* 7: Save Signal *\n"); printf("* 8: Read Signal *\n"); printf("* 0: EXIT *\n"); printf("***********************\n"); } double get_mean_value(double *s,unsigned long N) { unsigned long i; double value=0.0; for(i=0;i<N;i++){ value+=*(s+i); } return (value/N); } double get_min(double *s,unsigned long N) { unsigned long i; double min_val=*(s+0); for(i=0;i<N;i++){ if(*(s+i)<min_val) min_val=*(s+i); } return min_val; } double get_max(double *s,unsigned long N) { unsigned long i; double max_val=*(s+0); for(i=0;i<N;i++){ if(*(s+i)>max_val) max_val=*(s+i); } return max_val; } bool save_signal(char *path, double *s,unsigned long N) { FILE *pFile=NULL; pFile=fopen("c:\\signal","wb"); //δεν ξέρω πως να σώσω το αρχείο fprintf(pFile); //close file fclose(pFile); } double *read_signal(char *path,unsigned long N) { FILE *pFile=NULL; double *s=NULL; s=new double[N]; pFile=fopen(path,"rb"); //πως θα ανοίξω το αρχείο fclose(pFile); return s; } void main() { double *p_array=NULL; int LEN = 10; char command; show_menu(); //show the menu //allocate memory for signal p_array=(double *)malloc(sizeof(double)*LEN); while (command !='0'){ command=getch(); switch(command){ case '1': init_signal(p_array,LEN); print_signal(p_array,LEN); break; case '2': fill_signal(p_array,LEN); print_signal(p_array,LEN); break; case '3': print_signal(p_array,LEN); break; case '4': get_mean_value(p_array,LEN); printf("Printing Average...\n"); printf("%10.4f\n",get_mean_value(p_array,LEN)); break; case '5': get_min(p_array,LEN); printf("Printing Minimum Signal...\n"); printf("%10.4f\n",get_min(p_array,LEN)); break; case '6': get_max(p_array,LEN); printf("Printing Minimum Signal...\n"); printf("%10.4f\n",get_max(p_array,LEN)); break; case '7': printf("Saving signal...\n"); save_signal(p_array,LEN); printf("Signal Saved!!!\n"); break; case '8': printf("Opening signal...\n"); *read_signal(p_array,LEN); break; default: printf("error choice. Please try again!\n"); break; } } if(p_array!=NULL) free(p_array); } Έχω γράψει ότι άλλο ζητάει η άσκηση, έχω κολλήσει στο σημείο που πρέπει να σώσω το αρχείο και στο άνοιγμα του. Ευχαριστώ πολύ εκ των πρωτέρων για το χρόνο που μου διαθέσατε. Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
nagual Δημ. January 19, 2005 Κοινοποίηση Δημ. January 19, 2005 Θα βοηθούσε αν μας έλεγες τον σκοπό του προγράμματός σου και ποιος ακριβώς είναι ο σκοπός των function στις οποίες έχεις πρόβλημα Παράθεση always look on the bright side of life :whistle: Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
Dracumel Δημ. January 19, 2005 Author Κοινοποίηση Δημ. January 19, 2005 Είναι ένα πρόγραμμα που παράγει τυχαίες τιμές σημάτων,βρίσκει την μέση τιμή των σημάτων αυτών, την μέγιστη τιμή σήματος και την ελάχιστη. Όμως έχω κολήσει στην καταχώρηση των τιμών των σημάτων σε ένα αρχείο (bool save_save_signal) και στο άνοιγμα του (double *read_signal) και πως θα την καλέσω από την main (βλέπε case 6, case 7 Παράθεση Link to comment Share on other sites Περισσότερες Επιλογές Κοινής Χρήσης
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.