
4 курс (заочка) / Лабораторные работы / ЛР8 (A) - ТП
.docxОрдена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»
Центр заочного обучения по программам бакалавриата
Кафедра «Математической кибернетики и информационных технологий»
Дисциплина: Технологии программирования
Лабораторная работа №8
Обработка и модификация двумерных массивов
Выполнил: Иванов И.И,, студент группы БСТ17XX Вариант №7
Проверил: Клешнин Н.Г.
Москва, 2021
Введение
В данной лабораторной работе мы изучаем создание программы, позволяющей произвести проверку попадания точки в область на плоскости. Необходимо написать программу, которая будет удовлетворять заданным условиям, указанным в варианте задания.
Задание
Требуется определить двумерный массив a целых чисел (например, размера 5×7), заполнить его случайными числами или ввести его элементы с клавиатуры и в одномерный массив b записать характеристики двумерного массива a в соответствии с вариантом задания.
Программа должна содержать следующие функции:
инициализация элементов двумерного массива случайными чис-
лами или вводимыми с клавиатуры;
заполнение одномерного массива в соответствии с заданием;
вывод одномерного массива на экран;
вывод двумерного массива на экран.
Вариант задания
Уровень A
A7. Найти суммы положительных элементов, не делящихся на 3, каждого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
Код программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab8
{
class Program
{
static void Main(string[] args)
{
const int A = -100;
const int B = 100;
Console.Write("Введите количество строк: ");
int rows = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите количество столбцов: ");
int cols = Convert.ToInt32(Console.ReadLine());
int[,] matr = new int[rows, cols];
Console.WriteLine("Введите: \t1 - для заполнения матрицы случайными числами \n\t\t2 - для ручного заполнения матрицы");
int choice = 0;
do
{
choice = Convert.ToInt32(Console.ReadLine());
if (choice == 1)
randMatrix(matr, A, B);
else
{
if (choice == 2)
inputMatrix(matr);
else
choice = 0;
}
}
while (choice == 0);
showMatrix(matr);
int[] arr = new int[cols];
indTask(matr, arr);
showArray(arr);
Console.ReadKey();
}
static void randMatrix(int[,] matr, int A, int B)
{
Random r = new Random();
for (int i = 0; i < matr.GetLength(0); i++)
{
for (int j = 0; j < matr.GetLength(1); j++)
{
matr[i, j] = r.Next(A, B);
}
}
}
static void inputMatrix(int[,] matr)
{
for (int i = 0; i < matr.GetLength(0); i++)
{
for (int j = 0; j < matr.GetLength(1); j++)
{
Console.Write($"Введите [{i},{j}] элемент массива: ");
matr[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
}
static void showMatrix(int[,] matr)
{
Console.WriteLine("Исходный двумерный массив (матрица):");
for (int i = 0; i < matr.GetLength(0); i++)
{
for (int j = 0; j < matr.GetLength(1); j++)
{
Console.Write($"{matr[i, j]}\t");
}
Console.WriteLine("");
}
Console.WriteLine("");
}
static void showArray(int[] arr)
{
Console.WriteLine("Получившийся массив:");
for (int i = 0; i < arr.Length; i++)
Console.Write($"{arr[i]}\t");
Console.WriteLine();
}
static void indTask(int[,] matr, int[] arr)
{
for (int j = 0; j < matr.GetLength(1); j++)
{
int summ = 0;
for (int i = 0; i < matr.GetLength(0); i++)
{
if (matr[i,j] > 0 && matr[i,j] % 3 > 0)
{
summ += matr[i, j];
}
}
arr[j] += summ;
}
}
}
}
Результаты работы программы
Заключение
В ходе выполнения лабораторной работы была написана программа, содержащая циклический вычислительный процесс, с помощью которой мы смогли выполнить поставленную перед нами задачу.