Top.Mail.Ru
Ответы

Парочка заданий

1)Необходимо:

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

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

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

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

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

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

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

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

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

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

По дате
По рейтингу
Аватар пользователя
Ученик
8мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
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();
        }
    }
}

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

Шаг 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 сгенерирует проект и откроет пустую форму в конструкторе.

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

Отлично! Ниже примеры решений для обеих задач:

---

✅ Задание 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) и тест-кейсами — скажи, и я всё подготовлю.



Видео по теме