[pascal] Zamiana zmiennych bez zmiennej pomocniczej

jestem bardzo poczatkujacy w programowaniu… ale podczas nauki stanal przede mną problem… jak zamienic zmienne bez zmiennej pomocniczej. Chodzi mi o zmienne typu Integer.

program zamiana;

var

a,b:integer;

begin

a:=1;

b:=2;

writeln(a, b);

b:=b+a-b

a:=a+b

writeln(a, b);

end.

To działa…ale niestety tylko dla tych liczb (1,2). Dla innych juz nie… Proszę o odpowiedź.

Hej…może spróbuj po przez wczytanie zmiennej z klawiatury po przez polecenie readln(a) :wink:

właśnie problem w tym ze nie mogę używać żadnych innych instrukcji niż writeln.

hmm to jak chcesz coś zrobić tylko z writeln :lol: hehe a czemu nie możesz?

Bo to zadanie z informatyki…:stuck_out_tongue: Poznaliśmy dopiero writeln… wiec nie moge uzywac innej instrukcji mimo ze znam. Jeśli wiesz to powiem mi czy to sie da w ogóle zrobić. Jak powiedziałem, przykład który podałem wyżej nie działa poprawnie dla wszystkch liczb…

hmmm…

najpierw do b przypisujesz wartość a (i już nikt nie wie jaką wcześniej wartość miało b ) a później do a przypisujesz a + b czyli tak właściwie 2 * a

tak więc program program działa dla wszystkich szczególnych przypadków gdzie zachodzi następująca zależność pomiędzy początkowymi wartościami: 2a = b i niestety tylko wtedy

spróbuj przeanalizować poniższe działania:

a := a + b;

b := a - b;

a := a - b;