- •Лекция 1. Основы языков программирования.
- •Лекция 2. Способы записи алгоритмов.
- •Лекция 3. Знакомство с языком Паскаль.
- •Лекция 4. Структура программы на языке Паскаль.
- •Лекция 5. Стандартные типы данных.
- •5.1 Целые типы
- •5.2 Вещественные типы
- •5.3 Символьный тип.
- •5.4 Ограничительные типы.
- •5.5 Перечислимые типы.
- •Л.6. Операторы языка Паскаль Ввод исходных данных.
- •Расчет.
- •Стандартные функции Турбо Паскаля
- •Стандартные процедуры
- •Константы
- •Вывод результатов
- •Лекция 7. Операторы условий if, case
- •7.1 Оператор безусловного перехода
- •7.2 Условный оператор
- •7.3 Оператор варианта
- •Лекция 8. Операторы цикла for, while, repeat
- •8.1 Оператор цикла с предусловием.
- •8.2 Оператор цикла с постусловием.
- •8.3 Оператор цикла с параметром.
- •Лекция 9. Одномерные и двумерные массивы.
- •Работа с массивами
- •Инициализация элементов массива
- •Лекция 10. Процедуры и функции в Паскаль.
- •Лекция 11. Параметры в процедурах.
- •11.1 Механизм параметров.
- •11.2. Параметры - значения.
- •11.3. Параметры - переменные.
- •11.4. Безтиповые параметры.
- •Лекция 12. Типы данных, определяемые пользователем. Записи.
- •Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.
- •13.1 Файловые типы
- •13.2 Операции ввода-вывода Write, Read
- •13.3. Перемещение по файлу.
- •13.4 Обработка ошибок ввода - вывода
- •13.5 Текстовые файлы
- •13.6 Файлы без типа.
- •Лекция 14. Модули и внешние файлы в Паскаль.
- •15.1. Компиляция и использование модулей
- •15.2. Компиляция и поиск модулей.
- •15.3. Стандартные модули
- •Лекция 15. Динамические структуры данных.
- •15.1 Ссылочные типы и указатели.
- •15.2 Статические переменные.
- •15.3. Создание и удаление динамических переменных.
- •15.4. Установка размеров динамической памяти.
- •Лекция.16. Графические возможности языка Паскаль.
- •Лекция17. Практическое применение языка Паскаль в решении технологических и экологических задач
Работа с массивами
Поскольку все элементы массива имеют одинаковый тип, то для обработки элементов используют циклические алгоритмы. Наиболее часто применяется цикл с параметром. При этом параметр цикла используется в качестве индекса элемента массива. Порядок вложенности циклов зависит от порядка массива, так для одномерного массива используется один цикл, для двумерного - два, вложенные один в другой и т. Д
Инициализация элементов массива
Поскольку каждый элемент массива имеет свой порядковый номер, то к каждому элементу можно обращаться непосредственно, указывая имя массива и в квадратных скобках порядковый номер элемента.
Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле, изменяя при каждой итерации значение индекса.
Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя способами. Первый способ - с использованием типизированных констант, например:
type Mass= Array[1..10] of Real; const K: Mass= ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );
При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках:
type Mass3x2= Array[1..3,1..2] of Integer;
const L: Mass3x2= ( (1, 2) (3, 4) (5, 6) );
Ввод элементов одномерного массива с клавиатуры:
A:array [1..10] of Integer. For i:=1 to 10 do begin Write('Введите A[', i,']'); Read(A[i]) end;
Если необходимо инициализировать массив случайными значениями, то используют генератор случайных чисел.
Randomize; For i:=1 to 10 do A[i]:=Random(100);
Процедура Randomize инициализирует встроенный генератор случайных чисел. Функция Random(100) возвращает при каждой итерации случайное число в диапазоне от 0 до значения заданного аргументом (100-1).
Ввод элементов двумерного массива:
B:array [1..20,1..20] of Real.
For i:=1 to 20 do For i:=1 to 20 do begin Write('Введите B[', i,']'); Read(B[i]) end;
Пусть необходимо найти сумму элементов одномерного массива состоящего из 20 элементов действительного типа.
Для решения данной задачи необходимо инициализировать нулевым значением переменную, используемую для хранения суммы. Последовательно вводить с клавиатуры значения элементов массива и добавлять их к этой переменной. Для решения задачи будем использовать один цикл с параметром. Ниже приведена блок программа решения задачи.
Program Example_1; var A:array [1..20] of Real; S: Real; I:Integer; Begin S:=0; For I:=1 to 20 do begin Write('Введите A[', I,']'); Read(A[I]); S:=S+A[I] end; WriteLn ('Результат суммирования... ',S) End.
Найти сумму отрицательных элементов одномерного массива состоящего из 100 элементов целого типа, порядковый номер которых кратен трём.
Составим алгоритм и программу нахождения суммы элементов одномерного массива.
Для ввода элементов массива используем генератор случайных чисел. В теле цикла введём логический блок решения для определения заданного условия при обработке элементов массива.
Ниже приведена программа решения задачи.
Program Example_2; var A:array [1..100] of Integer; S,I:Integer; Begin Randomize; S:=0; For I:=1 to 100 do begin A[I]:=Random(100) - Random(50); f (I mod 3=0) and (A[I]<0) then S:=S+A[I] end; WriteLn ('Результат суммирования... ',S) End.
Нахождение произведения элементов сводится к инициализации единицей переменной, предназначенной для хранения произведения. В теле цикла перебирают элементы массива, сравнивая, в случае необходимости с заданным условием и умножают эту переменную на выбранный элемент массива.
Найти произведение положительных элементов одномерного массива состоящего из 100 элементов целого типа.
Составим алгоритм и программу нахождения произведения элементов одномерного массива.
Инициализируем переменную, предназначенную для хранения произведения. Для ввода элементов массива используем генератор случайных чисел. В теле цикла введём логический блок решения для определения заданного условия при обработке элементов массива.
Ниже приведена программа решения задачи.
Program Example_3; Var A:array [1..100] of Integer; S,I:Integer; Begin Randomize; P:=1; For I:=1 to 100 do begin A[I]:=Random(100) - Random(50); If A[I]>0 then P:=P*A[I] end; WriteLn ('Результат произведения... ',P) End.
Дан двумерный массив, состоящий из элементов целого типа. Размерность массива 20X20. Найти сумму элементов главной и произведение элементов побочной диагоналей.
Для определения элемента, лежащего на главной диагонали, вспомним, что у него номер строки равен номеру столбца. Элемент лежащий на побочной диагонали, может быть определён по равенству - I+J= N+1, где I, J - соответственно индексы строки и столбца, а N - порядок матрицы.
Program Example_4; Var A:array [1..20,1..20] of Integer; S,P,I,J:Integer; Begin Randomize; P:=1; S:=0; For I:=1 to 20 do For J:=1 to 20 do begin A[I, J]:=Random(100) - Random(50); If I=J then S:=S+A[I, J]; If I+J=20 then P:=P*A[I, J]; end; WriteLn ('Результат произведения... ',P); WriteLn ('Результат суммы... ',S) End
