СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ ОДНОМЕРНЫЕ МАССИВЫ. РАБОТА С ЭЛЕМЕНТАМИ

Содержание

Слайд 2

Цели урока Получить представление о новом типе данных – регулярный тип

Цели урока

Получить представление о новом типе данных – регулярный тип (массив);
Научиться

заполнять массив данными различными способами;
Формирование навыков решения задач в среде программирования Паскаль.
Слайд 3

Основные понятия Регулярный тип данных; Массив; Элемент массива; Индекс элемента массива;

Основные понятия

Регулярный тип данных;
Массив;
Элемент массива;
Индекс элемента массива;
Значение элемента массива;
Объявление массива;
Заполнение массива;
Вывод

массива
Слайд 4

План урока Повторение (Тест «Символьные величины»); Объяснение новой темы; Решение задач;

План урока

Повторение (Тест «Символьные величины»);
Объяснение новой темы;
Решение задач;
Проверка усвоения учебного материала;
Практическая

работа.
Слайд 5

Массивы Массив – это группа однотипных элементов, имеющих общее имя и

Массивы

Массив – это группа однотипных элементов, имеющих общее имя и расположенных

в памяти рядом.
Особенности:
все элементы имеют один тип
весь массив имеет одно имя
все элементы расположены в памяти рядом
Примеры:
список учеников в классе
квартиры в доме
школы в городе
данные о температуре воздуха за год
Слайд 6

Массивы A массив 3 НОМЕР элемента массива (ИНДЕКС) A[1] A[2] A[3]

Массивы

A

массив

3

НОМЕР элемента массива
(ИНДЕКС)

A[1]

A[2]

A[3]

A[4]

A[5]

ЗНАЧЕНИЕ элемента массива

A[2]

НОМЕР (ИНДЕКС) элемента массива: 2

ЗНАЧЕНИЕ элемента массива:

10
Слайд 7

Объявление массивов Зачем объявлять? определить имя массива определить тип массива определить

Объявление массивов

Зачем объявлять?
определить имя массива
определить тип массива
определить число элементов
выделить место

в памяти
Массив целых чисел:
Размер через константу:

имя

начальный индекс

конечный индекс

тип
элементов
var A: array[1.. ] of integer;

const N=5;

N

var A : array[ 1 .. 5 ] of integer ;

Слайд 8

Объявление массивов Массивы других типов: Другой диапазон индексов: Индексы других типов:

Объявление массивов

Массивы других типов:
Другой диапазон индексов:
Индексы других типов:

var X,

Y: array [1..10] of real;
C: array [1..20] of char;

var Q: array [0..9] of real;
C: array [-5..13] of char;

var A: array ['A'..'Z'] of real;
B: array [False..True] of integer;
...
A['C'] := 3.14259*A['B'];
B[False] := B[False] + 1;

Слайд 9

Массивы Объявление: Ввод с клавиатуры: Поэлементные операции: Вывод на экран: const

Массивы

Объявление:
Ввод с клавиатуры:
Поэлементные операции:
Вывод на экран:

const N = 5;
var a:

array[1..N] of integer;
i: integer;

for i:=1 to N do begin
write('a[', i, ']=');
read ( a[i] );
end;

a[1] =
a[2] =
a[3] =
a[4] =
a[5] =

5
12
34
56
13

for i:=1 to N do a[i]:=a[i]*2;

writeln('Массив A:');
for i:=1 to N do write(a[i]:4);

Массив A:
10 24 68 112 26

Слайд 10

Практическая работа Заполнить массив М, состоящий из 9 элементов числами 3,

Практическая работа

Заполнить массив М, состоящий из 9 элементов числами 3, 4,

7, 9, 19, 23, 24, 27, 39 и вывести его на экран.
Слайд 11

program qq; var М: array [1..9] of integer; i: integer; begin

program qq;
var М: array [1..9] of integer; i: integer;
begin
writeln('Исходный массив:');

for i:=1 to 9 do begin
write('M[', i, ']=');
read (M[i]);
end;
end.
Слайд 12

program qq; const N: integer; var М: array [1..N] of integer;

program qq;
const N: integer;
var М: array [1..N] of integer; i: integer;
begin

writeln('Исходный массив:');
for i:=1 to N do begin
write('M[', i, ']=');
read (M[i]);
end;
end.
Слайд 13

