Wpis z mikrobloga

#programowanie #cpp #informatyka

Dlaczego jeśli moje zmienne są zdeklarowane w int main() to i tak w funkcjach nie chce się nic kompilować? Jak zmienić wygląd kodu, żeby działało poprawnie i się kompilował?
kod

#include

using namespace std;

void m(float m) // z cali na metry
{
m = (ft * 12 + in) * 0.0254;
return ;
}
void in(float in) // 1 cal to 0.0254m
{
in = m / 0.0254;
return ;
}
void ift(int ift) // 1 stopa to 12 cali
{
ift = in/12;
return ;
}
int main()
{
int sys, ift;
float m, ft, in;
cout << "0 - metric system \n1 - imperial system ";
cin >> sys;
if (sys == 0) // konwersja z metrów na cale i stopy
{
cout << "metric system";
cin >> m;
cout << m << "meters is" << ft << "foot";
}
else if (sys == 1) // konwersja z cali na metry
{
cout << "imperial system";
cin >> ft;
cout << ift << "foot is" << m << "meters";

}
return 0;
}
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@harnasiek: funkcje nie mogą mieć dostępu do zmiennych z innych funkcji, dopóki im ich nie przekażesz przez parametr albo nie zrobisz tych zmiennych jako globalne (ale to odradzam, bo to nie jest dobry nawyk).
  • Odpowiedz
@mapache: bo raz, że się sam uczę tego C++, a 2 na studiach wykładowca nie wytłumaczył jak powinny być napisane funkcje, tylko jak wyglądają i do czego służą nic więcej
  • Odpowiedz
@harnasiek: to tak jak mówiłem. wywal kod, napisz od nowa. nazywaj inaczej zmienne i funkcje, do tego same nazwy mają wskazywać do czego są. a nie funkcja "m" domyśl się co robi
  • Odpowiedz
@harnasiek: nazwanie zmiennej tak samo jak funkcji na nic nie wpływa, nic nie daje, nie ma żadnego powiązania. Funkcje, które zrobiłeś nie są w ogóle wywoływane. Do funkcji możesz przekazywać dowolne rzeczy (tylko typ musi się zgadzać), a jej nazwa, nazwa argumentu i nazwa tego co przekazujesz nie mają ze sobą żadnego powiązania (mogą być dowolne).

Nazwij te funkcje najlepiej convert_to_imperial, convert_to_metric itd.
Mogą one dostawać float (float
  • Odpowiedz
@harnasiek: Takie próbowanie jest spoko, ale dobrze najpierw przerobić sobie podstawy. Spróbuj wypożyczyć z biblioteki uczelni jakąś książkę, na przykład Pratę. Będziesz miał w miarę sensowną "ścieżkę" nauki. Wskaźniki, referencje itp są poziom, o ile tylko jeden, wyżej niż wywoływanie funkcji.
  • Odpowiedz