Парочка заданий
1)Необходимо:
1. Разработать алгоритм решения поставленной задачи в выбранной вами программой (например, MS Visio).
2. Разработать программный модуль реализации поставленной задачи в консольном приложении Visual Studio или в виде оконного приложения в среде разработки Visual Studio
3. Провести отладку и тестирование программного модуля.
Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random().
При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid.
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить: Сумму элементов массива кратных числу, вводимому с клавиатуры.
2)Вам необходимо:
1. Разработать программный модуль реализации для поставленной задачи средствами языка программирования.
2. Провести отладку и тестирование программного модуля.
Организуйте видеорежим VGA, используя язык программирования, который осуществляет рисование белого прямоугольника по периметру в окне терминала.
using System;
using System.Windows.Forms;
namespace ArrayProcessorApp
{
public partial class Form1 : Form
{
private Random random = new Random();
public Form1()
{
InitializeComponent();
}
// Обработчик нажатия на кнопку "Создать массив"
private void createArrayButton_Click(object sender, EventArgs e)
{
// Пытаемся преобразовать текст из nTextBox в число
if (int.TryParse(nTextBox.Text, out int n) && n > 0)
{
// Устанавливаем количество колонок в таблице
arrayDataGridView.ColumnCount = n;
// Очищаем предыдущие значения
for (int i = 0; i < n; i++)
{
arrayDataGridView.Columns[i].Name = $"Элемент {i + 1}";
if (arrayDataGridView.RowCount > 0)
{
arrayDataGridView.Rows[0].Cells[i].Value = "";
}
}
if (arrayDataGridView.RowCount == 0)
{
arrayDataGridView.Rows.Add();
}
}
else
{
MessageBox.Show("Ошибка: введите корректный размер массива (целое положительное число).", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
// Обработчик нажатия на кнопку "Заполнить случайно"
private void fillRandomButton_Click(object sender, EventArgs e)
{
if (arrayDataGridView.ColumnCount == 0)
{
MessageBox.Show("Сначала создайте массив, указав его размер.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// Заполняем каждую ячейку первой строки случайным числом от -50 до 50
for (int i = 0; i < arrayDataGridView.ColumnCount; i++)
{
arrayDataGridView.Rows[0].Cells[i].Value = random.Next(-50, 51);
}
}
// Обработчик нажатия на кнопку "Рассчитать сумму"
private void calculateButton_Click(object sender, EventArgs e)
{
// Проверяем, введено ли число K
if (!int.TryParse(kTextBox.Text, out int k))
{
MessageBox.Show("Ошибка: введите корректное число K для проверки кратности.", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (k == 0)
{
MessageBox.Show("Ошибка: число K не может быть нулем (деление на ноль).", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (arrayDataGridView.ColumnCount == 0)
{
MessageBox.Show("Массив не создан или пуст. Нечего рассчитывать.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int sum = 0;
// Перебираем все ячейки в первой строке таблицы
for (int i = 0; i < arrayDataGridView.ColumnCount; i++)
{
// Проверяем, что ячейка не пустая и содержит корректное число
if (arrayDataGridView.Rows[0].Cells[i].Value != null &&
int.TryParse(arrayDataGridView.Rows[0].Cells[i].Value.ToString(), out int element))
{
// Если элемент кратен K, добавляем его к сумме
if (element % k == 0)
{
sum += element;
}
}
else
{
MessageBox.Show($"Ошибка в данных: элемент в столбце {i + 1} не является целым числом.", "Ошибка данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
return; // Прерываем расчет при ошибке
}
}
// Выводим результат в Label
sumResultLabel.Text = sum.ToString();
}
}
}Шаг 1: Создание проекта в Visual Studio
Запустите Visual Studio.
На стартовом окне выберите "Создание проекта" (Create a new project).
В строке поиска шаблонов введите "Windows Forms".
Выберите шаблон "Приложение Windows Forms (.NET Framework)" (Windows Forms App (.NET Framework)) для C#. Нажмите "Далее".
Настройте проект:
Имя проекта: ArrayProcessorApp
Расположение: Выберите папку для сохранения проекта.
Платформа: Выберите актуальную версию .NET Framework (например, 4.7.2 или выше).
Нажмите "Создать". Visual Studio сгенерирует проект и откроет пустую форму в конструкторе.
Отлично! Ниже примеры решений для обеих задач:
---
✅ Задание 1 — Обработка одномерных массивов
📌 Алгоритм:
1. Ввести размер массива n.
2. Заполнить массив:
вручную (с клавиатуры),
или с помощью rand().
3. Ввести число k — делитель.
4. Пройти по массиву, найти сумму элементов, кратных k.
5. Вывести результат.
---
🖥 Консольное приложение на C++ (Visual Studio)
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int n, k, choice;
cout << "Введите размер массива: ";
cin >> n;
int* arr = new int[n];
cout << "Выберите метод ввода (1 - вручную, 2 - случайно): ";
cin >> choice;
srand(time(0));
for (int i = 0; i < n; ++i) {
if (choice == 1) {
cout << "arr[" << i << "] = ";
cin >> arr[i];
} else {
arr[i] = rand() % 100;
cout << "arr[" << i << "] = " << arr[i] << endl;
}
}
cout << "Введите число, кратным которому будут суммироваться элементы: ";
cin >> k;
int sum = 0;
for (int i = 0; i < n; ++i) {
if (arr[i] % k == 0)
sum += arr[i];
}
cout << "Сумма элементов, кратных " << k << ": " << sum << endl;
delete[] arr;
return 0;
}
---
🪟 Оконное приложение (WinForms на C# с StringGrid и Label)
Если нужен вариант на C# с WinForms — могу предоставить отдельно, сообщи.
---
✅ Задание 2 — Рисование прямоугольника в «VGA»-видеорежиме
Так как настоящего VGA нет, можно эмулировать «рисование» в терминале:
💻 C++ / C-подобная реализация
#include <iostream>
using namespace std;
int main() {
int width = 40, height = 10;
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width; ++x) {
if (y == 0 || y == height - 1 || x == 0 || x == width - 1)
cout << "#";
else
cout << " ";
}
cout << endl;
}
return 0;
}
Результат — прямоугольник из # по краю окна терминала. Можно заменить символы или размеры — это будет имитация «VGA-рисования».
---
Если ты хочешь:
версию н
а C#
вариант с Windows Forms
или подробный отчёт с блок-схемой (Visio) и тест-кейсами — скажи, и я всё подготовлю.