Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MiniHW2 (CharsovDenis) #150

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions sem1/CharsovDenis/MiniHW1/task1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include <iostream>


float squareArea(float sideSquare) {
return sideSquare * sideSquare;
}


int main()
{
std::cout << "Input the length of a side of a square: ";

float sideSquare{};
std::cin >> sideSquare;

std::cout << "The area of a square: " << squareArea(sideSquare);
}
17 changes: 17 additions & 0 deletions sem1/CharsovDenis/MiniHW1/task2.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include <iostream>

float trapezoidArea(float base1, float base2, float height) {
return (base1 + base2) / 2 * height;
}

int main()
{
std::cout << "Enter base 1, base 2 and height in the appropriate order: ";

float base1{};
float base2{};
float height{};
std::cin >> base1 >> base2 >> height;

std::cout << "The area of a trapezoid: " << trapezoidArea(base1, base2, height);
}
23 changes: 23 additions & 0 deletions sem1/CharsovDenis/MiniHW1/task3.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#include <iostream>

int main()
{
int currentNum{};
int nextNum{ 1 };
int temp{};

std::cout << "How many fibonacci numbers to output: ";
int numOfNums{};
std::cin >> numOfNums;

std::cout << "The Fibonacci numbers:\n";

for (int i = 0; i < numOfNums; i++) {
std::cout << currentNum << " ";

temp = currentNum;
currentNum = nextNum;
nextNum += temp;
}

}
18 changes: 18 additions & 0 deletions sem1/CharsovDenis/MiniHW1/task4.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include <iostream>

int main()
{
std::cout << "Input the number: ";
int number{};
std::cin >> number;

int reverseNum{};

while (number != 0) {
int lastNum = number % 10;
reverseNum = reverseNum * 10 + lastNum;
number /= 10;
}

std::cout << "The reverse number: " << reverseNum;
}
114 changes: 114 additions & 0 deletions sem1/CharsovDenis/MiniHW2/task1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
#include <iostream>
#include <string>
#include <Windows.h>

HANDLE hConsole{GetStdHandle(STD_OUTPUT_HANDLE)};

int setChoiceMenuion() {
std::cout << "Введите выбор операции:\n" << "1 -- Перевод в восьмиричную систему\n"
<< "2 -- Перевод в шестнадцатиричную систему\n" << "3 -- Выход из программы\n"
<< "Ваш выбор: ";
int choiceMenu{};
std::cin >> choiceMenu;

return choiceMenu;
}


int setUserDecimalNum() {
std::cout << "Введите десятичное число > 0, которое хотите перевести в 8-чную или 16-чную системы: ";
int userDecimalNum{};
std::cin >> userDecimalNum;

return userDecimalNum;
}


std::string decimalToOct(int userDecimalNum) {
std::string strOctalNum{};

while (userDecimalNum != 0) {
strOctalNum = std::to_string(userDecimalNum % 8) + strOctalNum;
userDecimalNum /= 8;
}

return strOctalNum;
}


std::string decimalToHex(int userDecimalNum) {
std::string strHexNum{};

char arrayHex[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

while (userDecimalNum != 0) {
strHexNum = arrayHex[userDecimalNum % 16] + strHexNum;
userDecimalNum /= 16;
}
return strHexNum;
}


std::string startProgramm() {
int userDecimalNum{};


while (true) {
int choiceMenu{ setChoiceMenuion() };

switch (choiceMenu)
{
case 1:
userDecimalNum = setUserDecimalNum();

if (userDecimalNum < 0) {
std::cout << "-------------------------------------------------------------------\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
std::cout << "Вы ввели не число < 0, постарайтесь ещё!\n\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
break;
}
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
std::cout << "\nРезультат перевода: ";
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);

return decimalToOct(userDecimalNum);
break;

case 2:
userDecimalNum = setUserDecimalNum();

if (userDecimalNum < 0) {
std::cout << "-------------------------------------------------------------------\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
std::cout << "Вы ввели не число < 0, постарайтесь ещё!\n\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
break;
}
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
std::cout << "\nРезультат перевода: ";
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
return decimalToHex(userDecimalNum);
break;

case 3:
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
return "Вы решили выйти из программы, всего хорошего!";
break;

default:
std::cout << "-------------------------------------------------------------------\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
std::cout << "Неверный выбор операции, введите число, соответсвующее числу операции!\n\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
}
}
}


int main()
{
setlocale(LC_ALL, "Russian");
std::cout << startProgramm();
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
}
87 changes: 87 additions & 0 deletions sem1/CharsovDenis/MiniHW2/task2.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#include <iostream>
#include <Windows.h>


HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);


int setUserSelect() {
int userSelect{};
std::cout << "Введите номер соответсвтующей команде:\n" << "1 -- Проверить теорию Сиракуз\n"
<< "2 -- Выйти из программы\n" << "Ваш выбор: ";
std::cin >> userSelect;

return userSelect;
}


int setUserNumber() {
int userNumber{};
std::cout << "Введите натуральное число, на котором хотите проверить теорию Сиракуз: ";
std::cin >> userNumber;

return userNumber;
}


std::string startProgramm() {
int userNumber{};

while (true) {
int userSelect{ setUserSelect() };

switch (userSelect)
{
case 1:
userNumber = setUserNumber();

if (userNumber < 1) {
std::cout << "------------------------------------------------------------------\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
std::cout << "Вы ввели ненатуральное число, постарайтесь еще раз!\n\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
break;
}

SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_RED);
std::cout << "Вычисления:\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);

while (userNumber != 1) {
if (userNumber % 2 == 0) {
std::cout << "Четное: " << userNumber << " / 2 = ";
userNumber /= 2;
std::cout << userNumber << "\n";
}
else {
std::cout << "Нечетное: (" << userNumber << " * 3 + 1) / 2 = ";
userNumber = (userNumber * 3 + 1) / 2;
std::cout << userNumber << "\n";
}
}

SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
return "Теория верна, мы получили 1";
break;

case 2:
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
return "Вы успешно вышли из программы!";
break;

default:
std::cout << "------------------------------------------------------------------\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
std::cout << "Введена неверная команда, попробуйте ещё!\n\n";
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
}
}
}


int main() {
setlocale(LC_ALL, "Russian");
std::cout << startProgramm();
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
return 0;
}