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 8783 25.05.2017, 20:03
Ostatni post: Kamil 1
  [C#] Wprowadzenie dowolnej długości listy kontaktów do programu. Ayumi 3 6649 16.02.2017, 15:52
Ostatni post: aht
  [Java] zapisywanie strony internetowej do tablicy/listy off-line 2 7349 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
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 10708 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 1859 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 5249 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 4068 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 4438 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 14782 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 5642 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 3585 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 16618 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 6673 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 6196 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 8125 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 7638 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 7515 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 9648 28.04.2019 19:31
Ostatni post: koneton