370 likes | 625 Views
Массивы. 10 класс. Ксш №4 Степанов П.Г. Массивы (разбивка по часам). Определение массива. Описание массива в Паскале. Способы заполнения. Нахождение суммы элементов массива. Нахождение произведения элементов массива. Нахождение элементов массива по какому-либо признаку.
E N D
Массивы 10 класс Ксш №4 Степанов П.Г.
Массивы(разбивка по часам) • Определение массива. Описание массива в Паскале. Способы заполнения. • Нахождение суммы элементов массива. • Нахождение произведения элементов массива. • Нахождение элементов массива по какому-либо признаку. • Сортировка элементов массива. Выход из программы
Урок 1 Определение массива. Описание массива. Способы заполнения массива.
Организованная толпа 1 2 3 1 1 2 3 1 1 2 2 3 2 4 3 5 5 4 4 4 3 4 5 5 5
A[4] Массив- упорядоченная совокупность однотипных элементов, объединенных одним именем.Массив определяется именем (идентификатором) и количеством размерностей (координат), необходимых для указания местонахождения требуемого элемента. Одномерный массив (вектор) Направление изменения индекса
Двумерный массив (матрица) Направление изменения второго индекса Направление изменения первого индекса A[2,3]
задать имя массива • указать номер первого и последнего элементов массива • указать тип элементов массива. Например: Описать массив, это значит: • var • a: array [1..10] of real;
1 способ (в программе) Program Proba; var a: array [1..5] of integer; begin a[1]:=5; a[2]:=-4; a[3]:=0; a[4]:=-2; a[5]:=13; end.
2 способ (с клавиатуры) Program Proba; var i:integer; a: array [1..5] of integer; begin for i:=1 to 5 do begin write (‘Введите число ’); readln(a[i]); end; end.
3 способ (функцией) Program Proba; var i:integer; a: array [1..5] of integer; begin for i:=1 to 5 do a[i]:=sqr(i); end.
4 способ (раздел описания констант) Program Proba; const a: array [1..5] of integer = (3,67,-9,6,45); var i:integer; begin for i:=1 to 5 do writeln( a[i] ); end.
5 способ (псевдогенератором случайных чисел) Program Proba; var i:integer; a: array [1..5] of integer; begin randomize; for i:=1 to 5 do a[i]:= random(8); end.
Найди ошибку! Program Proba; const a: array [1..5] of integer = (3,67,-9,6,45) begin for i:=1 to 5 do writeln( a[i] ); end.
Найди ошибку! Program Proba; const a: array of integer = (3,67,-9,6,45); var i:integer; begin for i:=1 to 5 do writeln( a[i] ); end;
Массивы Урок 2 Нахождение суммы элементов массива. Задача.Найти сумму арифметического ряда чисел.S=23+1+4+43+56+23+56+4
Задача.Найти сумму арифметического ряда чисел.S=23+1+4+43+56+23+56+4 Program summa; var a: array[1..8] of integer; i,s: integer; begin s:=0; for i:=1 to 8 do begin write(‘введите ‘,i,’-число’); readln(a[i]); end; for i:=1 to 8 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 8 do s:=s+a[i]; writeln(‘s=‘,s); end.
Задача.Найти сумму арифметического ряда чисел.S=23+1+4+43+56+23+56+4 Program summa; var a: array[1..8] of integer; i,s: integer; begin s:=0; for i:=1 to 8 do begin write(‘введите ‘,i,’-число’); readln(a[i]); end; for i:=1 to 8 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 8 do s:=s+a[i]; writeln(‘s=‘,s); end.
Задача.Найти сумму арифметического ряда чисел.S=23+1+4+43+56+23+56+4 Program summa; var a: array[1..8] of integer; i,s: integer; begin s:=0; for i:=1 to 8 do begin write(‘введите ‘,i,’-число’); readln(a[i]); end; for i:=1 to 8 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 8 do s:=s+a[i]; writeln(‘s=‘,s); end.
Задача.Найти сумму арифметического ряда чисел.S=23+1+4+43+56+23+56+4 a[1]=23 a[2]=1 a[3]=4 a[4]=43 a[5]=56 a[6]=23 a[7]=56 a[8]=4 Program summa; var a: array[1..8] of integer; i,s: integer; begin s:=0; for i:=1 to 8 do begin write(‘введите ‘,i,’-число’); readln(a[i]); end; for i:=1 to 8 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 8 do s:=s+a[i]; writeln(‘s=‘,s); end.
Задача.Найти сумму арифметического ряда чисел.S=23+1+4+43+56+23+56+4 23 1 4 43 56 23 56 4 Program summa; var a: array[1..8] of integer; i,s: integer; begin s:=0; for i:=1 to 8 do begin write(‘введите ‘,i,’-число’); readln(a[i]); end; for i:=1 to 8 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 8 do s:=s+a[i]; writeln(‘s=‘,s); end. 210 s
Задача.Найти произведение арифметического ряда чисел.P=3*11*4*3*6*3*5*4 Program proiz; var a: array[1..8] of integer; i,p: integer; begin p:=1; for i:=1 to 8 do begin write(‘введите ‘,i,’-число’); readln(a[i]); end; for i:=1 to 8 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 8 do p:=p*a[i]; writeln(‘p=‘,p); end.
Массив Урок 3 Нахождение элементов массива по какому-либо признаку.
Найти произведение всех элементов массива не равных нулю (т.к. в противном случае произведение всегда будет равно 0). Массив из 10 элементов, заполняется псевдогенератором случайных чисел. Program proizv; var a:array[1..10] of integer; i,p: integer; begin randomize; p:=1; for i:=1 to 10 do a[i]:=random(101)-50; for i:=1 to 10 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=1 to 10 do if a[i]<>0 then p:=p*a[i]; writeln(‘p=‘,p); End.
Определить число учеников в группе, чей рост выше среднего. Воспользоваться программой, составленной на первом уроке по теме «Массивы» . . . for i:=1 to 10 do writeln(‘Рост ‘,i,’ ученика‘,Rost[i]); for i:=1 to 10 do s:=s+Rost[i]; sr_rost:=s/10; n:=0; for i:=1 to 10 do if Rost[i]>sr_rost then n:=n+1; writeln(‘n=‘,n); end.
Найти и вывести на экран порядковые номера учеников, чей рост ниже среднего. … for i:=1 to 10 do writeln(‘Рост ‘,i,’ ученика‘,Rost[i]); for i:=1 to 10 do s:=s+Rost[i]; sr_rost:=s/10; for i:=1 to 10 do if Rost[i]<sr_rost then writeln(i); end.
МассивыУрок 4 Сортировка выбором 1. Проверка домашнего задания 2. Задача 13. Задача 2 Задача. Упорядочить элементы массива по возрастанию. Шаги решения проблемы: 1. Найти минимальный элемент массива и его порядковый номер; 2. Поставить его на первое место в массиве, предварительно убрав оттуда первый элемент; 3. Поставить первый элемент вместо только что найденного минимального элемента; 4….
Задача.Найти и вывести на экран порядковый номер первого отрицательного элемента массива. Массив состоит из 10 элементов, заполняется псевдогенератором случайных чисел. Program otric; var a:array[1..10] of integer; i,nomer: integer; begin ramdomize; for i:=1 to 10 do a[i]:=random(101)-50; for i:=1 to 10 do writeln(‘a[‘,i,’]=‘,a[i]); for i:=10 dowto 1 do if a[i]<0 then nomer:=i; writeln(‘nomer=‘,nomer); End.
1 Находим и запоминаем минимальный элемент. min n_min perv 2. Запоминаем его порядковый номер 3. Убираем элемент, стоящий на первом месте 4. Ставим на его место минимальный элемент 5. Ставим на место минимального элемента- первый 1 2 3 3 4 5 6 7
1. Находим и запоминаем минимальный элемент. min n_min perv 2. Запоминаем его порядковый номер 3 3. Убираем элемент, стоящий на первом месте 4. Ставим на его место минимальный элемент 5. Ставим на место минимального элемента- первый 1 2 3 4 4 5 6 7
1.Находим и запоминаем минимальный элемент. min n_min perv 2.Запоминаем его порядковый номер 3.Убираем элемент, стоящий на первом месте 4 6 4.Ставим на его место минимальный элемент 5.Ставим на место минимального элемента- первый 1 2 3 4 4 5 6 7
1.Находим и запоминаем минимальный элемент. min n_min perv 2.Запоминаем его порядковый номер 3.Убираем элемент, стоящий на первом месте 6 7 4.Ставим на его место минимальный элемент 5.Ставим на место минимального элемента- первый 1 2 3 4 4 5 6 7
Задача 1: Найти наименьший элемент массива и его порядковый номер. Program upor; Var a: array [1..10] of integer; min, n_min: integer; Begin randomize; For i:=1 to 10 do a[i]:=random(20)-9; For i:=1 to 10 do writeln(‘a[‘, I, ‘]=‘, a[i]); min:=a[1]; n_min:=1; For i:=2 to 10 do if a[i]<min then begin min:=a[i]; n_min:=i; end; writeln(‘min=‘,min, ‘,‘,’ его номер-’,n_min]); End.
Задача 2: Найти наименьший элемент массива и его порядковый номер. Поменять местами первый и найденный минимальный элемент Program upor_2; Var a: array [1..10] of integer; min, n_min, perv: integer; Begin randomize; For i:=1 to 10 do a[i]:=random(20)-9; For i:=1 to 10 do writeln(‘a[‘, i, ‘]=‘, a[i]); min:=a[1]; n_min:=1; For i:=2 to 10 do if a[i]<min then begin min:=a[i]; n_min:=i; end; perv:=a[1]; a[1]:=min; a[n_min]:=perv; For i:=1 to 10 do writeln(‘a[‘, i, ‘]=‘, a[i]); End.
Задача 3 Найти наименьший элемент массива (начиная с k-го) и его порядковый номер. Поменять местами k-тый и найденный минимальный элемент. Program upor_3; Var a: array [1..10] of integer; min, n_min, perv, k: integer; Begin randomize; For i:=1 to 10 do a[i]:=random(20)-9; For i:=1 to 10 do writeln(‘a[‘, i, ‘]=‘, a[i]); k:=1; min:=a[k]; n_min:=k; For i:=k+1 to 10 do if a[i]<min then begin min:=a[i]; n_min:=i; end; perv:=a[k]; a[k]:=min; a[n_min]:=perv; For i:=1 to 10 do writeln(‘a[‘, i, ‘]=‘, a[i]); End.
Program upor_4; Var a: array [1..10] of integer; min, n_min, perv: integer; Begin randomize; For i:=1 to 10 do a[i]:=random(20)-9; For i:=1 to 10 do writeln(‘a[‘, i, ‘]=‘, a[i]); For k:=1 to 9 do begin min:=a[k]; n_min:=k; For i:=k+1 to 10 do if a[i]<min then begin min:=a[i]; n_min:=i; end; perv:=a[k]; a[k]:=min; a[n_min]:=perv; end; For i:=1 to 10 do writeln(‘a[‘, i, ‘]=‘, a[i]); End.