KDsprinter16 Napisano Grudzień 9, 2024 Zgłoś Napisano Grudzień 9, 2024 int main() { float wsp[L_WSPOLCZ]; float xmin, xmax; int rozmiar = 0; float* sygnalPodstawowy = NULL; float* sygnalSzum = NULL; float* sygnalFiltrM = NULL; float* sygnalFiltrS = NULL; printf("----------MENU---------\n"); int menu = -1; while (menu != 0) { printf("Wybierz opcje:\n1. Generuj\n2. Zapisz\n3. Dosaj szum\n4.Filtruj szum\n0. Wyjdz\n"); scanf("%d", &menu); switch (menu) { case 1: { pobierzWspolczynniki(wsp); pobierzDziedzine(&xmin, &xmax); rozmiar = wielkoscTab(); if (sygnalPodstawowy != NULL) { free(sygnalPodstawowy); sygnalPodstawowy = NULL; } sygnalPodstawowy = (float*)malloc(rozmiar * sizeof(float)); sygnalSzum = (float*)malloc(rozmiar * sizeof(float)); sygnalFiltrM = (float*)malloc(rozmiar * sizeof(float)); sygnalFiltrS = (float*)malloc(rozmiar * sizeof(float)); if (sygnalPodstawowy == NULL || sygnalSzum == NULL || sygnalFiltrM == NULL || sygnalFiltrS == NULL) { perror("Blad alokacji pamieci"); return 1; } generujSygnal(wsp, xmin, xmax, sygnalPodstawowy, rozmiar); drukujSygnal(sygnalPodstawowy, rozmiar); printf("Wygenerowano sygnal\n"); break; } case 2: { if (sygnalSzum != NULL) { csv(rozmiar, sygnalSzum); printf("Zapisano sygnal zaszumiony \n"); } else if(sygnalSzum == NULL && sygnalPodstawowy!= NULL) { csv(rozmiar, sygnalPodstawowy); printf("zapisano sygnal podstawowy\n"); } else { printf("Brak sygnalu do zapisania. Najpierw wygeneruj sygnal.\n"); } break; } case 3: if (sygnalPodstawowy != NULL && sygnalSzum != NULL) { dodajSzum(wsp, xmin, xmax, sygnalPodstawowy, rozmiar, sygnalSzum); printf("dodano szum\n"); break; } else { perror("brak sygnalu do zaszumienia \n"); break; } case 4: //FILTR MEDIANA if (sygnalPodstawowy != NULL) { filtrMediana(sygnalSzum, sygnalFiltrM, wielkoscTab, 5); printf("odfiltrowano sygnal\n"); } else { perror("brak sygnaly do filtrowania\n "); } break; case 5 : { // FILTR SREDNIA if (sygnalPodstawowy != NULL) { filtrSrednia(sygnalSzum, sygnalFiltrS, rozmiar, 5); printf("odfiltrowano sygnal\n"); } else { perror("Brak sygnału do filtrowania\n"); } break; case 0: printf("Zakonczenie programu\n"); break; default: printf("Nieprawidlowa opcja!\n"); } } if (sygnalPodstawowy != NULL) { free(sygnalPodstawowy); } if (sygnalSzum != NULL) { free(sygnalSzum); } if (sygnalFiltrM != NULL) { free(sygnalFiltrM); if (sygnalFiltrS != NULL) { free(sygnalFiltrM); } return 0; } Cytuj
KDsprinter16 Napisano Grudzień 9, 2024 Autor Zgłoś Napisano Grudzień 9, 2024 Czy zwalnianie tablicy w case 5 ma sens? Cytuj
Bartosz Wójcik Napisano Grudzień 10, 2024 Zgłoś Napisano Grudzień 10, 2024 Może sformatuj kod poprawnie... Cytuj
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.