Заполнить массив и вывести его на экран М [9] числами 3,

Заполнить массив и вывести его на экран
М [9] числами 3, 4,

7, 9, 19, 23, 24, 27, 39.
Е [10] числами 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
В [11] числами 1, 8, 9, 10, 15, 21, 23, 24, 19, 64, 63
А[10] числами 1, 7, 12, 14, 96, 49, 63, 54, 13, 22
L[9] числами 105, 126, 134, 176, 181, 193, 132, 144, 156
В [7] числами 4, 5, 6, 7, 9, 16, 25
А [8] числами 9, 11, 13, 29, 39, 23, 41, 46
L [11] числами 33, 35, 37, 36, 41, 42, 44, 47, 49, 52, 53
К [10] числами 81, 82, 83, 91, 92, 93, 41, 42, 43, 50
С [8] числами 2, 1, 3, 4, 5, 9, 11, 14
К [9] числами 54, 55, 56, 57, 66, 67, 68, 75, 76

Выполните задания самостоятельно

Слайд 14

Заполнение массива случайными числами «Случайным называется число, появление которого не связано

Заполнение массива случайными числами

«Случайным называется число, появление которого не связано ни

с какой закономерностью. Например, случайным является число, выпадающее при бросании кубика для игры в кости. А сам кубик можно рассматривать как генератор случайных чисел. Во всех языках программирования реализованы генераторы случайных чисел.
Слайд 15

В Паскале для «включения» генератора случайных чисел используется функция Randomize, а

В Паскале для «включения» генератора случайных чисел используется функция Randomize, а

само случайное число можно получить, если использовать функцию Random.
Например: у:=Random(x);
Здесь у — целое случайное число в интервале от 0 до х— 1, х — целое число, задающее верхнюю границу интервала случайных чисел.
Чтобы получить случайное число в интервале от А до В (А < В), надо использовать следующее присваивание:
у:=Random(B-A+l)+A;
Слайд 16

Заполнить массив М, состоящий из 9 элементов случайными числами в интервале

Заполнить массив М, состоящий из 9 элементов случайными числами в интервале

от 50 до 150 и вывести его на экран.

program qq;
сonst N =9;
var М: array [1..9] of integer;
i: integer;
begin
writeln('Исходный массив:');
for i:=1 to 9 do begin
M[i] := random(100) + 50;
write( M[i]:4);
end;
end.

Заполнение массива случайными числами

Слайд 17

Заполнить массив случайными числами в заданном интервале вывести его на экран

Заполнить массив случайными числами в заданном интервале вывести его на экран

Z[30]

от 2 до 49.
L[15] от 10 до 40
С[10] от 5 до 15
Z[30] от 20 до 76
М[40] от 10 до 60

В[30] от 6 до 55
D[40] от 1 до 50
А[20] от 3 до 59
М[20] от 1 до 33
С[24] от 10 до 46
К [22] от 2 до 42

Выполните задания самостоятельно

Слайд 18

Заполнение массива константами элементы массива — константы. В этом случае заполнение

Заполнение массива константами

элементы массива — константы.
В этом случае заполнение происходит в

разделе const. В этом разделе после описания массива надо в круглых скобках через запятую указать конкретные значения элементов. Например, рассмотрим такую задачу: заполнить массив К[8] константами: 4, 6, 90, 23, 56, 79, 34, 12. Решение будет таким:
const К: array[1..8] of Integer = (4, 6, 90, 23, 56, 79, 34, 12);
Вывод массива осуществляется в самой программе так же, как было рассмотрено ранее
Слайд 19

