Обновить main.cpp
Не работает флаг, не сделана проверка буква в 1
This commit is contained in:
143
main.cpp
143
main.cpp
@@ -4,28 +4,13 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
#include <Windows.h>
|
#include <windows.h>
|
||||||
#define _USE_MATH_DEFINES
|
#define _USE_MATH_DEFINES
|
||||||
#include<cmath>
|
#include <cmath>
|
||||||
const double PI = 3.141592653589793238463;
|
const double PI = 3.141592653589793238463;
|
||||||
// Функция для вычисления площади прямоугольника
|
|
||||||
double rectangleArea(double length, double width) {
|
|
||||||
return length * width;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Функция для вычисления площади треугольника
|
|
||||||
double triangleArea(double base, double height) {
|
|
||||||
return 0.5 * base * height;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Функция для вычисления площади круга
|
|
||||||
double circleArea(double radius) {
|
|
||||||
return PI * radius * radius;
|
|
||||||
}
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int sign(int x) {
|
int sign(double x) {
|
||||||
if (x > 0) {
|
if (x > 0) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -36,6 +21,28 @@ int sign(int x) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
double rectangleArea(double length, double width) {
|
||||||
|
return length * width;
|
||||||
|
}
|
||||||
|
|
||||||
|
double triangleArea(double a, double b, double c) {
|
||||||
|
// Проверка на существование треугольника
|
||||||
|
if ((a + b > c) && (a + c > b) && (b + c > a)) {
|
||||||
|
// Формула Герона
|
||||||
|
double s = (a + b + c) / 2;
|
||||||
|
return sqrt(s * (s - a) * (s - b) * (s - c));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cout << "Треугольник с такими сторонами не существует." << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
double circleArea(double radius) {
|
||||||
|
const double PI = 3.14159;
|
||||||
|
return PI * radius * radius;
|
||||||
|
}
|
||||||
|
|
||||||
void z3() {
|
void z3() {
|
||||||
int choice;
|
int choice;
|
||||||
cout << "Выберите фигуру для расчета площади:\n";
|
cout << "Выберите фигуру для расчета площади:\n";
|
||||||
@@ -47,7 +54,6 @@ void z3() {
|
|||||||
|
|
||||||
switch (choice) {
|
switch (choice) {
|
||||||
case 1: {
|
case 1: {
|
||||||
//3 стороны
|
|
||||||
double length, width;
|
double length, width;
|
||||||
cout << "Введите длину и ширину прямоугольника: ";
|
cout << "Введите длину и ширину прямоугольника: ";
|
||||||
cin >> length >> width;
|
cin >> length >> width;
|
||||||
@@ -55,10 +61,13 @@ void z3() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2: {
|
case 2: {
|
||||||
double base, height;
|
double a, b, c;
|
||||||
cout << "Введите основание и высоту треугольника: ";
|
cout << "Введите три стороны треугольника: ";
|
||||||
cin >> base >> height;
|
cin >> a >> b >> c;
|
||||||
cout << "Площадь треугольника: " << triangleArea(base, height) << endl;
|
double area = triangleArea(a, b, c);
|
||||||
|
if (area > 0) {
|
||||||
|
cout << "Площадь треугольника: " << area << endl;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 3: {
|
case 3: {
|
||||||
@@ -72,27 +81,66 @@ void z3() {
|
|||||||
cout << "Неверный выбор!" << endl;
|
cout << "Неверный выбор!" << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void z4() {
|
void z4() {
|
||||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
//циклы
|
|
||||||
SetConsoleTextAttribute(hConsole, 240);
|
|
||||||
cout << " " << endl;
|
|
||||||
SetConsoleTextAttribute(hConsole, 16);
|
|
||||||
cout << " " << endl;
|
|
||||||
SetConsoleTextAttribute(hConsole, 64);
|
|
||||||
cout << " " << endl;
|
|
||||||
|
|
||||||
SetConsoleTextAttribute(hConsole, 0);
|
const int width = 20; // Ширина флага
|
||||||
cout << endl;
|
const int height = 10; // Высота флага
|
||||||
SetConsoleTextAttribute(hConsole, 15);
|
const int circleRadius = 3; // Радиус круга
|
||||||
cout << endl;
|
const int centerX = width / 2;
|
||||||
|
const int centerY = height / 2;
|
||||||
|
|
||||||
|
for (int y = 0; y < height; y++) {
|
||||||
|
for (int x = 0; x < width; x++) {
|
||||||
|
// Определяем, находится ли точка (x, y) внутри круга
|
||||||
|
int dx = x - centerX;
|
||||||
|
int dy = y - centerY;
|
||||||
|
if (dx * dx + dy * dy <= circleRadius * circleRadius) {
|
||||||
|
SetConsoleTextAttribute(hConsole, 4); // Красный цвет
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
SetConsoleTextAttribute(hConsole, 15); // Белый цвет
|
||||||
|
}
|
||||||
|
cout << " "; // Два пробела для более широкого изображения
|
||||||
|
}
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
SetConsoleTextAttribute(hConsole, 15); // Сбрасываем цвет на белый
|
||||||
|
}
|
||||||
|
bool isValidRoman(const string& roman) {
|
||||||
|
// Проверяем, соответствует ли строка правилам римских цифр
|
||||||
|
for (size_t i = 0; i < roman.size(); ++i) {
|
||||||
|
// Ограничиваем последовательности, которые могут предшествовать большим символам
|
||||||
|
if (roman[i] == 'I' && i + 1 < roman.size() && roman[i + 1] != 'V' && roman[i + 1] != 'X' && roman[i + 1] != 'I') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (roman[i] == 'X' && i + 1 < roman.size() && roman[i + 1] != 'L' && roman[i + 1] != 'C' && roman[i + 1] != 'X') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (roman[i] == 'C' && i + 1 < roman.size() && roman[i + 1] != 'D' && roman[i + 1] != 'M' && roman[i + 1] != 'C') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Проверка на недопустимые повторения (например, IIII, VV, LL и т.д.)
|
||||||
|
string invalidPatterns[] = { "IIII", "VV", "XXXX", "LL", "CCCC", "DD", "MMMM" };
|
||||||
|
for (const string& pattern : invalidPatterns) {
|
||||||
|
if (roman.find(pattern) != string::npos) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
void z6() {
|
void z6() {
|
||||||
string roman;
|
string roman;
|
||||||
cout << "Введите римское число: ";
|
cout << "Введите римское число: ";
|
||||||
cin >> roman;
|
cin >> roman;
|
||||||
//правила
|
|
||||||
|
// Проверка на корректность римского числа
|
||||||
|
if (!isValidRoman(roman)) {
|
||||||
|
cerr << "Некорректное римское число." << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int result = 0; // Итоговое значение
|
int result = 0; // Итоговое значение
|
||||||
int prevValue = 0; // Предыдущее значение для сравнения
|
int prevValue = 0; // Предыдущее значение для сравнения
|
||||||
|
|
||||||
@@ -128,8 +176,7 @@ void z6() {
|
|||||||
cout << "Арабское число: " << result << endl;
|
cout << "Арабское число: " << result << endl;
|
||||||
}
|
}
|
||||||
void z2() {
|
void z2() {
|
||||||
int number;
|
double number;
|
||||||
//0.9
|
|
||||||
cout << "Введите число: ";
|
cout << "Введите число: ";
|
||||||
cin >> number;
|
cin >> number;
|
||||||
|
|
||||||
@@ -139,7 +186,7 @@ void z2() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int z1() {
|
int z1() {
|
||||||
// проверка букав
|
// проверка букав не пашет
|
||||||
|
|
||||||
ofstream outFile("numbers.txt"); // Открываем файл для записи
|
ofstream outFile("numbers.txt"); // Открываем файл для записи
|
||||||
if (!outFile) {
|
if (!outFile) {
|
||||||
@@ -148,12 +195,22 @@ int z1() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int numbers[10]; // Массив для хранения 10 чисел
|
int numbers[10]; // Массив для хранения 10 чисел
|
||||||
|
int a;
|
||||||
// Вводим 10 чисел и записываем их в файл через пробел
|
// Вводим 10 чисел и записываем их в файл через пробел
|
||||||
cout << "Введите 10 чисел: ";
|
cout << "Введите 10 чисел: ";
|
||||||
for (int i = 0; i < 10; ++i) {
|
for (int i = 0; i < 10; ++i) {
|
||||||
cin >> numbers[i];
|
cin >> a;
|
||||||
outFile << numbers[i] << " ";
|
if (int(a)) {
|
||||||
|
a >> numbers[i];
|
||||||
|
outFile << numbers[i] << " ";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cout << "Давай тут без этого вот всего, нраписано 'числа'"<<endl;
|
||||||
|
cin.clear();
|
||||||
|
cin.ignore();
|
||||||
|
z1();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
outFile.close(); // Закрываем файл после записи
|
outFile.close(); // Закрываем файл после записи
|
||||||
|
|
||||||
@@ -236,6 +293,8 @@ void launchTasks() {
|
|||||||
}
|
}
|
||||||
int main() {
|
int main() {
|
||||||
setlocale(LC_ALL, "");
|
setlocale(LC_ALL, "");
|
||||||
|
|
||||||
|
|
||||||
launchTasks();
|
launchTasks();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user