Загрузить файлы в «/»
This commit is contained in:
180
main.cpp
Normal file
180
main.cpp
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include <cmath> // для функции pow
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void z1() {
|
||||||
|
float s, n, p, r;
|
||||||
|
cout << "Вы взяли в кредит сумму s, под процент p, на n лет : " << endl;
|
||||||
|
cin >> s >> p >> n;
|
||||||
|
if ((s <= 0) || (n < 0) || (p < 0)) {
|
||||||
|
cout << "ошибка" << endl;
|
||||||
|
}
|
||||||
|
else if (p == 0) {
|
||||||
|
cout << "m = " << s / (12 * n) << endl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
r = p / 100;
|
||||||
|
cout << "m = " << (s * r * pow((1 + r), n)) / (12 * (pow((1 + r), n) - 1)) << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void z2() {
|
||||||
|
float s, m, n;
|
||||||
|
cout << "Введите s, m, n: ";
|
||||||
|
cin >> s >> m >> n;
|
||||||
|
bool flag = false;
|
||||||
|
double l = 0;
|
||||||
|
double r = 1000000;
|
||||||
|
double mid;
|
||||||
|
while ((l <= r) && (flag != true)) {
|
||||||
|
mid = (l + r) / 2;
|
||||||
|
double R = mid / 100;
|
||||||
|
double mt = (s * R * pow(1 + R, n)) / (12 * (pow(1 + R, n) - 1));
|
||||||
|
if (abs(mt - m) < 0.0001) {
|
||||||
|
flag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (mt < m) {
|
||||||
|
l = mid;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
r = mid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (flag) cout << "Найден процент: " << mid << endl;
|
||||||
|
else cout << "Процент не найден" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void z3() {
|
||||||
|
string filename = "output.txt"; // Имя файла
|
||||||
|
ofstream outfile; // Открытие файла для записи
|
||||||
|
|
||||||
|
// Открытие файла с проверкой
|
||||||
|
outfile.open(filename);
|
||||||
|
if (!outfile.is_open()) {
|
||||||
|
cerr << "Ошибка: Не удалось открыть файл для записи!" << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string lines;
|
||||||
|
// Запись в файл
|
||||||
|
cout << "Первая строка:\n";
|
||||||
|
cin >> lines;
|
||||||
|
outfile << lines << endl;
|
||||||
|
|
||||||
|
// Закрытие файла после записи
|
||||||
|
outfile.close();
|
||||||
|
cout << "Данные успешно записаны в файл." << endl;
|
||||||
|
|
||||||
|
// Переоткрытие файла для чтения
|
||||||
|
ifstream infile;
|
||||||
|
infile.open(filename);
|
||||||
|
|
||||||
|
// Проверка на открытие
|
||||||
|
if (!infile.is_open()) {
|
||||||
|
cerr << "Ошибка: Не удалось открыть файл для чтения!" << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Чтение и вывод содержимого файла
|
||||||
|
string line;
|
||||||
|
cout << "Содержимое файла:\n";
|
||||||
|
while (getline(infile, line)) {
|
||||||
|
cout << line << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Закрытие файла после чтения
|
||||||
|
infile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void z4() {
|
||||||
|
string path = "z4.txt";
|
||||||
|
ofstream fout;
|
||||||
|
string inputString;
|
||||||
|
cout << "Введите строку: ";
|
||||||
|
cin >> inputString;
|
||||||
|
|
||||||
|
fout.open(path);
|
||||||
|
fout << inputString << endl;
|
||||||
|
fout.close();
|
||||||
|
|
||||||
|
ifstream file(path);
|
||||||
|
cout << file.rdbuf() << endl;
|
||||||
|
|
||||||
|
file.clear();
|
||||||
|
string s;
|
||||||
|
char ch;
|
||||||
|
while (file.get(ch)) {
|
||||||
|
if (isdigit(ch)) {
|
||||||
|
s += ch;
|
||||||
|
} else if (!s.empty() && s.back() != ' ') {
|
||||||
|
s += ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << s << endl;
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sorting(string& s) {
|
||||||
|
int n = s.length();
|
||||||
|
for (int i = 0; i < n - 1; i++) {
|
||||||
|
for (int j = 0; j < n - i - 1; j++) {
|
||||||
|
char c1 = tolower(s[j]);
|
||||||
|
char c2 = tolower(s[j + 1]);
|
||||||
|
if (c1 > c2 || (c1 == c2 && s[j] > s[j + 1])) {
|
||||||
|
swap(s[j], s[j + 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void z5() {
|
||||||
|
string s;
|
||||||
|
cout << "Введите строку: "<<endl;
|
||||||
|
cin >> s;
|
||||||
|
sorting(s); // Сортируем строку
|
||||||
|
cout << "Отсортированная строка: " << s << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int choice;
|
||||||
|
do {
|
||||||
|
cout << "Выберите задание (1-5, 0 для выхода):" << endl;
|
||||||
|
cout << "1. Расчет ежемесячных платежей" << endl;
|
||||||
|
cout << "2. Поиск процента по ежемесячным платежам" << endl;
|
||||||
|
cout << "3. Работа с файлами (запись и чтение)" << endl;
|
||||||
|
cout << "4. Работа с числами в строке" << endl;
|
||||||
|
cout << "5. Сортировка строки" << endl;
|
||||||
|
cout << "0. Выход" << endl;
|
||||||
|
cin >> choice;
|
||||||
|
|
||||||
|
switch (choice) {
|
||||||
|
case 1:
|
||||||
|
z1();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
z2();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
z3();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
z4();
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
z5();
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
cout << "Выход из программы." << endl;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
cout << "Неверный выбор, попробуйте снова." << endl;
|
||||||
|
}
|
||||||
|
} while (choice != 0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user