Массивы 10 класс Ксш 4 Степанов П.Г.
Массивы (разбивка по часам) n Определение массива. Описание массива в Паскале. Способы заполнения. Определение массива. Описание массива в Паскале. Способы заполнения. n Нахождение суммы элементов массива. Нахождение суммы элементов массива. n Нахождение произведения элементов массива. Нахождение произведения элементов массива. n Нахождение элементов массива по какому- либо признаку. Нахождение элементов массива по какому- либо признаку. n Сортировка элементов массива. Сортировка элементов массива. Выход из программы
Урок 1 Определение массива. Описание массива. Способы заполнения массива.
Толпа
Организованная толпа
Массив- упорядоченная совокупность однотипных элементов, объединенных одним именем. Массив определяется именем (идентификатором) и количеством размерностей (координат), необходимых для указания местонахождения требуемого элемента. Одномерный массив (вектор) Направление изменения индекса A[4]
Двумерный массив (матрица) Направление изменения первого индекса Направление изменения второго индекса A[2,3]
Описать массив, это значит: var a: array [1..10] of real; n задать имя массива n указать номер первого и последнего элементов массива n указать тип элементов массива. Например:
Способы заполнения массива.
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=
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= 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= 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= 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. a[1]=23 a[2]=1 a[3]=4 a[4]=43 a[5]=56 a[6]=23 a[7]=56 a[8]=4
Задача. Найти сумму арифметического ряда чисел. S= 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
Задача. Найти произведение арифметического ряда чисел. 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.
Сортировка выбором Задача. Упорядочить элементы массива по возрастанию. Шаги решения проблемы: 1. Найти минимальный элемент массива и его порядковый номер; 2. Поставить его на первое место в массиве, предварительно убрав оттуда первый элемент; 3. Поставить первый элемент вместо только что найденного минимального элемента; 4…. Массивы Урок 4 2. Задача 1 3. Задача 2Задача 1Задача 2 1. Проверка домашнего задания Проверка домашнего задания
Задача. Найти и вывести на экран порядковый номер первого отрицательного элемента массива. Массив состоит из 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.
Находим и запоминаем минимальный элемент. min 3 n_min 2. Запоминаем его порядковый номер 3. Убираем элемент, стоящий на первом месте perv 4. Ставим на его место минимальный элемент 5. Ставим на место минимального элемента- первый
Находим и запоминаем минимальный элемент. min 3 n_min 2. Запоминаем его порядковый номер 3. Убираем элемент, стоящий на первом месте perv 4. Ставим на его место минимальный элемент 5. Ставим на место минимального элемента- первый 4
Находим и запоминаем минимальный элемент. min 4 n_min 2. Запоминаем его порядковый номер 3. Убираем элемент, стоящий на первом месте perv 4. Ставим на его место минимальный элемент 5. Ставим на место минимального элемента- первый 4 6
Находим и запоминаем минимальный элемент. minn_min 2. Запоминаем его порядковый номер 3. Убираем элемент, стоящий на первом месте perv 4. Ставим на его место минимальный элемент 5. Ставим на место минимального элемента- первый 4 7 6
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. Задача 1: Найти наименьший элемент массива и его порядковый номер.
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. Задача 2: Найти наименьший элемент массива и его порядковый номер. Поменять местами первый и найденный минимальный элемент
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. Задача 3 Найти наименьший элемент массива (начиная с k-го) и его порядковый номер. Поменять местами k-тый и найденный минимальный элемент.
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.