Понятие массива.
Массив – это совокупность данных, объединенных общим свойством.Например, список класса, температура за месяц.
10 | 12 | 8 | 10 | 9 | 8 | |
Например, температура воздуха за неделю.
1 | |
2 | 4 |
3 | 9 |
4 | 16 |
Например, значение функции y=x2
x y
Строки нумеруются сверху вниз, столбцы слева направо.
Объявление массива.
Перед началом работы, нужно определить какие элементы будет содержать массив и сколько будет этих элементов.
VAR<имя массива>:ARRAY[<нижняя граница>..<верхняя граница>] OF <тип>…
Например,var A: array[1..4] of integer;
Обращение к любому элементу массива происходит по его номеру.
1 |
2 |
3 |
4 |
В оглавление
T: array [1..30] of real;
T[4]:=4;
Способы заполнения массива
С помощью команды «присвоить».
С помощью команды ввода данных с клавиатуры.
Датчиком случайных чисел.
В оглавление
Заполнение массива с помощью команды «присвоить».
10 | 12 | 8 | 10 | 9 | 8 | |
Этот способ применяется в том случае, когда информация в таблице не меняется.Часть программы, где организовывается заполнение массива оформляют с помощью подпрограмм.В подпрограмме каждому элементу массива присваивается определенное значение.
Аксенов |
Бобров |
Веснин |
Гончаров |
Давыдов |
TEMP: array [1..7] of integer;
SP: array [1..5] of string;
BEGINTEMP[1]:=10;TEMP[2]:=12;TEMP[3]:=8;TEMP[4]:=10;TEMP[5]:=9;TEMP[6]:=8;TEMP[7]:=8;
BEGINSP[1]:=‘Аксенов’;SP[2]:=‘Бобров’;SP[3]:=‘Веснин’;SP[4]:=‘Гончаров’;SP[5]:=‘Давыдов’;
Заполнение массива вводом с клавиатуры
Наиболее распространенный способ заполнения массива. Используется, когда для разных таблиц необходимо произвести одни операции (поиск, замена,…).
Показ программы
BEGINfor i:=1 to 7 do begin write(‘Введите ‘,i,’температуру ‘); readln(TEMP[i]);
end;
BEGINfor i:=1 to 5 do begin write(‘Введите ‘,i,’ученика ‘); readln(SP[i]);
end;
Заполнение массива датчиком случайных чисел
Этот способ заполнения используется тогда, когда важно не нахождение результата работы программы, а сам процесс (правильность алгоритма).
RANDOM(N) – вещественное число из [0,N);TRUNC(RANDOM(N))- целое число из [0,N) TRUNC(RANDOM(N)+1)– целое число из [0,N]TRUNC(RANDOM(B-A)+A)– целое число из [A,B)
Показ программы
BEGINfor i:=1 to 7 do begin TEMP [i]:= trunc(random(10));
end;
Печать линейного массива.
Линейную таблицу можно распечатать на экране в строчку или в столбик.
Показ программы
Показ программы
For i:=1 to 7 do begin write (TEMP[i] :5);
end;
For i:=1 to 7 do
begin
writeln(TEMP[i]);
end;
План программы для работы с массивами.
В оглавление
Program Task;
Uses Crt;
const n=….; (количество элементов массива)
var
<имя массива>: array [1..n] of <тип>;
i:integer;………….
BEGIN
writeln(‘Программу составили...');
{заполнение массива одним из способов}
for i:=1 to n do
begin
……
end;
{Печать массива одним из способов}
for i:=1 to n do
begin
…….
end;
Команды обработки массива
Вывод результата
END.
Program Summa;
const n=7;
var a:array [1..n] of real;
S:real;
i:integer;
begin
write (‘введите 7 элементов массива, через пробел’);
For i:=1 to n do
readln(a[i]);
S:=0;
For i:=1 to n do
S:=S+a[i];
writeln;
write(‘Сумма всех элементов массива =’,S);
end.
Вычисление суммы элементов массива
Program maxsimum;
const n=10;
var a:array [1..n] of integer;
max,i:integer;
begin
ВВОД ЭЛЕМЕНТОВ МАССИВА;
max:=a[1];
for i:=2 to n do
if maxwriteln;
write(' наибольший элемент массива = ',max);
end.
Вычисление наибольшего элемента массива
В массив A[N] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.
Задание 3
Решение задания 3
Соnst n=20;
var a:array [1..n] of integer;
s,I,k: integer;
Begin
randomize;
write(' Введите К ');
read(k);
for i:=1 to n do begin
a[i]:=random(20);
write(a[i], ' '); end; s:=0;
for i:=1 to n do
if a[i] mod k=0 then s:=s+a[i];
write(‘s=’,s);
end.
Задание 4
Дана последовательность действительных чисел а1, а2,..., аn. Выяснить, будет ли она возрастающей.
Решение задания 4
Program mm;
const n=5;
var a: array [1..n] of integer;
i, k: integer;
Begin
for i:=1 to n do
Read(a[i]);
for i:=1 to n-1 do
if a[i] < a[i+1] then k:=k+1;
If k=4 then write('последовательность возрастающая ') else write(' последовательность не возрастающая ') ;
end.
Задание 5
Даны действительные числа а1, а2,..., аn. Поменять местами наибольший и наименьший элементы.
Решение задания 5
const n=20;
var a:array [1..n] of integer;
Nmax, Nmin, i, k : integer;
Begin
for i:=1 to n do begin
a[i]:=random(20);
write(a[i], ' '); end;
Nmax:=1; Nmin:=1;
for i:=2 to n do begin
if a[Nmax]if a[Nmin]>a[i] then Nmin:=i; End;
K:= a[Nmax]; writeln;
a[Nmax]:=a[Nmin];
a[Nmin] :=k;
for i:=1 to n do write(a[i], ‘ ‘);
end.
Задание 6
Дана последовательность натуральных чисел а1, а2,..., аn. Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.
Решение задания 6
Program mm;
Соnst n=20;
var a, b: array [1..n] of integer;
I, k: integer;
Begin
randomize;
for i:=1 to n do begin
a[i]:=random(20);
write(a[i], ' '); end; K:=0; writeln;
for i:=1 to n do
if a[i] mod 2=0 then begin k:=k+1; b[k]:=a[i];
write(b[k], ' '); end;
If k=0 then write(‘ в последовательности нет четных чисел’);
end.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.