//No.1 #include #include #include using namespace std; int main() { srand(time(0)); setlocale(LC_ALL, "Russian"); ofstream fout("chisla.txt"); for (int i = 0; i < 10; ++i) { int n = rand(); fout << n << endl; cout << "В файл записано число №" << i+1 << " " << n << endl; } fout.close(); ifstream fin("chisla.txt"); int sum = 0, n; while (fin >> n) sum += n; fin.close(); cout << "Сумма чисел в файле: " << sum << endl; return 0; } //No.2 #include using namespace std; int sign(double x) { if (x < 0) return -1; if (x == 0) return 0; return 1; } int main() { setlocale(LC_ALL, "Russian"); double x; cout << "Введите число для вычисления sign(x): "; cin >> x; cout << "sign(x) = " << sign(x) << endl; return 0; } //No.3 #define _USE_MATH_DEFINES #include #include using namespace std; void pryamougolnik(double x, double y) { cout << "Площадь прямоугольника: " << x * y << endl; } void krug(double r) { cout << "Площадь круга: " << M_PI * pow(r, 2) << endl; } void treugolnik(double a, double b, double c = 15) { double p = (a + b + c) / 2; cout << "Площадь треугольника: " << sqrt(p * (p - a) * (p - b) * (p - c)); } int main() { setlocale(LC_ALL, "Russian"); cout << "Выберите фигуру, площадь которой хотите найти:\n" << "[1] Прямоугольник" << endl; cout << "[2] Круг \n" << "[3] Треугольник" << endl; int v; cin >> v; switch (v) { case 1: cout << "Введите значения сторон прямоугольника" << endl; double X, Y; cin >> X >> Y; if (X <= 0 || Y <= 0) cout << "Значения должны быть положительными" << endl; else pryamougolnik(X, Y); break; case 2: cout << "Введите значения радиуса круга" << endl; double R; cin >> R; if (R > 0) krug(R); else cout << "Радиус должен быть положительными" << endl; break; case 3: double A, B, C; cout << "Введите значения сторон треугольника" << endl; cin >> A >> B >> C; if (A + B <= C || B + C <= A || A + C <= B) cout << "Такого треугольника не существует" << endl; else if (A <= 0 || B <= 0 || C <= 0) cout << "Значения должны быть положительными" << endl; else treugolnik(A, B, C); break; default: cout << "Ошибка" << endl; } return 0; } //No.4 #include using namespace std; int main() { for (int i = 0; i < 13; i++) { if (i < 6) { for (int x = 0; x < 8; x++) { cout << "* "; } for (int j = 0; j < 33; j++) { cout << "_"; } cout << " " << endl; } else { for (int a = 0; a < 49; a++) { cout << "_"; } cout << " " << endl; } } return 0; } //No.5 #include #include using namespace std; int main() { const int size = 100, height = 21; char chart[height][size]; double sinx[size]; { for (int i = 0; i < size; i++) sinx[i] = 10 * sin(i / 8.0); for (int i = 0; i < height; i++) for (int j = 0; j < size; j++) if (-0.01 < 10.0 - i - round(sinx[j]) && 10.0 - i - round(sinx[j]) < 0.01) chart[i][j] = '.'; else chart[i][j] = ' '; for (int i = 0; i < height; i++) { for (int j = 0; j < size; j++) cout << chart[i][j]; cout << endl; } } cin.ignore(); } //No.6 #include #include using namespace std; int chisla(char znak) { switch (znak) { case 'I': return 1; case 'V': return 5; case 'X': return 10; case 'L': return 50; case 'C': return 100; case 'D': return 500; case 'M': return 1000; default: return -1; } } int dekodirovka(string rimskchsl) { int cifri = 1; int otvet = 0; for (int i = 0; i < rimskchsl.length(); ++i) { rimskchsl[i] = toupper(rimskchsl[i]); if (i != 0) if (rimskchsl[i] == rimskchsl[i - 1]) cifri++; else cifri = 1; if (cifri > 3) return -1; } for (int i = 0; i < rimskchsl.length(); ++i) { if (chisla(rimskchsl[i]) == -1) return -1; if (i < rimskchsl.length() - 1) { if (chisla(rimskchsl[i]) >= chisla(rimskchsl[i + 1])) otvet += chisla(rimskchsl[i]); else { otvet += chisla(rimskchsl[i + 1]) - chisla(rimskchsl[i]); ++i; } } else otvet += chisla(rimskchsl[i]); } return otvet; } int main() { setlocale(LC_ALL, "Russian"); cout << "Введите римское число" << endl; string chislo; cin >> chislo; int arabski; arabski = dekodirovka(chislo); if (arabski == -1) cout << "Ошибка" << endl << endl; else cout << "Результат: " << arabski << endl << endl; return 0; } //No.7 #include using namespace std; int s1 = 0, s2 = 0; int random1() { s1 = (37 * s1 + 3) % 64; return s1; } int random2() { s2 = (25173 * s2 + 13849) % 65537; return s2; } int main() { for (int i = 0; i < 10; ++i) { cout << random1() << " " << random2() << endl; } return 0; } //No.8 #include using namespace std; int main() { setlocale(LC_ALL, "Russian"); const int AN = 3; const int AM = 4; const int BN = 4; const int BM = 2; double A[AN][AM] = { {5, 2, 0, 10}, {3, 5, 2, 5}, {20, 0, 0, 0} }; double B[BN][BM] = { {1.20, 0.50}, {2.80, 0.40}, {5.0, 1.0}, {2.0, 1.5} }; int ans[AN][BM]; for (int i = 0; i < AN; ++i) for (int j = 0; j < BM; ++j) ans[i][j] = 0; for (int i = 0; i < AN; ++i) for (int j = 0; j < BM; ++j) for (int k = 0; k < AM; ++k) ans[i][j] += A[i][k] * B[k][j]; int max = ans[0][0], ind1 = 0, min = ans[0][0], ind2 = 0; for (int i = 0; i < AN; ++i) { if (max < ans[i][0]) { max = ans[i][0]; ind1 = i + 1; } if (min > ans[i][0]) { min = ans[i][0]; ind2 = i + 1; } } cout << "Наибольшая выручка: " << ind1 << "\nНаименьшая выручка: " << ind2 << endl; max = ans[0][1]; ind1 = 0; min = ans[0][1]; ind2 = 0; for (int i = 0; i < AN; ++i) { if (max < ans[i][0]) { max = ans[i][0]; ind1 = i + 1; } if (min > ans[i][0]) { min = ans[i][0]; ind2 = i + 1; } } cout << "Наибольшие комиссионные: " << ind1 << "\nНаименьшие комиссионные: " << ind2 << endl; int total_price = 0; for (int i = 0; i < AN; ++i) total_price += ans[i][0]; cout << "Всего товаров продано на: " << total_price << endl; int total_com = 0; for (int i = 0; i < AN; ++i) total_com += ans[i][1]; cout << "Всего комиссионных: " << total_com << endl; cout << "Всего через руки продавцов прошло: " << total_price + total_com; cin.ignore(); return 0; } //No.9 #include #include #include using namespace std; size_t numeral_to_decimal(char numeral) { string numerals = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return numerals.find(numeral); } char decimal_to_numeral(size_t decimal) { string numerals = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return numerals[decimal]; } bool is_correct(int notation, string number) { if (notation < 2 || notation > 36) return false; string numerals = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; numerals = numerals.substr(0, notation); for (size_t i = 0; i < number.length(); ++i) if (numerals.find(number[i]) == string::npos) return false; return true; } string convert_number(string number, size_t st_notation, size_t con_notation) { size_t decimal = 0; for (int i = number.length() - 1, deg = 0; i >= 0; --i, ++deg) decimal += numeral_to_decimal(number[i]) * pow(st_notation, deg); string ans = ""; while (decimal > 0) { ans += decimal_to_numeral(decimal % con_notation); decimal /= con_notation; } reverse(ans.begin(), ans.end()); return ans; } int main() { setlocale(LC_ALL, "Russian"); cout << "Введите число в какой либо системе счисления:" << endl; string number; getline(cin, number); cout << "Введите начальную систему счисления: "; int st_notation; cin >> st_notation; if (!is_correct(st_notation, number)) { cerr << "Неверный ввод. Перезапустите программу и повторите ввод." << endl; return 0; } cout << "Введите систему счисления, в которую выполнить перевод: "; int con_notation; cin >> con_notation; cout << "Если число " << number << " перевести из " << st_notation << "-чной в " << con_notation << "-чную, получим: " << convert_number(number, st_notation, con_notation); return 0; }