массивы Урок в 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; i:integer; begin assign (f,C:/primer.txt'); reset(f); for i:=1 to 10 do readln(f,a[i]); Close(f); end. Однако еще проще произвести заполнение массива, взяв данные из файла. Можно добавить вывод заполненного массива на экран, тогда надо в цикл добавить строчку write(a[i]);
program massiv; var a:array [1..10] of integer; f:text; i:integer; begin assign (f,'C:/primer.txt'); reset(f); for i:=1 to 10 do begin readln(f,a[i]); write(a[i]:5); end; Close(f) end.
Вывод массива В столбец: 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;
Вывод в текстовый файл: program massiv; var a:array [1..10] of integer; f,g:text; i:integer; begin assign (f,'C:/primer.txt'); assign (g,'C:/primer5.txt'); reset(f);rewrite(g); for i:=1 to 10 do begin readln(f,a[i]); writeln(g,a[i]:4); end; Close(f); Close(g); 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;
Поиск элемента с заданным значением: i:=0; Repeat; i:=i+1; Until (a[i]=0)or (i=n); If a[i]=0 then writeln(Номер первого нулевого элемента=,i) else writeln(Таких элементов нет)
Дома: § 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);