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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.



mega boss




Czy ktoś może mi powiedzieć, dla czego pozycja 1 nie wyświetla się prawidłowo tzn dodatkowo ładuje do niej else. A pozycja 2 działa poprawnie.
#include <iostream>
using namespace std;
string PIN, login;
int wybor;
int main()
{
cout << "Witaj w naszym banku." <<endl;
cout<<"Podaj login: ";
cin >> login ;
cout <<"Podaj PIN: ";
cin >> PIN ;
if ((PIN == "123" ) && (login == "admin" ))
{
cout << "Zalogowałeś się poprawnie. " <<endl<<endl;
}
else
{
cout<<"Błędny login lub hasło spróbuj jeszcze raz."<<endl<<endl;
}
cout << "Co chcesz zrobić? "<< endl << endl;
cout << "1- Wpłacić pieniądze." << endl;
cout << "2- Wypłacić pieniące." << endl;
cout << "Twój wybór: ";
cin >> wybor;
switch (wybor)
{
case 1: cout << "" <<endl;
break;
default:
break;
}
switch (wybor)
{
case 2: cout << "" <<endl;
break;
default:
break;
}
if (wybor == 1)
{
cout <<" Wpłata tylko w okienku na poczcie"<<endl;
}
if (wybor == 2)
{
cout<<" Nie masz nic na koncie!"<<endl;
}
else
{
cout << "Błędny wybór spróbuj jeszcze raz system wylogował cię automatycznie."<<endl;
}
return 0;
}Offline




Zbanowany





923
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:55:38)
Offline



mega boss




Czy ktoś może mi powiedzieć, dla czego instrukcja wykonuje się chociaż są błędne dane logowania?
#include <iostream>
using namespace std;
string login, PIN ;
int wybor;
int main()
{
while ((login!="admin")&&(PIN!="123")){
cout << "Witaj w naszym banku." <<endl;
cout<<"Podaj login: ";
cin >> login ;
cout <<"Podaj PIN: ";
cin >> PIN ;
if ((login == "admin" ) && (PIN == "123" ))
{
cout << "Zalogowałeś się poprawnie. " <<endl<<endl;
}
else
{
cout << "Błędny login lub hasło spróbuj jeszcze raz."<<endl<<endl;
}
}
// Niezależnie od poprawnego logowanie lub nie, wykonuje się ta instrukcja.
cout << "Co chcesz zrobić? "<< endl << endl;
cout << "1- Wpłacić pieniądze." << endl;
cout << "2- Wypłacić pieniądze." << endl;
cout << "Twój wybór: ";
cin >> wybor;
switch (wybor)
{
case 1: cout << "" <<endl;
break;
case 2: cout << "" <<endl;
break;
default:cout << "Błędny wybór spróbuj jeszcze raz system wylogował cię automatycznie."<<endl;
break;
}
if (wybor == 1)
{
cout <<" Wpłata tylko w okienku na poczcie"<<endl;
}
if (wybor == 2)
{
cout<<" Nie masz nic na koncie!"<<endl;
}
return 0;
}Ostatnio edytowany przez tajwan (2014-08-05 00:34:59)
Offline

Użytkownik


Zły warunek w pętli while - wykonaj pętlę jeżeli login jest niepoprawny i jednocześnie hasło jest niepoprawne. Czyli jeśli podasz przykładowo prawidłowy login i nieprawidłowe hasło to program opuści pętlę.
Zamiast && powinieneś użyć ||.
@uzytkownikubunt
Jaki zysk w takim programie z używania zmiennych lokalnych zamiast globalnych?
Offline



mega boss




pioki + Fajnie wytłumaczyłeś.
Offline



mega boss




Kompilator nie zgłasza błędów, ale program nie odlicza stoi w miejscu.
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
cout <<"Zaczynamy odliczanie! ";
for (int i= 15; i>=0 ; i--)
{
sleep (1000);
cout << i <<endl;
}
cout <<"Jebut";
return 0;
}Offline



Użytkownik
Nie stoi w miejscu.
Odczekałeś 1000 sekund?
man 3 sleep
i więcej nie zawracaj głowy tylko dlatego że masz awersję do czytania dokumentacji - forum dug to nie interfejs do mana.
Offline



mega boss




Według kursu czas odliczał się w milisekundach.
Offline



Użytkownik
To podaj link do tego kursu, żeby broń Boże nikt z niego nie próbował korzystać. A następnym razem zanim zaczniesz płakać zainstaluj sobie mana i manpages-dev (czy jak to się tam nazywa w Twoim distro) i zacznij używać. Uwierz mi, to naprawdę nie boli!
Offline



mega boss




https://www.youtube.com/watch?v=y6GOYVTVvqo
Clear też nie działa
term environment variable not set
#include <iostream>
#include <unistd.h>
#include <cstdlib>
using namespace std;
int main()
{
cout <<"Zaczynamy odliczanie! "<<endl;
for (int i= 15; i>=0 ; i--)
{
sleep (1);
system ("clear");
cout << i <<endl;
}
cout <<"Jebut";
return 0;
}Offline



Użytkownik



mega boss




Tak działa. W Qt piszę
Offline



Użytkownik
e... że co?
Co to co napisałeś ma wspólnego z Qt? Objaśnij mi to jakoś bo nie do końca pojmuję...
Offline



mega boss




