Одномерные массивы Массив Одномерный массив

advertisement
Одномерные массивы
Массив – это пронумерованная конечная последовательность однотипных величин.
Одномерный массив – это линейная таблица данных.
Примеры одномерных массивов:
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. Заполните два массива случайными числами. Сравните соответствующие элементы
массивов и выведите равные. Выведите также номера равных элементов.
Download