Массивы 10 класс Ксш 4 Степанов П.Г. Массивы (разбивка по часам) n Определение массива. Описание массива в Паскале. Способы заполнения. Определение массива. — презентация


Ответы на тему Одномерные массивы целых чисел

Учебник по Информатике 9 класс Босова

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

Презентация: Перейти

Может ли массив одновременно содержать целые и вещественные значения?

Да, может, если массив имеет вещественный тип.

Для чего необходимо описание массива?

Описание массива необходимо для выделения участка памяти нужного размера для хранения массива.

Массивы:

а) for i:=1 to 10 do a:=random(101)-50 Данный массив будет сформирован следующим образом: значениям массива от a[1] до a[10] будет присвоено случайное целое число, принадлежащее отрезку [-50; 50];
б) for i:=1 to 20 do a:=a:=i Значениям массива от a[1] до a[20] будет справедливо следующее: i-му массиву будет присвоено i-е значение(будет присвоено значение, совпадающее с индексом элемента);

в) for i:=1 to 5 do a:=a:=2*i-1 Значениям массива от a[1] до a[5] будет справедливо следующее: i-му массиву будет присвоено разность чисел (2*i) и единицы.

Количество жильцов случайно от 50 до 200 человек, а число домов n=30

Для решения задачи мы объявим массив с целым типом данных. Для каждого дома присвоим случайное количество проживающих человек в количестве от 50 до 200. И в конце сложим значения массива, в котором находится информация о количестве проживающих в определенном доме.
Задача на Паскаль:

program z_5; var i, s: integer; a: array [1..30] of integer;

BEGIN

s:=0; for i:=1 to 30 do begin a
:= random(50, 200); s:=s + a; end;
writeln(‘В 30-ти домах ‘, s , ‘ жителей.’); END.

Программа, которая вычисляет среднюю температуру за неделю. Исходные данные вводятся с клавиатуры.

Исходные данные:
П=12; В=10; С=16; Ч=18; П=17; С=16; В=14.
Выходные данные
: 14.71

Код на Паскаль:

program z_6; var i: integer; s: real; a: array [1..7] of real; d: array [1..7] of string; BEGIN s:=0; writeln (‘Введите температуру’); for i:=1 to 7 do begin if i=1 then write(‘Понедельник>>’); if i=2 then write(‘Вторник>>’); if i=3 then write(‘Среда>>’); if i=4 then write(‘Четверг>>’); if i=5 then write(‘Пятница>>’); if i=6 then write(‘Суббота>>’); if i=7 then write(‘Воскресенье>>’); readln (a
); s:=s + a; end; s:=s/7; writeln(‘Средняя температура за неделю: ‘, s:0:2); END.

Дан массив из десяти целых чисел. Определите, сколько элементов массива имеют максимальное значение.

program z_7; var i, s, m: integer; a: array [1..10] of integer; begin s:=0; m:=0; writeln (‘Введите 10 целых чисел:’); for i:=1 to 10 do begin write (i, ‘ число: ‘); readln (a); if a > s then s := a; end;
for i := 1 to 10 do begin if a=s then m:=m+1; end;

writeln(m, ‘ элемента(-ов) массива имеют максимальное значение.’); end.

Какой этап решения задачи на ПК является наиболее трудоемким?

Сначала с помощью цикла с параметром for
объявим оценки 20-ти ученикам. Оценки будут случайные. После определим количество двоек, троек, четверок и пятерок, полученных за диктант.

program z_8; var i, s2, s3, s4, s5: integer; a: array [1..20] of integer; begin for i:=1 to 20 do begin a := random(2, 5); if a = 2 then s2:=s2+1; if a = 3 then s3:=s3+1; if a = 4 then s4:=s4+1; if a = 5 then s5:=s5+1; end;

writeln(‘Двоек: ‘, s2, ‘; Троек: ‘, s3, ‘; Четверок: ‘, s4, ‘; Пятерок: ‘, s5); end.

