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

Czy tak mozna

Cloud VPS
0 głosów
2,364 wizyt
pytanie zadane 4 września 2015 w C i C++ przez xR Mądrala (6,260 p.)

Mam takie zadanie "Napisz program służący do weryfikacji haseł, który daje użytkownikowi tylko kilka szans
na podanie poprawnego hasła, dzięki czemu użycie łamacza haseł będzie trudne."

Dosyc mocno eksperymentowałem w kodzie i nie wychodzi, chciałbym spytać czy to co zrobiłem(w if i else break oraz i--) jest dozwolone, prosiłbym również o jakieś wskazówki.

#include <iostream>

using namespace std;

int main()
{
    
    string haslo;
    cout << "witaj" << endl;
    cout << "wpisz swoje haslo";
    for(i=5;i>0;i--)
    {
        cout << "wpisz swoje haslo: ";
        if(haslo=="abc")
        {
            cout << "udalo sie zalogowac";
            break;
        }

        else
        {
            cout << "bledne haslo, pozostalo prob ";
            i--;
        }


    }
    return 0;
}

 

4 odpowiedzi

+1 głos
odpowiedź 4 września 2015 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 4 września 2015 przez xR
 
Najlepsza

Oczywiście, że break jest dozwolone. Korzystaj z niego, kiedy ci jest tylko potrzebne przerwanie pętli.

komentarz 4 września 2015 przez xR Mądrala (6,260 p.)
również w if-ach else itd? tak samo z i++ lub i--?

Co tutaj powinienem zmienić, by program działał prawidłowo?
komentarz 4 września 2015 przez xR Mądrala (6,260 p.)
również w if-ach else itd? tak samo z i++ lub i--?

Co tutaj powinienem zmienić, by program działał?
komentarz 4 września 2015 przez Patrycjerz Mędrzec (192,320 p.)

A gdzie jest w ogóle wprowadzenie danych do zmiennej haslo? Przy powiadomieniu o pozostałej ilości prób dodałbym wypisanie wartości zmiennej, bo tak to nie ma sensu.

Co do break i inkrementacji/dekrementacji, to możesz ich używać gdziekolwiek, nie tylko w petli for. Są to normalne instrukcje C++ i można z nich korzystać tak samo, jak z innych.

komentarz 4 września 2015 przez xR Mądrala (6,260 p.)
właśnie przed chwilą sam to zauważyłem, a tyle rozmyślania dlaczego nie działa, dzięki!
+1 głos
odpowiedź 4 września 2015 przez Dorion300 Szeryf (90,250 p.)
W programowaniu wszystkie chwyty dozwolone.

Twój sposób jest jak najbardziej poprawny i optymanlny.
komentarz 4 września 2015 przez xR Mądrala (6,260 p.)
dzięki za odpowiedź, jeżeli mój sposób myślenia jest prawidłowy, to gdzie może być błąd?
komentarz 4 września 2015 przez xR Mądrala (6,260 p.)
tzn. w błędach wyskakuje mi, że i jest niezadeklarowane, i tego nie rozumiem
komentarz 4 września 2015 przez Patrycjerz Mędrzec (192,320 p.)

 W definicji pętli zamiast i = 5 wpisz int i = 5.

komentarz 4 września 2015 przez xR Mądrala (6,260 p.)
jeszcze raz dzięki, zadeklarowałem przed pętlą i również zadziałało, bardzo mi pomogłeś :) biorę się za kolejne zadania :)
0 głosów
odpowiedź 7 listopada 2019 przez Kris* Nowicjusz (140 p.)

Witam. Też dopiero się uczę i na chwilę utknąłem na tym zadaniu, ale udało mi się stworzyć poniższy kod, który moim zdaniem działa dobrze i spełnia zadanie. Starałem się dodać coś więcej żeby było ładniej. Jeżeli coś zrobiłem źle lub można kod uprościć to proszę o wskazówki :)

#include <iostream>
#include <string>
#include <cstdlib>


using namespace std;
string haslo;
int main()
{
        cout << "Podaj haslo:  ";
        cin>>haslo;
        system ("cls");
     for (int i=3; i>1; i--)
     {

        if (haslo=="123")
        {
            cout<<"Dostep przyznany."<< endl;
            return 0;
        }
        else if (haslo!="123")
        {
            cout << "Bledne haslo. Sprobuj ponownie ";
            cin>>haslo;
            system ("cls");
        }
    }
    cout<<"Dostep zablokowany!";
    return 0;
}

 

0 głosów
odpowiedź 10 lutego 2020 przez Lestat Nowicjusz (200 p.)

Witam,

Zaczalem dopiero nauke ,lecz uwazam,ze warto  sobie zawsze dodawac zmienne pomocnicze ,w moim przypadku "correctPass",,akurat w tym przypadku jest wszystko widoczne bo jest malo linijek kodu ,aczkolwiek jak byloby ich wiecej to kod bedzie bardziej czytelny.

 
 

#include <iostream>

using namespace std;

int main()
{
        
        string pass;
        string correctPass="1234";

        cout << "Input Password" << endl;
            cin >> pass;

                    
                    for(int i=0;i<3;i++)
                    {
                            if(correctPass==pass)
                                {
                                        cout << "Correct Pass" <<endl;
                                        break;
                                }
                            else if(correctPass!=pass)
                                {
                                        cout << "Wrong password" <<endl;
                                            cin >> pass;
                                }
                    }
                                
                                
        cout<< "Access Denied" <<endl

 

Podobne pytania

0 głosów
1 odpowiedź 729 wizyt
pytanie zadane 8 października 2018 w C i C++ przez Poczprogramista123 Bywalec (2,900 p.)
0 głosów
2 odpowiedzi 638 wizyt
0 głosów
1 odpowiedź 813 wizyt

93,483 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 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

Kursy INF.02 i INF.03
...