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 :-)
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

uzytkownikubunt napisał(-a):

Dlaczego w tym programie lepiej użyć zmiennych lokalnych zamiast globalnych? Chodzi o nawyk. Skoro się uczyć powinieneś uczyć się dobrych nawyków.

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 - mega boss

tajwan
mega 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 - mega boss

tajwan
mega 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!
Zespół Adwokacki Dyskrecja

Offline

 

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

  tajwan - mega boss

tajwan
mega 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!
Zespół Adwokacki Dyskrecja

Offline

 

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

  tajwan - mega boss

tajwan
mega 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!
Zespół Adwokacki Dyskrecja

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.


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

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 - mega boss

tajwan
mega 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!
Zespół Adwokacki Dyskrecja

Offline

 

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

  tajwan - mega boss

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

Re: Pomoc w programowaniu

uzytkownikubunt 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.

ethanakPascal

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 - mega boss

tajwan
mega 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!
Zespół Adwokacki Dyskrecja

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 - mega boss

tajwan
mega 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!
Zespół Adwokacki Dyskrecja

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 - mega boss

tajwan
mega 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

tajwan napisał(-a):

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ę.

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" ~ Steve Jobs

Offline

 

Stopka forum

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