D8. Изменение исходного двухмерного массива

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Внимание! При решении задач обязательно учтите Рекомендации по оформлению решений задач на двумерные массивы

Решены задачи нет. Не решены: пока все.

Задачи

D8.1. Дан двумерный массив. Поменять местами элементы:
а) расположенные в левом верхнем и левом нижнем углах массива;
б) расположенные в правом нижнем и правом верхнем углах массива.
D8.2. Дан двумерный массив. Поменять местами первый максимальный и последний минимальный элементы массива. Принять, что массив просматривается построчно сверху вниз, а в каждой строке — слева направо.
D8.3. Дан двумерный массив.
а) Заменить значения всех элементов второй строки массива числом 5.
б) Заменить значения всех элементов пятого столбца массива числом 10.
D8.4. Дан двумерный массив.
а) Заменить значения всех элементов третьего столбца массива числом –12.
б) Заменить значения всех элементов четвертой строки массива числом 4.
D8.5. Составить программу:
а) которая проводит замену всех элементов некоторой строки двумерного массива заданным числом;
б) которая проводит замену всех элементов некоторого столбца двумерного массива заданным числом.
D8.6. Составить программу:
а) которая изменяет значения всех элементов некоторой строки двумерного массива числами заданной последовательности;
б) которая изменяет значения всех элементов некоторого столбца двумерного массива числами заданной последовательности.
В обеих задачах числа последовательности должны вводиться с клавиатуры и в дополнительный одномерный массив не должны записываться.
D8.7. К элементам k1-й строки двумерного массива прибавить элементы k2-й строки.
D8.8. К элементам s1-го столбца двумерного массива прибавить элементы s2-го столбца.
D8.9. Заменить все элементы k-й строки и s-го столбца двумерного массива противоположными по знаку (элемент, стоящий на пересечении, не изменять).
D8.10. В каждой строке двумерного массива поменять местами первый элемент и любой из максимальных.
D8.11. В каждом столбце двумерного массива поменять местами последний элемент и любой из минимальных.
D8.12. В каждой строке двумерного массива поменять местами первый элемент и любой из максимальных.
D8.13. В каждом столбце двумерного массива поменять местами последний элемент и любой из минимальных.
D8.14. Дан двумерный массив. Составить программу:
а) которая переставляет две любые строки массива;
б) которая переставляет два любых столбца массива.
Обе задачи решить двумя способами:
1) с использованием дополнительного одномерного массива;
2) без использования дополнительного одномерного массива.
D8.15. Дан двумерный массив целых чисел.
а) Ко всем четным элементам массива прибавить первый элемент соответствующей строки.
б) Все элементы массива, оканчивающиеся на 2, умножить на последний элемент соответствующего столбца.
в) Ко всем положительным элементам массива прибавить последний элемент соответствующей строки, а к остальным — первый элемент такой же строки.
г) Все элементы массива, сумма индексов которых кратна пяти, заменить нулями.
D8.16. Дан двумерный массив целых чисел.
а) Из всех нечетных элементов массива вычесть последний элемент соответствующего столбца.
б) Все отрицательные элементы массива умножить на первый элемент соответствующей строки.
в) Ко всем четным элементам массива прибавить последний элемент соответствующей строки, а к остальным — первый элемент соответствующего столбца.
г) Все элементы массива, сумма индексов которых четна, заменить числом –1.
D8.17. Дан двумерный массив целых чисел.
а) Первый нечетный элемент каждой строки удвоить (предполагается, что в каждой строке есть нечетный элемент).
б) Последний нулевой элемент каждого столбца заменить числом 100 (предполагается, что в каждом столбце есть нулевой элемент).
D8.18. Дан двумерный массив целых чисел.
а) Последний четный элемент каждого столбца уменьшить на 1 (предполагается, что в каждом столбце есть четный элемент).
б) Первый нулевой элемент каждой строки заменить числом –1 (предполагается, что в каждой строке есть нулевой элемент).
D8.19. Дан двумерный массив целых чисел.
а) В каждой его строке заменить любой минимальный элемент максимальным.
б) В каждом его столбце сменить знак любого максимального по модулю элемента на противоположный.
D8.20. В каждой строке двумерного массива поменять местами первый нулевой элемент и последний отрицательный. Если таких элементов нет, то должно быть выведено соответствующее сообщение.
D8.21. В каждом столбце двумерного массива поменять местами первый отрицательный элемент и последний нулевой. Если таких элементов нет, то должно быть выведено соответствующее сообщение.
D8.22. Дан двумерный массив.
а) К элементам четных строк прибавить элемент первой строки соответствующего столбца.
б) Из элементов нечетных столбцов вычесть элемент последнего столбца соответствующей строки.
D8.23. Дан двумерный массив.
а) Поменять местами первую и третью строки.
б) Поменять местами второй и последний столбцы.
D8.24. Дан двумерный массив.
а) Поменять местами первый и предпоследний столбцы.
б) Поменять местами вторую и последнюю строки.
D8.25. Дан двумерный массив. Составить программу:
а) которая меняет местами две любые строки;
б) которая меняет местами два любых столбца.
D8.26. Дан двумерный массив размером n n . Составить программу:
а) которая меняет местами все элементы, симметричные относительно главной диагонали;
б) которая меняет местами все элементы, симметричные относительно побочной диагонали.
D8.27. Дан двумерный массив из четного числа строк. Строки верхней половины массива поменять местами со строками нижней половины.
D8.28. Дан двумерный массив из четного числа столбцов. Столбцы левой половины массива поменять местами со столбцами правой половины.
D8.29. Дан двумерный массив из четного числа строк. Поменять местами первую строку со второй, третью — с четвертой и т. д.
D8.30. Дан двумерный массив из четного числа столбцов. Поменять местами первый столбец со вторым, третий — с четвертым и т. д.
D8.31. Дан двумерный массив из четного числа строк. Поменять местами его строки следующим способом: первую строку поменять с последней, вторую — с предпоследней и т. д.
D8.32. Дан двумерный массив из четного числа столбцов. Поменять местами его столбцы следующим способом: первый столбец поменять с последним, второй — с предпоследним и т. д.
D8.33. Дан двумерный массив из пятнадцати строк и восьми столбцов. Переставить первые три и последние три строки, сохранив порядок их следования.
D8.34. Дан двумерный массив из пяти строк и двадцати столбцов. Переставить первые три и последние три столбца, сохранив порядок их следования.
D8.35. Дан двумерный массив из двенадцати строк и восьми столбцов. Переставить в обратном порядке строки, расположенные между второй и десятой (т. е. с третьей по девятую).
D8.36. Дан двумерный массив из пяти строк и шестнадцати столбцов. Переставить в обратном порядке столбцы, расположенные между третьим и одиннадцатым (т. е. с четвертого по десятый).
D8.37. Дан двумерный массив из пятнадцати строк и восьми столбцов. Переставить в обратном порядке строки, расположенные между k-й и s-й строками (т. е. с (k + 1)-й по (s – 1)-ю). Значения k и s вводятся с клавиатуры, k меньше s.
D8.38. Дан двумерный массив из пяти строк и двадцати столбцов. Переставить в обратном порядке столбцы, расположенные между k-м и s-м столбцами (т. е. с (k + 1)-го по (s – 1)-й). Значения k и s вводятся с клавиатуры, k меньшеs.
D8.39. Поменять местами первую строку и строку, в которой находится первый нулевой элемент. Принять, что нулевые элементы в массиве есть и что массив просматривается слева направо и сверху вниз.
D8.40. Поменять местами второй столбец и столбец, в котором находится последний элемент, больший 100. Принять, что элементы, большие 100, в массиве есть и что массив просматривается слева направо и сверху вниз.
Внимание!
В задачах D8.41 —D8.49 под удалением строки двумерного массива следует понимать:
исключение этой строки из массива путем смещения всех следующих за ней строк на одну вверх;
присваивание всем элементам последней строки значения 0,
а под удалением столбца:
исключение этого столбца из массива путем смещения всех следующих за ним столбцов на один влево;
присваивание всем элементам последнего столбца значения 0.

