/* * control.cpp * * Created on: 15.10.2013 * Author: trifon */ #include #include #include using namespace std; void assignment() { int a,b; a = 2 + 3; // !!! 3 = 5; // !!! a + b = 7; cout << a << endl; 2 + 3; // няма смисъл 3 % 5; // няма смисъл a = b = 2; cout << a << ' ' << b << endl; cout << a + (b = 4) << endl; cout << (a = 3, b = 4, a = 5 + 7) << endl; cout << a << ' ' << b << endl; 2 + 3, 4 + 5, 6 + 7; /// няма смисъл { cout << (a += 2) << endl; a++; cout << a << endl; ++a; cout << a << endl; } { cout << a++ << endl; cout << ++a << endl; } ++a *= 2; cout << a << endl; // !!! (a++) *= 2; // cout << a++ + ++a << endl; {} {{{{}{}{}{{}}}}} { int a = 5; cout << a << endl; // нямаме начин да видим външното a // !!! cout << x << endl; int x = 5; b = 15; } cout << a << endl; // !!! cout << x << endl; ; ;;;;;;;;;;;;;;;;;;; } void conditions() { int d; cout << "Моля, въведете цифра: "; cin >> d; if (d >= 0 && d <= 9) { cout << "Въвели сте цифра!" << endl; if (d % 2 == 0) cout << "Цифрата е четна!" << endl; else cout << "Цифрата е нечетна!" << endl; } else cout << "Не сте въвели цифра!" << endl; double a, b, c; cout << "Моля, въведете a, b, c: "; cin >> a >> b >> c; double D = b * b - 4 * a * c; if (D >= 0 && (-b-sqrt(D))/(2*a) > 2) cout << "И двата корена са >2" << endl; } void increasing() { int a, b, c; cout << "Моля, въведете a, b, c: "; cin >> a >> b >> c; if (a < b && b < c) cout << "Растяща редица"; else cout << "Не е растяща редица"; // TODO: Ако беше дефинирана: образуват ли в някакъв ред растяща редица? } void minimum() { int a, b, c; cout << "Моля, въведете a, b, c: "; cin >> a >> b >> c; cout << "Най-малкото число е "; /* if (a <= b && a <= c) cout << a; else if (b <= a && b <= c) cout << b; else if (c <= a && c <= b) cout << c; */ int min = a; if (min > b) // min == a > b min = b; // min == b < a // (min == a || min == b) && min <= a && min <= b if (min > c) min = c; // (min == a || min == b || min == c) && // min <= a && min <= b && min <= c cout << min; } int sort3() { int a, b, c; cout << "Моля, въведете a, b, c: "; cin >> a >> b >> c; // разменяме b, c, така че b <= c if (b > c) { int x = c; c = b; b = x; } // b <= c // разменяме a, b, така че a <= b && a <= c if (a > b) { int x = a; a = b; b = x; } // a <= b && a <= c // b ?? c // разменяме b, c, така че a <= b <= c if (b > c) { int x = c; c = b; b = x; } // a <= b <= c cout << a << ' ' << b << ' ' << c << endl; } void switching() { int x; cout << "x = "; cin >> x; switch(x) { case 1: x++; cout << "Case 1" << endl; break; case 2: x += 2; cout << "Case 2" << endl; break; default: x += 5; } cout << x << endl; } void whatletter() { char c; cout << "Enter a letter: "; cin >> c; //if (!(c >= 'A' && c <='Z' || c >= 'a' && c <= 'z')) { //if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') if ( (c < 'A' || c > 'Z')&&(c < 'a' || c > 'z')) { cout << "Not a letter!" << endl; } else { switch (c) { case 'A': case 'E': case 'I': case 'O': case 'U': case 'a': case 'e': case 'i': case 'o': case 'u':cout << "The letter is a vowel" << endl;break; default : cout << "The letter is a consonant" << endl; } } } void menu() { double x; cout << "x = "; cin >> x; cout << "Моля, въведете\n1 за синус,\n2 за косинус,\n3 за експонента,\n4 за логаритъм\n: "; int choice; cin >> choice; double y; switch (choice) { case 1:y = sin(x);break; case 2:y = cos(x);break; case 3:y = exp(x);break; case 4: if (x <= 0) { cout << "x е извън ДО на функцията!"; y = 0; } else y = log(x); break; default:cout << "Непозната функция!" << endl; } cout << "y = " << y << endl; } void calcfact() { int n; cout << "n = "; cin >> n; int f = 1; for(int i = 1; i <= n; i++) f *= i; cout << n << "! = " << f << endl; } int fact(int n) { int f = 1; for(int i = 1; i <= n; i++) f *= i; return f; } double power(double x, int n) { double f = 1; for(int i = 1; i <= n; i++) f *= x; return f; } void ourexp() { double x; int n; cout << "x = "; cin >> x; cout << "n = "; cin >> n; double s = 0; for(int i = 0; i <= n; i++) s += power(x, i) / fact(i); cout << "s = " << s << endl; } void ourexp_better() { double x; int n; cout << "x = "; cin >> x; cout << "n = "; cin >> n; double s = 0; double ai = 1; for(int i = 0; i <= n; i++) { s += ai; ai *= x / (i + 1); } cout << "s = " << s << endl; } int dfact1(int n) { int f = 1; for(int i = 1; i <= n; i += 2) f *= i; return f; } int dfact2(int n) { int f = 1; for(int i = 2; i <= n; i += 2) f *= i; return f; } int dfact12(int n) { int f = 1; int i; if (n % 2 == 0) i = 2; else i = 1; // i = n % 2 == 0 ? 2 : 1; for(; i <= n; i += 2) f *= i; return f; } int dfact(int n) { int f = 1; for(int i = n; i > 1; i -= 2) f *= i; return f; } void dfactsum() { int n; cout << "n = "; cin >> n; // !!! cout << dfact(2*n + 1) / dfact(2*n); double s = 0; for(int i = 0; i <= n; i++) // s += (double)dfact(2*i + 1)/dfact(2*i); { double df1 = dfact(2*i + 1); double df2 = dfact(2*i); s += df1 / df2; } cout << "s = " << s << endl; } void dfactsum_better() { int n; cout << "n = "; cin >> n; double s = 0; double ai = 1; for(int i = 0; i <= n; i++) { s += ai; ai *= (2*i + 3)/(2*i + 2.); } cout << "s = " << s << endl; } void count3() { int n; cout << "n = "; cin >> n; int count = 0; for(int i = 1; i <= n; i++) { // count съдържа броя на търсените числа // до (i-1)-вото int xi = n*n*n + 5*i*i*n - 8*i; if (xi % 3 == 0) count++; // count съдържа броя на търсените числа // до i-тото } cout << "count = " << count << endl; } void findmax() { int n; cout << "n = "; cin >> n; int max = n*n*n + 5*n - 8; // i == 1 for(int i = 2; i <= n; i++) { // max съдържа най-голямото число до (i-1)-вото int xi = n*n*n + 5*i*i*n - 8*i; if (xi > max) max = xi; // max съдържа най-голямото число до i-тото } cout << "max = " << max << endl; } void fact_while() { int n; cout << "n = "; cin >> n; int f = 1, i = 1; while (i <= n) { f *= i; i++; } cout << "f = " << f << endl; } void average() { double sum = 0; int count = 0; double x = 1; while (x != 0) { cout << "Въведете число: "; cin >> x; sum += x; count++; } count--; // корекция на последната 0 // x == 0 - прекратяваме cout << "Средно аритметично: " << sum / count << endl; } void ourexp_eps() { double x, eps; cout << "x = "; cin >> x; cout << "eps = "; cin >> eps; double s = 0; double ai = 1; int i = 0; while (fabs(ai) >= eps) { s += ai; ai *= x / (i+1); i++; } cout << "s = " << setprecision(10) << s << endl; cout << "i = " << i << endl; } void firstdigit() { int n; cout << "n = "; cin >> n; int d = n; const int BASE = 10; /* * !!!!! do d/= BASE; while (d >= BASE); */ while (d >= BASE) { d /= BASE; } // d < 10 cout << "d = " << d << endl; } void has5() { int n; cout << "n = "; cin >> n; int d = abs(n); const int BASE = 10; while (d % BASE != 5 && d > 0) { d /= BASE; } // d % BASE == 5 -> отговорът е ДА // d == 0 -> отговорът е НЕ // d % BASE == 5 || d == 0 -> цикълът спира if (d == 0) cout << "Няма 5 в това число!" << endl; else cout << "Числото съдържа 5!" << endl; } void exists7() { int n; cout << "n = "; cin >> n; int i = 1, xi; do { xi = n*n*n + 5*i*i*n - 8*i; i++; } while(xi % 7 != 0 && i <= n); // xi % 7 == 0 - ДА // i == n + 1 - НЕ if (xi % 7 == 0) { cout << "Има такова число!" << endl; cout << "Това е x" << i-1 << endl; } else cout << "Няма такова число!" << endl; } void least_digit() { int n; cout << "n = "; cin >> n; const int BASE = 10; int d = n; int min = BASE; do { if (min > d % BASE) min = d % BASE; d /= BASE; } while (d > 0); // d == 0 cout << "Най-малката цифра е: " << min << endl; } void is_prime() { int n; cout << "n = "; cin >> n; int d = 1; do d++; while (n % d != 0 && d < n); // n % d == 0 - съставно // d == n - просто if (d == n) cout << "Числото е просто" << endl; else cout << "Числото не е просто" << endl; } void print_primes() { int n; cout << "n = "; cin >> n; int k = 2, i = 0; // k - числото, което разглеждаме в момента // i - колко числа сме извели на екрана до момента while (i < n) { int d = 2; while (k % d != 0 && d < k) { cout << "(" << i << "," << k << "," << d << ")" << endl; d++; } // d == k - просто // иначе - съставно // да направим някаква проверка с цикъл //така че, като приключи цикълът // да знаем дали k е просто число if (d == k) { cout << k << endl; i++; } k++; } } void nested_cycles() { int n; cout << "n = "; cin >> n; int i, j, k; for (i = 0; i < n; i++ ) for (j = i; j < n; j++ ) for (k = j; k > i; k-- ) { cout << '(' << i; cout << ',' << j; cout << ',' << k << ')' << endl; } } void calculate() { int n; cout << "n = "; cin >> n; double s = 0; for(int i = 1; i <= n; i++) { double ai = 1; for(int j = i+1; j <= 2*n - i; j++) { double bij = (double)(i-j)/(i+j); ai *= bij; } s += ai; } cout << "s = " << s; } void print_pairs() { int n; cout << "n = "; cin >> n; for(int i = 0; i < n; i++) { for(int j = 0; j <= i; j++) cout << "(" << i - j << "," << j << ")" << endl; } } int main() { // assignment(); // conditions(); // increasing(); // minimum(); // sort3(); // switching(); // whatletter(); // menu(); // fact(); // ourexp(); // ourexp_better(); // cout << dfact(28); // dfactsum(); // dfactsum_better(); // count3(); // findmax(); // fact_while(); // average(); // ourexp_eps(); // firstdigit(); // has5(); // exists7(); // least_digit(); // is_prime(); // print_primes(); // nested_cycles(); // calculate(); print_pairs(); }