• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Proszę o pomoc w prostym zadaniu c++

Object Storage Arubacloud
0 głosów
1,762 wizyt
pytanie zadane 26 stycznia 2017 w C i C++ przez vega Użytkownik (510 p.)
edycja 26 stycznia 2017 przez vega

Cześć, mam problem z zadaniem, nie wiem kompletnie jak się za nie zabraćfrown

1.Napisz fukncje, która zwraca odwrotność liczby podanej jako parametr 

Bardzo proszę o pomoc, konkretnie chodzi mi o to czym jest parametr i jak go potraktowac 

2 odpowiedzi

+4 głosów
odpowiedź 26 stycznia 2017 przez Sinnley Stary wyjadacz (12,810 p.)
wybrane 26 stycznia 2017 przez vega
 
Najlepsza

Jeśli nie wiesz co to parametr, to może powinieneś sobie powtórzyć co to w ogóle jest funkcja. Parametr to coś co dajesz funkcji, żeby coś z tym zrobiła. Funkcji Sleep() dajesz w środku liczbę reprezentującą ilość milisekund, na które program ma się zatrzymać.NP:

Sleep(1000);

Powoduje zatrzymanie programu na sekundę.

Ty swojej funkcji powinieneś przekazywać liczbę rzeczywistą, zmiennoprzecinkową, i taką samą zwracać, ale już jako jej odwrotność, czyli liczba odwrotna do x to 1/x.

komentarz 26 stycznia 2017 przez vega Użytkownik (510 p.)

Dziękuje bardzo! Wszystko pięknie działa jeszcze tylko musze popracować nad zrozumieniem referencji laugh

1
komentarz 26 stycznia 2017 przez Sinnley Stary wyjadacz (12,810 p.)

Może niewłaściwie rozumiesz samą ideę parametru.

Podając zmienną w ten sposób dzieje się to.

void foo(int a)
{
//kod
}
int main()
{

int x;
foo(x); // ta funkcja dostaje x,
          // a następnie tworzy nową zmienną a, która dostaje taką wartość, jak ma x.
          // jesli funkcja foo zmieni wartosc zmiennej a, zmienna x wciąż będzie taka sama.
}

//

void foo(int& a)
{
//kod
}
int main()
{

int x;
foo(x); // ta funkcja dostaje x, 
          // a nastepnie tworzy nazwe zastępczą dla x, czyli "a". W ten sposob ta zmienna
          // ma dwoje imion, tak jak ksywka i imie odnoszą się do tej samej osoby.
          // zmiana zmiennej a, powoduje zmiane x, bo to ta sama zmienna

}

Bardziej obrazkowo:

Masz niebieski rower. Komuś spodobał się twój rower, ale woli go w kolorze czerwonym. Robi więc sobie taki sam rower, ale czerwony. W ten sposob jeden rower jest czerwony, a drugi niebieski. - W ten sposob dziala zwykle przekazywanie argumentu.

Masz niebieski rower. Komuś spodobał się twój rower, ale woli go w kolorze czerwonym. Bierze więc twój rower i przemalowuje go na kolor czerwony. W ten sposob jest jeden rower, ale ze zmienionym kolorem. - W ten sposob dziala przekazywanie argumetu przez referencje.

komentarz 26 stycznia 2017 przez vega Użytkownik (510 p.)

Czyli jak przekazuje argument przez referencje to wszystkie działania są wykonywane na tej zmiennej i nawet jak funkcja zwraca coś innego(w tym przypadku dlugosc liczby), to przy wywołaniu zmiennej, jej oryginalna wartość ginie i jest wyśwetlana np. od konca?

mam nadzieje, ze wysłowiłam sie w miarę jasno laugh

1
komentarz 26 stycznia 2017 przez Sinnley Stary wyjadacz (12,810 p.)
Nie ginie. Ta wartość "od końca" jest wartością oryginalną. Bo stara wartość została podmieniona na nową.

Jeśli używasz referencji to jest tak, jakbyś wkleiła kod z funkcji bezpośrednio do maina i wszędzie gdzie występuje zmienna, którą oznaczyłaś parametr, wsadziła zamiast tego po prostu oryginalną zmienną, tą, którą przekazywałabyś funkcji.

Jeśli nie używasz referencji to tak jakbyś zrobiła sobie nową zmienną, dała jej wartość tej pierwszej, czyli tej co trzyma tą liczbe, i na niej zrobiła wszystkie te operacje z funkcji. Pod koniec twoja pierwsza zmienna dalej trzyma pierwotną wartość, a druga, na której robiłaś operacje wartość zmienioną.

 

Po prostu - przy referencji działasz na oryginalnej zmiennej. Modyfikujesz oryginalną zmienną, zmieniajasz jej wartość. Nie musisz więc nic zwracać.
Kiedy nie używasz referencji tworzona jest kopia i to na niej wszystkie operacje mają miejsce. Tworzysz własny rower i go przemalowujesz. Jednocześnie ta zmienna żyje tak długo jak długo trwa działanie funkcji. Więc jeśli chcesz jakoś tą wartość zapamiętać musisz ją zwrócić.
komentarz 26 stycznia 2017 przez vega Użytkownik (510 p.)

Bardzo dziękuję,  wszystko jasne!  laugh

+1 głos
odpowiedź 26 stycznia 2017 przez Szymon Polaczy Obywatel (1,660 p.)
wyjaśnię ci czym jest parametr

void Funkcja(int parametr) -> parametr może być jakiegokolwiek typu

jeśli funkcja przyjmuje jakiś parametr to w jej wywołaniu (funkcji) musisz go podac czyli jezeli ja wywołam tą funkcję z góry to musze napisac Funkcja(10) <- Wysyłam do niej inta ponieważ takie coś przyjmuje funkcja

Zdaje mi się że powinieneś napisać parametr = -parametr

Mam nadzieję że pomogłem
komentarz 26 stycznia 2017 przez Sinnley Stary wyjadacz (12,810 p.)
parametr = -parametr  zwróci liczbę przeciwną, nie odwrotną.
komentarz 26 stycznia 2017 przez Szymon Polaczy Obywatel (1,660 p.)
faktycznie
1
komentarz 26 stycznia 2017 przez JAKUBW Nałogowiec (33,470 p.)
Liczba odwrotna to 1/liczba
komentarz 26 stycznia 2017 przez Szymon Polaczy Obywatel (1,660 p.)
okej zobaczyłem u Slajni na końcu
1
komentarz 26 stycznia 2017 przez Sinnley Stary wyjadacz (12,810 p.)
Przeciwna - po przeciwnej stronie osi liczbowej.

Odwrotna - po odwróceniu ułamka, czyli 1/x, albo x^(-1)
komentarz 26 stycznia 2017 przez Szymon Polaczy Obywatel (1,660 p.)
dzięki za wytłumaczenie

Podobne pytania

0 głosów
1 odpowiedź 265 wizyt
0 głosów
4 odpowiedzi 268 wizyt
0 głosów
3 odpowiedzi 230 wizyt

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...