Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемКлавдия Янюшина
1 ОДНОМЕРНЫЕ МАССИВЫ. РАБОТА С ЭЛЕМЕНТАМИ СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ
2 Цели урока Получить представление о новом типе данных – регулярный тип (массив); Научиться заполнять массив данными различными способами; Формирование навыков решения задач в среде программирования Паскаль.
3 Основные понятия Регулярный тип данных; Массив; Элемент массива; Индекс элемента массива; Значение элемента массива; Объявление массива; Заполнение массива; Вывод массива
4 План урока Повторение (Тест «Символьные величины»); Объяснение новой темы; Решение задач; Проверка усвоения учебного материала; Практическая работа.
5 Массивы Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом. Особенности: все элементы имеют один тип весь массив имеет одно имя все элементы расположены в памяти рядом Примеры: список учеников в классе квартиры в доме школы в городе данные о температуре воздуха за год
6 Массивы 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[ ] of integer ;
8 Объявление массивов Массивы других типов: Другой диапазон индексов: Индексы других типов: var X, Y: array [1..10] of real; C: array [1..20] of char; 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 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'] := *A['B']; B[False] := B[False] + 1; var A: array ['A'..'Z'] of real; B: array [False..True] of integer;... A['C'] := *A['B']; B[False] := B[False] + 1;
9 Массивы Объявление: Ввод с клавиатуры: Поэлементные операции: Вывод на экран: const N = 5; var a: array[1..N] of integer; i: integer; 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; for i:=1 to N do begin write('a[', i, ']='); read ( a[i] ); end; a[1] = a[2] = a[3] = a[4] = a[5] = for i:=1 to N do a[i]:=a[i]*2; writeln('Массив A:'); for i:=1 to N do write(a[i]:4); writeln('Массив A:'); for i:=1 to N do write(a[i]:4); Массив A:
10 Практическая работа Заполнить массив М, состоящий из 9 элементов числами 3, 4, 7, 9, 19, 23, 24, 27, 39 и вывести его на экран.
11 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; i: integer; begin writeln('Исходный массив:'); for i:=1 to N do begin write('M[', i, ']='); read (M[i]); end; end.
13 Заполнить массив и вывести его на экран 1)М [9] числами 3, 4, 7, 9, 19, 23, 24, 27, 39. 2)Е [10] числами 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 3)В [11] числами 1, 8, 9, 10, 15, 21, 23, 24, 19, 64, 63 4) А[10] числами 1, 7, 12, 14, 96, 49, 63, 54, 13, 22 5)L[9] числами 105, 126, 134, 176, 181, 193, 132, 144, 156 6)В [7] числами 4, 5, 6, 7, 9, 16, 25 7)А [8] числами 9, 11, 13, 29, 39, 23, 41, 46 8)L [11] числами 33, 35, 37, 36, 41, 42, 44, 47, 49, 52, 53 9)К [10] числами 81, 82, 83, 91, 92, 93, 41, 42, 43, 50 10)С [8] числами 2, 1, 3, 4, 5, 9, 11, 14 11)К [9] числами 54, 55, 56, 57, 66, 67, 68, 75, 76 Выполните задания самостоятельно
14 Заполнение массива случайными числами «Случайным называется число, появление которого не связано ни с какой закономерностью. Например, случайным является число, выпадающее при бросании кубика для игры в кости. А сам кубик можно рассматривать как генератор случайных чисел. Во всех языках программирования реализованы генераторы случайных чисел.
15 В Паскале для «включения» генератора случайных чисел используется функция Randomize, а само случайное число можно получить, если использовать функцию Random. Например: у:=Random(x); Здесь у целое случайное число в интервале от 0 до х 1, х целое число, задающее верхнюю границу интервала случайных чисел. Чтобы получить случайное число в интервале от А до В (А < В), надо использовать следующее присваивание: у:=Random(B-A+l)+A;
16 Заполнить массив М, состоящий из 9 элементов случайными числами в интервале от 50 до 150 и вывести его на экран. program qq; const 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 Заполнить массив случайными числами в заданном интервале вывести его на экран 1)Z[30] от 2 до 49. 2)L[15] от 10 до 40 3)С[10] от 5 до 15 4)Z[30] от 20 до 76 5)М[40] от 10 до 60 6)В[30] от 6 до 55 7)D[40] от 1 до 50 8)А[20] от 3 до 59 9)М[20] от 1 до 33 10)С[24] от 10 до 46 11)К [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; const М: 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*11 для I от 1 до 12. Количество элементов такого массива можно посчитать по формуле: n = (23 1)/ Элементы массива положительные четные числа, то используется другое соотношение: М[1] = 2*1, количество элементов вычисляется аналогично.
22 Заполнить массив нечетными целыми числами в интервале от 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 чисел, имеющих четные порядковые номера. Функция 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 Самостоятельно 1. Задан массив b(30). Замените в нём каждый элемент с четным номером числом 1, а с нечетным - 0. Составьте программу. 2. Написать программу определения количества элементов в данном массиве а 1, а 2,..., а 100, удовлетворяющих условию
26 Длиной массива называется число его элементов. Числовой массив называется одномерным, если его можно записать в строку, т. е. он имеет одно измерение - длину. Очень часто одномерный массив называют вектором.
27 Составить программу перестановки 3 - го и 5 - го элементов одномерного массива. Пусть задан произвольный массив целых чисел: 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 - го элементов одномерного массива. 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 Переставить указанный пользователем элемент массива в начало, т. е. на первое место, последовательно переставляя его с соседними элементами. Пусть задан массив, в котором по заданию пользователя надо переставить пятый элемент на первое место с помощью последовательной перестановки его с соседними элементами a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] Этот процесс будет выглядеть так: переставляются 4 - й и 5 - элементы, получается массив: a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; переставляются 3 - й и 4 - элементы, получается: a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; переставляются 2 - й и 3 - й элементы, получается: a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; и, наконец, переставляются 1 - й и 2 - й элементы: 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] 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. Измените программу так, чтобы заданный элемент перемещался в конец массива (на последнее место). 2. Д/з Измените программу, чтобы она последовательно перемещала два рядом стоящих элемента a[k] и a[k + 1] в начало массива.
32 1. В одномерном массиве найдите число отрицательных элементов массива. 2. Дан массив c(n). Найдите число положительных элементов этого массива и выведите на экран их индексы и сами элементы. 3. Написать программу вычисления суммы тех элементов целочисленного массива n 0, n 1,..., n 100, которые являются четными числами.
33 Сортировка массива – это расположение массива по возрастанию или по убыванию Пузырьковая сортировка 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; writeln('Массив после перестановки элемента'); for i := 1 to n do write(a[ i ], ' '); readln; end.
34 Удалить элемент из одномерного массива, заданного датчиком случайных чисел 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.
35 Вставка элемента в одномерный массив, заданного датчиком случайных чисел Program udalenie; Const n=11; Var a:array [1..n] of integer; i, k, r, n: integer; Begin Randomize; Writeln(Заданный массив); For i:=1 to n -1 do begin a[ i ]:= random (67) – 33; Write (a [ i ]), ); end; Writeln( Введите номер и значение вставляемого элемента); readln (k, r); Readln(k,r ); For i:= K+1 to N do begin a[ i ] := a [ i-1]; end; a[ k ]:= r; For i:= 1 to n do write (a [ I ], ); Readln; end.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.