Blokowanie zmiennych

0

Witam, od razu wspomnę, że jestem początkujący w C++ i mam 16 lat.

Napisałem program który liczy punkty potrzebne do liceów. (Wylicza średnią z ocen, sprawdza czy dana osoba będzie miała na świadectwie pasek, w ogólnie zlicza wszystkie punkty) Program sam w sobie działa tylko pozwala wpisać ocenę np. 7. Nie wiem jak zablokować cyfry, żeby tylko pozwalał wpisywać je od 1 do 6.

0

Zrób pętle przy wpisywaniu np. while (ocena <= 6 && ocena > 0) (...) gdzie ocena to np. int wpisywany w cin.

0

Pomyliłem warunek. Zrób może if'em tak samo jak napisałem albo while tylko dopóki nie ocena jest większa niż 6 lub równa 0. Sorry za wprowadzenie w błąd.
while (ocena == 0 || ocena > 6) (...)

0

Ja bym to zrobił tak (pisane bez kompilowania więc mogą być literówki):

bool prawidlowaOcena;
int ocena;
do
{
	cin >> ocena;
	if (ocena <= 0 || ocena > 6)
	{
		prawidlowaOcena = false;
		cout >> "Nieprawidłowa ocena" >> endl;
	}
	else { prawidlowaOcena = true; }
}
while(!prawidlowaOcena)
0

Moim zdaniem nie ma sensu wprowadzać dodatkowych zmiennych i tym mieszając kod. Pętla jest prosta i skuteczna.

0
    int jpolski;
    int jangielski;

    cout << "Podaj ocene z j.polskiego. ";
    cin >> jpolski;
    cout << endl;
    cout << "Podaj ocene z j.angielskiego ";
    cin >> jangielski;
    cout << endl;
 

Pierwsza część kodu. (najprostsza)

Przepraszam ale za bardzo nie wiem jak to wstawić. Próbowałem różnych sposobów i zawsze błąd wyskakiwał.

0
    int jpolski;
    int jangielski;

    cout << "Podaj ocene z j.polskiego. ";
    while (jpolski > 6 || jpolski == 0) //dopóki ocena > 6 albo = 0, czyli dopóki jest niepoprawna ocena
    cin >> jpolski;
    cout << endl;
    cout << "Podaj ocene z j.angielskiego ";
    while (jangielski > 6 || jpolski == 0)
    cin >> jangielski;
    cout << endl;
    cin.sync();
    cin.get();
0

Trochę się spóźniłem z opinią, ale:

Moim zdaniem nie ma sensu wprowadzać dodatkowych zmiennych i tym mieszając kod. Pętla jest prosta i skuteczna.

Ta, a jak z pomocą pętli dasz obsługę błędnych wartości?
Wiem że w programach 'szkolnych' nie jest to wymagane, ale wyobraź sobie w normalnym, 'użytkowym' programie że użytkownik ma zgadywać czy liczba którą wprowadził jest poprawna (szczególnie przy wprowadzaniu serii danych)...

0

Rozumiem, ale można dodać w pętli informację, że ma byc wpisana wartość 1-6.

0

Bez dodatkowych zmiennych, z pętlą, komunikat wyświetlany tylko w przypadku błędu.

int ocena;
while(true){
  cout<<"Podaj ocenę: [ ]\b\b";
  cin>>ocena;
  if(ocena>0 && ocena<7) break;
  cout<<"Podaj wartość 1-6\n";
}

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