Да се напише програма, която позволява да се въведе N и отпечатва:
- числата от 1 до N
- сумата на числата от 1 до N
- N! (факториел N – това е произведението на числата от 1 до N)
- четните двуцифрени числа по-малки от N
Да се напише програма, която позволява да се въведе N и отпечатва:
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]

за Къде се намира точка
за Вмъкване и изтриване на елемент *
за Позицията на X




за Броят на максималните елементи




за Броят на максималните елементи
за Пари за закуска




за Ученици с дадена оценка




за По-големи от средното| П | В | С | Ч | П | С | Н |
|---|---|---|---|---|---|---|
| « февр. | ||||||
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
#include <cstdlib> #include <iostream> #include <iomanip> using namespace std; int main(int argc, char *argv[]) { int n,suma=0,chetni=0; double fn=1; cout<<"Wuwedi krainoto chislo: "; cin>>n; cout<<endl; for (int i=1;i<=n;i++) { cout<<setw(4)<<i; suma+=i; fn*=i; if (((i%2)==0)&&(i>=10)&&(i!=n)) cout<<setw(4)<<i; cout<<endl; } cout<<"Sumata na chislata e "<<suma<<endl; cout<<"Faktoriala na chislata e "<<fn<<endl; system("PAUSE"); return EXIT_SUCCESS; }Вярно, освен третото подусловие – ще работи и за многоцифрени числа.
Написал съм втора и трета задача в една програма, ето я и нея:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,i,suma,pr; cout<<"Vavedi chislo (n > 1): "; cin>>n; if (n>1){ cout<<"Sumata na chislata ot 1 do "<<n<<" e: "; cout<<"1"; suma=0; for (i=2; i<=n; i++){ suma+=i; cout<<"+"<<i; } cout<<"="<<suma+1<<endl; cout<<endl; cout<<"Proizvedenieto na chislata ot 1 do "<<n<<" e: "; cout<<"1"; pr=1; for (i=2; i<=n; i++){ pr*=i; cout<<"*"<<i; } cout<<"="<<pr<<endl; } else cout<<"Nevalidno chislo."<<endl; system("pause"); return 0; }Супер, много интересно решение – да извеждаш и числата, които ще се събират и умножават! Сумата можеше да я започнеш от 1, за не се налага да го прибавяш накрая…
Ето я четвърта задача, но съм я направил с числа по-големи от нула:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,i; cout<<"Vavedi polojitelno chislo: "; cin>>n; if (n<=0) { //Числата трябва да се по-големи от 0 cout<<"Chisloto ne e polojitelno."<<endl; system("pause"); return 0; } if (n==3) { //Ако е равно на 3, то единственото честно число по-малко от него ще е 2 n=2; cout<<"Edinstvenoto chetno chislo e: "<<n<<endl; system("pause"); return 0; } if ((n==2)||(n==1)) { //Ако обаче е равно на 2, то няма да има други числа по-малки от него cout<<"Nyama chetni chisla po-malki ot "<<n<<endl; system("pause"); return 0; } if (n%2==1) { //Ако въведеното число е нечетно, първо го намяламе с едно, i=n-1; //за да стане четно cout<<"Chetnite polojitelni chisla sa: "; for (i; i>=2; i-=2)//и след това намаляме с по 2, cout<<i<<"; ";// за да се отпечатат само четните cout<<endl; } else if (n%2==0) { //Ако въведеното число е четно, cout<<"Chetnite polojitelni chisla sa: "; for (n-=2; n>=2; n-=2)//просто намаляме с две, cout<<n<<"; ";// за да се отпечатат само четните cout<<endl; } system("pause"); return 0; }Дарине, виж си пак условието :-) После пробвай самия ти как ще я решиш – да кажем за N=9, за N=26 и накрая за N=105. Като забележиш какво правиш, преправи кода на програмата…
Не успях много да разбера какво искахте да кажете, но все пак се пробвах по този начин. Докато преправях кода, се сетих за по-оптимизиран начин, но ще го напиша, когато намеря достатъчно време за мислене :D
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { long n,i; cout<<"Vavedi polojitelno chislo: "; cin>>n; if (n<=0) { cout<<"Chisloto ne e polojitelno."<<endl; system("pause"); return 0; } if (n<10) { //Числото трябва да е многоцифрено cout<<"Nyama polojitelni dvucifreni chisla po-malki ot vuvedenoto."<<endl; system("pause"); return 0; } if (n>99) { //Ако числото е повече от двуцифрено, cout<<"Chetnite polojitelni chisla sa: "; for(n=98;n>=10; n-=2)// ще се изведат всичките четни двуцифрени числа cout<<n<<"; "; system("pause"); return 0; } if (n%2==1) { //Ако въведеното число е нечетно, първо го намяламе с едно, i=n-1; // за да стане четно cout<<"Chetnite polojitelni chisla sa: "; for (i; i>=10; i-=2)//и след това намаляме с по 2, cout<<i<<"; ";// за да се отпечатат само четните cout<<endl; } else if (n%2==0) { //Ако въведеното число е четно, cout<<"Chetnite polojitelni chisla sa: "; for (n-=2; n>=10; n-=2)//просто намаляме с две, cout<<n<<"; ";// за да се отпечатат само четните cout<<endl; } system("pause"); return 0; }Исках да кажа, че програмата е ненужно усложнена. Може да се направи в един цикъл вместо в три и дори без да се използва условна команда.
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int N; cout<<"Vuvedi stoinost na N: "<<endl; cin>>N; for (int i=1; i<=N; i++) cout<<i<<' '; int suma=0; for (int i=1; i<=N; i++) suma+=i; cout<<endl<<"Sumata e: "<<suma<<endl; int pro=1; for (int i=1; i<=N; i++) pro*=i; cout<<endl<<"proizvedenieto e: "<<pro<<endl; cout<<endl; for (int i=2; i<=N; i*=2) cout<<i<<' '; system("PAUSE"); return EXIT_SUCCESS; }Вярно, без последното подусловие…
Първа задача:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,i; cout<<"Vavedi polojitelno chislo: "; cin>>n; if (n<=0){ cout<<"Tova ne e polojitelno chislo"<<endl; system("pause"); return 0; } cout<<"Chislata ot 1 do "<<n<<" sa: "; for(i=1; i<=n; i++) cout<<i<<"; "; system("pause"); return 0; }#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int N; cout<<"Vuvedi stoinost na N: "<<endl; cin>>N; for (int i=1; i<=N; i++) cout<<i<<' '; int suma=0; for (int i=1; i<=N; i++) suma+=i; cout<<endl<<"Sumata e: "<<suma<<endl; int pro=1; for (int i=1; i<=N; i++) pro*=i; cout<<endl<<"proizvedenieto e: "<<pro<<endl; cout<<endl; for (int i=10;i<=N; i+=2) cout<<i<<' '; system("PAUSE"); return EXIT_SUCCESS; }