Помогите сделать задания
Не отвечайте, вопрос нужен для других целей
Задание № 1.
Вам необходимо:
1. Разработать алгоритм решения поставленной задачи в выбранной вами программой (например, MS Visio).
2. Разработать программный модуль реализации поставленной задачи в консольном приложении Visual Studio или в виде оконного приложения в среде разработки Visual Studio
3. Провести отладку и тестирование программного модуля.
Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random().
При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid.
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить: Сумму элементов массива кратных числу, вводимому с клавиатуры.
Задание № 2.
Вам необходимо:
1. Разработать программный модуль реализации для поставленной задачи средствами языка программирования.
2. Провести отладку и тестирование программного модуля.
Организуйте видеорежим VGA, используя язык программирования, который осуществляет рисование белого прямоугольника по периметру в окне терминала.
Для выполнения задания №1 и задания №2 предоставлю примеры кода на C# (для консольного приложения) и C++ (для рисования прямоугольника в VGA-режиме).
---
Задание №1: Обработка одномерного массива (C#)
Программа на C# (консольное приложение):
```csharp
using System;
class Program
{
static void Main()
{
Console.WriteLine("Введите размер массива:");
int n = int.Parse(Console.ReadLine());
int[] array = new int[n];
Console.WriteLine("Выберите способ заполнения массива:");
Console.WriteLine("1 - Вручную");
Console.WriteLine("2 - Случайные числа");
int choice = int.Parse(Console.ReadLine());
if (choice == 1)
{
Console.WriteLine($"Введите {n} элементов массива:");
for (int i = 0; i < n; i++)
array[i] = int.Parse(Console.ReadLine());
}
else if (choice == 2)
{
Random rnd = new Random();
for (int i = 0; i < n; i++)
array[i] = rnd.Next(1, 100); // Генерация чисел от 1 до 100
Console.WriteLine("Сгенерированный массив:");
foreach (var num in array)
Console.Write(num + " ");
Console.WriteLine();
}
Console.WriteLine("Введите число для проверки кратности:");
int k = int.Parse(Console.ReadLine());
int sum = 0;
foreach (var num in array)
{
if (num % k == 0)
sum += num;
}
Console.WriteLine($"Сумма элементов, кратных {k}: {sum}");
}
}
```
Алгоритм:
1. Пользователь вводит размер массива.
2. Выбирает способ заполнения (вручную или случайными числами).
3. Вводит число k, для которого проверяется кратность.
4. Программа вычисляет сумму элементов, кратных k, и выводит результат.
---
Задание №2: Рисование прямоугольника в VGA-режиме (C++)
Программа на C++ (используя VGA-режим в DOS или эмуляции):
```cpp
#include <conio.h>
#include <dos.h>
#include <graphics.h>
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\Turboc3\\BGI"); // Укажите путь к BGI-драйверам
// Рисуем белый прямоугольник по периметру экрана
setcolor(WHITE);
rectangle(50, 50, getmaxx() - 50, getmaxy() - 50);
getch(); // Ожидание нажатия клавиши
closegraph();
return 0;
}
```
Примечания:
- Для работы программы потребуется Turbo C++ или DOSBox с библиотекой graphics.h.
- Если используется современная среда (например, Code::Blocks), можно попробовать SDL или OpenGL для рисования.
Альтернатива на C (для BIOS/VGA):
Если требуется низкоуровневый доступ к VGA:
```c
#include <dos.h>
#include <stdio.h>
void set_vga_mode() {
union REGS regs;
regs.h.ah = 0x00;
regs.h.al = 0x13; // 320x200, 256 colors
int86(0x10, ®s, ®s);
}
void draw_rectangle(int x1, int y1, int x2, int y2, unsigned char color) {
unsigned char far vga = (unsigned char far )0xA0000000;
for (int x = x1; x <= x2; x++) {
vga[y1 * 320 + x] = color;
vga[y2 * 320 + x] = color;
}
for (int y = y1; y <= y2; y++) {
vga[y * 320 + x1] = color;
vga[y * 320 + x2] = color;
}
}
int main() {
set_vga_mode();
draw_rectangle(50, 50, 270, 150, 15); // Белый прямоугольник (цвет 15)
getch();
return 0;
}
```
---
Выводы:
1. Для задания №1 программа готова к запуску в Visual Studio.
2. Для задания №2 потребуется эмулятор DOS (например, DOSBox) или замена на современную графическую библиотеку.
Если нужно адаптировать решение под конкретные требования, уточните детали!