• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Oceńcie moją prace ;)

Object Storage Arubacloud
+4 głosów
514 wizyt
pytanie zadane 28 grudnia 2015 w Nasze projekty przez amfa226 Użytkownik (620 p.)
Witam, po obejrzeniu poradnika od Pana Mirosława odnośnie liczb pseudolosowych postanowiłem, że rozbuduję troszkę ten program lotto. Pierwsza wersja kodu była bez tablic gdyż nie wiedziałem jeszcze o nich, dopiero wczoraj obejrzałem kolejny odcinek z tablicami i postanowiłem że je dodam przez co zmniejszył mi się kod chociaż o troszkę. Proszę was o ocenę napisanie jakie błędy popełniłem co mógłbym zmienić na lepsze i jak można skrócić ten kod.

Pozdrawiam ;)

http://wklej.org/id/1888941/

6 odpowiedzi

+2 głosów
odpowiedź 28 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
wybrane 28 grudnia 2015 przez amfa226
 
Najlepsza

Najbardziej rzucają mi się w oczy te wielke ify z decyzją. Najlepiej zamień małe litery na duże lub na odwrót i sprawdzaj tylko jedną możliwość. Zamiast:

if((decyzja=="Tak")||(decyzja=="tAk")||(decyzja=="taK")||(decyzja=="TAK")||(decyzja=="TAk")||(decyzja=="TaK")||(decyzja=="tak"))

Napisz:

    for(int i = 0; i < decyzja.size(); i++)
    {
        decyzja[i] = toupper(decyzja[i]);
    }
    if(decyzja == "TAK")

{//Dalszy kod}

Podobnie zrób z decyzja == "NIE" i innymi.

P.S: Jeśli nie zadziała dodaj biblioteke cctype.

 

komentarz 28 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Wiedziałem że da się to jakoś skrócić ale nie wiedziałem jak dzięki wielkie ;)

Nie wiem jednak co oznacza:  toupper
komentarz 28 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
toupper to funkcja która zamienia małe litery na duże.
komentarz 28 grudnia 2015 przez amfa226 Użytkownik (620 p.)

Pomógł byś mi zamienić tą linijkę na krótszą ?

if((liczby[0]>49)||(liczby[1]>49)||(liczby[2]>49)||(liczby[3]>49)||(liczby[4]>49)||(liczby[5]>49))

Próbowalem to przez pentle for ale coś mi nie działało i się w końcu poddałem

komentarz 28 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
bool czy_wieksza = false;
                for(int i = 0; i < 5; i++)
                {
                    if(liczby[i] > 49)
                        czy_wieksza = true;
                }
                    if(czy_wieksza){//dalszy kod}

Nie wiem czy będzie działać bo nie kompilowałem.

 

 

komentarz 28 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Działa, ale i tak ten wpis wykracza za moją wiedze :D

Dzięki za pomoc pozdrawiam ;)
komentarz 28 grudnia 2015 przez Damian11131 Stary wyjadacz (13,490 p.)
Może najpierw naucz się podstaw, potem zacznij pisać programy?
komentarz 28 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
"Może najpierw naucz się podstaw, potem zacznij pisać programy?"

Jak nie będzie pisał programów z tego co się nauczył to zapomni.
komentarz 28 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Tego czego się nauczyłem do tej pory czyli po obejrzeniu 5 pierwszych odcinków z c++ starałem się zawrzeć w tym programie. A podstaw uczę się cały czas
+1 głos
odpowiedź 29 grudnia 2015 przez DarkEliat Bywalec (2,810 p.)
Bardzo dobra aplikacja, prosta wiedza, a jak efektywnie użyta. Pozdrawiam.
+1 głos
odpowiedź 29 grudnia 2015 przez Łukasz Wasilewski Mądrala (5,190 p.)

Bardzo fajna aplikacja!

Mała wskazówka ode mnie:

Zamiast: 

if((liczby[0]>49)||(liczby[1]>49)||(liczby[2]>49)||(liczby[3]>49)||(liczby[4]>49)||(liczby[5]>49))

Ja bym zastosował:

while((liczby[0]>49)||(liczby[1]>49)||(liczby[2]>49)||(liczby[3]>49)||(liczby[4]>49)||(liczby[5]>49))

Wtedy program nie będzie działał dopóki ktoś nie wpisze prawidłowych cyfr :).

 

Pozdrawiam! :)

 

komentarz 29 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Dzięki działa, z for mi sprawdzało tylko jeden raz. Nie potrafiłem na to wpaść a wczoraj troszkę główkowałem nad tym :)

Pozdrawiam ;)
komentarz 29 grudnia 2015 przez Łukasz Wasilewski Mądrala (5,190 p.)
Możesz dać łapkę w górę :D.
komentarz 29 grudnia 2015 przez amfa226 Użytkownik (620 p.)
jak pisałem kom nie mogłem dać :)
+1 głos
odpowiedź 29 grudnia 2015 przez Sebastian Mieszczańc Nowicjusz (240 p.)
Błąd mało istotny, ale może zapamiętasz. zdarzyć/zdarzenie  oraz zdążyć/zdążenie. Gratuluję pierwszych sukcesów! Super kod i bądź tylko wytrwały, a na pewno będziesz sam z każdym odcinkiem ulepszał swoje kody.
komentarz 29 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Dzięki zapamiętam ;)
+1 głos
odpowiedź 29 grudnia 2015 przez Sebastian R Obywatel (1,110 p.)

Jest kilka błędów "logistycznych".
1. Możesz "sprawdzanie kuponu" wyrzucić przed warunkami logicznymi i w warunkach logicznych po prostu wpisać daną instrukcję. Napisałeś 2 lub 3 razy Sleep(5000)

2. Tam przy wypisywaniu:

for(int i=0; i<5;i++)
                            {
                               liczby[i];
                                cout<<liczby[i]<<",";
                            }
                                cout<<liczby[5];

 

Możesz to zastąpić kodem

for(int i=0; i<6;i++)
                            {
                                cout<<liczby[i];
                                if (i<5) cout <<  ", ";
                            }
       

Co to jest za instrukcja?

// coś tam 
Liczby[i];
// coś tam

Kolejną sprawą jest to, że na końcu:
 

cout<<"Sa trzy mozliwosci dlaczego pojawil sie ten komunikat:"<<endl;
            cout<<"1. Zle wpisales Tak"<<endl;
            cout<<"2. Zle wpisales Nie"<<endl;
            cout<<"3. Wpisales cos innego niz Tak lub Nie"<<endl;

 

Wypisałeś wszystkie przypadki "TAK" oraz "NIE", więc nie ma możliwości wpisania źle "tak" lub 'nie" zważając na małe lub duże litery.  Jedyną możliwością jest wpisanie coś innego, niż "tak" lub "nie". Doczytaj coś o kontroli błędów, poczytaj o warunkach while, ucz się i rozwijaj. Też niedawno pisałem podobne programy ;)

P.S: Doucz się z tablic, na pewno to pomoże ;)

komentarz 29 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Komendę Sleep użyłem żeby to jakoś pozytywnie się wyświetlało dla oka bo gdyby to się na raz wyświetlało według mnie to by brzydko wyglądało .

Co do zastąpienia kodu na Twój to skorzystam chociaż w mojej wersji niepotrzebnie napisałem linie : liczba[i];

Nie wiem o co chodziło Ci z

// coś tam

Liczby[i];

// coś tam

i do ostatniego jakiś użytkownik może przecież napisać Tak w sposób " taak" bo np. klawiatura się przycięła i wypisała 2x"a"

Dzięki za rady na pewno skorzystam :)

Pozdrawiam ;)
+1 głos
odpowiedź 29 grudnia 2015 przez Schizohatter Nałogowiec (39,600 p.)
Nie sprawdzałem, ale na oko dwukrotne złe wypełnienie kuponu przepuści drugie (złe) wypełnienie, do tego nie sprawdzasz, czy liczby mogą się powtarzać, oraz duplikujesz komendy w kilku miejscach. System powinien także pokazywać liczbę trafionych liczb i na ich postawie wyliczać wygraną.
komentarz 30 grudnia 2015 przez amfa226 Użytkownik (620 p.)
Już poprawiłem to wypełnianie kuponu teraz dopiero jak kupon zostanie dobrze wypełniony to go przyjmie co do powtarzalności liczb zrobie to na czasie a co do obliczania wygranej i ilośći trafionych numerków to może wkrótce bo na razie nie mam pomysłu jak to zrobić:)

Podobne pytania

+2 głosów
3 odpowiedzi 485 wizyt
pytanie zadane 1 czerwca 2016 w Nasze projekty przez Dariusz Piechota Użytkownik (730 p.)
+3 głosów
5 odpowiedzi 469 wizyt
0 głosów
3 odpowiedzi 457 wizyt
pytanie zadane 30 kwietnia 2019 w Nasze projekty przez Layoutowiec Mądrala (5,470 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...