mam pytanko dla doświadczonych programistów i tych mniej doświadczonych też
mam za zadanie zrobić program liczący np pole trójkąta,koła itp;ale żeby dawał możliwość wyboru tego czego chcemy liczyć coś w rodzaju menu.chciałbym użyć do tego odzielnych funkcjii a funkcja główna main()tylko by sobie pobierała zwracane wartości i nie wiem jak to zrobić
z góry dzięki za podpowiedzi
Menu w programie C
-
- Użytkownik
- Posty: 28
- Rejestracja: 29 lis 2010, o 00:13
- Płeć: Mężczyzna
- Lokalizacja: Krk/Pionki
- Pomógł: 3 razy
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Menu w programie C
Tak w skrócie to schemat może wyglądać tak :
Kod: Zaznacz cały
double poleKola()
{
pobierzDane(...) /// pobierasz dane do obliczeń - można również w funkcji głównej pobrać wszystkie możliwe jeśli wolisz
algorytm obliczania pola
}
double poleTrojkata()
{
pobierzDane(...)
algorytm obliczania pola
}
int main()
{
double Pole;
printf("Podaj wybor: 1 - Pole kola, 2 - Pole trojkata ... ");
scanf("%d",&wybor);
switch(wybor)
{
case 1:
Pole = poleKola();
break;
case 2:
Pole = poleTrojkata();
break;
...
default:
printf("Blad wyboru opcji");
}
printf("Pole wynosi %f",Pole);
return 0;
}
-
- Użytkownik
- Posty: 28
- Rejestracja: 29 lis 2010, o 00:13
- Płeć: Mężczyzna
- Lokalizacja: Krk/Pionki
- Pomógł: 3 razy
Menu w programie C
wielkie dzieki już troche kapuje ale dopiero sie ucze wiec jeszcze raz dzieki
zaraz spróbuje napisać
-- 1 gru 2010, o 18:43 --
cos takiego wykminiłem ale sporo błędów jakby ktoś mógł mi wytłumaczyć co jest źle to byłbym wdzięczny
zaraz spróbuje napisać
-- 1 gru 2010, o 18:43 --
cos takiego wykminiłem ale sporo błędów jakby ktoś mógł mi wytłumaczyć co jest źle to byłbym wdzięczny
Kod: Zaznacz cały
#include<stdio.h>
#include<math.h>
#define PI = 3.14
double pkolo()
{
float r;
printf("Obliczam pole kola,podaj promien
");
scanf("%f",&r);
printf("Pole wynosi %.2f
",PI*r);
return 0;
}
double pkwadrat()
{
float a;
printf("Obliczam pole kwadratu,podaj dl boku");
scanf("%f",&a);
printf("Pole wynosi %.2f",a*a);
return 0;
}
double ptrojkont()
{
float b,h;
printf("Obliczam pole trojkata,podaj wysokosc i dl podstawy");
scanf("%f %f",&b,&h);
printf("Pole wynosi %.2f",(b*h)/2);
return 0;
}
int main()
{
int koniec;
double Pole,wybor;
printf("Podaj czego pole chcesz liczyć:
1-pole koła
2-pole kwadratu
3-pole trojkonta
4-koniec
");
scanf("%d",&wybor);
while(koniec!=4)
{
switch wybor
{
case 1: Pole = pkolo();
break;
case 2: Pole = pkwadrat();
break;
case 3: Pole = ptrojkont();
break;
}//zamykam switch
scanf("%d",&koniec);
}//zamykam while
return 0;
}//zamykam main
Ostatnio zmieniony 1 gru 2010, o 21:55 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Kod w [code][\code]!
Powód: Kod w [code][\code]!
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Menu w programie C
troszkę namieszałeś - pomyłki w składnii oraz nie do końca złapałeś ideę jak to ma wyglądać. przeanalizuj kod i porównaj ze swoim. A i wzór na pole koła jaki jest?! edit: zmieniłem jeszcze nazwe funkcji obliczającej pole trójkąta - wstyd nazywać funkcję popełniając błąd ortograficzny
Kod: Zaznacz cały
#include<stdio.h>
#include<math.h>
#define PI 3.14
float pkolo()
{
float r;
printf("Obliczam pole kola,podaj promien
");
scanf("%f",&r);
return PI*r*r;
}
float pkwadrat()
{
float a;
printf("Obliczam pole kwadratu,podaj dl boku
");
scanf("%f",&a);
return a*a;
}
double ptrojkat()
{
float b,h;
printf("Obliczam pole trojkata,podaj wysokosc i dl podstawy
");
scanf("%f %f",&b,&h);
return (b*h)/2;
}
int main()
{
int koniec;
float Pole;
int wybor;
do{
printf("Podaj czego pole chcesz liczyć:
1-pole koła
2-pole kwadratu
3-pole trojkonta
4-koniec
");
scanf("%d",&wybor);
switch (wybor)
{
case 1: Pole = pkolo();
break;
case 2: Pole = pkwadrat();
break;
case 3: Pole = ptrojkat();
break;
case 4: printf("Koncze
");
break;
default : printf("Bledna opcja
");
}
if(wybor!=4) printf("Pole wynosi %.2f",Pole);
}while(wybor!=4);
return 0;
}
-
- Użytkownik
- Posty: 28
- Rejestracja: 29 lis 2010, o 00:13
- Płeć: Mężczyzna
- Lokalizacja: Krk/Pionki
- Pomógł: 3 razy
Menu w programie C
dzieki powoli zaczynam rozumieć
-- 1 gru 2010, o 22:54 --
czyli mając np to
to przedostatnia linijka return PI*r*r zwraca nam wartość tak?
a nie mogło być tak jak ja miałem skompilowałem i też działa czy ma to jakieś znaczenie
ja miałem
???-- 1 gru 2010, o 23:06 --i jeszcze sorry że zapytam ale mam pare pytań(związane z C) :
1)co to znaczy ??
FILE *f,g
f=fopen("dane","r);
g=fopen("wynik","w");
while(!feof(f))
2)..................
if(w!=NULL) nie wiem co to znaczy NULL
3)
int x[] to chyba tablica czy coś takiego ale nie wiem z czym się to je
jakbyś mógł co kolwiek po krótce mi wytłumaczyć
-- 1 gru 2010, o 22:54 --
Kod: Zaznacz cały
float pkolo()
{
float r;
printf("Obliczam pole kola,podaj promien
");
scanf("%f",&r);
return PI*r*r;
}
to przedostatnia linijka return PI*r*r zwraca nam wartość tak?
a nie mogło być tak jak ja miałem skompilowałem i też działa czy ma to jakieś znaczenie
ja miałem
Kod: Zaznacz cały
double pkolo()
{
float r;
printf("Obliczam pole kola,podaj promien
");
scanf("%f",&r);
printf("Pole wynosi %.2f
",PI*r*r);
return 0;
}
1)co to znaczy ??
FILE *f,g
f=fopen("dane","r);
g=fopen("wynik","w");
while(!feof(f))
2)..................
if(w!=NULL) nie wiem co to znaczy NULL
3)
int x[] to chyba tablica czy coś takiego ale nie wiem z czym się to je
jakbyś mógł co kolwiek po krótce mi wytłumaczyć
Ostatnio zmieniony 1 gru 2010, o 21:56 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Kod w [code][\code]!
Powód: Kod w [code][\code]!
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Menu w programie C
takto przedostatnia linijka return PI*r*r zwraca nam wartość tak?
tak jest trochę ładniej - jeśli chcesz swoją wersję to zwracaj void(czyli "nic")a nie mogło być tak jak ja miałem skompilowałem i też działa czy ma to jakieś znaczenie
Ad. 1 Jest to otwarcie plików. f,g to wskażniki na zmienną plikową - funkcja fopen zwraca adres wczytanego pliku. Eof - koniec pliku.
Ad. 2 NULL = 0
Ad. 3 jest to oznaczenie tablicy
Ogólnie polecam poczytać jakiś kurs o jezyku - jest tego dużo zarówno w bibliotekach(księgarniach) jak i w necie.