Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемОксана Малявко
1 М А С С И В Ы. © МОУ СОШ 13
2 22 Массив это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти. Одномерные массивы Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным. Или это таблица, состоящая только из одной строки.
3 33 Массив в Паскале := array [ ] of ; Каждый элемент массива в общем виде описывается как А[I], где А - имя массива, I - номер или индекс массива (0<=I<=N), A[I] - значение элемента массива. Пример объявления массива: program mas1; var a: array [1..10] of integer; i: integer; Begin..
4 44 Способы заполнения массива. 1) по формуле; 1) по формуле; 2) ввод с клавиатуры. 2) ввод с клавиатуры. 3) заполнение константами: Const F = 5; //в разделе 3) заполнение константами: Const F = 5; //в разделе B : array [1..F] of integer = (5,4,-2, 8, 13); //описания Сonst B : array [1..F] of integer = (5,4,-2, 8, 13); //описания Сonst Заполнить массив К(13) константами. Найти количество эл-тов, кратных 7 и сумму эл-тов < 7. Распечатать массив. mas_s14.pas
5 55 Пример 6. Набрать программу нахождения суммы всех элементов массива. Program massiv; Const n=10; Var a:array[1..n] of integer; s, i: integer; Begin s:=0; WriteLn('Исходный массив:'); For i:=1 to n do begin a[ I ]:=random(10); s:=s + a[ I ]; Write('a[, i, ']=, a[ I ],' '); end; WriteLn('Сумма эл-тов S = ', s); end. Изменить программу так, чтобы: 1) массив состоял из 15 элементов вещественного типа; 2) сумма элементов выводилась на отдельной строке. 3) значения элементов массива должны меняться в интервале от 0 до 5; 4) при запуске программы формировалась новая последовательность случайных чисел; 5) в результате выполнения программы должно быть найдено произведение всех элементов массива, а не их сумма. 6) распечатать массив в столбец. Massiv.pas
6 66 Задача 7: Сформировать массив М из 15 целых чисел вводом с клавиатуры. Заменить элементы < 5 пятёрками. Вычислить сумму элементов и среднее арифметическое. Распечатать массив. алг 7 (цел таб M[1:15], цел S,N; вещ SR) арг M[i] рез S,SR нач S:=0, SR:=0, N=15 для I от 1 до N ввод M(i) если M(i) < 5 то M(i) = 5 всё S:=S+M(i) кц для I от 1 до N вывод M(i) кц SR:=S/N (вычисление среднего арифметического) вывод S, SR кон !!! Составить программу самостоятельно. Mas7.pas
7 77 Задача 8: Заполнить одномерный массив случайными числами. Найти МАХ элемент и его номер. Распечатать массив в строку. алг 8 (вещ таб V[1:N], вещ МАХ, цел I, Imax;) арг V[i]; N=20 рез MAX, Imax нач Заполнить и распечатать исходный массив. МАХ = V(1); Imax = 1 для I от 1 до N если MAX < V(i) то MAX = V(i); Imax = i всё кц вывод MAX, Imax кон Max_1. pas !!! Составить программу самостоятельно.
8 8 ПОДГОТОВКА К САМОСТОЯТЕЛЬНОЙ РАБОТЕ ( ОДНОМЕРНЫЙ МАССИВ ). ПОДГОТОВКА К САМОСТОЯТЕЛЬНОЙ РАБОТЕ ( ОДНОМЕРНЫЙ МАССИВ ). 1. Заполнить массив F(55) по формуле 2*I + i/3. Найти : произведение элементов 100. Распечатать массив в строку. 2. Заполнить целочисленный массив В(7) вводом с клавиатуры. Найти сумму отрицательных элементов. Найти сумму отрицательных элементов. Распечатать массив. Распечатать массив. 3. Заполнить массив С (10) константами: 14, 33, -8, 77, 55, 62, 38, -13, 99, -21. Найти количество отрицательных чисел и вывести на печать числа, кратные 11. Найти количество отрицательных чисел и вывести на печать числа, кратные MAS_S11 MAS_S12 MAS_S13
9 9 ДОПОЛНИТЕЛЬНЫЕ ЗАДАЧИ: 9 1. Сумму элементов массива с i1-го по i2-й (i1 и i2 вводить с клавиатуры). 2. Произведение всех четных элементов массива, имеющих четны номера. 3. Произведение элементов, имеющих нечетное значение. И сумму элементов, имеющих нечетные индексы. 4. Индексы тех элементов, значения которых больше значения предыдущего элемента (начиная со второго). 5. Найти пару соседних элементов с суммой, равной заданному числу. 6. Есть ли в данном массиве два соседних положительных элемента? Найти номера первой (последней) пары. sosedn.pas
10 10 ДОПОЛНИТЕЛЬНО: 1-й МАССИВ. 1. Для одномерного массива определить и вывести на экран номер первого элемента с наибольшим значением и номер последнего элемента с наименьшим значением. 2. Найти одинаковые элементы массива и их индексы. 3. Найти максимальное количество подряд идущих совпадающих элементов. (С2_08)
11 1111 Двумерные массивы Двумерный массив – таблица, состоящая из нескольких строк. Элемент матрицы обозначается как A(I,J), где А имя массива, I индекс (номер) строки, J индекс (номер) столбца.. В Паскале двумерный массив кодируется : : array [, ] of ]. var a : array[1..3, 1..5] of real;
12 1212 Соотношение индексов в квадратной матрице I=J элементы матрицы расположены на главной диагонали I< J элементы матрицы расположены над главной диагональю I>J элементы матрицы расположены под главной диагональю I+J = N+1 элементы матрицы расположены на побочной диагонали (N количество строк или столбцов в квадратной матрице) I+J < N+1 элементы матрицы расположены над побочной диагональю I+J > N+1 элементы матрицы расположены под побочной диагональю.
13 1313 З АДАЧА 9: Заполнить и распечатать в виде таблицы двумерный массив А(4,4). Вычислить: 1) сумму элементов главной диагонали S; 2) произведение элементов 4-го столбца P4; 3) сумму элементов 2-й строки S1. алг вычисление суммы и произведения (цел таб А[1:4,1:4], цел S,S2,P4) рез S,S2,P4 арг А [i,j] нач S:=0, S2:=0, P4:=1 1) сформировать массив А [1:4,1:4] случайными числами 2) распечатать исходный массив (от 0 до 7) для I от 1 до 4 S:= S + A [i, i] P4:=P4 * A[i,4] S2:=S2+A[2,i] кц вывод S, P4, S2 кон MAS_9.pas
14 1414 Program MAS_9; Uses CRT; Const N=4; var a: array [1..4, 1..4] of integer ;{ = (1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16); } var S,S2,P4,i,j: integer; BEGIN ClrScr; RANDOMIZE; S:=0; S2:=0; P4:=1; for i:=1 to N do begin for j:=1 to N do begin a[i,j]:=random(7); write(a[i,j],' '); end; writeln; end; for i:=1 to N do begin S:=S+a[i,i]; P4:=P4*a[i,4]; S2:=S2+a[2,i]; end; writeln; writeln('S= ',S, ' P4=',P4, ' S2=',S2); readln; END.
15 1515 ЗАДАЧА 10: Создать массивL (4,4) по формуле: L(i, j) = I 2 - 2*j. Найти количество положительных элементов главной диагонали. Найти сумму элементов, кратных 7. Распечатать массив в виде таблицы. MAS_10. pas !!! Составить алгоритм и программу самостоятельно.
16 1616 З АДАЧА 11: Найти максимальные элементы двумерного массива и их количество. Распечатать массив в виде таблицы. алг кол-во МАХ (ваш таб А[1:3,1:3], вещ МАХ, цел К) арг А [i,j] рез MAX, K нач MAX:=0, K:=0 сформировать массив А[1:3,1:3] вводом с клавиатуры MAX:=A[1,1], K=1 для I от 1 до 3 для J от 1 до 3 если А[i,j] = MAX то К:=K+1 все если A[i,j] > MAX то MAX:=A[i,j], K:=1 все вывод А[i,j] кц перевод строки кц вывод MAX, K кон KOL_MAX.pas
17 1717 Program KOL_MAX; Uses Crt; const n=3; var A:array[1..N,1..N] of real; i,j,k:integer; MAX: real; BEGIN ClrScr; MAX:=0; K:=0; writeln(' ввести значения таблицы'); for i:=1 to N do for j:=1 to N do read (a[i,j]); (*подсчёт МАХ и печать таблицы *) max:=a[1,1]; for i:=1 to n do for j:=1 to n do begin if a[i,j] = max then k:=k+1; if a[i,j] > max then begin max:=a[i,j]; k:=1 end; writeln; writeln ('печать исходной таблицы'); for i:=1 to n do begin for j:=1 to n do write (a[i,j]:5:2,' '); writeln; end; writeln; writeln('MAX= ',MAX:5:2); write('K= ',k) END.
18 18 ЗАПИСИ (тип данных). ЗАПИСЬ - представляет собой совокупность ограниченного числа данных различного типа. В записи под одним именем объединяются данные разных типов. Запись удобно использовать для объявления табличных данных. В отличие от массива, компоненты записи могут иметь разные типы, и доступ к ним осуществляется не по индексу, а по составному имени. Например, оформление ведомости (список фамилий, имён, оценок … var a:array[1..3] of record name : string; c : integer; end;
19 19 Program ZAP_; Uses Crt; var a:array[1..3] of record name:string; oc:integer; end; i:integer; c:char; begin ClrScr; for i:=1 to 3 do begin a[i].name:=''; {очистка ячейки для каждой фамилии} writeln('ввод фамилии (пробел в конце)'); repeat read(c); a[i].name:=a[i].name+c until c=' '; {считана фамилия} writeln('ввести имя (пробел в конце)'); repeat read(c); a[i].name:=a[i].name+c until c=' '; {считано имя} write('оценка '); readln(a[i].oc); end; writeln; writeln('печать списка'); for i:=1 to 3 do writeln(a[i].name,' ',a[i].oc); readkey; end.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.