Одномерные массивы Массив - это упорядоченный набор

advertisement
Одномерные массивы
Массив - это упорядоченный набор однотипных элементов, с быстрым доступом по
индексу. Индекс – это значение порядкового типа. Когда описываем массив, указываем
границы индексов.
Описание массива
var Number: array [1..N] of byte; {массив Number из N элементов целого типа}
var А:array [1..N] of integer;
{массив А из N элементов целого типа}
var T: array [0..12] of real;
{массив Т из 13 элементов вещественного типа}
var B: array [1..N] of char;
{массив В из N элементов символьного типа}
var slovo: array [0..5] of string;
{массив slovo из 6 элементов строкового типа}
Массив может быть одновременно объявлен и заполнен с помощью раздела описания констант.
program Zadacha;
const N: array [0..4] of integer =(2,6,13,0,1);
var i:integer;
begin
Заполнение массива
Заполнение одномерного массива возможно тремя способами:
1. С клавиатуры;
2. С помощью генератора случайных чисел;
3. По формуле.
1) с клавиатуры
for i:=1 to n do
begin
writeln ('Введи', i , 'элемент');
readln (a[i]);
end;
2) случайным образом
randomize;
for i:=1 to n do
begin
a[i]:=random (50);
writeln a[i];
end;
3) по формуле
for i:=1 to n do
begin
a[i]:= sqr (i);
writeln a[i];
end;
Функция получения случайных чисел из интервала [a, b] имеет вид random (b-a+1)+a
Образец решения задачи:
1. Сформируйте и выведите на экран последовательность из n элементов, заданных
датчиком случайных чисел на интервале [-23, 34].
Операторные
скобки
program Z1;
const N=10;
var a: array[0..N-1] of integer;
i: integer;
begin
randomize;
for i:=0 to n-1 do
begin
a[i]:= random (58)-23;
writeln (a[i],' ' );
end;
end.
{ заголовок программы}
{ раздел описания констант}
{ раздел описания переменных}
{ генератор случайных чисел}
{ присвоение элементу массива случайного значения}
{ вывод значения элемента массива}
{окончание программы}
Нахождение минимального (максимального) элемента массива
max:=a[1];
{считаем, что первый элемент – максимальный,}
imax:=1;
{а номер максимального – индекс первого элемента}
for i:=2 to n do
{проверяем все остальные элементы массива, сравнивая попарно}
if a[i] > max then
{если находим новый максимальный элемент}
begin
max:=a[i]; imax:=i; {то, присваиваем его значение переменной max, а его индекс – imax}
end;
writeln ('Максимальный элемент ', max,' Его индекс ' , imax);
readln;
end.
min:=a[1];
{считаем, что первый элемент – минимальный,}
imin:=1;
{а номер минимального – индекс первого элемента}
for i:=2 to n do
{проверяем все остальные элементы массива, сравнивая попарно}
if a[i] < min then
{если находим новый минимальный элемент}
begin
min:=a[i]; imin:=i;
{то, присваиваем его значение переменной max, а его индекс – imax}
end;
writeln ('Минимальный элемент ', min,' Его индекс ' , imin);
readln;
end.
Образец решения задачи:
2. Массив задан датчиком случайных чисел на интервале [-37, 66]. Найти максимальный
элемент. Размер произвольный.
program Zadacha2;
const n=8;
var b:array [1..n] of integer;
i, max: integer;
begin
for i:= 1 to n do
begin
b[i]:= random (104)-37;
writeln (b[i]);
end;
max:= b[i];
for i:=2 to n do
if b[i] > max then max:= b[i];
writeln ('max=' , max);
end.
Нахождение суммы (произведения) элементов массива
s:=0;
for i:=1 to n do
s:=s + a[i];
writeln ('Сумма ', s);
p:=1;
for i:=1 to n do
p:=p * a[i];
writeln (‘Произведение’, p);
Образец решения задачи:
3. Известно количество осадков, выпавших в январе. Определите среднемесячную
температуру января и самый холодный день.
program Zadacha3;
const n=5;
var t:array [1..n] of integer;
i, s, min, imin: integer; x: real;
begin
for i:= 1 to n do
begin
writeln ('Введи температуру' , i , 'января');
readln (t[i]);
end;
s:=0;
for i:= 1 to n do
s:= s + t[i];
x:= s / n;
min:= t[1]; imin:= 1;
for i:=2 to n do
if t[i] < min then
begin
min:= t[i]; imin:= i;
end;
writeln ('Среднемесячная температура = ' , x);
writeln ('Самый холодный день ' , imin , ' января');
end.
Download