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

lekcja 15- zadanie domowe nr 1

Ostatnio zmodyfikowano 2012-07-14 18:57
Autor Wiadomość
kruczy
Temat założony przez niniejszego użytkownika
lekcja 15- zadanie domowe nr 1
» 2012-07-09 14:16:28

Witam, to mój pierwsy post tutaj.

Program wyświetla mi się,ale nie działa poprawnie.
Trochę zmodyfikowalem zadanie, zamiast kokretnej liczby, program prosi o jedna z zakreesu od 1 do 99.
Proszę o pomoc.


Treść zadania:
Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby. Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu:
1. Podaj liczbę
2. Jeżeli błąd, wróć do kroku 1.
3. Wypisz liczbę, która została podana



Mój program:

#include <iostream>

using namespace std;

int main()
{

int liczba;
do
{
    cout<< "Podaj liczbe od 1 do 99 "<< liczba<<endl;
    cin>>liczba;
    cout<< "Podales liczbe"<<liczba<<endl;
}
while (liczba>= 1 && liczba <= 99);

cout<<"Koniec"<<endl;
return 0;
}
P-59736
Netro
» 2012-07-09 15:16:43
A gdzie jest kod który sprawdza to co zostało wprowadzone ?

np.
C/C++
cin.clear();
cin.sync();
P-59738
xevuel
» 2012-07-09 15:24:11
@up: Ten kod nie sprawdza, czy wszystko poszło ok. On tylko czyści flagi błędu.

@topic:
Program wyświetla mi się,ale nie działa poprawnie.
Niepoprawnie, to znaczy?

Wyrzuć linijkę
cout << "Podales liczbe" << liczba << endl;
 poza pętlę, chyba to będzie to o co ci chodziło :)
P-59740
Netro
» 2012-07-09 15:34:01
sorki tak chodziło mi o
C/C++
cin.good();
P-59742
kruczy
Temat założony przez niniejszego użytkownika
» 2012-07-09 18:48:42
Gdy podaje nieprawidlowa wartosc np. liczbe 1123 to powinno mi sie zapetlac pytanie- "Podaj liczbe do 1 do 99. Natomiast program sie konczy. Poza tym jak odpalam ten program to zamiast pytania- "Podaj liczbe od 1 do 99:" jest-"Podaj liczbe od 1 do 99 4273126".
P-59753
jankowalski25
» 2012-07-09 19:15:45
1. Nadaj zmiennej liczba wartość początkową.
2. Wstaw kod sprawdzający, czy podano liczbę od 1 do 99.
P-59754
kruczy
Temat założony przez niniejszego użytkownika
» 2012-07-10 11:33:01
To program w formie zmienionej. Pojawily sie inne problemy, a mianowicie nie uwzględniany jest warunek przy funkcji bool, gdy zostaje wczytana liczba z poza zakresu 1-99 to i tak wyskakuje komunikat -  wczytano poprawnie liczbe.

Poza tym gdy wyskakuje informacja w programie po podaniu nieopowiedniej liczby- "Zla liczba. Podaj jeszcze raz:" - to program po podaniu liczby konczy sie , a powinien trwac z racji ze uzylem zapetlenia.
Po co tu cokolwiek inicjalizowac?





#include <iostream>
#include <limits>
using namespace std;

int main ()
{
 int liczba;


 do
 {

 cout<<endl<<"Podaj liczbe od 1 do 99: ";
 cin>>liczba;
 cout<<endl<<"Twoja liczba to: "<<liczba<<endl;
 bool liczba = cin.good();
 cout<<"Wczytano poprawna liczbe "<< liczba<<endl;
 cin.clear();
 cin.sync();
 } while ( liczba>=1 && liczba<=99);       




 do
 {
 cout<<"Zla liczba. Podaj jeszcze raz: ";
 cin>>liczba;

 } while (liczba<1 && liczba>99);


 return 0;
 }
P-59777
kruczy
Temat założony przez niniejszego użytkownika
» 2012-07-14 13:53:09
Ok, mam juz dobrze, tylko zamiast przedzialu liczbowego dalem a>0.

#include <iostream>

using namespace std;

int main ()
{
    float a;

    cout<<endl<<"Podaj liczbe rzeczywista: ";

    cin>> a;
    if (a>0)
    cout<<endl<<"Podana liczba to: "<<a<<endl;

    else

    do
        {
            cout<< "Liczba musi byc wieksza od zera. Podaj jeszcze raz: ";
            cin>> a;
            if (a>0)
            cout<<endl<<"Podana liczba to: "<<a<<endl;

        } while (a != a>0);

return 0;
}


Wszytsko działa, tylko mam jedno pytanie. Gdy zostanie podana liczba ujemna to wszystko dziala nalezycie jest petla i gdy zostanie wprowadzona wartosc prawidlowa program sie konczy.
Ale gdy wstawie np literke to program od razu sie konczy, a chcialbym zrobic tak zeby petla wlaczala sie niezaleznie od tego co wpisze gdy nie spelnia to warunku a>0.
P-59996
« 1 » 2
  Strona 1 z 2 Następna strona