Nauka C++ z książki Alexa Allaina - sprawdzanie kodów

Nauka C++ z książki Alexa Allaina - sprawdzanie kodów
KP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Witam. Jestem Tomek. Od pewnego czasu zacząłem się uczyć C++. Niestety nie mam nikogo kto by mi sprawdził moje kody i pomógł mi trochę z nimi. Więc napisałem do Was forumowicze. Posiadam książkę "Przewodnik dla początkujących w C++" Alex'a Allain'a. Próbuję robić te praktyczne zadania (udaje mi się to ;)) ale chciałbym się nauczyć też usprawniac ten mój kod będę wdzięczny za pomoc :)

<ort>O to</ort> pierwsze zadanie które tu pokaże.

Zad1.
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 warunkowej if.

Poprawione spacje i endl zamieniłem na \n

Kopiuj
#include <iostream>
using namespace std;
int main()
{
	string haslo1;
	string haslo2;
	cout << "Weryfikacja hasel. \n";
	cout << "Wprowadz pierwsze haslo: \n";
	cin >> haslo1;
	cout << "Wprowadz drugie haslo: \n";
	cin >> haslo2;
	if (haslo1 == "1111" || haslo2 == "2222")
	{
	cout << "Hasla poprawne. Masz dostep. \n";
	}
	else
	{
	cout << "Hasla nie poprawne. \n";
	}
}

Zad 2.

Napisz niewielki kalkulator, który pobiera na wejściu jeden z operatorów arytmetycznych oraz dwa argumenty, po czym wyświetla wynik obliczeń otrzymany na podstawie tych danych.

Kopiuj
#include <iostream>
using namespace std;
int main()
{
	double x;
	double y;
	string znak;
	cout << "Podaj operator arytmetyczny (+, -, *, /) \n";
	cout <<"Operator: ";
	cin >> znak;
	cout << "Podaj pierwsza liczbe: ";
	cin >> x;
	cout << "Podaj druga liczbe.\n "<< x << znak;
	cin >> y;
	
	if (znak == "+")
	{
		cout << x << znak << y << "="<< x+y <<"\n";
	}
	else if (znak == "-")
	{
			cout << x << znak << y << "="<< x-y <<"\n";
	}
			else if (znak == "*")
			{
					cout << x << znak << y << "="<< x*y <<"\n";
			}
	else if (znak == "/")
	{
			cout << x << znak << y << "="<< x/y <<"\n";
	}
			else
			{
			cout << "Nie poprawny operator arytmetyczny lub liczba \n";
			}
	
	
}

:)

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
4

formatuj kod lepiej, nie boj sie spacji
nie uzywaj endl do nowej linii a '\n'
przy ifach korzystaj z {} nawet jak to jest tylko jedna instrukcja

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Ad 2: zauważ, że w Twoim kodzie powtarza się cout << x << znak << y << "="<< - zrób tak, aby ta linijka widniała w kodzie tylko raz.

Kartechson
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Czyli wrzuć sobie przed IF

Kopiuj
 cout << x << znak << y << "= " ;

a po wszystkim cout << "\n" lub endl ;

Kopiuj
vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0

Przy okazji:
@KemoPL: jak oceniasz tę książkę?

MN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Aktualnie nie mam nic do roboty, więc jeśli nadal potrzebujesz kogoś kto ci będzie sprawdzać kody to możesz mi je podsyłać, po szczegóły na PW.

Poza tym nie staraj się nauczyć wszystkiego od razu, funkcje to dość trudny temat i zrozumienie ich za pierwszym razem może okazać się wymagające, dlatego nie ma sensu zaprzątać sobie tym głowy, tak samo jak czyszczeniem bufora bądź zostawianiem go w spokoju, jeśli ci wygodnie używaj << endl; tak jak ja gdy piszę małe programy.

No i najważniejsze to zrobić kilka zadań i przykładów własnych, gdy coś zrozumiesz/nauczysz się. Np.: jak ja uczyłem się o funkcjach to kolejne programy robiłem TYLKO używając funkcji własnych i to nawet w totalnie bezsensowny sposób (np.: w mojej funkcji był jeden cout) w ten sposób lepiej zapamiętuje się składnie i można eksperymentować.

A9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 411
1

Do przechowania jednego znaku lepiej użyj zmiennej char, używanie stringa w tym przypadku jest kompletnie bez sensu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.