Nie wiem jak to fachowo napisać Qt ma własną konsolę, która mi się mi się otwiera i w niej to nie działa. Ale pytałeś się czy działa
clear
w konsoli tak działa wyczyściło konsolę. Otworzyłem program w konsoli systemowej i działa. PS jeszcze nie zdążyłem poprawić że działa.
Offline



Dyskutant




@ethanak: na 100% chodzi o Qt Creatora
@tajwan: clear do czyszczenia ekranu w aplikacji się nie nadaje, bo tylko przesuwa "Enterem" tekst w teminalu(jak przewiniesz w górę, to zobaczysz to co wcześniej printowałeś), ja kiedyś korzystałem z jakiejś funkcji znalezionej w sieci, ale teraz nie mam tegoż pod ręką
Offline



Użytkownik
@thomsson: ja dokładnie wiem o co chodzi, ale od programistego wymaga się precyzyjnych wypowiedzi. Przy okazji: nie wiem co ma wspólnego edytor w którym się pisze pięć linijek w C++ z kodem wynikowym skompilowanym przez gcc - czyżby ten sam kod napisany w Joe, Emacsie, Vimie, Nedicie czy Qtaśnym Kreatorze za każdym razem kompilowany był inaczej???
BTW nie myl czyszczenia ekranu z czyszczeniem historii terminala - to co robi clear do wyczyszczenia terminala absolutnie wystarczy.
@tajwan: podaj co powie which clear
Ostatnio edytowany przez ethanak (2014-08-13 15:11:57)
Offline



Dyskutant




@ethanak: Luz, rozumiem (mnie też niezmiernie irytuje mieszanie pojęć, co jest niestety praktykowane wszędzie, ot przykład jak moja nauczycielka z uporem maniaka nazywa Dev-C++ kompilatorem...)
A co do drugiej rzeczy, to miałem na myśli wyczyszczenie okna terminala (nie historii wydawanych poleceń), ale w sumie nie ma po co wyciągać tematu bo clear jest wystarczające
Offline



inż.
Clear wysyła na terminal sekwencje ANSII \e[2J
Polecam: http://www.termsys.demon.co.uk/vtansi.htm
Poza tym nie polecenie a aplikacja clear jest częścią pakietu ncurses i wymaga ustawionej zmiennej środowiskowej TERM.
Offline



Użytkownik
A tak lekko offtopicznie - nie widziałem jeszcze terminala, który nie rozumiałby podstawowych sekwencji ANSI.
A proste polecenie "clear" ciągnie za sobą ncurses ze wszystkimi przyległościami...
@milyges: szybszy byłeś :)
Ale nie ncurses a ncurses-bin
Ostatnio edytowany przez ethanak (2014-08-13 15:27:17)
Offline



mega boss




To chyba teraz się dogadamy program dla tego nie działał prawidłowo, gdyż Qt otworzył go xterm i w nim pojawiał się błąd
term environment variable not set.
Kiedy ten sam program uruchomiłem w konsoli systemowej wszystko dobrze dzialało.
Offline



Użytkownik
no to zamiast się bawić w system() wyślij po prostu sekwencję do terminala.
moja propozycja:
clear-to-eol
print (bez znaku nowej linii)
powrót karetki (czyli '\r')
Ewentualnie możesz pominąć clear-to-eol, zamiast tego wypisywać stringi o stałej długości.
A, i jeszcze nie zapomnij o flush!
Nie chce mi się teraz sprawdzać, ale coś takiego by zadziałało pewnie:
printf("%03d\r",i);fflush(stdout);Offline



mega boss




Czy dobrze myślę, z kalkulatorem?
opcja 1
#include <iostream>
using namespace std;
int skladnik1,skladnik2; //dodawanie
char wybor;
int main()
{
cout << "Wybier rodzaj dzaiłania" << endl;
cout << "1- Dodawanie" << endl;
cout << "2- Odejmowanie" << endl;
cout << "3- Mnożenie" << endl;
cout << "4- Dzielenie" << endl;
cout <<"Twój wybór: ";
cin >>wybor;
switch (wybor)
{
case 1: cout << "Podaj pierwszy składanik";
cin>> skladnik1; // dodawanie
cout << "Podarj drugi składnik";
cin>> skladnik2;
cout << skladnik1 + skladnik2;
break;
default:
break;
}
return 0;
}Opcja 2
#include <iostream>
using namespace std;
int skladnik1,skladnik2; //dodawanie
char wybor;
int main()
{
cout << "Wybier rodzaj dzaiłania" << endl;
cout << "1- Dodawanie" << endl;
cout << "2- Odejmowanie" << endl;
cout << "3- Mnożenie" << endl;
cout << "4- Dzielenie" << endl;
cout <<"Twój wybór: ";
cin >>wybor;
switch (wybor)
{
case 1: cout <<"";
break;
default:
break;
}
if (wybor == 1)
{
cout << "Podaj pierwszy składanik";
cin>> skladnik1; // dodawanie
cout << "Podarj drugi składnik";
cin>> skladnik2;
cout << skladnik1 + skladnik2;
}
return 0;
}Offline
Użytkownik



mega boss




sysek Gdzieś jest błąd którego szukam bo po kompilacji program nie działa prawidłowo z wybieraniem. Jak wybiorę dodawanie, to nie pobiera danych.
Offline




Zbanowany





929
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:55:46)
Offline