Одномерные массивы Массив – это пронумерованная конечная последовательность однотипных величин. Одномерный массив – это линейная таблица данных. Примеры одномерных массивов: 1) 12 15 68 45 – массив целых чисел (integer); 2) 25,1 25,36 32,1 100,51 – массив действительных чисел (real); 3) парта стол карта машина школа – массив строковых величин (string). Структура массива a: array[1..n] of <тип значений>; Описание и ввод значений в массив можно производить 2-мя способами. I. Вручную: Program vvod; uses crt; Var a: array[1..5] of integer; i: integer; Begin Clrscr; for i:=1 to 5 do read(a[i]); readln; End. II. С помощью датчика случайных чисел: Program vvod; uses crt; Var a: array[1..20] of integer; i: integer; Begin clrscr; Randomize; for i:=1 to 20 do begin a[i]:=random(50); write(ln)(a[i]:4); (вывод значений в одной строке) end; readln; End. Randomize – случайным образом устанавливает датчик случайных чисел. Если не установить этот оператор, то при запуске программы будут выдаваться всегда одни и те же данные. random(х) – устанавливается случайное число от 0 до х (х – целое) Примеры 1) Какие значения может принимать Y, если Y:= 10 + random(5)? Ответ: [10; 5] 2) Как, используя функцию random, можно получить числа в диапазонах: a) От 1 до 10 Ответ: a[i]:=1+random(9); b) От -10 до 10 Ответ: a[i]:=-10+random(20); c) От 50 до 100 Ответ: a[i]:=50+random(50). Задача1 (вручную) Вы посетили магазин и купили 5 видов товаров. В массив T [1..5] внесите названия товаров, в массив С [1..5] – цену товаров. Program tovar; uses crt; Var t: array[1..5] of string; c: array[1..5] of real; i: integer; Begin clrscr; for i:=1 to 5 do begin read(t[i]); readln(c[i]); end; End. Задача2 (с помощью датчика случайных чисел) Заполните два массива из 10 случайных целых чисел от -20 до 20. Найдите сумму соответствующих членов двух массивов. Program summa; uses crt; Var a: array[1..10] of integer; b: array[1..10] of integer; i: integer; Begin clrscr; Randomize; for i:=1 to 10 do begin a[i]:=-20+random(40); Ввод массива write(a[i]:4); end; writeln; for i:=1 to 10 do begin Ввод массива b[i]:=-20+random(40); write(b[i]:4); end; writeln; for i:=1 to 10 do write(a[i]+b[i]:4); readln; End. Задача3. Заполните массив 100 случайными числами в диапазоне от -10 до 10. Найдите их сумму и среднее арифметическое. Program sred; uses crt; Var a: array[1..100] of integer; i,s: integer; sr:real; Begin clrscr; s:=0; Randomize; for i:=1 to 100 do begin a[i]:=-10+random(20); write(a[i]:4); end; for i:=1 to 100 do s:=s+a[i]; writeln('Сумма =',s); sr:=s/100; writeln('Среднее ',sr:2:2); readln; End. А В Задача4 . Заполните массив 10 случайными целыми числами в диапазоне от -10 до 10. Выведите все отрицательные числа, сосчитайте их количество. Program otriz; uses crt; Var a: array[1..10] of integer; i,k: integer; Begin clrscr; k:=0; Randomize; for i:=1 to 10 do begin a[i]:=-10+random(20); write(a[i]:4); end; writeln; for i:=1 to 10 do if a[i]<0 then begin writeln(a[i]); k:=k+1; end; writeln('k= ',k); readln; End. Домашняя работа 1. Заполните массив 20 случайными целыми числами в диапазоне от 0 до 50. Введите произвольное число (например, 23). Сколько таких чисел в массиве? 2. Заполните два массива случайными числами. Сравните соответствующие элементы массивов и выведите равные. Выведите также номера равных элементов.