Информатика — Задание 19. Решения заданий с сайта ege.yandex.ru
19.1 19.2 19.3 19.4 19.5
19.1 (ege.yandex,ru-1) В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен фрагмент программы, обрабатывающей данный массив:
s:=0z:=A[n]
нц для i от 0 до n если A[i]> z то s:=s+1 все
кц
Чему будет равно значение переменной s после выполнения данной программы, при любых значениях элементов массива?
1) Минимальному элементу в массиве A
2) Количеству элементов массива A, больших последнего элемента массива
3) Индексу последнего элемента массива А, который меньше A[0]
4) Количеству элементов массива A, меньших последнего элемента массиваH
Решение. При каждом прохождении цикла значение переменной s увеличивается на 1 при выполнении условия A[i]> z. Перед выполнением цикла значение переменной s равно 0. Поэтому после выполнения программы значение s равно количеству элементов массива A[i], для которых A[i] больше z. Перед выполнением цикла значение z установлено равным значению последнего элемента A[n] и после этого не менялось. Таким образом, после выполнения программы значение переменной s будет равно
Правильный ответ: 2
Примечание. В задаче на сайте ege.yandex.ru фрагмент программы записан на четырех языках программирования (Алгоритмический язык, Бейсик, Паскаль, Си). Т.к. решение одно и то же для всех языков мы для краткости приводим только текст на алгоритмическом языке.
19.2 (ege.yandex,ru-2) В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен фрагмент программы, обрабатывающей данный массив:
s:=nz:=A[0]
нц для i от 1 до n если A[i]= z то s:=s-1; все
кц
Чему будет равно значение переменной s после выполнения данной программы, при любых значениях элементов массива?
1) Количеству элементов массива A, больших первого элемента массива
2) Количеству элементов массива A, не превосходящих первого элемента массива
3) Количеству элементов массива A, не равных первому элементу массива
4) Количеству элементов массива A, равных первому элементу массива
Решение. При каждом прохождении цикла значение переменной s уменьшается на 1 при выполнении условия A[i]= z. Перед выполнением цикла значение переменной s равно длине массива n. Поэтому после выполнения программы значение s равно количеству элементов массива A[i], для которых A[i] НЕ равно z. Перед выполнением цикла значение z было установлено равным значению первого элемента A[0] и после этого не менялось. Таким образом, после выполнения программы значение переменной s будет равно количеству элементов массива A, не равных первому элементу массива
Правильный ответ: 3
Примечание. В задаче на сайте ege.yandex.ru фрагмент программы записан на четырех языках программирования (Алгоритмический язык, Бейсик, Паскаль, Си). Т.к. решение одно и то же для всех языков мы для краткости приводим только текст на алгоритмическом языке.
19.3 (ege.yandex,ru-3) В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен фрагмент программы, обрабатывающей данный массив:
s:=0z:=A[n]
нц для i от 0 до n-1 если A[i]<z то s:=s+ A[i] все
кц
Чему будет равно значение переменной s после выполнения данной программы, при любых значениях элементов массива?
1) Минимальному элементу в массиве A
2) Количеству элементов массива A, меньших последнего элемента массива
3) Сумме всех элементов массива А, меньших последнего элемента массива
4) Индексу первого элемента массива А, который меньше A[n]
Решение. При каждом прохождении цикла значение переменной s увеличивается на A[i] при выполнении условия A[i] < z. Перед выполнением цикла значение переменной s равно 0. Поэтому после выполнения программы значение s равно сумме элементов массива A[i], для которых A[i] меньше z. Перед выполнением цикла значение z установлено равным значению последнего элемента A[n] и после этого не менялось. Таким образом, после выполнения программы значение переменной s будет равно сумме всех элементов массива А, меньших последнего элемента массива
Правильный ответ: 3
Примечание. В задаче на сайте ege.yandex.ru фрагмент программы записан на четырех языках программирования (Алгоритмический язык, Бейсик, Паскаль, Си). Т.к. решение одно и то же для всех языков мы для краткости приводим только текст на алгоритмическом языке.
19.4 (ege.yandex,ru-4) В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен фрагмент программы, обрабатывающей данный массив:
s:=0z:=A[n]
нц для i от 0 до n-1 если A[i] > z то s:=s+ A[i] все
кц
Чему будет равно значение переменной s после выполнения данной программы, при любых значениях элементов массива?
1) Максимальному элементу в массиве A
2) Количеству элементов массива A, больших последнего элемента массива
3) Сумме всех элементов массива А, больших последнего элемента массива
4) Индексу последнего элемента массива А, который больше A[n]
Решение. При каждом прохождении цикла значение переменной s увеличивается на A[i] при выполнении условия A[i] > z. Перед выполнением цикла значение переменной s равно 0. Поэтому после выполнения программы значение s равно сумме элементов массива A[i], для которых A[i] больше z. Перед выполнением цикла значение z установлено равным значению последнего элемента A[n] и после этого не менялось. Таким образом, после выполнения программы значение переменной s будет равно сумме всех элементов массива А, больших последнего элемента массива
Правильный ответ: 3
Примечание. В задаче на сайте ege.yandex.ru фрагмент программы записан на четырех языках программирования (Алгоритмический язык, Бейсик, Паскаль, Си). Т.к. решение одно и то же для всех языков мы для краткости приводим только текст на алгоритмическом языке.
19.5. (ege.yandex,ru-5) В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен фрагмент программы, обрабатывающей данный массив:
s:=0z:=A[n]
нц для i от 0 до n-1 если A[i]= A[0] то s:=i все
кц
Чему будет равно значение переменной s после выполнения данной программы, при любых значениях элементов массива?
1) Минимальному элементу в массиве A
2) Количеству элементов массива A, равных первому элемента массива
3) Сумме всех элементов массива А, равных последнего элемента массива
4) Наибольшему такому индексу k, что элемент массива с индексом k равен первому элементу массива.
Решение. При каждом прохождении цикла значение переменной s устанавливается равной текущему индексу i при выполнении условия A[i]=A[0]. Перед выполнением цикла значение переменной s равно 0 (но это не важно). Поэтому после выполнения программы значение s равно последнему (наибольшему) значению индекса i при котором A[i]=A[0].
Правильный ответ: 4
Примечание. В задаче на сайте ege.yandex.ru фрагмент программы записан на четырех языках программирования (Алгоритмический язык, Бейсик, Паскаль, Си). Т.к. решение одно и то же для всех языков мы для краткости приводим только текст на алгоритмическом языке.
Задание №19. Работа с массивами
Автор материалов — Лада Борисовна Есакова.
Массив – это тип или структура данных в виде набора компонентов (элементов массива), расположенных в памяти непосредственно друг за другом. При этом доступ к отдельным элементам массива осуществляется с помощью индексации, то есть ссылки на массив с указанием номера (индекса) нужного элемента. Размерность массива — это количество индексов, необходимое для однозначного доступа к элементу массива
Одномерный массив представляет собой пронумерованную последовательность элементов одного и того же типа, имеющих общее имя. Для обращения к элементу массива используют имя и порядковый номер элемента в квадратных скобках: A[i].
Двумерный массив представляет собой матрицу элементов одного и того же типа в которой элемент, расположенный на пересечении i-й строки и j-го столбца, обозначается A[i,j].
Одномерные массивы
Пример 1.
В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, записанный на разных языках программирования, в котором значения элементов массива сначала задаются, а затем меняются.
Бейсик | Паскаль |
FOR i=0 TO 10 A(i)=i-1 NEXT i FOR i=1 TO 10 A(i-1)=A(i) NEXT A(10)=10 | for i:=0 to 10 do A[i]:=i-1; for i:=1 to 10 do A[i-1]:=A[i]; A[10]:=10; |
Си | Алгоритмический язык |
for (i = 0; i <= 10; i++) A[i]=i-1; for (i = 1; i <= 10; i++) A[i-1]=A[i]; A[10]=10; | нц для i от 0 до 10 A[i]:=i-1 кц нц A[i-1]:=A[i] кц A[10]:=10 |
Как изменятся элементы этого массива после выполнения фрагмента программы?
1) все элементы, кроме последнего, окажутся равны между собой
2) все элементы окажутся равны своим индексам
3) все элементы, кроме последнего, будут сдвинуты на один элемент вправо
4) все элементы, кроме последнего, уменьшатся на единицу
Решение:
Выполним последовательно все действия, описанные в программе.
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Значение | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 |
Второй цикл сдвигает элементы массива на один влево:
i=1, A[0]:=A[1] = 0
i=2, A[1]:=A[2] = 1,
…
i=10, A[9]:=A[10] = 9.
А затем десятому элементу присваивается значение 10: A[10]:=10:
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Значение | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Правильный ответ указан под номером 2.
Ответ: 2
Пример 2.
В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4, 7, 3, 8, 5, 0, 1, 2, 9, 6
соответственно, т.е. A[0] = 4, A[1] = 7 и т.д.
Решение:
Если i-й элемент массива меньше нулевого, то программа меняет их местами и увеличивает значение переменной c на 1.
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Значение | 7 | 3 | 8 | 5 | 0 | 1 | 2 | 9 | 6 |
Первый раз условие «i-й элемент массива меньше нулевого» выполнится при i=2. Массив примет вид:
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Значение | 3 | 7 | 4 | 8 | 5 | 0 | 1 | 2 | 9 | 6 |
А переменная с примет значение 1.
Второй раз условие «i-й элемент массива меньше нулевого» выполнится при i=5. Массив примет вид:
Индекс | 0 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
Значение | 0 | 7 | 4 | 8 | 5 | 3 | 1 | 2 | 9 | 6 |
А переменная с примет значение 2.
Больше условие «i-й элемент массива меньше нулевого» не выполнится ни разу. Значит, с = 2.
Ответ: 2
Пример 3.
В программе описаны одномерный целочисленный массив А с индексами от 0 до 10 и целочисленные переменные i и t. Ниже представлен фрагмент этой программы, записанный на разных языках программирования.
Бейсик | Паскаль |
FOR i = 0 TO 10 A(i) = i NEXT i t = A(10) FOR i = 9 TO 0 STEP -1 A(i+1) = A(i) NEXT i A(0) = t | A[i] := i; t := A[10] for i := 9 downto 0 do A[i+1] := A[i]; A[0] := t; |
Си | Алгоритмический язык |
for (i = 0; i <= 10; i++) A[i] = i; t = A[10]; for (i = 9; i >= 0; i—) A[i+1] = A[i]; A[0] = t; | нц для i от 0 до 10 A[i] := i кц t := A[10] A[i+1] := A[i] кц A[0] := t |
Чему окажутся равны элементы этого массива после выполнения фрагмента программы?
1) 10 0 0 0 0 0 0 0 0 0 0
2) 10 2 3 4 5 6 7 8 9 10 10
3) 10 10 10 10 10 10 10 10 10 10 10
4) 10 0 1 2 3 4 5 6 7 8 9
Решение:
Выполним последовательно все действия, описанные в программе. После первого цикла массив примет вид:
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Значение | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Второй цикл работает в обратном порядке, от 9 до 0:
i = 9: A[10] := A[9] = 9,
i = 8: A[9] := A[8] = 8,
…
i = 1: A[2] := A[1] = 1
i = 0: A[1] := A[0] = 0,
А затем нулевому элементу присваивается значение 10 (A[0] := 10):
Индекс | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Значение | 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Правильный ответ указан под номером 4.
Ответ: 4
Двумерные массивы
Пример 4.
Значения элементов двумерного массива A размером 5×5 задаются с помощью вложенного цикла в представленном фрагменте программы:
for i:=1 tо 5 do
for j:=1 tо 5 do begin
A[i,j] := i*j;
end;
Сколько элементов массива будут иметь значения больше 10?
Решение:
Выполним последовательно все действия, описанные в программе:
i=1 (Заполняем первую строку матрицы)
j=1, A[1,1]:= 1*1 =1
j=2, A[1,2]:= 1*2 =2
j=3, A[1,3]:= 1*3 =3
j=4, A[1,4]:= 1*4 =4
j=5, A[1,5]:= 1*5 =5
1 | 2 | 3 | 4 | 5 | |
1 | 1 | 2 | 3 | 4 | 5 |
2 | |||||
3 | |||||
4 | |||||
5 |
i=2 (Заполняем вторую строку матрицы)
j=1, A[2,1]:= 2*1 =2
j=2, A[2,2]:= 2*2 =4
j=3, A[2,3]:= 2*3 =6
j=4, A[2,4]:= 2*4 =8
j=5, A[2,5]:= 2*5 =10
1 | 2 | 3 | 4 | 5 | |
1 | 1 | 2 | 3 | 4 | 5 |
2 | 2 | 4 | 5 | 8 | 10 |
3 | |||||
4 | |||||
5 |
…. .
i=5 (Заполняем пятую строку матрицы)
j=1, A[5,1]:= 5*1 =5
j=2, A[5,2]:= 5*2 =10
j=3, A[5,3]:= 5*3 =15
j=4, A[5,4]:= 5*4 =20
j=5, A[5,5]:= 5*5 =25
Значение элементов матрицы равно произведению номеров его строки и столбца
1 | 2 | 3 | 4 | 5 | |
1 | 1 | 2 | 3 | 4 | 5 |
2 | 2 | 4 | 5 | 8 | 10 |
3 | 3 | 6 | 9 | 12 | 15 |
4 | 4 | 8 | 12 | 16 | 20 |
5 | 5 | 10 | 15 | 20 | 25 |
Значение больше 10 имеют 8 элементов матрицы.
Ответ:8
Благодарим за то, что пользуйтесь нашими материалами. Информация на странице «Задача №19. Работа с массивами.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ. Чтобы успешно сдать нужные и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий. Также вы можете воспользоваться другими статьями из данного раздела.
Публикация обновлена: 08.03.2023
6 способов объявить и инициализировать двумерный (2D) строковый и целочисленный массив в Java например,
Структуры данных и алгоритмы: глубокое погружение с использованием Java на Udemy.Он научит вас не только массивам, но и другим фундаментальным структурам данных, таким как связанный список, двоичное дерево и хеш-таблица, которые очень важны для повседневного программирования.
Теперь давайте рассмотрим несколько способов объявления двумерного массива в Java, чтобы лучше понять концепцию.
Что касается Java, вы всегда должны помнить, что нет ничего похожего на двумерный массив, по сути, это просто массив одномерного массива. Это ключ к написанию алгоритма, включающего многомерные массивы, например циклический просмотр двумерного массива, поиск элементов и т. д.
Теперь, когда вы знаете, что такое двумерный или двумерный массив в Java, давайте рассмотрим пару примеров. как создать и инициализировать двумерный массив . Я выбрал как массивы int, так и массивы String, поскольку они являются наиболее распространенным типом массива, который вы встретите при программировании.
1. Объявить двумерный массив с обоими измерениями
Наш первый пример касается объявления двумерного массива с обоими измерениями. Давайте объявим однородный двумерный массив, следующим будет двумерный массив целых чисел с 3 строками и 2 столбцами, а затем — двумерный массив строк с 4 строками и 3 столбцами:
int[][] squares = new int[3] [2]; String[][] cubes = новая строка[4][3];
2.
Объявление двумерного массива всего с одним измерениемВ Java вы можете объявить двумерный массив только с одним измерением, но это должно быть первое измерение. Оставление обоих измерений или первого измерения при объявлении массива является недопустимым в Java и вызывает ошибку времени компиляции, как показано ниже:
int[][] numbers = new int[][] ; // ошибка - обязательно первое измерение int[][] primes = new int[][2] ; // ошибка - обязательно первое измерение int[][] multipliers = new int[10][]; // хорошо, второе измерение опционально Строка[][] имена = новая строка[5][];
Кстати, если вы новичок и не знакомы с синтаксисом массивов в Java или хотите узнать больше о языке программирования Java, я также предлагаю вам пройти всеобъемлющий курс Java, такой как The Complete Java MasterClass на Udemy. Это также самый современный курс по Java, который всегда обновляется, чтобы охватить последнюю версию Java.
3. Положение квадратной скобкиВы также можете поменять местами квадратные скобки при объявлении массива в Java, как показано в следующем примере кода:
int[] quotes[] = new int[2][2]; // хорошо
Важно отметить, что в этом коде кавычки — это не двумерный массив, а просто одномерный массив. На самом деле мы объявили только int[]
Еще одна вещь, которую следует помнить об этом коде, заключается в том, что если несколько переменных объявлены в одной строке, они будут иметь тип int[], который является одномерным, а не двумерным, как в следующем примере. цены — это двумерный массив, но abc — это просто одномерный массив целых чисел.
int[] цены[], abc;
Опять же, это сложная концепция массива в Java, и поэтому вы часто будете встречать вопросы по этой теме в различных сертификатах Java. Кстати, если вы готовитесь к сертификации Java, не волнуйтесь, все хорошие симуляторы экзаменов и программное обеспечение для экзаменов, такие как Whizlabs и дампы OCAJP Дэвида Майера, очень хорошо освещают эту тему.
4. Другой пример с положением квадратной скобки
Также можно поместить обе квадратные скобки после имени переменной, как в следующем объявлении номер переменной int, a — одномерный массив int, а b — двумерный массив int.
целое число, a[], b[][];
Если вы все еще в замешательстве, я предлагаю вам взглянуть на Основы Java, часть 1 и часть 2 в Pluralsight, двух углубленных курсах по Java на Pluralsight.
5. 2D массив с переменной длиной столбца
Например, создание двумерного массива, в котором каждый массив имеет разную длину, в следующем коде идентификаторы содержат три одномерных массива целых чисел, каждый из которых имеет разную длину, т.е. 10, 20 и 30
int[][] ids = new int[3][ ]; идентификаторы [0] = новый интервал [10]; идентификаторы [1] = новый интервал [20]; идентификаторы [2] = новый интервал [30];
6.
Объявление и инициализация гетерогенного двумерного массиваСоздание разнородного 2D-массива в Java. В гетерогенном массиве каждый подмассив имеет разный тип, как в следующем примере, подмассив элементов имеет тип Integer, String и Float.
Object[][] items = new String[3][]; элементы [0] = новое целое число [] {1, 2, 4}; items[1] = new String[]{"a", "b"}; элементы[2] = новый Float[]{1.0f, 2.0f};
Вот краткий обзор различных способов объявления двумерного массива в Java:
Это все о 6 различных способах объявления двумерного массива в Java . Вы можете видеть, что 2D-массив предлагает большую гибкость и мощность, например. вы можете объявить двумерный массив без указания второго измерения, вы можете объявить двумерный массив, в котором каждый подмассив имеет разную длину, и вы даже можете создать гетерогенный двумерный или двумерный массив в Java.
Связанные Структура данных и алгоритм Вопросы интервью из блога Javarevisited
- 30 лучших вопросов интервью по кодированию массивов с ответами (см. здесь)
- Как найти пропущенное число в массиве? (ответ)
- Как сравнить два массива в Java? (ответ)
- Как перевернуть массив на месте в Java? (раствор)
- 15 основных вопросов о структуре данных и алгоритмах интервью (см. здесь)
- Топ-20 вопросов на собеседовании по строковому кодированию (см. здесь)
- Как удалить повторяющиеся элементы из массива в Java? (решение)
- Как найти все пары, сумма которых равна заданному числу в Java (решение)
- Топ-30 вопросов для собеседования по кодированию со связанным списком (см. здесь)
- 50 лучших Java-программ по результатам интервью по программированию (см. здесь)
- 5 Бесплатные курсы по структуре данных и алгоритмам для программистов (курсы)
- 10 книг по алгоритмам, которые должен прочитать каждый программист (книги)
- 50+ Структура данных и алгоритмы Проблемы из интервью (вопросы)
- 10 Бесплатные курсы по структуре данных и алгоритмам для программистов (курсы)
- Более 100 проблем кодирования структуры данных из интервью (вопросы)
Спасибо, что прочитали эту статью. Если вам понравился этот учебник и пример массива Java, поделитесь им с друзьями и коллегами. Если у вас есть какие-либо вопросы или сомнения, сообщите нам об этом, и я постараюсь найти для вас ответ. Как всегда, приветствуются предложения, комментарии, инновационные и лучшие ответы.
P. S. . Если вы ищете бесплатные курсы по алгоритмам, чтобы улучшить свое понимание структуры данных и алгоритмов, вам также следует проверить 9Курс 0003 Easy to Advanced Data Structures на Udemy. Он создан инженером-программистом Google и экспертом по алгоритмам и совершенно бесплатен.
Разница между одномерным и двумерным массивом
Улучшить статью
Сохранить статью
- Уровень сложности: Средний
- Последнее обновление: 06 Авг, 2022
Улучшить статью
Сохранить статью
Массив — это структура данных, которая используется для хранения переменных, имеющих сходные типы данных, в смежных местах. Основным преимуществом массива является произвольный доступ и удобство кэширования. There are mainly three types of the array:
- One Dimensional (1D) Array
- Two Dimension (2D) Array
- Multidimensional Array
One Dimensional Array :
- It is a list of the переменная подобных типов данных.
- Разрешает произвольный доступ, и ко всем элементам можно получить доступ с помощью их индекса.
- Размер массива фиксирован.
- Для массива с динамическим размером в C++ можно использовать вектор.
- Представление одномерного массива:
Двумерный массив:
- Это список списков переменных одного типа данных.
- Он также допускает произвольный доступ, и ко всем элементам можно получить доступ с помощью их индекса.
- Его также можно рассматривать как набор одномерных массивов. Он также известен как Матрица.
- Его размер можно увеличить с 2 до 3 и 4 и т.д.
- Все они называются многомерным массивом.
- Наиболее распространенным многомерным массивом является двумерный массив.
- Представление двумерного массива:
Таблица различий:
Базис | Одно измерениеДвухмерный массив | |
Определение | Сохранение одного списка элементов аналогичного типа данных. | Хранить «список списков» элементов аналогичного типа данных. |
Представление | Представление нескольких элементов данных в виде списка. | Представление нескольких элементов данных в виде таблицы, состоящей из строк и столбцов. |
Декларация | The declaration varies for different programming language:
| Объявление различается для разных языков программирования:
|
Dimension | One | Two |
Size(bytes) | size of(datatype of переменная массива) * размер массива | размер(тип данных переменной массива)* количество строк* количество столбцов. |
Расчет адреса. | Адрес a[index] равен (базовый адрес + размер каждого элемента массива * индекс). | Адрес a[i][j] можно рассчитать двумя способами: по строкам и по столбцам
|
Пример | int arr[5]; //будет создан массив из одной строки и пяти столбцов. {a, b, c, d, e} | int arr[2][5]; //будет создан массив из двух строк и пяти столбцов. A B C D E F G H I J |
Применение массивов :
- 2D массивы используются для реализации матрицы.
- Массивы можно использовать для реализации различных структур данных, таких как куча, стек, очередь и т.
Leave A Comment