массивы Урок в 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);