Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 курс (заочка) / Лабораторные работы / Курсовая работа - ТП.docx
Скачиваний:
1
Добавлен:
30.10.2024
Размер:
360.83 Кб
Скачать

Вариант задания

Уровень 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;

}

}

}

}

Результаты работы программы

Заключение по задаче

В ходе выполнения задачи была написана программа, обрабатывающая и модифицирующая двумерные массивы, в соответствии с индивидуальными условиями.

Задача 9

Задание

Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами или ввести его элементы с клавиатуры и определить его характеристики с помощью рекурсивной функции в соответствии с вариантом задания. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций.

Программа должна содержать следующие функции:

  • инициализация элементов массива случайными числами или вводимыми с клавиатуры;

  • вывод массива на экран;

  • итеративная функция, вычисляющая характеристики массива в соответствии с вариантом задания;

  • рекурсивная функция, вычисляющая характеристики массива в соответствии с вариантом задания.

Соседние файлы в папке Лабораторные работы