D8.41. В двумерном массиве хранятся результаты (время в минутах), показанные
каждым из 12 автогонщиков на каждом из 10 этапов соревнований «Формула-1» (в первой строке — результаты первого гонщика, во второй — второго и т. д.). После десятого этапа гонщик с порядковым номером 4 выбыл из соревнований. Изменить массив так, чтобы в нем не было результатов выбывшего гонщика.
D8.42. В двумерном массиве хранятся результаты (время в минутах), показанные каждым из 16 велогонщиков на каждом из 12 этапов соревнований (в первом столбце — результаты первого этапа, во втором — второго и т. д.). Судейской коллегией результаты пятого этапа были признаны недействительными. Изменить массив так, чтобы в нем не было результатов этого этапа.
D8.43. Дан двумерный массив.
а) Удалить из него k-ю строку.
б) Удалить из него s-й столбец.
D8.44. Дан двумерный массив.
а) Удалить из него первую из строк, сумма элементов которых не превышает некоторое заданное число.
б) Удалить из него первый из столбцов, количество нулей в котором равно некоторому заданному числу.
D8.45. Дан двумерный массив. Удалить из него:
а) две строки: одна из которых расположена перед s1-й строкой, а вторая — перед s2-й;
б) два столбца: один из которых расположен после k1-го столбца, а второй — перед k2-м столбцом.
D8.46. Дан двумерный массив. Удалить из него:
а) все строки с n1-й по n2-ю (n1 n2);
б) все столбцы с s1-го по s2-й (s1 s2).
D8.47. Дан двумерный массив. Удалить из него:
а) все строки с четными номерами. На сколько уменьшится количество строк?
в) все столбцы, номер которых кратен трем. На сколько уменьшится количество столбцов?
D8.48. Дан двумерный массив целых чисел. Удалить из него:
а) все строки, количество нечетных элементов которых равно заданному числу;
б) удалить все столбцы, сумма элементов которых больше заданного числа.
D8.49. Дан двумерный массив. Удалить строку и столбец, на пересечении которых расположен наименьший по модулю элемент массива.

