Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#26  2014-08-15 11:01:36

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Skąd: Białystok
Zarejestrowany: 2007-06-24

Re: Pomoc w programowaniu

@tajwan:
Do wyszukiwania takich błędów bardzo pomocny jest debugger, krokowe wykonywanie programu i podglądanie zmiennych.

Offline

 

#27  2014-08-15 11:23:39

  pioki - Użytkownik

pioki
Użytkownik
Zarejestrowany: 2010-04-10

Re: Pomoc w programowaniu

[quote=uzytkownikubunt]Dlaczego w tym programie lepiej użyć zmiennych lokalnych zamiast globalnych? Chodzi o nawyk. Skoro się uczyć powinieneś uczyć się dobrych nawyków.[/quote]
Używanie zmiennych globalnych nie jest błędem ani niczym złym (co innego nadużywanie).

Kiedyś gdy próbowałem się uczyć C, właśnie przez takie porady dawane początkującym wpakowałem się w niezłe kłopoty. Używanie zmiennych globalnych traktowałem jako zło, unikałem ich gdzie się tylko dało. Próbowałem je zastąpić je wskaźnikami, dwie czy trzy gwiazdki nie były w moim programie czymś wyjątkowym. A że trochę za mało wiedziałem o ich zasięgu, to program działał lub nie w zależności od tego jakich flag optymalizacyjnych użyłem ;).

Wystarczy otworzyć plik źródłowy jakiegoś programu i o dziwo ujrzysz tam zmienne globalne.

A w takich programach "szkoleniowych" naprawdę nie warto zawracać sobie nimi głowy.

Ostatnio edytowany przez pioki (2014-08-15 11:24:47)

Offline

 

#28  2014-08-15 11:50:28

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Chciałbym to jeszcze zapętlić, aby po każdym wykonanym działaniu wracał do menu. Ale czy to jest dobre rozwiązanie, oraz  exit (0)?



Kod:

#include <iostream>
#include <cstdlib>

using namespace std;



int main()
{

do {

    char wybor;
    int skladnik1 , skladnik2; //dodawanie
    int odjemna , odjemnik; // odejmowanie
    int mnozna , mnoznik; // mnożenie
    int dzielna , dzielnik; //dzielenie


    cout << "Wybier rodzaj dzaiłania" << endl<<endl;
     cout << "1- Dodawanie" << endl;
     cout << "2- Odejmowanie" << endl;
     cout << "3- Mnożenie" << endl;
     cout << "4- Dzielenie" << endl;
     cout<<  "5- Wyjście"<<endl<<endl;

     cout <<"Twój wybór: ";
            cin >>wybor;
     switch (wybor)
     {
     case '1': cout << "Podaj pierwszy składnik ";
         cin>> skladnik1;                                    // dodawanie
         cout << "Podarj drugi składnik " ;
         cin>> skladnik2;
         cout<< "Wynik dodawania to: " << skladnik1 + skladnik2<<endl<<endl;

         break;
         break;

     case '2': cout << "Podaj odjemną ";
         cin>> odjemna;                                    // dodejmownie
         cout << "Podarj odjemnik " ;
         cin>> odjemnik;
         cout<< "Wynik odejmowanie to: " << odjemna - odjemnik<<endl<<endl;

         break;

     case '3': cout << "Podaj mnożną ";
         cin>> mnozna;                                    // mnożenie
         cout << "Podaj mnożnik " ;
         cin>> mnoznik;
         cout<< "Wynik mnożenia to: " << mnozna * mnoznik<<endl<<endl;

         break;

     case '4': cout << "Podaj dzielną ";
         cin>> dzielna;                                    // dzielenie
         cout << "Podaj dzielnik " ;
         cin>> dzielnik;
         cout<< "Wynik dzielenia to: " << dzielna / dzielnik<<endl<<endl;

         break;

     case '5': exit(0);
}
}while (1);


}

