Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемДиана Шумахер
1 Подведение итогов г. Н.Новгород школа 58
2 набор переменных одного типа, имеющее одно общее имя. количество элементов в массиве. число индексов, которые определяют элемент массива. Блиц-опрос! Опр-е: Массив – это Массивы характеризуются двумя параметрами: Размер массива – это Размерность массива – это В зависимости от размерности массивы бывают: одномерные (линейные), двумерные, трёхмерные и т.д.
3 Описание массива: Var Mas1: array [1.. 30] of integer; {пример описания линейного массива из 30 целых чисел} Mas2: array [1.. 10, ] of real; {пример описания двумерного массива из 200 действительных чисел}
4 Способы задания значений элементов массива 1) Ввод с клавиатуры. For i:=1 to 10 do begin Write(введите,i,-ый элемент массива ); Readln(a[i]); end; 2) С помощью массива констант Const n=10; cr:array [1..n] of Integer=(25,22,19,21,37,12,40,40,35,20); Var i: Integer; r: array [1..n] of Integer; Begin for i:=1 to n do r[i]:=cr[i]; {используются для небольших массивов}
5 3) Заполнение по формуле, например с использованием генератора случайных чисел RANDOMIZE; For i:=1 to 10 do a[i]:=Random(25)-10; Вывод массива. For i:=1 to 10 do writeln(a[i]); For i:=1 to 10 do write(a[i], ); {массив заполнится числами в диапазоне от -10 до 15, формула: Random(b-a) + a} {в столбик} {в строчку}
6 1. Сколько элементов в каждом из следующих массивов? а) var c: array[2..20] of integer; б) type myarray1=array[0..8] of integer; myarray2=array[-5..5] of integer; var a: myarray1; b: myarray2; 2. Используя описание массивов из предыдущего пункта, определить, какие из приведенных обращений к элементам массивов неправильные и почему. а) c[3]; б) myarray1[2]; в) a[6]; г) b[6]; д) a[0]; е) b[0]; ж) b[-3]; з) a[-3]; и) c[1];
7 3. Какие из приведенных описаний одномерных массивов являются правильными? а) var a: array[1..20] of integer; б) var sd : array[1..n] of intiger; в) type myarray: array[1..20] of real; var a: myarray; г) var dd: array[1] of integer;
8 4. Имеются описания : var a: array[1..30] of real; b: array[-2..2] of integer; c: array[0..3] of string; а) для каждого из массивов a,b,c указать сколько в нем элементов; б) указать какие значения элементов не могут быть значениями элементов массива a, b, c A 5
9 5. Сколько элементов таблицы сохранят свои значения после исполнения программы, если исходная таблица А: 3, 7, -2, -1, 2, -0.5, 1, -1, 0 p:=1; for i:=1 to 9 do begin p:=p*a[i]; if p
10 6. Сколько элементов таблицы станут иметь значения -1 после исполнения фрагмента программы, если исходная таблица А: 3, 7, -2, -8, 4, -11, 12, -1, 0 а) for i:=1 to 5 do a[2*i-1]:=-1; Ответ: б) for i:=1 to 9 do begin if a[i]<0 then a[i]:=-1; if a[i]>0 then a[i]:=1; end; Ответ: а(1), а(5),а(7),а(9),а(8) – 6 а(3), 4
11 Определить: а) сколько жильцов в доме и каково среднее их число на одну квартиру; б) сколько в доме квартир, в которых проживает более 17 человек, вывести на экран номера этих квартир и число жильцов в них; определить среднее число жильцов в этих квартирах; в) есть ли в доме пустующие квартиры, вывести их номера; г) сколько квартир, в которых проживает от 5 до 10 человек; д) сколько в доме квартир, в которых количество жильцов больше, чем среднее число жильцов на одну квартиру в этом доме, вывести номера в строку; е) найти квартиру, в которой проживает наибольшее количество жильцов; ж) вывести все квартиры, в которых проживает наибольшее количество жильцов и число таких квартир; з) сколько жильцов проживает в квартирах с четными номерами; и) какое количество жильцов встречается наиболее часто, сколько таких квартир; к) расставить квартиры в порядке убывания количества жильцов в них; л) сколько жильцов проживают на 9-м этаже (в доме 6 подъездов, на каждом этаже по 4 квартиры), сколько человек проживает в каждом подъезде. Задача: массив А(N) содержит информацию о жильцах многоквартирного девятиэтажного дома (квартир 216, число жильцов в квартирах от 0 до 20)
12 Введём обозначения и опишем исходные данные: 1. Массив А(N) будет содержать информацию о жильцах многоквартирного девятиэтажного дома; 2. Величина N – это? и равно? 3. Вопрос на повторение: каков размер массива А? а размерность? 4. А чему равны значения элементов данного массива А? 5. А каким способом будем заполнять массив данными? количество квартир в доме – массив линейный Целое случайное число из интервала от 0 до 20.
13 Получится примерно такое начало программы: Program Dom; Uses Crt; Const n=216; Var i: Integer; a: array [1..n] of Integer; Begin ClrScr; Randomize; For i:=1 to n do Begin a[i]:=Random(21); Write(a[i],' '); End; Перепишите в тетрадь! Readln; End. 0/ 0/
14 Среднее арифметическое элементов массива s:=0; For i:=1 to n do s:=s+a[i]; Writeln('сумма=',s); sr:=s/n; Write('среднее=',sr);
15 Анализ элементов массива Схема: S:=0; Р:=1; К:=0; For I:= нач. знач. То кон. знач. Do If условие Then Begin S:=S + A[I]; { сумма} P:=P * A[I]; { произведение} K:=K + 1; { подсчёт } Write (A[I], ); { вывод элемента массива } Write (I, ); { вывод номера элемента } End; Условия могут быть простыми: A[I] =3; A[I]<>A[j]; A[I]/2=A[I] div 2; A[I] mod 2=0 и составными: (A[I]>=40) And (A[I] 50)
16 Анализ элементов массива Задача: Найти произведение и номера всех элементов массива из интервала от 20 до 50 For I:= 1 То N Do If Then Begin End; Writeln; Writeln( Произведение равно,P); Р:=1; (A[i]>20) And (A[i]<50) P:=P * A[I]; {произведение} Write(I, ); {вывод номера элемента}
17 Анализ элементов массива Задача: Суммировать и подсчитать все кратные трём элементы массива For I:= 1 То N Do If Then Begin End; Writeln(Сумма равна,S); Writeln(Количество равно,K); S:=0; К:=0; A[i]/3=A(i] div 3 S:=S + A[I]; { сумма} K:=K + 1; { подсчёт}
18 Поиск и максимального (минимального) элементов массива. Max:=a[1]; Nmax:= 1; For i:= 2 To n Do If a[i] > Max Then begin Max:= a[i]; Nmax:= i; end; Writeln (макс. элемент равен, Max); Writeln (его номер равен, Nmax);
19 Поиск и максимального (минимального) элементов массива. Min:=32767; For i:= 1 To n Do If a[i] < Min Then begin Min:= a[i]; Nmin:= i; end; Writeln (минимальный элемент равен, Min); Writeln (его номер равен, Nmin);
20 Удаление М-го элемента program udalen; {Удаление m-го элемента} const n=100; var a: array[1..n] of integer; i,m: integer; {Формирование и вывод массива пропущены} Write(Введи номер удаляемого элемента ); Readln (m); For i := m+1 То n Do a[i-1] := a[i]; For i:=1 To n-1 Do Write (a[i], ); Пример: Пусть n=6, m=3 Массив: Цикл: For i:=4 To 6 Do A[3]:=a[4], a[4]:=a[5], a[5]:=a[6]; Массив: 17928
21 Удаление элемента массива Задача: Удалить максимальный элемент массива Max:=a[1]; Nmax:= 1; For i:= 2 To n Do If a[i] > Max Then begin Max:= a[i]; Nmax:= i; end; Writeln (макс. элемент равен, Max); Writeln (его номер равен, Nmax); Write(Введи номер удаляемого элемента); ReadLn(Nmax); For i:= Nmax+1 То N Do A[i-1]:= A(i);
22 program vstavka; {Вставка элемента с номером m} const n=100; var a: array[1..n ] of integer; i,m,b: integer; {Формирование и вывод массива пропущены} Write (Введите вставляемый элемент ); Readln (b); Write (Ведите его номер ); Readln (m); For i:=n DownTo m Do a[i+1]:=a[i]; a(m):= b; For i:=1 To n Do Write (a[i], ); Вставка элемента с номером М Пример: Пусть N=6, М=4, В=10 Мaccue: Цикл: For i:= б Down То 4 А[7]:=А[6], А[6]:=А[5], А[5]:=А[4] А[4]:= 10 Маccuв:
23 Перестановка местами L-го и М-го элементов массива: R:=A[L]; A[L]:=А[М]; А[М]:=R; Пример: Пусть А(5)=1, А(8)=0 R:=А[5]; = 1 А[5]:=А[8]; =0 А[8]:=R; =1 Теперь А(5)=0, А(8)=1
24 Сортировка линейного массива размером N в порядке возрастания методом «Пузырька» FOR I:= 1 TO N – 1 DO {СОРТИРОВКА} FOR J:= 1 TO N – I DO IF A[J]>A[J+1] THEN BEGIN R:= A[J]; A[J]:= A[J+1]; A[J+1]:= R; END;
25 Сортировка линейного массива размером N в порядке возрастания с выбором минимального элемента... FOR I:= 1 TO N – 1 DO BEGIN MIN:=A[I]; M:=I; FOR J:= I+1 TO N DO IF A[J]< MIN THEN BEGIN MIN:=A[J]; M:=J; END; R:= A[I]; A[I]:= A[M]; A[M]:= R; END;
26 Сортировка линейного массива размером n в порядке возрастания с перебором элементов массива: 1 2 n-2 n-1 А(1) А(2) А(3) … А(n-1) A(n)... FOR i := 1 TO n – 1 DO BEGIN FOR j := i + 1 TO n DO IF a[i] > a[j] THEN BEGIN r := a[i]; a[i] := a[j]; a[j] := r; END;...
27 {Отсортировать массив по возрастанию значения суммы цифр в записи числа} Program Sum123; Uses Crt; Const n=30; Var I,J,R: Integer; A: array [1..n] of Integer; Begin ClrScr; RANDOMIZE; For i:=1 to n do Begin A[i]:=Random(99)+1; Write(A[i],' '); End;...
28 FOR I:= 1 TO N - 1 DO FOR J:= I + 1 TO N DO BEGIN R:= A[I]; A[I]:= A[J]; A[J]:= R; END; WRITELN; WRITELN; {ВЫВОД НА ЭКРАН СОРТИРОВАННОГО МАССИВА} FOR I:= 1 TO N DO WRITE(A[I],' '); Readln; End. IF A[I] div 10 + A[I] mod 10 > A[J] div 10 + A[J] mod 10 THEN IF A[i] > A[j] THEN
29 Всё
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.