В задачах D8.49—D8.59
под вставкой в двумерный массив заданной строки после строки с номером k следует понимать:
— увеличение числа строк массива на 1;
— смещение всех строк после k-й на одну вниз;
— присваивание заданных значений элементам k-й строки,
а под вставкой заданного столбца после столбца с номером s:
— увеличение числа столбцов массива на 1;
— смещение всех столбцов после s-го на один вправо;
— присваивание заданных значений элементам s-го столбца.

D8.50. Дан двумерный массив. Вставить в него:
а) строку из чисел 100 после строки с номером s;
б) столбец из нулей перед столбцом с номером k.
D8.51. Дан двумерный массив. Вставить в него:
а) строку из заданной последовательности чисел перед строкой с номером s;
б) столбец из заданной последовательности чисел после столбца с номером k.
В обеих задачах числа последовательности вводятся с клавиатуры и в дополнительный массив записываться не должны.
D8.52. Дан двумерный массив. Вставить в него:
а) строку из нулей после первой из строк, количество нулей в которой равно заданному числу;
б) столбец из чисел 10 после первого из столбцов, у которых сумма элементов не превышает заданное число.
D8.53. Дан двумерный массив. Вставить в него:
а) две строки из нулей: одну перед s1-й строкой, вторую — перед s2-й строкой;
б) два столбца из чисел 1: один после k1-го столбца, второй — перед k1-м столбцом.
D8.54. Дан двумерный массив. Вставить в него:
а) две строки с заданными значениями элементов: первую после строки с номером s, вторую — перед ней;
б) два столбца с заданными значениями элементов: первый перед столбцом с номером k, второй — после него.
В обеих задачах значения элементов вставляемых строк вводятся с клавиатуры и в дополнительный массив записываться не должны.
D8.55. Дан двумерный массив из пятнадцати строк и десяти столбцов. Вставить в него строку из нулей после всех строк, номер которых кратен трем.
D8.56. Дан двумерный массив из пяти строк и двадцати столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов.
D8.57. Дан двумерный массив целых чисел. Вставить в него:
а) строку из чисел 100 после каждой строки, сумма элементов которой больше заданного числа;
б) столбец из чисел –1 перед каждым столбцом, количество четных элементов которого больше заданного числа.
D8.58. Дан двумерный массив целых чисел. Вставить в него:
а) строку из нулей перед всеми строками, в которых количество положительных элементов равно количеству отрицательных;
б) столбец из чисел 10 перед всеми столбцами, в которых количество положительных элементов больше количества отрицательных.
D8.59. В двумерный массив записали годовые оценки по десяти предметам за 9-й класс каждого из 25 учеников класса (в первой строке — оценки первого ученика, во второй — второго и т. д.). В начале нового учебного года в класс пришел новый ученик. Изменить массив так, чтобы в нем были оценки за 9-й класс и нового ученика, учитывая, что этот ученик в списке должен быть на s-м месте. Оценки нового ученика вводятся с клавиатуры и в дополнительный массив записываться не должны.