Ostatnio edytowany przez tajwan (2014-08-15 14:34:44)


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#29  2014-08-17 14:06:04

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Chciałbym zrobić małą konsolową grę. Gra będzie polegała na tym, że z puli 8 liczb od 1-8 komputer wylosuje sobie 5 i użytkownik musi odgadnę te 5 liczb.


Kod:

#include <iostream>
#include <cstdlib>
#include <unistd.h>
#include <ctime>

using namespace std;



int main()

{
    int liczby[8];
    int twoje_liczby;


    cout <<"Zgadnij 5 liczb od 1 do 8. "<<endl;

    srand(time(NULL));

    liczby = rand()%8+1;

    for ( liczby=0; twoje_liczby<6; liczby++)
    {

    cout <<"Podaj 5 liczb";
        cin>>twoje_liczby;

        cout <<"Podałeś następujące liczby "<<twoje_liczby;
     }

    return 0;
}

Ostatnio edytowany przez tajwan (2014-08-17 14:06:36)


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#30  2014-08-17 14:12:09

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Pomoc w programowaniu

ile razy jeszcze zapytasz "gdzie spartoliłem hello world"?
btw. zrobiłeś tę grę czy skończyłeś na chceniu?


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#31  2014-08-17 14:15:08

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Próbuję ją robić i się pytam gdzie jest błąd i w ogóle chyba takich rzeczy nie muszę pisać wysłałem co do tej pory zrobiłem.


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#32  2014-08-17 14:18:50

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Pomoc w programowaniu

a gdzie było pytanie? gdzie opis błędu?


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#33  2014-08-17 14:29:00

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Nie kompiluje się

Kod:

main.cpp:21: błąd: incompatible types in assignment of 'int' to 'int [8]'
     liczby = rand()%8+1;
            ^

Kod:

main.cpp:23: błąd: incompatible types in assignment of 'int' to 'int [8]'
     for ( liczby=0; twoje_liczby<6; liczby++)
                 ^

Kod:

main.cpp:23: błąd: lvalue required as increment operand
     for ( liczby=0; twoje_liczby<6; liczby++)
                                           ^

NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#34  2014-08-17 14:40:58

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Pomoc w programowaniu

wciórności, nie wypowiem, kumie barbaronie...
co oznacza podstawienie wartości zero do zmiennej która jest tablicą?
w skrócie masz tam kod

Kod:

int dupa[8];dupa=0;

wyjaśnij nam co przez to rozumiesz.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#35  2014-08-17 14:51:55

  dominbik - Członek DUG

dominbik
Członek DUG
Zarejestrowany: 2011-07-25

Re: Pomoc w programowaniu

tajwan zacznij od jakiegoś prostego kursu i nauki rozumienia komunikatów kompilatora. programowanie przez permutacje, wariacje i nie wiem co jeszcze nie wiedząc co się dzieje nie jest dobre.


[img]http://img34.imageshack.us/img34/5092/zw9m.png[/img] [img]http://img29.imageshack.us/img29/219/pibw.png[/img]

Offline

 

#36  2014-08-17 20:18:39

  gindek - Zubr, bydle na etacie.

gindek
Zubr, bydle na etacie.
Skąd: Z puszczy.
Zarejestrowany: 2008-12-08

Re: Pomoc w programowaniu

A ja cie nie bede dogryzał, powiem co jest źle.
Kazdy moj komentaz odnosi sie do linijki "pod spodem"
moje komenty oczywiscie sa w /* */

Kod:

/* nie widze naglowkow */
int main()                  
/* białe znaki */

{
    int liczby[8];
/* Nazwa sugeruje kilka liczb, a zmienna moze przechowac jedna, psuje to czytelnosc kodu */
    int twoje_liczby;
/* białe znaki */


/* Białe znaki, brak konsekwencji, nie wazne jak kulway jest twoj coding standard wazne zeby był konsekwentny */
    cout <<"Zgadnij 5 liczb od 1 do 8. "<<endl;

    srand(time(NULL));

/* Napidujesz wskaznik do pierwszego elementu tablicy przy uzyciu "inta", rand() losuje jedna liczbe  */
    liczby = rand()%8+1;

/* Wylosowana liczbe nadpisujesz zerem, jako warunek zakonczenia podajesz cos co wejdzie z klawiatury, oraz inkrementujesz "liczby" */
/* taka podpowiedz jezeli bedziesz podawal z klawiatury 0,1,2,3,4,5 (oraz liczby ujemne), to petla sie nigdy nie zakonczy */ 
    for ( liczby=0; twoje_liczby<6; liczby++)
    {
/* jakis dziki biały znak */

/* rozjadz w coding standard, albo rybki albo akwarium, wazne zeby konsekwentnie */
    cout <<"Podaj 5 liczb";
        cin>>twoje_liczby;

/* powinno byc "Podales nastepujaca liczbe ", tutaj nie wydrkujesz kilku liczb */
        cout <<"Podałeś następujące liczby "<<twoje_liczby;
/* dziki whitespace, wciecia */
     }

    return 0;
}

Ostatnio edytowany przez gindek (2014-08-17 20:19:31)


" Wojny przychodzą i odchodzą, a moi żołnierze są wieczni"


"Zbuduj mały, dziarski router z udostępnionych przez prowadzącego części od Kamaza?"

Offline

 

#37  2015-04-22 13:13:25

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Poproś użytkownika o podanie wieku dwóch osób i wskaż, która z nich jest starsza.
Jeśli obie osoby mają powyżej 100 lat, program powinien zachować się w szczególny sposób.

Kod:

#include <iostream>

using namespace std;

int main()
{
 int pierwszaosoba;
 int drugaosoba;
 cout<<"Podaj swój wiek";
 cin>>pierwszaosoba;
 cout <<"Podaj wiek znajomego";
 cin>> drugaosoba;

 if (pierwszaosoba > drugaosoba)
 {
     cout<<"Jesteś starszy od swojego znajomego";

 }

           if (pierwszaosoba < drugaosoba)
     {
           cout <<"Jesteś młodszy od swojego znajomego";
           }

          if (pierwszaosoba || drugaosoba => 100) // Chodzi mi o to
          {
              cout <<"Nie powinniście już życ";
          }

return 0;
}

Ostatnio edytowany przez tajwan (2015-04-22 13:15:47)


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#38  2015-04-22 13:21:17

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Pomoc w programowaniu

1870

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:16:25)

Offline

 

#39  2015-04-22 13:24:11

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Pomoc w programowaniu

a słyszał o "else"?
bez patrzenia w kod powiedz co się stanie jeśli podasz dwie takie same liczby.

edit: byłeś szybszy.

edit2: szybki quiz - w jakim języku programowania konstrukcja

Kod:

if (pierwszaosoba | drugaosoba) >= 100 then...

zachowa się zgodnie z oczekiwaniem?

Ostatnio edytowany przez ethanak (2015-04-22 13:32:39)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#40  2015-04-22 13:29:25

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

[b]uzytkownikubunt[/b] Nie wyświetla mi się poprawny komunikat  jak wpisze 1 i 100 albo 100 i 1 wyświetla się tylko poprawny jak wpisze 100 i 100.

[b]ethanak[/b]Pascal

Ostatnio edytowany przez tajwan (2015-04-22 13:46:18)


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#41  2015-04-22 13:44:54

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Pomoc w programowaniu

1871

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:16:26)

Offline

 

#42  2015-04-22 13:46:31

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Zaimplementuj prosty system weryfikacji haseł, który pobiera hasła w postaci liczb.
Ważne powinno być jedno z dwóch haseł, ale w celu ich sprawdzenia użyj tylko jednej
instrukcji if .

Jak tam wcisnąć dwa hasła?

Kod:

#include <iostream>

using namespace std;

int main()
{
    string haslo = "abc";
    cout <<"Podaj haslo: ";
    getline(cin,haslo,'\n');
    if (haslo=="123")
    {
        cout<<"Zalogowałeś sie poprawnie";
    }

    return 0;
}

Ostatnio edytowany przez tajwan (2015-04-22 13:46:56)


NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#43  2015-04-22 13:48:38

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Pomoc w programowaniu

@tajwan: zgaduj dalej. nie pascal.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#44  2015-04-22 13:49:46

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Pomoc w programowaniu

1872

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:16:27)

Offline

 

#45  2015-04-22 14:02:57

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Wykombinowałem coś takiego

Kod:

#include <iostream>

using namespace std;

int main()
{
    string haslo;
    cout <<"Podaj haslo: ";
    getline(cin,haslo,'\n');
    if (haslo=="123" && "abc")
    {
        cout<<"Zalogowałeś sie poprawnie";
    }

    return 0;
}

NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#46  2015-04-22 15:32:25

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Pomoc w programowaniu

czyli hasło jest 123 oraz abc nie jest nullem... genialne.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#47  2015-04-22 16:46:53

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Pomoc w programowaniu

1873

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:16:28)

Offline

 

#48  2015-04-30 12:48:49

  tajwan - boss

tajwan
boss
Skąd: Śląsk
Zarejestrowany: 2010-03-30

Re: Pomoc w programowaniu

Rozszerz program kontrolujący hasła, który został zamieszczony w tym rozdziale, w taki
sposób, aby akceptował wielu użytkowników, z których każdy ma swoje hasło. Zagwarantuj,
aby właściwe hasła były przypisane właściwym użytkownikom. Udostępnij możliwość
ponownego zalogowania użytkownika, jeśli pierwsza próba nie powiodła się. Zastanów
się, jak łatwo (albo trudno) można zrealizować taką funkcjonalność w przypadku dużej
liczby użytkowników i haseł.

Kod:

#include <iostream>
using namespace std;
int main ()

{

string nazwa;
string haslo;
string nazwa2;
string haslo2;

cout << "Podaj nazwę użytkownika: " << "\n";
getline( cin, nazwa, '\n' );
cout << "Podaj hasło: " << "\n";
getline( cin, haslo, '\n' );

if ( nazwa == "admin" && haslo == "123" )

    {
cout << "Dostęp przyznany" << "\n";
    }

else if (nazwa2 == "admin2" && haslo2 == "admin2")

{
    cout << "Dostęp przyznany" << "\n";
}


    else

    {
cout << "Niepoprawna nazwa użytkownika lub hasło. Odmowa dostępu!" << "\n";
// Zwrócenie wartości to wygodny sposób na zatrzymanie programu
    return 0;
}
// Pracujemy dalej!
}

NIGDY WIĘCEJ TESTING Z KTÓRYM SĄ SAME PROBLEMY !!!

Offline

 

#49  2015-05-03 23:37:48

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Re: Pomoc w programowaniu

[quote=tajwan]Zagwarantuj, aby właściwe hasła były przypisane właściwym użytkownikom. Udostępnij możliwość
ponownego zalogowania użytkownika, jeśli pierwsza próba nie powiodła się.[/quote]
Zainteresowałbym się pętlą while w tym przypadku, i nie robiłbym tego za pomocą if-else.


"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ [i]Steve Jobs[/i]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.012 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00100 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.216.239.46' WHERE u.id=1
0.00089 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.216.239.46', 1714715923)
0.00040 SELECT * FROM punbb_online WHERE logged<1714715623
0.00048 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26216 AND t.moved_to IS NULL
0.00009 SELECT search_for, replace_with FROM punbb_censoring
0.00414 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26216 ORDER BY p.id LIMIT 25,25
0.00096 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26216
Total query time: 0.00809 s