Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include<stdlib.h>
- #include<time.h>
- float cel_na_fahr(float x);
- float fahr_na_cel(float x);
- float cel_na_kel (float x);
- float kel_na_cel (float x);
- int JedenRekord=1,RekordyTablicy=1,*pRekordyTablicy ; // globalne do tablic
- //PROTOTYPY
- void WypisywanieNaTablice(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[]);
- void UsuwanieRekordow(int JedenRekord,int RekordyTablicy,float temp_wejscia [],char char_wejscia [],float temp_wyjscia [],char char_wyjscia[]);
- void WypisanieJednegoRekordu(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[]);
- void ModyfikacjaRekordu(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[]);
- void UsuwanieWszystkichRekordow(int JedenRekord,int RekordyTablicy,float temp_wejscia [],char char_wejscia [],float temp_wyjscia [],char char_wyjscia[]);
- void Losowanie(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[]);
- int main()
- {
- pRekordyTablicy=&RekordyTablicy;
- float fahrenheit, celsjusz, kelwin, x, y;
- char char_wejscia[21],char_wyjscia[21];
- float temp_wejscia[21],temp_wyjscia[21];
- int wybor;
- while (wybor!=12){
- poczatek://GOTO
- printf("Przelicznik temperatur. Wybierz cyfrę:\n");
- printf(" wybierz typ konwersji\n");
- printf("[1] --> Z Celsjusza do Fahrenheita\n");
- printf("[2] --> Z Fahrenheita do Celsjusza\n");
- printf("[3] --> Z Kelwina do Fahrenheita\n");
- printf("[4] --> Z Fahrenheita do Kelwina\n");
- printf("[5] --> Z Kelwina do Celsjusza\n");
- printf("[6] --> Z Celsjusza do Kelwina\n");
- printf("[7] --> Wyniki Przeliczen\n");
- printf("[8] --> Usuwanie Rekordow\n");
- printf("[9] --> Pokaz Jeden Rekord\n");
- printf("[10] --> Modyfikuj Rekord\n");
- printf("[11] --> Wypelnij Tablice Przeliczen Losowymi Temperaturami\n");
- printf("[0] --> Wyjscie z programu\n");
- scanf("%d",&wybor);
- printf("\n\n");
- switch(wybor)
- {
- case 1:
- printf("podaj wartosc temperatury w stopniach Celcjusza:");
- scanf("%f",&celsjusz);
- x = cel_na_fahr(celsjusz);
- if (celsjusz<(-273.15))
- {
- printf("Najnizsza temperatura wystepujaca w przyrodzie wynosi -273.15 Celsjusza (0 Kelwina)\n\n\n");
- break;
- goto poczatek;
- }
- temp_wyjscia[JedenRekord]=x; //Zapis do ogolnej tabeli
- temp_wejscia[JedenRekord]=celsjusz;
- char_wejscia[JedenRekord]='C';
- char_wyjscia[JedenRekord]='F';
- JedenRekord++;RekordyTablicy++; //inkrementacja potrzebna pozniej do wywolania tablicy
- printf("Temperatura w stopniach Fahrenheita wynosi: %3.2f\n\n\n",x);
- break;
- case 2:
- printf("podaj wartosc temperatury w stopniach Fahrenheita:");
- scanf("%f",&fahrenheit);
- x = fahr_na_cel(fahrenheit);
- if (fahrenheit<-459.67)
- {
- printf("Najnizsza temperatura wystepujaca w przyrodzie wynosi -459.67 Fahrenheita (0 Kelwina)\n\n\n");
- break;
- goto poczatek;
- }
- temp_wyjscia[JedenRekord]=x; //Zapis do ogolnej tabeli
- temp_wejscia[JedenRekord]=fahrenheit;
- char_wejscia[JedenRekord]='F';
- char_wyjscia[JedenRekord]='C';
- JedenRekord++;RekordyTablicy++; //inkrementacja potrzebna pozniej do wywolania tablicy
- printf("Temperatura w stopniach Celsjusza wynosi: %3.2f\n\n\n",x);
- break;
- case 3:
- printf("podaj wartosc temperatury w stopniach Kelwina:");
- scanf("%f",&kelwin);
- x = kel_na_cel(kelwin);
- y = cel_na_fahr(x);
- if (kelwin<0)
- {
- printf("Najnizsza temperatura wystepujaca w przyrodzie wynosi 0 Kelwina\n\n\n");
- break;
- goto poczatek;
- }
- temp_wyjscia[JedenRekord]=y; //Zapis do ogolnej tabeli
- temp_wejscia[JedenRekord]=kelwin;
- char_wejscia[JedenRekord]='K';
- char_wyjscia[JedenRekord]='F';
- JedenRekord++;RekordyTablicy++; //inkrementacja potrzebna pozniej do wywolania tablicy
- printf("Temperatura w stopniach Fahrenheita wynosi: %3.2f\n\n\n",y);
- break;
- case 4:
- printf("podaj wartosc temperatury w stopniach Fahrenheita:");
- scanf("%f",&fahrenheit);
- x=fahr_na_cel(fahrenheit);
- y=cel_na_kel(x);
- if (fahrenheit<-459.67)
- {
- printf("Najnizsza temperatura wystepujaca w przyrodzie wynosi -459.67 Fahrenheita (0 Kelwina)\n\n\n");
- break;
- goto poczatek;
- }
- temp_wyjscia[JedenRekord]=y; //Zapis do ogolnej tabeli
- temp_wejscia[JedenRekord]=fahrenheit;
- char_wejscia[JedenRekord]='F';
- char_wyjscia[JedenRekord]='K';
- JedenRekord++;RekordyTablicy++; //inkrementacja potrzebna pozniej do wywolania tablicy
- printf("Temperatura w stopniach Kelwina wynosi: %3.2f\n\n\n",y);
- break;
- case 5:
- printf("podaj wartosc temperatury w stopniach Kelwina:");
- scanf("%f",&kelwin);
- x = kel_na_cel(kelwin);
- if (kelwin<0)
- {
- printf("Najnizsza temperatura wystepujaca w przyrodzie wynosi 0 Kelwina\n\n\n");
- break;
- goto poczatek;
- }
- temp_wyjscia[JedenRekord]=x; //Zapis do ogolnej tabeli
- temp_wejscia[JedenRekord]=kelwin;
- char_wejscia[JedenRekord]='K';
- char_wyjscia[JedenRekord]='C';
- JedenRekord++;RekordyTablicy++; //inkrementacja potrzebna pozniej do wywolania tablicy
- printf("Temperatura w stopniach Celsjusza wynosi: %3.2f\n\n\n",x);
- break;
- //===========================================================================================================================================================
- case 6:
- printf("podaj wartosc temperatury w stopniach Celsjusza:");
- scanf("%f",&celsjusz);
- x = cel_na_kel(celsjusz);
- if (celsjusz<(-273.15))
- {
- printf("Najnizsza temperatura wystepujaca w przyrodzie wynosi -273.15 Celsjusza (0 Kelwina)\n\n\n");
- break;
- goto poczatek;
- }
- temp_wyjscia[JedenRekord]=x; //Zapis do ogolnej tabeli
- temp_wejscia[JedenRekord]=celsjusz;
- char_wejscia[JedenRekord]='C';
- char_wyjscia[JedenRekord]='K';
- JedenRekord++;RekordyTablicy++; //inkrementacja potrzebna pozniej do wywolania tablicy
- printf("Temperatura w stopniach Kelwina wynosi: %3.2f\n\n\n",x);
- break;
- case 7:
- WypisywanieNaTablice(JedenRekord,RekordyTablicy,temp_wejscia,char_wejscia,temp_wyjscia,char_wyjscia);
- break;
- case 8:
- int wybor2;
- printf("Chcesz usunac jeden(1) czy wszystkie rekordy(2)? ");
- scanf("%d",&wybor2);
- if (wybor2 == 1)
- {
- UsuwanieRekordow(JedenRekord,RekordyTablicy,temp_wejscia,char_wejscia,temp_wyjscia,char_wyjscia);
- JedenRekord--;
- RekordyTablicy--;
- }
- if (wybor2 == 2)
- {
- UsuwanieWszystkichRekordow(JedenRekord,RekordyTablicy,temp_wejscia,char_wejscia,temp_wyjscia,char_wyjscia);
- JedenRekord=1;
- RekordyTablicy=1;
- }
- break;
- case 9:
- WypisanieJednegoRekordu(JedenRekord,RekordyTablicy,temp_wejscia,char_wejscia,temp_wyjscia,char_wyjscia);
- break;
- case 10:
- ModyfikacjaRekordu(JedenRekord,RekordyTablicy,temp_wejscia,char_wejscia,temp_wyjscia,char_wyjscia);
- break;
- case 11:
- Losowanie(JedenRekord,RekordyTablicy,temp_wejscia,char_wejscia,temp_wyjscia,char_wyjscia);
- RekordyTablicy+=20;
- break;
- }
- }
- return 0;
- }
- float cel_na_fahr (float x)
- {
- return (x * (9.0/5.0)) + 32;
- }
- float fahr_na_cel (float x)
- {
- return (5.0/9.0)*(x-32);
- }
- float cel_na_kel (float x)
- {
- return x+273.15;
- }
- float kel_na_cel (float x)
- {
- return x-273.15;
- }
- //Zapisane tablice
- void WypisywanieNaTablice(int JedenRekord,int RekordyTablicy,float temp_wejscia [],char char_wejscia [],float temp_wyjscia [],char char_wyjscia[])
- {
- if(RekordyTablicy>1)
- {
- for (int i=1;i<*pRekordyTablicy;i++)//wywala pokolei indeksy
- {
- printf("%d.\t %.2f %c --------> %.2f %c \n",i,temp_wejscia[i],char_wejscia[i],temp_wyjscia[i],char_wyjscia[i]);
- }
- printf("\n\n");
- }
- else
- printf("Nie ma zadnego rekordu!\n\n");
- }
- //Usuwanie rekordu
- void UsuwanieRekordow(int JedenRekord,int RekordyTablicy,float temp_wejscia [],char char_wejscia [],float temp_wyjscia [],char char_wyjscia[])
- {
- if(RekordyTablicy>1)
- {
- int WyborRekordu;
- printf("Ktory rekord chcesz usunac?:");
- scanf("%d",&WyborRekordu);
- temp_wyjscia[WyborRekordu]=0;
- temp_wejscia[WyborRekordu]=0;
- char_wejscia[WyborRekordu]=' ';
- char_wyjscia[WyborRekordu]=' ';
- for (int i=WyborRekordu;i<*pRekordyTablicy;i++)//wrzuca na miejsce usunietej tablicy tablice nastepna z gory | pointer dla pewnosci
- {
- temp_wyjscia[i]=temp_wyjscia[i+1];
- temp_wejscia[i]=temp_wejscia[i+1];
- char_wejscia[i]=char_wejscia[i+1];
- char_wyjscia[i]=char_wyjscia[i+1];
- }
- }
- else
- printf("Nie ma zadnego rekordu!\n\n");
- }
- //Usuwanie wszytskich rekordów
- void UsuwanieWszystkichRekordow(int JedenRekord,int RekordyTablicy,float temp_wejscia [],char char_wejscia [],float temp_wyjscia [],char char_wyjscia[])
- {
- if( RekordyTablicy>1)
- {
- int tmp;
- tmp=JedenRekord;
- JedenRekord=1;
- for(JedenRekord;JedenRekord<=tmp;JedenRekord++)
- {
- temp_wyjscia[JedenRekord]=0;
- temp_wejscia[JedenRekord]=0;
- char_wejscia[JedenRekord]=' ';
- char_wyjscia[JedenRekord]=' ';
- }
- }
- else
- printf("Nie ma zadnego rekordu!\n\n");
- }
- //Wpisanie 1 rekordu
- void WypisanieJednegoRekordu(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[])
- {
- if(RekordyTablicy>1)
- {
- int WyborRekordu;
- printf("Jaki rekord chcesz wypisac? :");
- scanf("%d",&WyborRekordu);
- JedenRekord=WyborRekordu;
- printf("\t %.2f %c --------> %.2f %c \n",temp_wejscia[JedenRekord],char_wejscia[JedenRekord],temp_wyjscia[JedenRekord],char_wyjscia[JedenRekord]);
- printf("/n/n");
- }
- else
- printf("Nie ma zadnego rekordu!\n\n");
- }
- //Modyfikacja
- void ModyfikacjaRekordu(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[])
- {
- char PierwszaTemp, DrugaTemp;
- float Temperatura,x;
- JeszczeRaz://< GOTO
- printf("Ktory rekord chcesz zmienic:");
- scanf("%d",&JedenRekord);
- printf("\nPodaj jednostke pierwszej temperatury(C,F,K):");
- scanf("%s",&PierwszaTemp);
- printf("\nPodaj jednostke temperatury na ktora chcesz przeliczyc(C,K,F):");
- scanf("%s",&DrugaTemp);
- printf("\nPodaj wartosc temperatury:");
- scanf("%f",&Temperatura);
- temp_wejscia[JedenRekord]=Temperatura;
- // TEMP WEJSCIA ZAWSZE TAKA SAMA
- if(PierwszaTemp=='C' && (DrugaTemp=='K' || DrugaTemp=='F'));
- {
- if (Temperatura<(-273.15)) //Na wypadek nieprawidlowej temp
- {
- printf("Najnizsza temperatura wynosi -273.15 Celsjusza (0 Kelwina), wpisz dane ponownie\n\n\n");
- goto JeszczeRaz;
- }
- char_wejscia[JedenRekord]='C';
- if (DrugaTemp == 'K') // Wklepanie drugiej temp
- {
- temp_wyjscia[JedenRekord]=cel_na_kel(Temperatura);
- char_wyjscia[JedenRekord]='K';
- }
- if (DrugaTemp == 'F')
- {
- temp_wyjscia[JedenRekord]=cel_na_fahr(Temperatura);
- char_wyjscia[JedenRekord]='F';
- }
- }
- if(PierwszaTemp=='K' && (DrugaTemp=='C' || DrugaTemp=='F'));
- {
- if (Temperatura<0)
- {
- printf("Najnizsza temperatura wynosi 0 Kelwina. Wpisz dane ponownie\n\n\n");
- goto JeszczeRaz;
- }
- char_wejscia[JedenRekord]='K';
- if (DrugaTemp == 'C')
- {
- temp_wyjscia[JedenRekord]=kel_na_cel(Temperatura);
- char_wyjscia[JedenRekord]='C';
- }
- if (DrugaTemp == 'F')
- {
- x=kel_na_cel(Temperatura);
- temp_wyjscia[JedenRekord]=cel_na_fahr(x);
- char_wyjscia[JedenRekord]='F';
- }
- }
- if(PierwszaTemp=='F' && (DrugaTemp=='C' || DrugaTemp=='K'));
- {
- if (Temperatura<-459.67)
- {
- printf("Najnizsza temperatura wynosi -459.67 Fahrenheita (0 Kelwina). Wpisz dane ponownie\n\n\n");
- goto JeszczeRaz;
- }
- char_wejscia[JedenRekord]='F';
- if (DrugaTemp == 'C')
- {
- temp_wyjscia[JedenRekord]=fahr_na_cel(Temperatura);
- char_wyjscia[JedenRekord]='C';
- }
- if (DrugaTemp == 'K')
- {
- x=fahr_na_cel(Temperatura);
- temp_wyjscia[JedenRekord]=cel_na_kel(x);
- char_wyjscia[JedenRekord]='K';
- }
- }
- }
- //Losowe liczby
- void Losowanie(int JedenRekord,int RekordyTablicy,float temp_wejscia[],char char_wejscia[],float temp_wyjscia[],char char_wyjscia[])
- {
- int random = time(NULL),random2;
- float TempRandom = time(NULL),x;
- for (JedenRekord=1;JedenRekord<=20;JedenRekord++)
- {
- srand((JedenRekord+random+time(NULL))*18011997); // seed z ktorego ma brac randoma
- random = rand() % 3 + 1; // ograniczenie randoma od 1 do 3
- if (random == 1)
- {
- char_wejscia[JedenRekord]='C';
- srand((JedenRekord+random+time(NULL))*18011997); // seed randoma
- TempRandom= rand() % 673 - 273; // ograniczenie od -273 do 400
- temp_wejscia[JedenRekord]=TempRandom;
- srand((JedenRekord+TempRandom+time(NULL))*18011997);
- random2 = rand() % 2 + 1; // ograniczenie randoma od 1 do 2, wybiera na jaka temperature zkonwertuje sie randomowa temp
- if (random2 == 1)
- {
- temp_wyjscia[JedenRekord]=cel_na_kel(TempRandom); // funkcja to konwertowania
- char_wyjscia[JedenRekord]='K';
- }
- if (random2 == 2)
- {
- temp_wyjscia[JedenRekord]=cel_na_fahr(TempRandom);
- char_wyjscia[JedenRekord]='F';
- }
- }
- if (random == 2)
- {
- char_wejscia[JedenRekord]='K';
- srand((JedenRekord+random+time(NULL))*18011997);
- TempRandom= rand() % 400 + 1;
- temp_wejscia[JedenRekord]=TempRandom;
- srand((JedenRekord+TempRandom+time(NULL))*18011997);
- random2 = rand() % 2 + 1;
- if (random2 == 1)
- {
- temp_wyjscia[JedenRekord]=kel_na_cel(TempRandom);
- char_wyjscia[JedenRekord]='C';
- }
- if (random2 == 2)
- {
- x=kel_na_cel(TempRandom);
- temp_wyjscia[JedenRekord]=cel_na_fahr(x);
- char_wyjscia[JedenRekord]='F';
- }
- }
- if (random == 3)
- {
- char_wejscia[JedenRekord]='F';
- srand((JedenRekord+random+time(NULL))*18011997);
- TempRandom= rand() % 859 - 459;
- temp_wejscia[JedenRekord]=TempRandom;
- srand((JedenRekord+TempRandom+time(NULL))*18011997);
- random2 = rand() % 2 + 1;
- if (random2 == 1)
- {
- temp_wyjscia[JedenRekord]=fahr_na_cel(TempRandom);
- char_wyjscia[JedenRekord]='C';
- }
- if (random2 == 2)
- {
- x=fahr_na_cel(TempRandom);
- temp_wyjscia[JedenRekord]=cel_na_kel(x);
- char_wyjscia[JedenRekord]='K';
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement