1.89M
Категория: ПрограммированиеПрограммирование

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

1.

Презентация по программированию

2.

В практической деятельности
Элементы
списков
и номера
человека
часто
используются
строк и истолбцов
таблицы
списки. всегда
нумеруются
Например:
•Список учеников в журнале;
•Список среднесуточной
температуры месяца;
•Таблица умножения.
1
1
2
3
4
5
6
2
3
1 2 3
2 4 6
3 6 9
4 8 12
5 10 15
6 12 18
1. Иванов
1. 100
2. Петров
2. 120
3. Сидоров
3. 120
4. Кошкин
4. 130
5. Мышкин
5. 140
6. 140
7. 120
4
5
6
7
8
9
10
8. 150
4
8
12
16
20
24
5
10
15
20
25
30
6
12
18
24
30
36
7
14
21
28
35
42
8
16
24
32
40
48
9
18
27
36
45
54
10
20
30
40
50
60
9. 160
10. 140
...
31. 180

3.

В языках программирования подобные типы
данных описываются с помощью массивов.
это набор однотипных
данных, к которым можно
обратиться с помощью
единого имени
Каждое значение в массиве называется элементом.
Номер элемента в списке называется индексом.
Элементы представляют собой символьные или
числовые значения, которые можно использовать в
выражениях ЯП ПАСКАЛЬ

4.

В качестве иллюстрации можете представить себе
шкаф, имеющий множество нумерованных ящиков.
Шкаф
Шкаф – это массив.
1
Ящики – это индексы.
2
Содержимое ящиков –
3
4
5
элементы массива.
Доступ к содержимому конкретного
ящика (элемента массива)
осуществляется после указания
шкафа –имени массива – и номера
ящика – индекса массива.

5.

Определение
Массив – пронумерованная совокупность ячеек
памяти, названная одним именем
1
2
3
4
5
6
7
44 22 10 Индекс
11 14 30 19
Имя массива
(порядковый
номер) элемента
массива
А
A [ 4 ] := 11;
Значение
элемента
массива

6.

Описание массива
Объявление массива в разделе описания
переменных:
Var имя:ARRAY[1..N] OF тип;
Например:
Имя массива
Количество Тип элементов
элементов
Var A:Array[1..10] of Integer;
Var Tem:Array[1..100] of Real;

7.

Описание массива
Количество элементов можно
описать в разделе констант
Const
m=10;
Var a : array [1.. m] of integer;

8.

Описание массива
Сonst a:array[1..5] of integer =
(3,-2,1,4,3);
Массив констант
Var R:Array [-20..20] of Real;
Var N:Array ['A'..'Z'] of Integer;
В зависимости от задачи индексы
элементов могут начинаться не только с
единицы или быть символьного типа

9.

Заполнение массива
1. Заполнение массива с клавиатуры
For i:=1 to N do begin
Write(' a [ ' , i , ' ] = ' );
ReadLn ( a [ i ] );
End;

10.

Заполнение массива
2. Заполнение массива случайными числами.
For
i:=1 to
N do begin (А)
Например:
m[i]:=RANDOM
Случайное
число
8).
a[i]:=Random(B-A)+A;
случайное
числоизизинтервала
интервала[-5
[0;; А)
А = - 5, m[i]
В
=
8,
:=RANDOM(B-A)+A;
WriteLn(a[i]:10:5);
подставим
вчисло
формулу
случайное
из
интервала
[A
;
B)
End;
m[i] :=RANDOM(B-A)+A;
m[i] :=RANDOM(B-A+1)+A;
m[i]
:=RANDOM(8-(-5))+(-5);
случайное
число из интервала [A ; B]
такую запись нужно упростить
m[i] :=RANDOM(13)-5;

11.

Заполнение массива
3. Заполнение массива при помощи прогрессии.
Заполнить массив числами 3,5,7,9,11 и т.д.
a[1]:=3;
На первом месте стоит 3
Writeln(a[1]);
На втором 3+2 = 5
For
i:=2
to
N
do
begin
На третьем 5+2 = 7 и т.д.
a[i]:=a[i-1] + 2;
То есть ai = ai - 1 + 2
Writeln(a[i]:5);
Это арифметическая прогрессия.
End;

12.

Вывод массива
а) в столбик:
For i:=1 to N do Writeln(a[i]:4:2);
б) в строку
For i:=1 to N do Write(a[i]:4:2);
2.23
2.23
3.19
1.44
4.93
5.58
3.19 1.44 4.93 5.58

13.

Вывод массива в две строки
var
A:array
[1..10]массив
of integer;
Задача
1. Заполнить
из 10 элементов случайными
Оператор
выводана экран, а
i:integer;
числами
из интервала от -10
до 10, вывести
без LN, вывод
оператор
затем
увеличить
каждый элемент
массива на 1 и
BeginПустой
осуществляется в
вывода
с
LN,
когда
повторно
на экран.
for i:=1 toвывести
10 do begin
строку
первая строка
a[i]:= random(21)-10;
закончена, переход
на вторую write(a[i]:5);
end;
Оператор вывода
writeln;
без LN, вывод
for i:=1 to 10 do begin
осуществляется в
a[i]:=a[i]+1;
строку
write(a[i]:5);
end;
end.

14.

Заполнение массива
Составить
Program
n2; программу заполняющую массив из
10 элементов, числовой последовательностью:
var
a:array[1..10]
of
integer;
Значение элемента массива
1,4,9,16…
зависит только от
(гдеi:integer;
Ai= i 2 )
порядкового номера
begin
for i:=1 to 10 do begin
a[i]:=i*i;
write(a[i]:5);
end;
end.
Задача 2.

15.

Заполнение массива
Задача 3. Составить
программу заполняющую
массив
из 10 элементов,
числовой
var a:array[1..10]
of integer;
последовательностью:
2, 3, 5, 9, 17 и т.д.
i:integer;
begin
Значение элемента массива
a[1]:=2;
зависит от предшествующего
элемента
write(a[1]:5);
for i:=2 to 10 do begin
a[i]:=2*a[i-1]-1;
write(a[i]:5);
end;
end.

16.

Обработка массива
Изменение элементов массива удовлетворяющих
условию
For i:=1 to N do If (условие) then a[i]:=значение:
Изменения:
Условия:
aa[ [i i] ]:=5
> 0––заменить
положительный
i-ый элемент
элемент
на массива
число 5
aa[ [i i] ]:=Mod
- a [2i =] –0 заменить
– четный i-ый
элемент
элемент
массива
на
противоположный
a [ i ] = int(a [ i ]) – целый
по знаку
элемент массива
aa[ [i i] ]:== ai –[ iэлемент
] * 2 – удвоить
массивакаждый
равен своему
элемент
массива
порядковому номеру
ai [Mod
i ] :=2a=[ 0i -–1]+3
четные
–заменить
порядковые
i-ый элемент
номера
предшествующим
a [ i ] = К – элемент
плюс
массива
3
равный числу К

17.

Обработка массива
Блок-схема
обработки
и вывода
обработки
массива
Цикл Блок-схема
обработки
и вывода
элементов
массива
в одном
цикле
на экран
For i:=1 to N do begin
If (условие) then a[i]:=значение:
Writeln(a[i]:5);
end;

18.

Нахождение суммы и произведения элементов массива
Нахождение суммы элементов массива
удовлетворяющих условию:
Предполагаем, что
сумма равна нулю
s:=0;
For i:=1 to N do If (условие) then s:=s+ a[i];
Если элемент подходит
WriteLn ('Сумма = ', s:10:5);
по условию, добавляем
НахождениеПредполагаем,
произведения
элементов
массива
что
его
к произведению
удовлетворяющих
условию:
Если
элемент
подходит
произведение
равно
по условию, добавляем
единице
p:=1;
его к сумме
For i:=1 to N do If (условие) then p:=p* a[i];
WriteLn('Произведение = ', p:10:5);

19.

Подсчет количества элементов удовлетворяющих условию
Подсчет количества
элементов
удовлетворяющих
Предполагаем,
что
условию:
таких элементов
нет
k:=0;
For i:=1 to N do If (условие) then k:=k+1;
WriteLn('Кол-во=',k:10);
Если такой элемент
есть, то К
увеличиваем на 1.

20.

Нахождение суммы элементов массива
Дан массив из 15 целых чисел заполненный
случайными числами из интервала [0; 20]. Выведите
этот массив в строку и найдите количество четных
элементов массива, которые меньше среднего
арифметического его элементов.
Задача 4.
Предполагаем,
что
Организуем
цикл из
Определяем
число
сумма равна нулю
15 повторений
случайным образом
s:=0;
For i:=1 to 15 do begin
a[i]:=Random(21);
Добавляем
write (a[i]:10);
к сумме
Выводим его на
S:=S+a[i];
экран
end;

21.

Нахождение суммы элементов массива
Находим среднееВыводим его на
экран
арифметическое
Writeln;
s:=s/15; Предполагаем, что
таких элементов
нет цикл из
Организуем
Writeln('Среднее арифметическое
= ',s:10:5);
15 повторений
k:=0;
For i:=1 to 15 do
if (a[i] Mod 2 = 0) and (a[i]<s) then k:=k+1;
Writeln('Четных чисел меньших среднего
арифметического ', k:8); Если элемент четный и
меньше среднего
Выводим К на экран арифметического,
увеличиваем К на единицу
English     Русский Правила