Wątek przeniesiony 2018-07-11 10:04 z Hardware/Software przez kq.

zadanie haslo, 3 podejscia

0

Witam,
Jestem na kursie programowania i mam problemy ze zrozumieniem petli..
Mam zadanie mam napisaca program: Napisz program służący do weryfikacji haseł, który daje użytkownikowi tylko 3 szanse na podanie poprawnego hasła, dzięki czemu użycie łamacza haseł będzie trudne.
Czy jest ktos kto moze mi to rozwiazac przy pomocy wszystkich trzech pętli for, while, do while. Może na tej podstawie w końcu zrozumie zasadę działania.

#include <iostream>

using namespace std;
string login, haslo;
int main()
{
    cout << "Wpisz login" << endl;
    cin>>login;
    cout << "Wpisz haslo" << endl;
    cin>>haslo;

    if ((login=="Szymon")&&(haslo=="Kotek"))
    cout<<"ZGODA!!"<<endl;
    else
        cout<<"Wpisz ponownie"<<endl;




    return 0;
}
3

No ale nie po to jest kurs, żebyś sam się nauczył jak to zrobić i zapytał instruktora, któremu płacą za ten kurs? :0

0

Teoretycznie tak

0
yarel napisał(a):

No ale nie po to jest kurs, żebyś sam się nauczył jak to zrobić i zapytał instruktora, któremu płacą za ten kurs? :0

To po pierwsze, a po drugie:

#include <iostream>

using namespace std;
string login, haslo;
int main()...

co to za kurs, który uczy korzystania ze zmiennych globalnych?

0

Z ciekawości, jaka jest tematyka kursu i ile kosztuje?

0

Prawie 6k, internetowy

0

Pętla FOR:

#include <iostream>
#include <string>
using namespace std;

bool check(string Imie, string Nazwisko){ // funkcja zwracajaca 0, jezeli imie, nazwisko nie jest zgodne z loginem i haslem
    string login = "Czlowiek"; // jakas stala, odpowiadajaca loginowi
    string haslo = "Czlowiek2"; // jakas stala odpowiadajaca haslu
    if(Imie == login && haslo == Nazwisko) // sprawdzenie, czy imie = login, haslo = nazwisko
        return 1; // zgodne z haslem, zwracamy 1 ( 1 = true, 0 = false )
    else return 0; // niezgodne, zwracamy 0
}
int main()
{
    string Imie, Nazwisko; // nasze obiekty typu string, ktore beda przechowywaly wpisane imie i nazwisko
    for(int i=0; i<3; ++i){ // 3 proby, inkrementujemy od 0 do <3, czyli 0,1,2
        cin >> Imie; // wprowadz imie
        cin >> Nazwisko; // wprowadz nazwisko
        if(check(Imie, Nazwisko)){ // sprawdz czy funkcja zwraca prawde, czy dane podane przez uzytkownika sa zgodne z tymi w funkcji check
            cout << "Poprawne haslo za " << i+1 << " razem" << endl; // zgodne, mozemy powiedziec o tym uzytkownikowi
            break; // przerywamy petle
        }
        else {
            cout << " Zle haslo" << i+1 << " raz " << endl; // nie jest zgodne. w takm razie informujemy o tym uzytkownika.
        }
    }
    return 0;
}

Funkcja check jest naszym warunkiem, który musi być spełniony w każdej z trzech pętli. Możesz równie dobrze go użyć w pozostałych przykładach z pętlą do...while i while... . Między tymi dwiema pętlami jest pewna różnica, a mianowicie taka, że do..while wykona się co najmniej raz, natomiast while nie musi się wcale wykonać. Spróbuj teraz zrobić pozostałe dwie pętle sam.

0

Dzięki za pomoc!

0

Na prawdę ktoś jest w stanie wywalić tyle kasy na kurs, gdzie prowadzący nawet pętli nie wytłumaczy?
Ewentualnie samemu nie mieć wcześniej chociaż tyle samozaparcia, żeby coś porobić zanim pójdzie się na kurs? Pętle to chyba jedna z podstaw przecież

1 użytkowników online, w tym zalogowanych: 0, gości: 1