Как сделать массив в столбик

Обновлено: 04.07.2024


Здесь могла бы быть ваша реклама


Помог: 3 раз(а)

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос - где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.


На последок как оно происходит на форумах

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 - 10:21:12

Прочитайте улучшенную версию этого урока "Двумерные массивы".

  • Ещё более доступное объяснение
  • Дополнительные материалы
  • 10 задач на программирование с автоматической проверкой решения

Что такое двумерный массив?

Двумерный массив это прямоугольная таблица с определенным количеством строк и столбиков. Каждая строка и каждый столбик имеют свой порядковый номер. На рисунке изображен двумерный массив, который имеет 6 строк и 7 столбцов.

Сразу же покажу, как объявить двумерный массив. В сущности, ничего нового. Синтаксис прост и очень похож на объявление обычного массива и любой другой переменной. Сначала указываем тип данных, затем имя массива, а после в квадратных скобках его размерность, то есть количество строк и количество столбиков. На рисунке ниже мы объявили двумерный массив размерностью 6 на 7.

Важно помнить, что первая строка и первый столбик имеют индекс нуль, поэтому последняя строка будет иметь номер не шесть, а пять, и аналогично последний столбец будет иметь номер шесть, а не семь.

Кстати, нельзя путать местами строки и столбики. Сначала записывается количество строк, потом количество столбиков.

Как работать с двумерным массивом?

Как и другие переменные, двумерные массивы мы можем инициализировать при их объявлении. Для этого нам нужно указать все элементы массива. Делается это следующим образом.

Записанный выше код создает массив с двумя строчками и четырьмя столбцами, и присваивает каждому элементу определенные значения. Получится вот такой массив.


Рис.3. Двумерный массив инициализированный при объявлении

Кроме того, мы можем задать только некоторые элементы массива, тогда остальные будут заполнены нулями. Например:


Рис.4. Двумерный массив, инициализированный не полностью.

Понятно, что если у нас будет большой массив, то мы замучаемся так все записывать. Да и редко такое бывает нужно.

Как работать с отдельным элементом массива.

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

Обращение к конкретному элементу происходит так же, как и в одномерном массиве. Сначала пишут имя массива, а затем, в квадратных скобках номер строки и номер столбика. Опять напоминаю, сначала идет номер строки, а потом номер столбика. Не путайте это. А так же, помните, что нумерация идет не с единицы, а с нуля. Это очень частая ошибка, всегда следите за этим.

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

Данная программа, выводит последовательно все элементы массива. Результат её работы, представлен на следующем рисунке.

Сначала переменной i присваивается значение нуль, проверяется условие 0 j присваивается значение 0 и проверяется условие 0 arr [ i ][ j ]. Так как на данном шаге у нас i =0 j =0, то выводится значение элемент из нулевой строки и нулевого столбика. В нашем примере это элемент число 1. Тело второго цикла закончилось, происходит увеличение j на единицу j =1.

Зачем нужны двумерные массивы?

Двумерные массивы используются для хранения данных одинакового типа и одинаковой структуры. Приведу пример. В одном из практических заданий к прошлым урокам, необходимо было составить программу, которая хранила оценки ученика по разным предметам. Для их хранения в памяти компьютера мы использовали несколько одномерных массивов. Это было не очень удобно. Для этих же целей, мы могли использовать двумерный массив. Например, нам нужно хранить оценки ученика по русскому, математике, физике и информатике, за целый месяц. Для этого мы создадим массив с 4 строками и 30 столбиками (или наоборот, 30 строк и 4 столбика, кому как больше нравится), и в каждую отдельную строчку будем записывать оценки по какому либо предмету. Это гораздо удобнее и практичнее.

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

Но это еще не всё. Представьте, что вы хотите добавить один предмет и снова посчитать среднюю арифметическую оценку для всех предметов. Сколько мороки будет, если вы храните оценки в одномерных массивах. Вам придется кучу изменений вносить, дописывать еще один цикл (а вдруг добавилось 7 предметов?). Потом еще среднее искать между этими цифрами.

Другое дело если вы храните оценки в двумерном массиве. Всего лишь изменить условие в одном из циклов. Поменять одно число, представляете как удобно?

Напишите в комментариях пожалуйста, понятен ли вам этот пример, или лучше его подробно расписать?

Если этот материал кажется вам полезным, расскажите о нем друзьям используя кнопки основных социальных сетей, расположенные ниже.

Напишите программу, работающую следующим образом. Создайте массив 10 на 10. Заполните его нулями. Считайте два произвольных целых числа с клавиатуры, меньших либо равных 10. Первое число количество строк, второе - количество столбцов. Напишите функцию, которая заполняет массив по спирали и выводит его на экран. Т.е. если бы мы ввели 6 и 7, то получили бы следующий массив.


При этом табличка приблизительно должна быть выровнена по центру окна вывода.

Готовое решение пользователя с ником "Дмитрий". За проявленное упорство и трудолюбие, и как первый выполнивший правильно практическое задание, Дмитрий награждается печенькой:

У вас, скорее всего, возникает IndexOutOfRangeException - j+2 выходит за размер массива. Если вам нужно показывать по одному символу, то вторым аргументом Substring должен быть 1: wordd.Substring(j, 1) .

Можно ещё вот так с помощью LINQ:

Только пробел между словами не показывается.

SuccessVM

Вариант 1: преобразовать результат выборки в List у которого можно вызвать метод ForEach, основной минус в перерасходе доп. ресурсов.

Вариант 2: не создаём List и не расходуем лишние ресурсы, а выполняем запрос сразу в цикле foreach.

Для наглядности оба варианта содержат несколько операторов from, компилятор при этом вызывает SelectMany, который выполняет вложенные циклы.

Вариант от DarkByte2015 с применением SelectMany, возможно, кому-то покажется более элегантным.

Что такое массивы и матрицы. Как их объявить и использовать в языке программирования Pascal. Открытые массивы.

Комментарии

Сколько значений чётных в массиве и сколько нечётных

Заполнить массив случайными числами из промежутка 1-100 и определить в массиве, сколько значений чётных и сколько нечётных.

Решение

Массивы в Pascal

Ответ на Решение от Гость (не проверено)

В каждой строке заменить все восклицательные знаки точками.

Решение

Задача

Школьников отправили на распределение яблок из кучи. Количество яблок в куче не известно. Распределяют яблоки на 4 корзины. 1(Красные), 2(Зеленые), 3(Желтые), 4(Испорченные). Требуется написать программу для распределения и подсчета яблок в каждой корзине и куче. Количество яблок в куче должно быть рандомизировано. Если цифра один, то в первую корзину ,если 2 то во вторую ,а если 3 ,то в 3 ,ну а если 4 то в 4 (когда выпадает ноль то все конец).

Читайте также: