Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czy da się bez użycia warunków if

Ostatnio zmodyfikowano 2010-12-27 04:53
Autor Wiadomość
Marys
Temat założony przez niniejszego użytkownika
Czy da się bez użycia warunków if
» 2010-12-24 03:34:25
Witam ponownie,
tym razem natknąłem się na problem z dziwną zależnością zmiennych i nie wiem za bardzo jak to w efektowny sposób zapisać w programie. Załóżmy, że mam 3 zmienne:
1. a - ta zmienna wczytujemy z klawiatury
2. b i c, które zależą od a
Teraz sytuacja wygląda tak:
Najmniejsza wartość a to 5 i gdy a=5 to b=1 i c=1, ale jak a=6 to b=2 i c=1, a=7 to b=2 i c=2, a=8 to b=3 i c=2, a=9 to b=3 i c=3 itd.

Czy istnieje jakiś inny sposób niż warunki if? Czy da się to zapisać w szybszy sposób? 
P-25454
DejaVu
» 2010-12-24 04:00:54
Nie wiem czy Ciebie zrozumiałem, ale:
C/C++
int a = 8;
int b = a + 3;
int c = a + b - 10;
Jeżeli chcesz aby wartości b i c się zmieniły z chwilą zmiany liczby a to musisz wykonać ponownie przeliczyć wartości b i c.
P-25455
F90M
» 2010-12-24 05:03:43
Da się :)
C/C++
b =( a - a % 2 ) / 2 - 1;
c =( a + a % 2 ) / 2 - 2;
P-25457
Mazzir
» 2010-12-25 17:23:22
Matematyka się kłania ;) Tak, da się ;p Tak jak koledzy podali tylko trzeba ruszyć głową i pomyśleć, że przecież można na zmiennych operować. Ale if to święta rzecz ;p
P-25498
jsc
» 2010-12-25 20:08:34
Można wykorzystać konstrukcje switch...case. Opis jest pod: http://cpp0x.pl/?nro=17
P-25544
szyx_yankez
» 2010-12-25 20:25:12
@UP a co gdy np. a == 2011? Będziesz pisał setki case'ów?
P-25546
jsc
» 2010-12-25 20:46:13
Jeśli chcesz taką wielką tablicę to ci mogę napisać program generujący plik źródłowy.

A tak nawiasem można kod F90M można trochę uprościć:
a =- 3
b = a/2;
c = 2*b - a;
P-25548
szyx_yankez
» 2010-12-25 21:02:20
@UP nie chodzi o to po prostu chciałem udowodnić, że twoje rozwiązanie jest niepraktyczne.
P-25550
« 1 » 2 3
  Strona 1 z 3 Następna strona