Заполнение массива константами program qq; сonst М: array [1..8] of integer=(4,

Заполнение массива константами

program qq;
сonst М: array [1..8] of integer=(4, 6, 90,

23, 56, 79, 34, 12);
var i: integer;
begin
writeln('Исходный массив:');
for i:=1 to 8 do begin
write(‘M[', i, ']=‘,M[i]:4);
end;
end.
Слайд 20

Выполните задания самостоятельно написать программу решения следующей задачи: «Заполнить и вывести

Выполните задания самостоятельно

написать программу решения следующей задачи: «Заполнить и вывести массив,

элементы которого константы», а также реализовать написанную программу на компьютере.
Слайд 21

Заполнение массива, элементы которого связаны некоторой закономерностью элементы массива связаны некоторым

Заполнение массива, элементы которого связаны некоторой закономерностью
элементы массива связаны некоторым

законом.
Элементы массива — нечетные положительные числа от 1 до 23, т. е. массив состоит из чисел 1, 3, 5, 7, 9, ... , 23, т.е.значение элемента связано с его индексом по закону: М[1] = 2*1—1 для I от 1 до 12. Количество элементов такого массива можно посчитать по формуле:
n = (23 — 1)/2 + 1.
Элементы массива — положительные четные числа, то используется другое соотношение: М[1] = 2*1, количество элементов вычисляется аналогично.
Слайд 22

Заполнить массив нечетными целыми числами в интервале от 1 до 41

Заполнить массив нечетными целыми числами в интервале от 1 до 41

и вывести его на экран.
В этой задаче надо посчитать количество элементов массива по формуле n = (41-1)/2 + 1 = 21.
Остальное решение не требует пояснения, и можно сразу написать программу:

Program prim;
var
b: array[1..21] of Integer;
j: Integer;
Begin
for j:=1 to 21 do b[j]:=2*j-l
for j:=1 to 21 do Write(b[j], ' ');
Readln;
end.

Слайд 23

Вам передали набор показаний температуры, которые снимались в течение июня месяца

Вам передали набор показаний температуры, которые снимались в течение июня

месяца текущего года. Написать программу, анализирующую эти данные. а) средняя температура в июне; б) число дней, в которых температура была выше 23 градусов.

Program Temperature;
var
t : array[1..30] of integer;
k ,i : integer; s : real;
begin
for i := 1 to 30 do
begin
write('Введите температуру в ',i,' - день '); readln(t[i]);
end;
s := 0; k := 0;
for i := 1 to 30 do
begin
s := s + t[i];
if t[i] > 23 then k := k + 1;
end;
writeln('Средняя температура в июне ', s/30:5:2);
writeln('Число дней с температурой больше 23 град. ', k)
end.

Слайд 24

Составить программу подсчета суммы элементов массива из 20 чисел, имеющих четные

Составить программу подсчета суммы элементов массива из 20 чисел, имеющих четные

порядковые номера.

Функция random(2*k + 1) - k будет вырабатывать случайные целые числа из промежутка [-k, k], где k - натуральное число.
 Program Sum;
Const n = 20;
type t = array[1..n] of integer;
var a : t; s, i : integer;
begin
randomize;
writeln('Заданный массив целых чисел');
s := 0;
for i := 1 to n do
begin
a[i] := random(101)-50;
write(a[i], ' ');
if i mod 2 = 0 then s := s + a[i];
end;
writeln;
writeln('Сумма элементов с четными номерами равна ', s)
end.

Слайд 25

Самостоятельно Задан массив b(30). Замените в нём каждый элемент с четным

Самостоятельно

Задан массив b(30). Замените в нём каждый элемент с четным номером

числом 1, а с нечетным - 0. Составьте программу.
Написать программу определения количества элементов в данном массиве а1, а2, ..., а100, удовлетворяющих условию
Слайд 26

Длиной массива называется число его элементов. Числовой массив называется одномерным, если

Длиной массива называется число его элементов. Числовой массив называется одномерным, если его

можно записать в строку, т. е. он имеет одно измерение - длину. Очень часто одномерный массив называют вектором.
Слайд 27

Составить программу перестановки 3 - го и 5 - го элементов

Составить программу перестановки 3 - го и 5 - го элементов

одномерного массива.

Пусть задан произвольный массив целых чисел:
3 -12 45 16 -23 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
Необходимо переставить 5-й и 8-й элементы, т. е. -23 и 76.
если a[5] := a[8], то a[5] будет стерто
p := a[5] - "запоминается" 5 - й элемент,
a[5] := a[8] - на место пятого элемента "ставится" восьмой
a[8] := p - на место восьмого элемента "ставится" пятый.
Program perest_ind;
Const n=10;
a: array[1..10] of integer=(3,6,12,56,9,23,5,90,11,123);
Var i, p: integer;
Begin Write (‘заданный массив’);
For i:=1 to n do write(a[i],’ ‘);
p:=a[3]; a[3]:=a[5]; a[5]:=p;
For i:= 1 to n do write (a[i], ‘ ‘);
Write (‘до перест. инд. A[3] и a[5] = ‘, a[5],’ ‘,a[3],’после = ’, a[3],a[5]);
Readln; end.

Слайд 28

Составить программу перестановки m - го и k - го элементов

Составить программу перестановки m - го и k - го элементов

одномерного массива.

Program perest;
Const n = 10;
type
t = array[1..n] of integer;
var a: t; k, m : integer;
begin
randomize;
writeln('Заданный массив целых чисел');
for i := 1 to n do
begin
a[i] := random(201) - 100;
write(a[i], ' ');
end;
Write (‘введите номера k, m’);
Readln (k,m);
p := a[k]; a[k] := a[m]; a[m] := p;
for i := 1 to n do write(a[i], ' ');
readln;
end.

Слайд 29

Переставить указанный пользователем элемент массива в начало, т. е. на первое

Переставить указанный пользователем элемент массива в начало, т. е. на первое

место, последовательно переставляя его с соседними элементами.

Пусть задан массив, в котором по заданию пользователя надо переставить пятый элемент на первое место с помощью последовательной перестановки его с соседними элементами.
3 - 12 45 16 -23 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
Этот процесс будет выглядеть так: переставляются 4 - й и 5 - элементы, получается массив:
3 -12 45 -23 16 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9];
переставляются 3 - й и 4 - элементы, получается:
3 -12 -23 45 16 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9];
переставляются 2 - й и 3 - й элементы, получается:
3 -23 -12 45 16 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9];
и, наконец, переставляются 1 - й и 2 - й элементы:
-23 3 -12 45 16 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9];
for i := k downto 2 do
begin
p := a[i-1]; a[i-1] := a[i]; a[i] := p
end

Слайд 30

Program Perest_elem _mass; const n = 20; type t = array[1..n]

Program Perest_elem _mass;
const n = 20;
type t

= array[1..n] of integer;
var a : t; i, k, p: integer;
begin
randomize;
writeln('Заданный массив целых чисел');
for i := 1 to n do
begin
a[ i ] := random(201) - 100; write (a[ i ], ' ') ;
end;
Writeln(‘введите номер переставляемого элемента’); readln(k);
for i := k downto 2 do
begin
p := a[ i -1]; a[ i -1] := a[ i ]; a[ i ] := p;
end;
writeln('Массив после перестановки элемента в начало');
for i := 1 to n do write(a[ i ], ' ');
readln;
end.
Слайд 31

1. Измените программу так, чтобы заданный элемент перемещался в конец массива

1. Измените программу так, чтобы заданный элемент перемещался в конец массива

(на последнее место).
2. Д/з Измените программу, чтобы она последовательно перемещала два рядом стоящих элемента a[k] и a[k + 1] в начало массива.
Слайд 32

1. В одномерном массиве найдите число отрицательных элементов массива. 2. Дан

1. В одномерном массиве найдите число отрицательных элементов массива.
2. Дан

массив c(n). Найдите число положительных элементов этого массива и выведите на экран их индексы и сами элементы.
3. Написать программу вычисления суммы тех элементов целочисленного массива n0, n1, ..., n100, которые являются четными числами.
Слайд 33

Сортировка массива – это расположение массива по возрастанию или по убыванию

Сортировка массива – это расположение массива по возрастанию или по убыванию

Пузырьковая сортировка

3 - 12 45 16 -23 4 -5 76 -34
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
for i := 2 to n do begin
for j:= n downto I do begin
if a [ j ] < a [ j-1 ] then
p:= a[ j ]
a[ j ]:=a [ j - 1];
a [ j - 1]:=p;
end;
end;
writeln('Массив после перестановки элемента');
for i := 1 to n do write(a[ i ], ' ');
readln;
end.

Слайд 34

Удалить элемент из одномерного массива, заданного датчиком случайных чисел Program udalenie;

Удалить элемент из одномерного массива, заданного датчиком случайных чисел

Program udalenie;
Const n=10;
Var

a:array [1..n] of integer; I, k, n: integer;
Begin
Randomize;
Writeln(‘Заданный массив’);
For i:=1 to n do begin
a[ i ]:= random (67) – 33;
Write (a [ i ]), ‘ ‘);
end;
Writeln(‘ Введите номер удаляемого элемента’);
Readln(k);
For i:= 1 to n-1 do begin
if i>= k then a[ i ] := a [ i +1];
end;
a[ n ]:= 0;
For i:= 1 to n-1 do write (a [ I ], ‘ ‘ );
Readln;
end.