Postanowiłem napisać program wyliczający współczynnik BMI. Najpierw program prosi o podanie wzrostu w stopach i calach. Następnie ten wzrost zamienia na cale, a potem na metry. Kolejnym krokiem jest podanie wagi w funtach i zamiana jej na kilogramy. Wszystkie dane potrzebne do konwersji zapisane są w stałych symbolicznych. Ostatnim krokiem jest wyliczenie BMI, czyli podzielenie wagi w kilogramach przez kwadrat wzrostu w metrach. Oto mój potwornie zagmatwany kod:
1>------ Build started: Project: main, Configuration: Debug Win32 ------
1> BMI.cpp
1>c:\documents and settings\przereklamowany\pulpit\c++\main\main\bmi.cpp(43): error C2470: 'BMI' : looks like a function definition, but there is no parameter list; skipping apparent body
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Pojawił mi się on po raz pierwszy i nie mam pojęcia, co z nim zrobić. Na 99% jestem pewny, że chodzi coś o zmienne.
Co miałeś na myśli? Funkcja to to nie jest, bo brak nawiasów(), waga i wzrost skąd ma wziąć? Kompilator GCC wywala:
test.cpp: In function ‘int main()’:
test.cpp:21:8: warning: unused variable ‘wzr’
test.cpp: At global scope:
test.cpp:42:8: error: redefinition of ‘double BMI’
test.cpp:6:8: error: ‘double BMI’ previously declared here
test.cpp:42:8: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
test.cpp:44:4: error: expected primary-expression before ‘return’
test.cpp:44:4: error: expected ‘}’ before ‘return’
test.cpp:45:1: error: expected declaration before ‘}’ token
Czyli: - nieużyta zmienna wzr z linii 21 - W sekcji globalnej: redefinicja zmiennej double BMI (linia 42) błąd: BMI zadeklarowane wcześniej tu (linia 6) - brak wyrażenia przed return (nieprawidłowa konstrukcja funkcji) Jeszcze to by mógł zgłosić:
No trudno. Staram się robić te ćwiczenia programistyczne na bieżąco, ale chyba na razie sobie odpuszczę. Mam jeszcze tylko takie jedno pytanie. Jak zrobić, żeby tekst wyświetlany był podkreślony/pogrubiony/itp. Mam na myśli oczywiście aplikacje uruchamiane z wiersza poleceń.
Co do tematu, rób ćwiczenia na bieżąco. Bierz pod uwagę, iż zmienną musisz zadeklarować przed pierwszym jej użyciem, tak samo funkcje ;]
Czyli jeśli masz funkcję napisz, to nim chcesz jej użyć musisz ją zadeklarować. A ty deklarujesz zmienną, potem z niej korzystasz a na końcu piszesz zawartość funkcji.
Btw w nazwach zmiennych nie wolno korzystać z spacji: