Top.Mail.Ru
Ответы
Аватар пользователя
8мес
Изменено

Помогите сделать задания

Не отвечайте, вопрос нужен для других целей

Задание № 1.

Вам необходимо:

1. Разработать алгоритм решения поставленной задачи в выбранной вами программой (например, MS Visio).

2. Разработать программный модуль реализации поставленной задачи в консольном приложении Visual Studio или в виде оконного приложения в среде разработки Visual Studio

3. Провести отладку и тестирование программного модуля.

Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random().

При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid.

В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить: Сумму элементов массива кратных числу, вводимому с клавиатуры.

Задание № 2.

Вам необходимо:

1. Разработать программный модуль реализации для поставленной задачи средствами языка программирования.

2. Провести отладку и тестирование программного модуля.

Организуйте видеорежим VGA, используя язык программирования, который осуществляет рисование белого прямоугольника по периметру в окне терминала.

По дате
По рейтингу
Аватар пользователя
Ученик
8мес

Для выполнения задания №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, &regs, &regs);

}

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) или замена на современную графическую библиотеку.

Если нужно адаптировать решение под конкретные требования, уточните детали!



Видео по теме