Массивы - Средняя общеобразовательная школа № 6

advertisement
МАССИВЫ
1. С понятием «массив» приходится сталкиваться при решении научно-технических и
экономических задач обработки большого количества значений.
2. Массив – это структурированный тип данных, состоящий из фиксированного числа
элементов, имеющих один и тот же тип. Название регулярный тип (или ряды)
массивы получили за то, что в них объединены однотипные элементы,
упорядоченные по индексам, определяющим положение каждого элемента в
массиве.
3. Элементы, образующие массив, упорядочены таким образом, что каждому элементу
соответствует совокупность номеров (индексов), определяющих его
местоположение в общей последовательности. Доступ к каждому отдельному
элементу осуществляется путем индексирования элементов массива. Индексы
представляют собой выражения любого скалярного типа, кроме вещественного.
4. Для описания массива предназначено словосочетание: ARRAY OF (массив из).
Пример:
const klass:array[1..11] of 0..1 =(0,0,1,1,1,0,0,1,1,0,1);
type znak=array[1..255] of char;
var X,Y:znak;
Z:array[1..640] of integer;
5. Если в форме описания массива задан один индекс, массив называется
одномерным, если два индекса – двумерным, если n индексов – n-мерным.
Одномерный массив соответствует понятию линейной таблицы (вектора),
двумерный массив – понятию прямоугольной таблицы (матрицы, набору векторов).
Размерность ограничена только объемом памяти конкретного компьютера.
Примеры:
Var vec: array [1..40] of real;
{одномерный массив из 40 вещественных чисел}
Var matr: array [1..10,1..10] of byte; {двумерный массив 10х10 элементов}
6. Так как каждый элемент имеет свой номер, то к каждому элементу можно
обращаться непосредственно. Для того чтобы обратиться к i-у элементу массива A,
необходимо записать: A[i].
1) Имеются описания:
Const N=30;
var a:array[1..30] of real;
b:array[–2..2] of Boolean;
c:array[’0’..’9’] of integer;
d:array[0..N] of 1..23;
Для каждого из массивов указать: сколько в нем элементов, какие значения могут
принимать его элементы, как указать его первый элемент, последний элемент. Ответы
оформить в виде таблицы.
Массив
Количество
элементов
Тип
элементов
Первый
элемент
Последний
элемент
A
B
C
D
1
2) Дан массив А: Var A: Array [1..6] Of Integer;
7
-1
0
4
15 3
Укажите, какими станут значения элементов массива после выполнения каждого из
приведенных фрагментов программ:
q:=a[4]+a[1]; a[5]:=q;
a[4]:=a[2]+a[2+1]; a[1]:=a[7-1]+a[7-2];
j:=4; a[3]:=a[j]+a[j-1]; a[2]:=a[j+1];
i:=2; j:=1+3; a[i]:=a[j]+a[j+1];
for i:=1 to 5 do a[i]:=a[i+1];
j:=1; a[5]:=a[j]+1+a[j+1];
Способы заполнения массивов:
1) заполнение с клавиатуры.
Program Klava;
Const N=10;
Var X:Array[1..N] of Integer; i:integer;
Begin
Writeln(’Введите ’,N, ’ чисел ’);
For i:=1 to N do Readln(X[i]);
End.
2) с помощью генератора случайных чисел (этот способ более удобен, когда в массиве
много элементов, а их точные значения не слишком важны),
Program Sudba;
Const N=10;
Var X:Array[1..N] of Integer; i:integer;
Begin randomize; For i:=1 to N do X[i]:=random(100); End.
3) массив–константа,
Const N=5; Vector:Array[1..5] of integer=(1,3,5,7,9);
4) чтение значений элементов из файла.
8. Способы вывода на экран значений массивов:
1) одномерный массив:
a) в строчку: for i:=1 to 40 do write(vec[i],’ ’);
b) в столбик: for i:=1 to 3 do writeln(colors[i]);
2) двумерный массив (в виде таблицы):
for i:=1 to 10 do
begin for j:=1 to 10 do write(matr[i,j]:7 );
writeln;
end;
7.
2
Задачи.
Заполнить массив из восьми элементов следующими значениями: первый элемент
массива равен 37, второй –0, третий — 50, четвертый — 46, пятый —34, шестой —
46, седьмой — 46, восьмой — 13.
2) Составить программу вывода на экран любого элемента массива.
3) Заполнить массив из десяти элементов значениями, вводимыми с клавиатуры в ходе
выполнения программы.
4) Вывести массив на экран в обратном порядке его элементов.
5) Заполнить массив из пятнадцати элементов случайным образом:
а) вещественными значениями, лежащими в диапазоне от 0 до 1;
б) вещественными значениями x (22  x  23);
г) вещественными значениями x (-50  x  50);
д) целыми значениями, лежащими в диапазоне от 0 до 10 включительно.
6) С помощью датчика случайных чисел заполнить массив значениями роста
двенадцати человек: целые числа, лежащие в диапазоне от 163 до 190
включительно.
7) Дан массив. Составить программу:
а) расчёта квадратного корня из любого элемента массива;
б) расчёта среднего арифметического двух любых элементов массива.
8) Дан массив. Все его элементы:
а) увеличить в 2 раза;
б) уменьшить на число А;
в) разделить на первый элемент.
9) Дан массив. Все его элементы:
а) уменьшить на 20;
б) умножить на последний элемент;
в) увеличить на число В.
10) Определить:
а) сумму всех элементов массива;
б) произведение всех элементов массива;
в) сумму квадратов всех элементов массива;
г) сумму шести первых элементов массива;
д) сумму элементов массива с k1-го по k2-й (значения k1 и k2 вводятся с
клавиатуры; k2>k1);
е) среднее арифметическое всех элементов массива;
ж) среднее арифметическое элементов массива с s1-го по s2-й (значения s1 и s2
вводятся с клавиатуры; s2>s1).
11) Выяснить, верно ли, что сумма элементов массива есть неотрицательное число.
12) Дан массив целых чисел. Выяснить:
а) верно ли, что сумма элементов массива есть чётное число;
б) верно ли, что сумма квадратов элементов массива есть пятизначное число.
13) В массиве хранится информация о численности учеников в каждом из 42 классов
школы. Выяснить, верно ли, что общее число учеников в школе есть
четырёхзначное число.
9.
1)
3
14) Дан массив. Напечатать:
а) все неотрицательные элементы;
б) все элементы, не превышающие числа 100.
15) Дан массив целых чисел. Напечатать:
а) все чётные элементы;
б) все элементы, оканчивающиеся нулём;
16) Дан массив натуральных чисел. Напечатать:
а) все элементы массива, являющиеся двузначными числами;
б) все элементы массива, являющиеся трёхзначными числами.
17) Дан массив. Напечатать:
а) второй, четвёртый и т. д. элементы;
б) третий, шестой и т. д. элементы.
18) Дан массив вещественных чисел.
а) Каждый отрицательный элемент заменить на его абсолютную величину.
б) Все элементы с нечётными номерами заменить на их квадратный корень.
в) Из всех положительных элементов вычесть элемент с номером k1, из остальных –
элемент с номером k2.
г) Все элементы с нечётными номерами увеличить на 1, с чётными – уменьшить
на 1.
д) Из всех положительных элементов вычесть элемент с номером k1, из всех
отрицательных – число N. Нулевые элементы оставить без изменения.
е) Ко всем нулевым элементам прибавить N, из всех положительных элементов
вычесть A, ко всем отрицательным прибавить В.
19) Дан массив вещественных чисел.
а) Каждый элемент, больший 10, заменить на его квадратный корень.
б) Все элементы массива с чётными номерами заменить на их абсолютную
величину.
в) Ко всем отрицательным элементам прибавить элемент с номером m1, к
остальным – элемент с номером m2.
г) Все элементы с чётными номерами удвоить, с нечетными – уменьшить на 1.
д) Ко всем отрицательным элементам прибавить элемент с номером a1, из всех
нулевых вычесть число В. Положительные элементы оставить без изменения.
е) Из всех положительных элементов вычесть А, из всех отрицательных вычесть В,
ко всем нулевым элементам прибавить С.
20) Дан массив. Найти:
а) сумму элементов массива, значение которых не превышает 20;
б) сумму элементов массива, больших числа А.
21) Дан массив целых чисел. Найти:
а) сумму нечётных элементов;
б) сумму элементов, кратных заданному числу;
22) Определить сумму второго, четвёртого, шестого и т. д. элементов массива.
4
Download