Объявлен набор в школьную баскетбольную команду. Известен рост каждого из n учеников, желающих попасть в эту команду. Составьте алгоритм подсчета количества претендентов, имеющих шанс попасть в команду, если рост игрока быть не менее 170.

Случайный рост ученика в диапазоне от 150 до 200 см, число претендентов n=50;
Программа на ПаскальABC: program z_9; var i, s: integer; a: array [1..50] of integer; begin s:=0; for i:=1 to 50 do begin a := random(150, 200); if a>=170 then s:=s+1; end; writeln(s, ‘ ученика(-ов) могут претендовать в баскетбольную команду.’); end.

10.

program z_10; var a, b: array [1..10] of integer; s: array [1..10] of real; i: integer; max: real; BEGIN randomize; for i:=1 to 10 do begin a:=random(10)+1; b:=random(10)+1; s:=a*b/2; writeln (‘a[‘, i, ‘] = ‘, a:6, ‘ b[‘ , i, ‘] = ‘, b:6, ‘ s[‘, i, ‘] = ‘, s:6:2); end; max:=s[1]; for i:=2 to 10 do if s>max then max:=s; for i:=1 to 10 do if s=max then writeln (‘i = ‘, i, ‘ a = ‘, a, ‘ b = ‘, b, ‘ s = ‘, s); END.

Занесите информацию о 10-ти европейских странах в массивы. Выведите названия стран в порядке возрастания плотности их населения.

Площадь приведена в тыс.км^2, численность населения — в тыс. чел. program z_11; var p:array [1..10] of real = (244.1, 357, 132, 43.1, 504.8, 301.2, 312.7, 92.0, 337, 551); n: array [1..10] of string; i, j, imin: integer; x: real; r: string; const k: array [1..10] of real = (58100, 81200, 10300, 5190, 39100, 57200, 38500, 9800, 5060, 57800); BEGIN n[1]:=’Великобритания’; n[2]:=’Германия’; n[3]:=’Греция’; n[4]:=’Дания’; n[5]:=’Испания’; n[6]:=’Италия’; n[7]:=’Польша’; n[8]:=’Португалия’; n[9]:=’Финляндия’; n[10]:=’Франция’; for i:=1 to 9 do begin imin:=i; for j:=i+1 to 10 do if p[j]
x:=p; p:=p[imin]; p[imin]:=x; r:=n; n:=n[imin]; n[imin]:=r; end; writeln (‘Отсортированная информация’); for i:=1 to 10 do writeln (n, ‘ — ‘, p); END.

Параграф 2.1НаверхПараграф 2.3

Самостоятельные работы по теме «Одномерные массивы» тест по информатике и икт (9 класс) на тему

Самостоятельная работа №1

ВАРИАНТ 1

1. Составьте программу ввода и вывода массива: 5, -2, 3, -6, 7, 9, -4, 8, 1, 2, 7, -3. 2. Составьте блок-схему алгоритма и программу вычисления в массиве A(10) количества положительных элементов. 3*. Составьте программу заполнения массива, не используя клавиатуру, числами: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.

ВАРИАНТ 2

1. Составьте программу ввода и вывода массива: 3, 4, -9, 8, 1, -6, 2, -5, -1, 7, 5, 9. 2. Составьте блок-схему алгоритма и программу вычисления в массиве A(10) количества отрицательных элементов. 3*. Составьте программу заполнения массива, не используя клавиатуру, числами: 2, 4, 6, 8, 10, 12, 14, 16, 18, 20.

ВАРИАНТ 3

1. Составьте программу ввода и вывода массива: 4, -8, -7, -3, 1, 8, 4, 8, 6, 1, 15, 5. 2. Составьте блок-схему алгоритма и программу вычисления в массиве A(10) количества четных элементов. 3*. Составьте программу заполнения массива, не используя клавиатуру, числами: 1, -3, 5, -7, 9, -11, 13, -15.

ВАРИАНТ 4

1. Составьте программу ввода и вывода массива: 5, -3, 4, -8, -9, 1, 9, 6, -3, 4, 8, 2. 2. Составьте блок-схему алгоритма и программу вычисления в массиве A(10) количества нечетных элементов. 3*. Составьте программу заполнения массива, не используя клавиатуру, числами: -2, 4, -6, 8, -10, 12, -14, 16, -18, 20.

Самостоятельная работа №2

ВАРИАНТ 1

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) суммы всех чисел, кратных 3. 2. Составьте программу вычисления в массиве B(8) суммыотрицательных элементов. 3*. Составьте программу вычисления среднего арифметического элементов массива.

ВАРИАНТ 2

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) суммы всех чисел, кратных 5. 2. Составьте программу вычисления в массиве B(8) суммы положительных элементов. 3*. Составьте программу вычисления среднего арифметического отрицательных элементов.

ВАРИАНТ 3

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) суммы всех чисел, кратных 8. 2. Составьте программу вычисления в массиве B(8) суммы четных элементов. 3*. Составьте программу вычисления среднего арифметического элементов с нечетными номерами.

ВАРИАНТ 4

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) суммы всех чисел, кратных 7. 2. Составьте программу вычисления в массиве B(8) суммы нечетных элементов. 3*. Составьте программу вычисления среднего арифметического элементов с четными номерами.

Самостоятельная работа №3

ВАРИАНТ 1

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) произведения положительных элементов. 2. Составьте программу вычисления в массиве B(N) минимального элемента и его номера. 3*. Составьте программу вычисления суммы элементов от первого отрицательного и до конца.

ВАРИАНТ 2

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) произведения отрицательных элементов. 2. Составьте программу вычисления в массиве B(N) максимального элемента и его номера. 3*. Составьте программу вычисления суммы элементов от первого положительного и до конца.

ВАРИАНТ 3

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) произведения четных элементов. 2. Составьте программу вычисления в массиве B(N) минимального среди положительных элементов и его номера. 3*. Составьте программу вычисления суммы элементов от второго отрицательного и до конца.

ВАРИАНТ 4

1. Составьте блок-схему алгоритма и программу вычисления в массиве A(N) произведения нечетных элементов. 2. Составьте программу вычисления в массиве B(N) максимального среди отрицательных элементов и его номера. 3*. Составьте программу вычисления суммы элементов от второго положительного и до конца.

Самостоятельная работа №4

ВАРИАНТ 1

1. Составьте программу расположения элементов в массиве A(N) в порядке возрастания. 2. Составьте программу замены местами в массиве B(N) первого и последнего элемента . 3*. Составьте программу удаления второго элемента массива C(N).

ВАРИАНТ 2

1. Составьте программу расположения элементов в массиве A(N) в порядке убывания. 2. Составьте программу замены местами в массиве B(N) второго и предпоследнего элемента . 3*. Составьте программу удаления пятого элемента массива C(N).

ВАРИАНТ 3

1. Составьте программу расположения элементов в массиве A(N) так, чтобы отрицательные были в конце. 2. Составьте программу замены местами в массиве B(N) первого отрицательного и максимального элементов . 3*. Составьте программу удаления минимального элемента массива C(N).

ВАРИАНТ 4

1. Составьте программу расположения элементов в массиве A(N) так, чтобы положительные были в конце. 2. Составьте программу замены местами в массиве B(N) первого положительного и минимального элементов . 3*. Составьте программу удаления максимального элемента массива C(N).

Самостоятельная работа №5

ВАРИАНТ 1

1. Составьте программу увеличения всех элементов массива на 4. 2. Составьте программу вставки в массив A(N) первого элемента, равного 7. 3*. Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен положительными, а второй – отрицательными элементами.

ВАРИАНТ 2

1. Составьте программу уменьшения всех элементов массива на 4. 2. Составьте программу вставки в массив A(N) последнего элемента, равного 7. 3*. Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен отрицательными, а второй – положительными элементами.

ВАРИАНТ 3

1. Составьте программу увеличения всех элементов массива в 5 раз. 2. Составьте программу вставки в массив A(N) пятого элемента, равного 8. 3*. Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен предшествующими максимальному, а второй – остальными элементами.

