ОДНОМЕРНЫЕ МАССИВЫ
В математике, экономике, информатике часто используются упорядоченные наборы данных, например, последовательности чисел, таблицы, списки фамилий. В математике, экономике, информатике часто используются упорядоченные наборы данных, например, последовательности чисел, таблицы, списки фамилий. Для обработки наборов данных одного типа вводится понятие массива.
МАССИВ - это совокупность конечного числа данных одного типа. - это совокупность конечного числа данных одного типа.
Массив обозначается одним именем. Так, всю совокупность действительных чисел 1.6, 14.9, -5.0, 8.5, 0.46 можно считать массивом и обозначать одним именем, например, А. Массив обозначается одним именем. Так, всю совокупность действительных чисел 1.6, 14.9, -5.0, 8.5, 0.46 можно считать массивом и обозначать одним именем, например, А. Каждый элемент массива обозначается именем массива с индексом. Элементы массива упорядочены по значениям индекса. Каждый элемент массива обозначается именем массива с индексом. Элементы массива упорядочены по значениям индекса.
В математике, как правило, индекс либо заключается в круглые скобки, либо указывается несколько ниже имени массива, например: А(1), А(2), А(3), А(4), А(5) или А 1, А 2, А 3, А 4, А 5, или в общем виде {A i }, где i=1,2,3,…,n. В математике, как правило, индекс либо заключается в круглые скобки, либо указывается несколько ниже имени массива, например: А(1), А(2), А(3), А(4), А(5) или А 1, А 2, А 3, А 4, А 5, или в общем виде {A i }, где i=1,2,3,…,n. В Паскале индекс заключается в квадратные скобки. Для рассмотренного примера элементами массива А являются: А[1]:=1.6, A[2]:=14.9, A[3]:=-5.0, A[4]:=8.5, A[5]:=0.46. В Паскале индекс заключается в квадратные скобки. Для рассмотренного примера элементами массива А являются: А[1]:=1.6, A[2]:=14.9, A[3]:=-5.0, A[4]:=8.5, A[5]:=0.46. Таким образом – индекс определяет положение элемента массива данных относительно его начала. Таким образом – индекс определяет положение элемента массива данных относительно его начала.
Описание массива в программе
Если в программе используется массив, то он должен быть описан. Этот процесс состоит из двух этапов. Этот процесс состоит из двух этапов. Сначала в разделе заявления типов массив задается следующим образом: Сначала в разделе заявления типов массив задается следующим образом:type massiv = array [b.. e] of ; massiv = array [b.. e] of ; Здесь massiv – это имя, данное нами новому типу, array – зарезервированное слово, определяющее массив; b и e – начальный и конечный индексы ячеек массива (номера ячеек), это натуральные числа; тип данных – любой, тот же самый integer, т.е. тип данных содержимого массива (например, массив целых чисел).
Теперь, на втором этапе, в разделе var мы заявим какую-нибудь переменную новым типом, например: Теперь, на втором этапе, в разделе var мы заявим какую-нибудь переменную новым типом, например:var a: massiv; a: massiv; Вот и все. Теперь переменная а – это переменная массива. Можно задавать массив и непосредственно в разделе переменных. Просто нужно написать вместо названия типа его параметры: Можно задавать массив и непосредственно в разделе переменных. Просто нужно написать вместо названия типа его параметры: a: array [1.. 10] of byte;
Присвоение значений элементам массива 1. С помощью оператора Read (readln). 1. С помощью оператора Read (readln). var i, n: integer; a: array [ ] of integer; a: array [ ] of integer;begin /определяем число элементов в массиве/ write (Введите размер массива); write (Введите размер массива); readln (n); /ввод элементов массива/ for i:=1 to n do write (a[, i, ]); readln (a [i]); end; /выводим на экран полученный массив/ for i:=1 to n do write (a [i], ); readkey;end.
2. С помощью описания элементов массива в разделе описания констант Uses Crt; Uses Crt; const n=5; const n=5; a: array [1..5] of integer = (4,5,7,7,0); a: array [1..5] of integer = (4,5,7,7,0); var i: integer; var i: integer; begin beginclrscr; /вывод массива/ for i: = 1 to n do for i: = 1 to n do write (a [i], ); write (a [i], ); readkey; readkey; end. end.
3. С помощью Функции Random [(x)] Эта функция формирует случайное число от 0 до Х целого или вещественного типа (перед обращением к функции ее целесообразно инициализировать, использовав процедуру Randomize). Х – параметр, указывающий диапазон значений случайного числа. Оно изменяется в пределах от 0 до Х. Результат в этом случае имеет тип Word (от 0 до 65535). Если параметр Х не задан, результат будет типа Real в пределах от 0.0 до 1.0.
ЗАДАЧА 1 Сформировать одномерный массив из N элементов, где элементы массива – целые случайные числа в пределах от 1 до 45. Напечатать элементы массива в прямом и обратном порядке. Сформировать одномерный массив из N элементов, где элементы массива – целые случайные числа в пределах от 1 до 45. Напечатать элементы массива в прямом и обратном порядке.
Program prim1; Uses crt; Var i, n: integer; a: array [ ] of integer; a: array [ ] of integer;Beginclrscr;randomize; write (wwesti n); readln (n); for i: =1 to n do begin a [i]:= random (45) +1; write (a [i], ); end; for i: = n downto 1 do write (a [i], ); readkey;End.
ЗАДАЧА 2 В предыдущей задаче переставить элементы, стоящие на нечетных местах, с соответствующими элементами на четных местах. В предыдущей задаче переставить элементы, стоящие на нечетных местах, с соответствующими элементами на четных местах.
Program prim2; Uses crt; Var i, n,r: integer; a: array [ ] of integer; a: array [ ] of integer;Beginclrscr;randomize; write (wwesti n); readln (n); for i: =1 to n do begin a [i]:= random (45) +1; write (a [i], ); end; i:=1; { В полученном массиве меняем соседние элементы } while i
Примечание: Процедура inc (i, n) преобразует переменную порядкового типа i к последующему значению (при n=1) или на n шагов вперед. Процедура inc (i, n) преобразует переменную порядкового типа i к последующему значению (при n=1) или на n шагов вперед.
ЗАДАЧА 3 Найти максимальный (минимальный) элемент массива, а также его порядковый номер. Найти максимальный (минимальный) элемент массива, а также его порядковый номер.
За начальный максимум берем первый элемент массива. max:=a[1]; for i:=1 to n do begin Если найдется элемент, больший max, то max будет равен этому элементу. Одновременно запоминаем индекс промежуточного максимума. if a[i]>=max then begin max:=a[i]; imax:=i; end; Печатаем максимальный элемент и его индекс. writeln (max, номер, imax); writeln (max, номер, imax);readkey;end.
ЗАДАЧА 4 Найти максимальный элемент среди отрицательных чисел и минимальный элемент среди неотрицательных. Найти максимальный элемент среди отрицательных чисел и минимальный элемент среди неотрицательных.
ЗАДАЧА 5 Подсчитать количество четных элементов массива, заданного датчиком случайных чисел. Подсчитать количество четных элементов массива, заданного датчиком случайных чисел.
Program prim5; uses crt; uses crt; var i, k, n, r: integer; var i, k, n, r: integer; a: array [ ] of integer; a: array [ ] of integer; begin begin clrscr; clrscr; randomize; randomize; write (chislo elementow =); readln (n); write (chislo elementow =); readln (n); for i:=1 to n do for i:=1 to n do begin begin a[i]:=random(45)-22; a[i]:=random(45)-22; write (a[i], ); write (a[i], ); {Проверяем на четность и считаем кол-во четных элементов} if a[i]mod2=0 then inc(k,1); if a[i]mod2=0 then inc(k,1); end; end; write (k=, k); write (k=, k); readkey readkey end. end.
ЗАДАЧА 6 (самостоятельно) Подсчитать количество отрицательных и неотрицательных элементов массива, заданного датчиком случайных чисел. Подсчитать количество отрицательных и неотрицательных элементов массива, заданного датчиком случайных чисел.
ЗАДАЧА 7 Произвести удаление элемента из одномерного массива, заданного датчиком случайных чисел. Произвести удаление элемента из одномерного массива, заданного датчиком случайных чисел.
Program prim7; uses crt; uses crt; var a: array [ ] of integer; var a: array [ ] of integer; i, k, n: integer; i, k, n: integer; begin begin randomize; randomize; clrscr; clrscr; write (chislo elementow =); write (chislo elementow =); readln (n); readln (n); for i:=1 to n do for i:=1 to n do begin begin a[i]:=random(45)-22; a[i]:=random(45)-22; write (a[i], ); write (a[i], ); end; end; {Вводим номер удаляемого элемента} write (nomer udal.elem. k==k then a[i]:=a[i+1]; end; end; {Обнуляем последний элемент} a[n]:=0; a[n]:=0; {Выводим на экран измененный массив} for i:=1 to n-1 do for i:=1 to n-1 do begin begin write (a[i], ); write (a[i], ); end; end; readln; readln; end. end.
ЗАДАЧА 8 Произвести вставку элемента в одномерный массив, заданный датчиком случайных чисел. Произвести вставку элемента в одномерный массив, заданный датчиком случайных чисел.
Program prim8; uses crt; uses crt; var a: array [ ] of integer; var a: array [ ] of integer; r, i, k, n: integer; r, i, k, n: integer; begin begin randomize; randomize; clrscr; clrscr; {Создаем массив и выводим на экран} write (chislo eleventov n=); write (chislo eleventov n=); readln (n); readln (n); for i:=1 to n do for i:=1 to n do begin begin a[i]:=random(45)-22; a[i]:=random(45)-22; write(a[i], ); write(a[i], ); end; end; {Вводим индекс и значение вставляемого элемента} write (index k then a[i]:=a[i-1]; a[i]:=a[i-1]; end; end; {На К-ое место ставим введенный элемент} a[k]:=r; a[k]:=r; {Выводим на экран измененный массив} for i:=1 to n+1 do for i:=1 to n+1 do begin begin write (a[i], ); write (a[i], ); end; end; readln; readln; end. end.