Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[C++] Skrócenie listy warunków if

#1
[C++] Skrócenie listy warunków if
Witam,
Mam taki dosyć długi kod: f1el.pl/kod.txt. Czy ktoś mógłby mi pomóc go przerobić, żeby go skrócić. Jak widać tutaj jest pewna zależność poszczególnych warunków else if, ale ja od niedawna się uczę C++ i nie wiem. Tak jak napisałem, to kod działa. Tutaj maksymalną wartością dodawaną do cache jest 25, ale ja nie chcę mieć górnego pułapu z góry określonego, ten pułap podaje użytkownik Wesoły
Z góry dziękuję za jakieś wskazówki...
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: [C++] Skrócenie listy warunków if
Wklej kod w znaczniki [code].
Żaden kraj nie może być dobrze rządzony, dopóki wszyscy jego obywatele nie będą pamiętać, że oni są strażnikami prawa.




 System operacyjny: windows_xp_2003 Przeglądarka: chrome
#3
RE: [C++] Skrócenie listy warunków if
Kod:
    if ((a % 2 == p[cache]) && (c == r[cache])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 1]) && (c == r[cache + 1])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 2]) && (c == r[cache + 2])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 3]) && (c == r[cache + 3])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 4]) && (c == r[cache + 4])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 5]) && (c == r[cache + 5])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 6]) && (c == r[cache + 6])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 7]) && (c == r[cache + 7])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 8]) && (c == r[cache + 8])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 9]) && (c == r[cache + 9])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 10]) && (c == r[cache + 10])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 5]) && (c == r[cache + 11])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 1]) && (c == r[cache + 12])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 13]) && (c == r[cache + 13])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 14]) && (c == r[cache + 14])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 15]) && (c == r[cache + 15])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 16]) && (c == r[cache + 16])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 17]) && (c == r[cache + 17])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 18]) && (c == r[cache + 18])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 19]) && (c == r[cache + 19])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 20]) && (c == r[cache + 20])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 21]) && (c == r[cache + 21])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 22]) && (c == r[cache + 22])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 23]) && (c == r[cache + 23])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 24]) && (c == r[cache + 24])) {
        cout << "0 ";
    }
    else if ((a % 2 == p[cache + 25]) && (c == r[cache + 25])) {
        cout << "0 ";
    } else {
        cout << "* ";
    }
 System operacyjny: windows_seven Przeglądarka: firefox
#4
RE: [C++] Skrócenie listy warunków if
Zamknąć to w pętlę? I wyliczyć wcześniej wartość a%2 (a zamiast tego można skorzystać z równoważnego a & 2 (tyle że trzeba umieścić to w nawiasach, bo & ma niższy priorytet, niż ==)
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: [C++] Skrócenie listy warunków if
Mógłbyś troszeczkę jaśniej, bo nie za bardzo rozumiem o co chodzi? Może dałbyś jakiś przykład Wesoły
 System operacyjny: windows_seven Przeglądarka: firefox
#6
RE: [C++] Skrócenie listy warunków if
Coś takiego:
Kod:
int mod = a % 2;
int cache = 5; // przykład
int top = 10; // też przykład
bool watchdog = false;
for (int i = 0; i < top; i++) {
    if ((mod == p[cache + i]) && (c == r[cache + i])) {
        watchdog = true;
        break;
    }
}
if (watchdog) cout << "0 ";
else cout << "* ";
 System operacyjny: linux Przeglądarka: chrome
#7
RE: [C++] Skrócenie listy warunków if
Bardzo dziękuję, o to właśnie chodziło. Rozumiem jak to działa, ale wcześniej nie mogłem tego jakoś wymyślić sam. Dziękuję :D
 System operacyjny: windows_seven Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
c++ skrócony iflista warunkow ifskrócenie warunków w ifskrócony if coutskrócony kod c++

Podobne wątki ([C++] Skrócenie listy warunków if)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C# WPF] Dodawanie elementów z listy do DataGrid Kamil 1 2 9031 25.05.2017, 20:03
Ostatni post: Kamil 1
  [C#] Wprowadzenie dowolnej długości listy kontaktów do programu. Ayumi 3 6867 16.02.2017, 15:52
Ostatni post: aht
  [Java] zapisywanie strony internetowej do tablicy/listy off-line 2 7594 26.09.2016, 10:54
Ostatni post: off-line

Skocz do:


Wybrane wątki ([C++] Skrócenie listy warunków if)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Skrypt usuwający pliki sylwiaa1 2 4326 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 9618 21.04.2019 14:04
Ostatni post: Ajgor
  VBA excel dmjs 6 9793 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 9528 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 9206 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 8339 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 11736 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 8820 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 9272 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 10682 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 9540 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 10315 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 9563 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 10254 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 12945 19.12.2018 16:29
Ostatni post: Szachista