массивы Урок в 9 классе

advertisement
массивы
Урок в 9 классе
Домашняя задача
 А•В = НОД(А,В)•НОК(А,В), выражаем из формулы
НОК(А,В), получаем
А В
НОК ( А, В) 
НОД ( А, В)
В программу Евклид добавляем строчку с этой
формулой и выводим НОК в качестве
результата.
Программа:
Program nok;
Var a,b,m,n:integer;
C:real;
Begin
Write(‘введите два целых числа’);
Read(a,b);
N:=a;
M:=b;
While m<>n do
Begin
If m>n then m:=m-n
Else n:=n-m
End;
C:=a*b/m;
Write (‘НОК= ‘ , C)
END.
Массив – совокупность данных
одного
типа с общим для всех элементов именем.
 Элементы массива пронумерованы.
Номера элементов иначе называются
индексами.
 Характеристики массива:
 Тип – общий для всех элементов массива
 Размерность (ранг) – количество
индексов массива
 Диапазон изменения индекса –
определяет количество элементов в
массиве
Виды массивов
 Одномерные (вектор) – в котором
элементы нумеруются одним
индексом
 Двумерный (матрица) – в котором
элементы нумеруются номером
строки и номером столбца
Предварительное описание
массива
 Для одномерного:
Var Имямассива:
array[Нижняяграница..ВерхняяГраница] of
Типэлементов;
Var a: array[1..100] of integer;
 Для двумерного:
Var Имямассива:
array[НижняяграницаИндекс1..ВерхняяГраницаИнд
екс1,
НижняяграницаИндекс2..ВерхняяГраницаИндекс2 ]
of Типэлементов;
Var y: array[1..3,1..4] of integer;
Массив с тремя (3) строками и четырьмя (4) столбцами
Заполнение массива данными
 При вводе данных с клавиатуры
For i:=1 to 5 do readln(a[i]);
 С помощью датчика случайных чисел
Randomize;
For i:=1 to n do x[i]:=random(100);(от 0 до 99)
 Присваиванием заданных значений
For i:=1 to n do
J:=1 to m do
A[I,j]:=0
 Считывая значения элементов из файла
Ввод массива считыванием из
файла:
В Паскале имеется три вида файлов:
 Текстовый файл (определяется
типом text);
 Типизированный файл (задаётся
предложением
Ввод массива считыванием из
файла:
В Паскале имеется три вида файлов:
 Текстовый файл (определяется
типом text);
 Типизированный файл (задаётся
предложением file of Тип);
 Нетипизированный файл
(определяется типом file)
Для работы с файлами в программе необходимо
определить файловую переменную (файловый
тип) в разделе описаний в виде:
 ИмяТипа1=text;
 ИмяТипа2=;
Для работы с файлами в программе необходимо
определить файловую переменную (файловый
тип) в разделе описаний в виде:
 ИмяТипа1=text;
 ИмяТипа2=file of Тип;
 ИмяТипа3=file;
Например:
Type filetype=text;
Var ftmp, f:filetype;
Или
Var f1,lst:text; f2:file;
Однако еще проще произвести заполнение
массива , взяв данные из файла.
var a:array [1..10] of integer;
f:text;
begin
assign (f,'primer.txt');
reset(f);
for i:=1 to 10 do
readln(f,a[i]);
end.
Можно добавить вывод заполненного массива
на экран, тогда надо в цикл добавить строчку
write(a[i]);
Вывод массива
 В столбец:
For i:=1 to 5 do writeln(a[i]);
 В одну строку через пробелразделитель:
For i:=1 to 5 do write(a[i],’ ‘);
С заданием формата, где под каждый
элемент отводится 4 позиции:
For i:=1 to 5 do write(a[i]:4);
 Вывод матриц в стандартной форме
записи – по строкам и столбцам –
выполняется при помощи оператора
writeln (без параметра)
For i:=1 to n do
Begin
For j:=1 to m do
Write(a[I,j]:4);
Writeln;
End;
Действия с массивами
 Вычисление сумм элементов:
S:=0;
For i:=1 to n do s:=s+a[i];
 Вычисление произведения:
S:=1;
For i:=1 to n do s:=s*a[i];
 Подсчёт количества элементов, удовлетворяющих
условию:
k:=0;
For i:=1 to n do
If a[i] mod 2=0 then k:=k+1;
Дома: § 41, 42 № 2
Закрепление:
 Сколько элементов в массиве ?
Var B:array [1..7] of integer;
Var C:array[1..5,1..6] of integer;
 Определите интервал элементов
Randomize;
For i:=1 to n do x[i]:=random(20);
Randomize;
For i:=1 to n do x[i]:=-40 + random(41);
Download