ВАРИАНТ 4

1. Составьте программу уменьшения всех элементов массива в 10 раз. 2. Составьте программу вставки в массив A(N) третьего элемента с конца массива, равного 7. 3*. Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен предшествующими минимальному, а второй – остальными элементами.

Pascal: Занятие № 6. Одномерные массивы (сложные задачи в Pascal)

На занятии разбираются разного уровня сложности задачи в Pascal для работы с одномерными массивами

Задача сайта labs-org.ru — получение пользователями практических навыков работы с языком. Уроки по Паскалю, изложенные по мере увеличения их сложности и подкрепляемые наглядными решенными примерами, позволят с легкостью освоить изучаемый материал.

Назад

К оглавлению

Далее

Для начала рассмотрим не сильно сложную задачу с одномерными массивами в Pascal:

Пример: Найти максимальный элемент численного массива и его индекс (max_num

и
max_index
).

Результат:

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

Показать листинг программы:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21const m = 20; var arr: array[1..m] of byte; max_index: byte; i: byte; begin randomize; for i := 1 to m do begin arr := random(100); write (arr:3); end; max_index := 1; for i := 2 to m do if arr > arr[max_index] then begin max_index := i; end; writeln; writeln (‘Max = ‘,arr[max_index]); writeln (‘position: ‘, max_index); end.

const m = 20; var arr: array[1..m] of byte; max_index: byte; i: byte; begin randomize; for i := 1 to m do begin arr := random(100); write (arr:3); end; max_index := 1; for i := 2 to m do if arr > arr[max_index] then begin max_index := i; end; writeln; writeln (‘Max = ‘,arr[max_index]); writeln (‘position: ‘, max_index); end.


Задача Array 15. Требуется заполнить массив числами, которые вводит пользователь, и вычислить их сумму. Если пользователь вводит ноль или превышен размер массива, то запросы на ввод должны прекратиться. Использовать цикл с постусловием (repeat) Результат:

Число: 3 Число: 2 Число: 5 Число: 0 3 2 5 0 sum = 10

Задача Array 16. Дан массив из 50 элементов, значения которых формируются функцией random и лежат в диапазоне от -50 до 49 включительно. Требуется из одного массива скопировать в другой массив значения в диапазоне от -5 до 5 включительно и подсчитать их количество.

Задача Array 17. В одномерном массиве (заполнение массива случайными числами от -50 до 49) найти сумму отрицательных элементов. Если эта сумма меньше -100, то необходимо прибавить к ней минимальный положительный элемент.

Следующую сложную задачу с одномерными массивы следует разобрать подробно.

Пример: Имеется одномерный массив, содержащий числа от 0 до 49 включительно. Требуется исключить из него все элементы, значения которых меньше 15.

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

Показать решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25const n=20; var arr: array[1..n] of integer; i,j,m:integer; begin randomize; for i:=1 to n do begin arr:=random(50); write(arr:4); end; writeln; m:=n; i:=1; while i<=m do if arr<15 then begin for j:=i to m-1 do arr[j]:=arr[j+1]; m:=m-1 end else i:=i+1; writeln(‘Результат:’); for i:=1 to m do write(arr:4) end.

const n=20; var arr: array[1..n] of integer; i,j,m:integer; begin randomize; for i:=1 to n do begin arr:=random(50); write(arr:4); end; writeln; m:=n; i:=1; while i<=m do if arr<15 then begin for j:=i to m-1 do arr[j]:=arr[j+1]; m:=m-1 end else i:=i+1; writeln(‘Результат:’); for i:=1 to m do write(arr:4) end.
Рассмотрим представленный алгоритм решения данной сложной задачи с одномерным массивом:

  • строка 12: Здесь присваивание значения n переменной m требуется, т.к. n — константа и не может быть изменена. Поскольку при «просмотре» массива в цикле while некоторые элементы будут удаляться, то значение m, обозначающее длину массива, будет уменьшаться.
  • строка 21: Если очередной элемент не удаляется, то переходим к просмотру следующего элемента (i := i + 1) и не уменьшаем массив (m не меняется).

