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

zadanie na kolosa

Ostatnio zmodyfikowano 2013-01-17 18:00
Autor Wiadomość
pablofafik
Temat założony przez niniejszego użytkownika
zadanie na kolosa
» 2013-01-14 20:09:30
Napisz w języku C++ program, który oblicza wartość iloczynu  2*4*6*…*n, gdzie n jest liczbą parzystą wprowadzoną przez użytkownika. Stwórz dwie wersje programu, jedną z wykorzystaniem pętli WHILE i drugą z wykorzystaniem pętli FOR.

Z pętlą while zrobiłem ale nie mogę sobie poradzić, jak zrobić żeby po wpisaniu liczby nieparzystej i otrzymaniu komunikatu "liczba jest nieparzysta" zakończyło program a nie jak do tej pory liczyło dalej.
Oto kod z programu dev c++:

C/C++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{ int a, b;
    cout << "podaj liczbę"; cin >> a;
    if( a % 2 != 0 )
         cout << "liczba jest nieparzysta" << endl;
    else
         cout << "jedziemy dalej" << endl;
   
    int i = 2;
    int iloczyn = 1;
    while( i <= a )
    {
        iloczyn = iloczyn *= i;
        i = i + 2;
    }
    cout << "iloczyn wynosi " << iloczyn << endl;
    getch();
    return 0;
}

Mam jeszcze prośbę czy ktoś mógłby mi napisać dokładnie to samo tylko z wykorzystaniem pętli "for" ?? bardzo proszę...
P-73959
DejaVu
» 2013-01-14 20:36:19
Nie dostaniesz u nas gotowca.

PS. » Porady dla użytkowników cpp0x.plZakładanie tematów na forum zalecenie

/edit:
a jeżeli uważasz, że poprawnie napisałeś kod z pętlą while i ją rozumiesz to z pętlą for również powinieneś sobie poradzić. » Kurs C++ » Poziom 2Pętla for lekcja
P-73962
pablofafik
Temat założony przez niniejszego użytkownika
» 2013-01-15 07:09:54
rozumiem... ale powyższy kod zrobiłem więc nikt mi tutaj gotowca nie zaserwuje. Jeśli chodzi o pętle for to sam sobie poradzę skoro nikt nie stara się nawet naprowadzić. Rozumiem też że odpowiedź na pierwsze pytanie czyli dlaczego mi dalej liczy po wprowadzeniu niepoprawnej liczby to też zaserwowanie gotowca? czyli obojętnie o co spytam to tak jakbym ktoś mi podrzucił gotowca tak?
P-73993
DejaVu
» 2013-01-15 08:03:45
Hm... dostanie linka do konkretnego rozdziału tj. jak działa pętla for to nie jest naprowadzenie?

/edit:
A co do 'liczenia' - to liczy dalej, bo tak jest program napisany. Jedyne co w nim robisz to sprawdzasz, czy liczba jest nieparzysta i wyświetlasz stosowny komunikat, po czym wykonujesz resztę kodu.
P-73994
pablofafik
Temat założony przez niniejszego użytkownika
» 2013-01-15 11:23:55
Dziękuję za każdą wskazówkę oczywiście.. ale chciałbym się dowiedzieć co mogę zrobić żeby po sprawdzeniu warunku parzystości liczby program wyświetlił ostrzeżenie i na tym etapie zakończył.. Męczyłem się z tym bardzo długo i niestety nie mam już pomysłu... :/
P-74008
krzyk
» 2013-01-15 12:01:10
C/C++
if( a % 2 != 0 ) {
    // tu jest be
} else {
    // tu jest ok
}
P-74016
pablofafik
Temat założony przez niniejszego użytkownika
» 2013-01-16 10:01:53
Efekt po sugerowanej przez użytkownika "krzyk" zmianie kodu załączam w pliku .jpg natomiast kod programu po zmianie poniżej:

link do zdjęcia iloczyn.jp - http://img843.imageshack.us/img843/6995/iloczyn.jpg

Kod programu po zmianie :

#include<iostream>
#include<conio.h>
using namespace std;
int main()
{int a,b;
cout<<"podaj liczbę"; cin>>a;
if(a%2!=0){
cout<<"liczba jest nieparzysta"<<endl;
}else{
}
int i=2;
int iloczyn=1;
while(i<=a)
{
iloczyn=iloczyn*=i;
i=i+2;
}
cout<<"iloczyn wynosi "<<iloczyn<<endl;
getch();
return 0;
}

Dlaczego nadal po wykonaniu instrukcji warunkowej program liczy iloczyn dla liczb nieparzystych...?
P-74087
pablofafik
Temat założony przez niniejszego użytkownika
» 2013-01-16 10:05:00
Oto efekty zmiany kodu zaproponowanej przez użytkownika "krzyk" :

http://img843.imageshack.us/img843/6995/iloczyn.jpg

Oto cały kod programu po zmianie :

C/C++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{ int a, b;
    cout << "podaj liczbę"; cin >> a;
    if( a % 2 != 0 ) {
        cout << "liczba jest nieparzysta" << endl;
    } else {
    }
    int i = 2;
    int iloczyn = 1;
    while( i <= a )
    {
        iloczyn = iloczyn *= i;
        i = i + 2;
    }
    cout << "iloczyn wynosi " << iloczyn << endl;
    getch();
    return 0;
}

Pytanie dlaczego po sprawdzeniu instrukcji program dalej oblicza iloczyn dla liczb nieparzystych?
P-74088
« 1 » 2
  Strona 1 z 2 Następna strona