//To było takie długie do napisania, że nie wiem czy wszystko jest.
//Przez przypadek mogłem napisać to co już wiesz :/
Zrobiłem co poradziłeś i odpowiedzi nie znalazłem. |
Zapewniam Cię, że są...
(przed podłużną kreską sprawdź czy
zrozumiałeś opisany przed nią błąd)
nie wiem jak zwrócić 2 wartości przez funkcję tak, aby zapisało je do zmiennych w funkcji z której te zmienne pochodzą. [...]Ja już nie wiem czy zapisanie zmiennych jako argumentu funkcji zapisuje wprowadzone wartości do tych zmiennych czy nie? |
Zmienne podawane w argumentach są "kopiowane",
a jak zrobić tak aby dało się modyfikować te zewnętrzne,
które podawaliśmy w argumentach, dowiesz się za parę lekcji.
_________________________________________________________
Zakładając, że funkcja wczytajLiczbe, która umieściłem wyżej jest poprawna |
Na samym początku właśnie była błędna...
Funkcja na tym "poziomie nauczania" może zwracać
tylko jedną zmienną i tylko jednego wybranego typu.
int to_jest_moja_funkcja()
{
int i = 0;
return i;
}
Bądź nic nie zwracać:
void to_jest_moja_funkcja()
{
}
Tak jak wcześniej wspomniałem: "return a || b; ". Na razie na tym poziome kursu funkcje mogą tylko zwracać jedną wartość, a w tym przypadku wracasz sumę logiczną "a" i "b". Operacje logiczne |
_________________________________________________________
Zapis int liczba = wczytajLiczbe(); z przykładu sugeruje mi, że miałbym to zrobić na 2 funkcjach wczytujących po 1 wartości, tak jak to wcześniej zrobiłem, ale napisałeś mi, że nie o to chodzi. |
Dobrze wtedy zrobiłeś, ale mnie źle zrozumiałeś.
Mi chodziło o duplikację tych funkcji:
Czyli rozumiem, że dla każdej z dwóch wprowadzanych liczb muszę utworzyć po 1 funkcji? | NIE! Te funkcje miałyby takie samo zadanie, czyli pobrać liczbę od użytkownika! Do tej czynności wystarczy jedna funkcja!
Zmodyfikuj kalkulator, [...], aby korzystał on ze wcześniej napisanej funkcji wczytajLiczbe. |
Jak Ci się nie będzie podobać pobrana liczba to pobieraj tak długo aż będzie odpowiednia. |
PS. Na samym początku miałeś źle napisaną funkcję,
dlatego skreśliłem część cytatu. :F
_________________________________________________________________
błąd mam w funkcji main(z zapisem wartości do zmiennej) |
W miejscu wywołania funkcji pojawi się zwracana wartość. ^_^
Jeśli funkcja będzie typu void to kompilator błędy wyrzuci.
int a = wczytajLiczbe();
int b = wczytajLiczbe();
Jak Ci się nie będzie podobać pobrana liczba to pobieraj tak długo aż będzie odpowiednia. |
Polecam do tego użyć pętli.
_________________________________________________________________
nie wiem jak powinien wyglądać zapis wartości wprowadzanych do funkcji jako argumenty tej funkcji do 2 zmiennych z innej funkcji(w tym przypadku funkcji main). |
Rozumiem w tym piąte przez dziesiąte... :/
Zmienne podawane w argumentach są "kopiowane" |
i funkcja działa na odrębnych w pamięci zmiennych...
Przykład: (przeanalizuj kod i jego wynik)
#include <iostream>
using std::cout;
short dodanie( int przyjeta = 0, int standardowa = 10 )
{
return przyjeta + standardowa;
}
int main()
{
int testowa = 2;
int dodatkowa = dodanie( testowa );
int dodatkowa2 = dodanie();
cout << testowa << ' ' << dodatkowa << ' ' << dodatkowa2;
return 0;
}
__________________________________________________________________