Задача Array 18. Дан массив из N элементов в диапазоне [100;300]. Сжать массив, оставив в нем только те элементы, сумма цифр которых четная. 101 245 167 295 133 >>> 101(2) 167(14) 295(16)

Задача Array 19. Заполнить массив из 10 элементов случайными числами в интервале [0..4] и определить, есть ли в нем одинаковые соседние элементы. Пример:

Исходный массив: 4 0 1 2 0 1 3 1 1 0 Ответ: есть

Задача Array 20.

  1. Определите в массиве A номер первого элемента, равного X.
  2. Определите номер первого элемента, равного X, в первой половине массива A (массив имеет чётное число элементов).
  3. Определите номер первого элемента, равного X, во второй половине массива A (массив имеет чётное число элементов).

Задача Array 21. Найти количество различных чисел в одномерном массиве

Рассмотрим алгоритм решения:

Задача Array 22. Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и сделать реверс отдельно для 1-ой и 2-ой половин массива. Пример:

Задача Array 23. Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить циклический сдвиг ВПРАВО на 4 элемента. Пример:

Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

Назад

К оглавлению

Далее

Статические массивы

Массив в информатике — структура, которая включает в себя некоторое количество элементов одного вида. Они особенно полезны в цикличной работе с однотипными данными. Массивы можно классифицировать двумя способами: по типу организации памяти и по размерности. Для статических массивов пространство выделяется на этапе компиляции, для динамических — во время работы программы. Как правило, рассматриваются одномерные и двумерные массивы.

Базовые понятия

«Чайникам» лучше начать со статических одномерных. Объявление массива в блоке var содержит такие компоненты:

  1. Имя переменной.
  2. Служебное слово array (дословно «набор»).
  3. Начальный и конечный индексы в квадратных скобках, разделитель — 2 точки.
  4. Тип данных начиная с of.

Запись типа «var mass: array[0.10] of integer» можно прочесть как «массив имени mass с 11 элементами целочисленного типа». В общем случае диапазон начинают с 0 и заканчивают числом, которое будет превышать максимальную необходимость в количестве элементов. Заданный промежуток может начинаться с 1 или любого другого числа, если это предпочтительнее для восприятия или удобнее для конкретной задачи.

В случае статического массива к описанию необходимо относиться внимательно, так как при недостаточном выделении памяти возникнет ошибка выполнения, связанная с выходом за диапазон. Она встречается даже в простейшей задаче заполнения массива с клавиатуры и его последующей печати. Обращение к конкретному элементу на примере mass будет выглядеть как mass[x], где x — любая переменная или число (целочисленного типа).

Именно в таком виде его можно передать для печати или считывания в соответствующую стандартную функцию. Задачу упростит цикл for относительно переменной x, с диапазоном в соответствии с описанным ранее. Он может быть дополнительно ограничен (например, введённым пользователем числом), но при этом не должен выходи́ть за границы выделенной памяти.

Прочие нюансы

Иногда нужно хранить некоторый объём однотипных данных, которые не вводятся пользователем — например, алфавит гласных для подсчёта их количества в слове. В таких случаях переменная считается константной, а описывается она как «const vowels: array[0.5] of char = (‘e’, ‘y’, ‘u’, ‘i’, ‘o’, ‘a’)». Интересная особенность языка Pascal — возможность использования букв (знаков) в качестве индексов. Например, «var alpha_count: array[a.z] of integer» — хороший вариант для хранения количества вхождений каждой буквы в тексте.

Двумерный массив объявить не сложнее, чем одномерный: «var table: array[1.10,1.10] of integer». Его можно визуально представить как таблицу из 10 строк и 10 столбцов, содержащую целые числа в ячейках. Так как для доступа (table[y, x]) необходимы 2 параметра, для поиска используются вложенные циклы for. Они организуются так, чтобы в строке последовательно рассматривались все элементы (для y перебирались все возможные x по очереди).

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями: