Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 79 стр.

UptoLike

79
Задача 2. Дана прямоугольная матрица. Все максимальные элементы
матрицы заменить на 0.
Перебирая все элементы матрицы, находим максимальный элемент
(аналогично поиску максимума в одномерном массиве). Далее еще раз
обходим всю матрицу и заменяем элемент нулем при его совпадении с
максимумом.
Блок-схема представлена на Рис.6.6.
Код программы для задачи 2.
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int m, n;
Console.Write("Введите количество строк матрицы m:");
int.TryParse(Console.ReadLine(), out m);
Console.Write("Введите количество столбцов матрицы n:");
int.TryParse(Console.ReadLine(), out n);
if (m <= 0 || n <= 0)
{
Console.WriteLine("Введите положительный размер");
return;
}
int[,] a = new int[m, n];
if (a == null)
{
Console.WriteLine("Запрошено большое количество памяти.
Попробуйте ввести меньший размер.");
return;
}
Console.WriteLine("Введите элементы матрицы:");
for (int x = 0; x < m; x++)
for (int y = 0; y < n; y++)
int.TryParse(Console.ReadLine(), out a[x, y]);
int max = a[0, 0];
for (int x = 0; x < m; x++)
for (int y = 0; y < n; y++)
if (a[x, y] > max)
max = a[x, y];
for (int x = 0; x < m; x++)
for (int y = 0; y < n; y++)
if (a[x, y] == max)
a[x, y] = 0;
Console.WriteLine("Полученная матрица:");
for (int x = 0; x < m; x++)
{
for (int y = 0; y < n; y++)
Console.Write("{0}\t", a[x, y]);
Console.WriteLine();
    Задача 2. Дана прямоугольная матрица. Все максимальные элементы
матрицы заменить на 0.
    Перебирая все элементы матрицы, находим максимальный элемент
(аналогично поиску максимума в одномерном массиве). Далее еще раз
обходим всю матрицу и заменяем элемент нулем при его совпадении с
максимумом.
    Блок-схема представлена на Рис.6.6.
   Код программы для задачи 2.
    using System;

    namespace Examples
    {
        class Program1
        {
            static void Main(string[] args)
            {
                int m, n;
                Console.Write("Введите количество строк матрицы m:");
                int.TryParse(Console.ReadLine(), out m);
                Console.Write("Введите количество столбцов матрицы n:");
                int.TryParse(Console.ReadLine(), out n);
                if (m <= 0 || n <= 0)
                {
                    Console.WriteLine("Введите положительный размер");
                    return;
                }
                int[,] a = new int[m, n];
                if (a == null)
                {
                    Console.WriteLine("Запрошено большое количество памяти.
                                        Попробуйте ввести меньший размер.");
                    return;
                }
                Console.WriteLine("Введите элементы матрицы:");
                for (int x = 0; x < m; x++)
                    for (int y = 0; y < n; y++)
                        int.TryParse(Console.ReadLine(), out a[x, y]);
                int max = a[0, 0];
                for (int x = 0; x < m; x++)
                    for (int y = 0; y < n; y++)
                        if (a[x, y] > max)
                            max = a[x, y];
                for (int x = 0; x < m; x++)
                    for (int y = 0; y < n; y++)
                        if (a[x, y] == max)
                            a[x, y] = 0;
                Console.WriteLine("Полученная матрица:");
                for (int x = 0; x < m; x++)
                {
                    for (int y = 0; y < n; y++)
                        Console.Write("{0}\t", a[x, y]);
                    Console.WriteLine();

                                       79