Да се напише програма, която ще позволи въвеждане на N и чрез цикъл с постусловие ще:
- отпечата числата от N до 1
- отпечатва нечетните числа от 1 до N
- отпечатва произведението на числата от 1 до N
- позволява да се въведат N числа и отпечатва сумата на четните


//Poduslovie 1 int N; cout<<"Vavedete chislo N:"; cin>>N; do{ N-=1; cout<<N<<"; "; } while(N>1); cout<<endl;#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n; cout<<"Wuwedi chislo"; cin>>n; do{ if (n>0) { n--; cout<<n<<endl; } else { n++; cout<<n<<endl; } }while (n!=1); system("PAUSE"); return EXIT_SUCCESS; }Супер, работи и за отрицателни числа. Можеш да слагаш кратък коментар при специфичните случаи, за да е ясно…
//Poduslovie 3 int N,x=1,pr=1; cout<<"Vavedete chislo N: "; cin>>N; do{ x+=1; pr*=x; } while(x<N); cout<<"Otgovorut e: "<<pr<<endl;Първо подусловие: #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,i; cout<<"Vavedi chislo: "; cin>>n; cout<<"Chislata do 1 sa: "; do { n=n-1; cout<<n<<"; "; } while (n>1); system("PAUSE"); return EXIT_SUCCESS; }//Poduslovie 4 int N,x,sum=0; cout<<"Vavedete broqt na chislata koito shte vuvejdate: "; cin>>N; do{ cout<<"Vavedete chislo: "; cin>>x; if(x%2==0) sum+=x; N--; } while(N>0); cout<<"Sumata na vuvedenite chetni chisla e: "<<sum<<endl;//Poduslovie 2 int N,x=1; cout<<"Vavedete chislo N: "; cin>>N; do{ cout<<x<<"; "; x+=2; } while(x<N); cout<<endl;Вярно! Кратко и ясно…
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int chislo,nechetni=1; cout<<"Wuwedete chislo "; cin>>chislo; if (chislo==0) cout<<"Newalidno chislo"; else do{ cout<<nechetni<<endl; if (chislo>0) nechetni+=2; else nechetni-=2; } while ((nechetni<chislo)||(nechetni>chislo)); system("PAUSE"); return EXIT_SUCCESS; }Тук не съм съгласен. Пробвай да въведеш 6.
Хубаво е, че си решил да реализираш програмата да работи и за положителни, и за отрицателни числа. Но условието за край не е удачно така. По-добре е преди цикъла да провериш дали числото е отрицателно или не и да си има два отделни цикъла за всеки от случаите. Така няма да се налага при всяко завъртане на цикъла да проверяваш дали трябва да увеличаваш или намаляваш числата, което губи време и бави изпълнението на програмата.
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int broi,chislo,suma=0; cout<<"Wuwedete broq na chislata za wuwejdane "; cin>>broi; if (broi==0) cout<<"Shtom ne iskate ...\n"; else { cout<<"Wuwedete chislata "; do{ cin>>chislo; suma+=chislo*(chislo%2); broi--; } while (broi!=0); cout<<"Sumata na nechetnite e: "<<suma<<endl; } system("PAUSE"); return EXIT_SUCCESS; }Супер! Само за (chislo%2) можеше да сложиш някакъв коментар, защото не е очевидно какво правиш и защо го има.
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { double chislo,fact=1; cout<<"Wuwedete chislo "; cin>>chislo; if (chislo==0) cout<<"0!=1\n"; else if (chislo<0) cout<<"Nqma faktorial na otricatelni chisla\n"; else { /* Пресмята факториала като започва от самото число и върви към 1. Така се спестява една променлива и кода е опростен. */ cout<<chislo<<"!="; do{ fact*=chislo; chislo--; } while (chislo!=0); cout<<fact<<endl; } system("PAUSE"); return EXIT_SUCCESS; }Ей, супер – цикъл с намаляване…