Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zabezpieczenie przed możliwością wprowadzenia błędnych danych.

Ostatnio zmodyfikowano 2011-01-25 22:04
Autor Wiadomość
Krump
Temat założony przez niniejszego użytkownika
Zabezpieczenie przed możliwością wprowadzenia błędnych danych.
» 2011-01-25 21:15:21
To jest skierowane raczej do autora strony.

Otóż przeglądałem twoje poradniki w celu przypomnienia sobie programowania, gdyż na pewien czas zaprzestałem działalności teraz wracam i mam problem. W zadaniach, często pojawia się:

"zabezpieczony przed możliwością wprowadzenia błędnych wartości liczbowych."

Rozumiem że chodzi o znaki i teraz tak:
Ja, że kiedyś programowałem, to dosyć szybko wyczaiłem sposób. Nie wiem czy jest on dobry, może jest łatwiejszy, dlatego proszę o pomoc.

Mój sposób:
C/C++
int zmienna;

while( !( cin >> zmienna ) )
{
    cin.clear();
    cin.sync();
}

Ale początkujący na to nie wpadnie, a nigdzie nie dopatrzyłem się jak by można program przed tym zabezpieczyć :)
mógłbyś to dodać do lekcji to raz, dwa podać mi czy dobrze myślę, trzy może zrobił byś rozwiązania zadań, aby ktoś mógł sprawdzić (ja mogę zrobić i powstawiasz) ;p


pozdrawiam.
P-27045
DejaVu
» 2011-01-25 21:27:16
Hejooo ;p
Rozwiązania podanego nie ma - są opisane części składowe rozwiązania, które czytelnik musi złożyć logicznie w całość w zadaniach dołączonych do danej lekcji. W ten sposób czytelnik uczy się myśleć podczas nauki programowania, a nie bezmyślnie przepisywać kod bądź czekać na gotowe rozwiązanie. Każdy rozdział staram się opracowywać tak by wykorzystywał wiedzę omówioną do tej pory, a zadania nawiązywały bezpośrednio do rozdziału, który czyta.

Myślę, że rozwiązania zadań zrobią więcej złego aniżeli dobrego osobom, które się dopiero uczą. Zamiast się zastananowić nad rozwiązaniem większość pójdzie po gotowca przez co później do byle pierdoły będzie również szukał gotowców bo nie będzie zdolny do kreatywnego myślenia pt. "Jak wykorzystać obecnie posiadaną wiedzę". Programowanie to sztuka wymagająca przed wszystkim logicznego myślenia i czytania ze zrozumieniem i na to staram się kłaść nacisk tworząc zadania do lekcji.

Mam nadzieję, że odpowiedź Ciebie satysfakcjonuje :P
P-27049
Krump
Temat założony przez niniejszego użytkownika
» 2011-01-25 21:31:40
No tak, ale jak ktoś, nie ogarnia jednego to potem dalej nie pójdzie, ja na przykład uczę się na gotowcach, bo po swojemu analizuje kod i "Aha... Takie buty!"
Można zrobić coś takiego, że ktoś wkleja swój kod zrobiony i mu podaje czy dobrze, czy źle ;p jak źle to pokazuje jak wygląda prawidłowy :)
A wracając, moje zabezpieczenie przeciw literom jest poprawne? bo z tym się borykam ;p
P-27050
DejaVu
» 2011-01-25 21:49:51
http://cpp0x.pl/kursy/Kurs-C++/Podstawy /Obsluga-strumienia-wejsciowego/12

Przeczytaj powyższą lekcję i rozwiąż z niej zadanie - jak będziesz otrzymywał prawidłowe wyniki to znaczy, że dobrze rozwiązałeś zadanie. Później przeczytaj lekcję:
http://cpp0x.pl/kursy/Kurs-C++/Podstawy/Petla-do-while/18

Na koniec rozwiąż zadanie i będziesz wiedział czy robisz dobrze. W kursie nie występował nigdzie zapis, którego Ty użyłeś. Rozwiązań możliwych jest wiele, a skoro używasz innych myków to powinieneś wiedzieć czy to o to chodziło czy nie, no nie? :) Choć z tego co napisałeś wynika, że bierzesz gotowca i mówisz 'o działa, jadę dalej' - to jest właśnie różnica między korzystaniem z gotowców, a samodzielnym dochodzeniem do rozwiązania.
P-27057
Drraven
» 2011-01-25 21:52:11
P-27059
Krump
Temat założony przez niniejszego użytkownika
» 2011-01-25 22:04:00
Nie... mówię ci kiedyś programowałem i używałem tego ;p Wiem dokładnie na jakiej zasadzie to działa i mogę ci opowiedzieć :) Według mnie jest dobrze i program na tym ciśnie jak chce, ale właśnie z poradników nie mogę ogarnać jaki może być inny sposób.

Mój sposób po krótce i skrótem myślowym leci tak ;p

while(!(cin>>a)) // Zmianna a musi być taka jak zadeklarowano, czyli w tym przypadku liczbą typu int.
{//jak nie jest z typu int to:
cin.clear(); //czyszcimy flanki błędów
cin.sync(); //kasujemy błędnych znaków z buffora
}//i od nowa
P-27063
« 1 »
  Strona 1 z 1