D8.60. В двумерный массив должны были записать оценки каждого из 23 учеников класса по двенадцати предметам (в первом столбце — по первому предмету, во второй — по второму и т. д.), но по ошибке забыли вписать в массив оценки еще по одному предмету, который должен находиться в перечне в s-м столбце. Изменить массив так, чтобы он был заполнен надлежащим образом. Оценки по новому предмету вводятся с клавиатуры и в дополнительный массив записываться не должны.
D8.61. Дан двумерный массив.
а) Переставить первую строку на место последней. При этом вторую, третью, …, последнюю строки поднять.
б) Переставить первый столбец на место последнего. При этом второй, третий, …, последний столбцы сместить влево.
в) Переставить s-ю строку на место k-й (s < k). При этом (s + 1)-ю, (s + 2)-ю, ..., k-ю строки поднять. г) Переставить a-й столбец на место b-го (a < b). При этом (a + 1)-й, (a + 2)-й, ..., b-й столбцы сместить влево. D8.62. Дан двумерный массив.
а) Переставить последнюю строку на место первой. При этом первую, вторую, …, предпоследнюю строки опустить.
б) Переставить последний столбец на место первого. При этом первый, второй, …, предпоследний столбцы сместить вправо.
в) Переставить s-ю строку на место k-й (s > k). При этом k-ю, (k + 1)-ю, …, (s – 1)-ю строки опустить.
г) Переставить a-й столбец на место b-го (a > b). При этом b-й, (b + 1)-й, …, (a – 1)-й столбцы сместить вправо.
D8.63. Дан двумерный массив из двадцати строк и трех столбцов. Перенести первые k строк в конец массива, соблюдая порядок их следования.
D8.64. Дан двумерный массив из пяти строк и двадцати столбцов. Перенести первые s столбцов в конец массива, соблюдая порядок их следования.
D8.65. Дан двумерный массив из двенадцати строк и трех столбцов. Переставить строки так, чтобы они располагались следующим способом: первая, двенадцатая, вторая, одиннадцатая, …, пятая, восьмая, шестая, седьмая.
D8.66. Дан двумерный массив из трех строк и восемнадцати строк столбцов. Переставить столбцы так, чтобы они располагались следующим способом: первый, восемнадцатый, второй, семнадцатый, …, восьмой, одиннадцатый, девятый, десятый.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
4 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

D8.9. Заменить все элементы k-й строки и s-го столбца двумерного массива противоположными по знаку (элемент, стоящий на пересечении, не изменять).
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

namespace Learning_Csharp
{
  interface IResultate
  {
    void Result();
  }

  struct Data
  {
    public int[,] array;
    public static readonly string slash = string.Concat(Enumerable.Repeat(«-«, 100));

    public void PrintArray<T>(T[,] array)
    {
      Console.WriteLine(«Array: «);
      for (int i = 0; i < array.GetLength(0); i++)
      {
        for (int j = 0; j < array.GetLength(1); j++)
        {
          Console.Write(array[i,j] + » «);
        }
        Console.WriteLine();
      }
    }
  }

  abstract class Array : IResultate
  {
    private const int minValue = 10;

    private const int maxValue = 100;

    protected Data data;
    protected readonly Random rand = new Random();

    public Array(int[,] array) => data = new Data() { array = array };
     
    protected virtual void CreateArray(int[,] array)
    {
      for (int i = 0; i < array.GetLength(0); i++)
      {
        for (int j = 0; j < array.GetLength(1); j++) array[i, j] = rand.Next(minValue, maxValue);
      }
    }

    public abstract void Result();
  }

  class Solution : Array
  {
    private int userLine;
    private int userColumn;

    private bool condition { get; set; }
    private bool helperCondition { get; set; }
     
    public Solution(int[,] array, int userLine, int userColumn) : base(array)
    {
      this.userLine = userLine — 1;
      this.userColumn = userColumn — 1;

      CreateArray(data.array);
    }

    private void AnswerForMission(in int[,] array)
    {
      for (int i = 0; i < array.GetLength(0); i++)
      {
        for (int j = 0; j < array.GetLength(1); j++)
        {
          condition = i == userLine;
          if (condition)
          {
            helperCondition = j != userColumn;
            if (helperCondition) array[i, j] = -(array[i, j]);
          }
        }
      }

      condition = false;
      helperCondition = false;

      for (int i = 0; i < array.GetLength(0); i++)
      {
        for (int j = 0; j < array.GetLength(1); j++)
        {
          condition = j == userColumn;

          if (condition)
          {
            helperCondition = i != userLine;
            if (helperCondition) array[i, j] = -(array[i, j]);
          }
        }
      }
    }

    public override void Result()
    {
      Console.WriteLine(«Before change:\n»);
      data.PrintArray(data.array);

      Console.WriteLine($»\n{Data.slash}\n»);

      Console.WriteLine(«After change:\n»);

      AnswerForMission(in data.array);

      data.PrintArray(data.array);
    }
  }

  class Program
  {
    static void Main(string[] args)
    {
      int[,] array = new int[7, 4];

      IResultate result = new Solution(array, 5, 2);

      result.Result();
    }
  }
}

using System;
namespace Less8_46
{
    class Array2D
    {
        int[,] array; int line; int coloumn;
        public Array2D(int[,] array, int line, int coloumn)
        {
            this.array = array;
            this.line = line;
            this.coloumn = coloumn;
        }
        public void GetArray()
        {
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    array[i, j] = new Random().Next(1, 5);
                    Console.Write(array[i, j] + "\t");
                }
                Console.WriteLine("\n");
            }
            Console.WriteLine();
            for (int i = 0; i < line; i++)
            {
                for (int j = 0; j < coloumn; j++)
                {
                    if (i == 3)
                        i++;
                    if (j == 2)
                        j++;


                    Console.Write(array[i, j] + "\t");
                }
                Console.WriteLine("\n");
            }
        }
    }
    class Program
    {
        static void Main()
        {
            int line = 5;
            int coloumn = 5;
            int[,] array = new int[line, coloumn];
            Array2D X = new (array, line, coloumn);
            X.GetArray();
        }
    }
}

спасибо за хороший сайт

Важно: Вы можете поддержать проект и автора.
4
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x