выполнить задание. Скомпилировать готовое приложение в *.exe файл, таким образом, что бы он запускался на любом компьютере с ОС windows. А так же, подробно описать ход решения в текстовом документе, привести необходимые фрагменты кода. Задания по вариантам
Выберите один из вариантов заданий и выполните работу.
Вариант 1
Написать программу, которая вычисляет число гласных и согласных букв в файле. Содержимое текстового файла заносится в массив символов. Количество гласных и согласных букв определяется проходом по массиву. Обработать исключительные ситуации.
Вариант 2
Написать программу, которая читает с экрана число от 1 до 365 (номер дня в году), переводит этот число в месяц и день месяца. Например, число 40 соответствует 9 февраля (високосный год не учитывать). Добавить к задаче из предыдущего упражнения проверку числа введенного пользователем. Если число меньше 1 или больше 365, программа должна обрабатывать исключение, и выдавать на экран сообщение.
Вариант 3
Создать класс Figure для работы с геометрическими фигурами. В качестве полей класса задаются цвет фигуры, состояние «видимое/невидимое». Реализовать операции: передвижение геометрической фигуры по горизонтали, по вертикали, изменение цвета, опрос состояния (видимый/невидимый). Метод вывода на экран должен выводить состояние всех полей объекта. Создать класс Point (точка) как потомок геометрической фигуры. Создать класс Circle (окружность) как потомок точки. В класс Circle добавить метод, который вычисляет площадь окружности. Создать класс Rectangle (прямоугольник) как потомок точки, реализовать метод вычисления площади прямоугольника. Точка, окружность, прямоугольник должны поддерживать методы передвижения по горизонтали и вертикали, изменения цвета.
Приведите получившийся код и поясните ответы на следующие вопросы:
нужно ли объявлять абстрактный класс?
какие методы и поля будут в абстрактном классе?
какие методы будут виртуальными, какие перегруженными?
Вариант 4
Написать программу, которая в одномерном массиве, состоящем из n элементов, вычислит произведение элементов массива, расположенных между максимальным и минимальным элементами. Массив можно заполнить случайными числами.
program pr1;
uses
crt;
const
arr1 : array[1..12] of integer = (5, 4, -3, 1, 0, -4, 0, 25, -8, 0, -17, -1);
type
arr2 = array of integer;
var
arr : arr2;
n : integer;
i, sot, spl, snu : byte;
ch : char;
begin
write('Хотите использовать заданный по умолчанию массив? (y/n): ');
ch := readkey;
writeln(ch);
sot := 0;
spl := 0;
snu := 0;
if ((ch='y') or (ch='Y')) then begin
{ Используем заданный по умолчанию }
for i:=1 to 12 do begin
if arr1[i] > 0 then inc(spl);
if arr1[i] < 0 then inc(sot);
if arr1[i] = 0 then inc(snu);
write(arr1[i], ' ');
end;
writeln;
end
else begin
{ Создаём и заполняем новый массив }
write('Введите желаемый размер массива: ');
readln(n);
setLength(arr, n);
writeln('Введите элементы массива:');
for i:=0 to high(arr) do
readln(arr[i]);
for i:=0 to high(arr) do begin
if arr[i]>0 then inc(spl);
if arr[i]<0 then inc(sot);
if arr[i]=0 then inc(snu);
write(arr[i], ' ');
end;
writeln;
end;
writeln('Количество отрицательных элементов: ', sot);
writeln('Количество нулевых элементов: ', snu);
writeln('Количество положительных элементов: ', spl);
end.
С++20
#include <iostream>#include <vector>class Point {public: int x, y; Point() = default; Point(const Point &) = default; Point(int _x, int _y) : x(_x), y(_y) {} Point operator + (const Point& p) const { return Point {x + p.x, y + p.y}; } Point operator - (const Point& p) const { return Point {x - p.x, y - p.y}; } std::vector<Point> operator & (const Point& p) const { return std::vector<Point> { Point {x + p.x, y + p.y}, Point {x - p.x, y + p.y}, Point {x + p.x, y - p.y}, Point {x - p.x, y - p.y}, Point {x + p.y, y + p.x}, Point {x - p.y, y + p.x}, Point {x + p.y, y - p.x}, Point {x - p.y, y - p.x}, }; } static Point max (const Point& p1, const Point& p2) { return Point {std::max(p1.x, p2.x), std::max(p1.y, p2.y)}; } static Point min (const Point& p1, const Point& p2) { return Point {std::min(p1.x, p2.x), std::min(p1.y, p2.y)}; } [[nodiscard]] int distance_to_by_ch (const Point & p) const { return std::max(std::abs(p.x - x), std::abs(p.y - y)); } [[nodiscard]] int distance_to_by_m (const Point & p) const { return std::abs(p.x - x) + std::abs(p.y - y); } friend std::ostream &operator << (std::ostream &os, Point const &p) { return os << "(" << p.x << ";" << p.y << ")"; } Point & operator = (const Point &) = default; bool operator == (const Point & p) const { return x == p.x && y == p.y; }};class Horse {public: const Point p; explicit Horse (const Point position) : p(position) { } [[nodiscard]] bool can_I_kill_this_guy (const Point & m) const { auto field = p & Point{2, 3}; return std::find(field.begin(), field.end(), m) != field.end(); }};std::istream &to_number(std::istream &stream) { char ch; do { ch = stream.get(); } while (!isalpha(ch)); if (isupper(ch)) ch -= 16; else ch -= 48; stream.putback(ch); return stream;}int main () { Point horse_p{}, stranger_p{}; std::cin >> horse_p.x >> to_number >> horse_p.y; std::cin >> stranger_p.x >> to_number >> stranger_p.y; Horse jack(horse_p); std::cout << "I am a Horse placed on " << jack.p << ". " << "Can I kill those guy on " << stranger_p << "? " << "-> " << std::boolalpha << jack.can_I_kill_this_guy(stranger_p); }