Cześć.
Jako nowy obywatel tego forum, chciał bym się przywitać ze wszystkimi. Za tem! Cześć Wam!
Od jakiegoś czasu uczę się programować korzystając z kursów na kanale Pasja Informatyki, zresztą stamtąd tutaj trafiłem. Oczywiście jak będę umiał, tak będę się starał również wspierać swoją wiedzą innych członków tego forum. Tym czasem sam mam pytanie:
Jestem po 5 odcinku czyli znam już tablice i ich zastosowanie. Ponieważ losowanie liczb w lotto z powtórzeniami nie bardzo mi pasowało chciałem zrobić upgrade programu z 4 odcinka tak aby liczby się nie powtarzały. I w zasadzie się udało, oto kod:
#include <iostream> #include <unistd.h> #include <ctime> #include <cstdlib> using namespace std; int liczba[6]; int x[6]; int main() { system("clean"); srand(time(NULL)); cout<<"Za chwilę zacznie się losowanie liczb"<<endl; sleep(3); for(int i=0; i<6 ;i++) { x[i]=rand()%49+1; if((x[i]==liczba[0]) || (x[i]==liczba[1]) || (x[i]==liczba[2]) || (x[i]==liczba[3]) || (x[i]==liczba[4]) || (x[i]==liczba[5])) { cout <<"\a"; i--; } else { liczba[i]=x[i]; cout<<"Wylosowana "<<i+1<<" liczba to: "<<liczba[i]<<endl; sleep(1); } } getchar(); return 0; }
Wykorzystałem do tego celu funkcję IF. Jednak zastanawia mnie jak bardziej ten kod zoptymalizować. Jeżeli w IF'ie wpisujemy 6 spójników logicznych OR to spokojnie można to zrobić z palca, ale gdybyśmy mieli ich np. 1000 ?? Wklepywanie tego samego tysiąc razy nie jest za dobre. Czy istnieje sposób aby jakoś wklepać zakres do zbadania w tablicach coś na stylu np: "IF(x[i]!=tablica[1-999])" ?? Czy za każdym razem trzeba wklepywać nowe spójniki logiczne podobnie jak zrobiłem w kodzie.
Pozdrawiam
Grzegorz