
- •ЛАБОРАТОРНАЯ РАБОТА № 1
- •Теоретический материал
- •1.2. Интерфейс IDE
- •1.3. Комбинации клавиш
- •2. Подготовка текста программы
- •2.5. Удаление фрагмента текста
- •ЛАБОРАТОРНАЯ РАБОТА № 2
- •Теоретический материал
- •Константа (англ. constant) – это величина, значения которой не изменяются в период ее существования. Значения переменных предварительно описываются в разделе описания переменных CONST.
- •2.1. Простые типы данных
- •5. Вычисление выражений
- •Задача 2
- •Задача 3
- •Необходимо ввести и вывести на печать два целых числа и два вещественных числа:
- •ЛАБОРАТОРНАЯ РАБОТА № 3
- •Теоретический материал
- •Допускается опускать служебное слово ELSE:
- •Задача 2
- •Задача 3
- •Program Lab3_3_2; {Случай 2}
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •ЛАБОРАТОРНАЯ РАБОТА № 5
- •ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*A < = 3*N +1.
- •Program Lab5_2;
- •Задача 4
- •6. Вложенные циклы
- •8. Практическое задание – решение задач с использованием операторов цикла
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •ОРГАНИЗАЦИЯ ИТЕРАЦИОННЫХ ЦИКЛОВ В ПРОГРАММЕ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Пояснения к задаче 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •Таблица 14
- •Задача 3
- •Задача 4
- •Задача 5
- •Умножить на 3 каждый элемент массива и получить результат на экране дисплея распечатанным по строкам.
- •5. Практическое задание – решение задач с использованием массивов
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант16
- •ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ TURBO PASCAL
по очевидным причинам невозможна. Количество измерений формально не ограничено, но сумма размеров всех компонентов массива не должна превосходить 64К.
3.2. Ввод–вывод двумерного и многомерного массива
Многомерные массивы, как и одномерные, можно задавать одним из способов ввода данных в программу.
Значения элементов двумерных массивов выводят на экран и вводят с клавиатуры, как правило, по строкам, т. е. сначала все элементы первой строки, затем второй и т. д. Это удобно выполнять при помощи вложенных инструкций for.
Программа Lab7_5; выводит на экран значения элементов массива по строкам.
Задача 5
Ввести в матрицу Prod размером 3 строки, 4 столбца следующие значения: 1-я СТРОКА – 1, 1, 1, 1; 2-я СТРОКА – 2, 2, 2, 2; 3-я СТРОКА – 3, 3, 3, 3.
Умножить на 3 каждый элемент массива и получить результат на экране дисплея распечатанным по строкам.
PROGRAM Lab7_5; Uses Crt;
var
Prod : array[1..3, 1…4] of Integer; i, j : Integer;
BEGIN {1} ClrScr; Textcolor(Yellow);
WriteLn(' ***********Ввод по строкам **********');
Textcolor(Green);
For i : = 1 To 3 Do |
Циклы ввода матрицы |
begin {2} |
|
WriteLn (' Введи строку ', i); |
|
For j : =1 To 4 Do |
|
Read(Prod [i, j] ); |
|
end; {2} |
|
Textcolor (lightred);
WriteLn ('*********** Вывод по строкам **********');
For i : =1 To 3 Do |
Циклы вывода матрицы |
begin{3} |
|
For j : = 1 To 4 Do |
|
Write (Prod [i, j]*3); |
|
WriteLn; |
|
end; {3} |
|
95

ReadKey;
END.{1}
Пояснения к задаче 5
Каждый раз, когда внутренний цикл завершается, внешний цикл увеличивает i на единицу и внутренний цикл выполняется вновь. Таким образом, сначала вводятся, а потом выводятся все компоненты массива по строкам. При выводе мы умножаем каждый элемент массива на 3.
При описании массивов в программе удобно использовать именованные константы как значения верхних границ индексов массива. При задании массива как сложной константы в блоке Const (или в блоках, если их несколько) в круглых скобках перечисляются элементы-массивы, состоящие из элемен- тов-скаляров. Для двумерного массива это может выглядеть так:
Const
a: Array [1..2, 1..5] of Integer = ((–1, 23, 0, 7, 6), (2, 0, –12, 6, 4));
Трехмерный массив можно задать аналогично или следующим образом: Type
Cube = Array [0..1, 0..1, 0..1] of Integer; Const
M : Cube = (((0, 1), (2, 3)), ((4, 5), (6, 7)));
Элементы трехмерного массива будут хранить после этого следующие значения:
М[0, 0, 0] = 0; М[0, 0, 1] = 1; М[0, 1, 0] = 2; М[0, 1, 1] = 3; М[1, 0, 0] = 4; М[1, 0, 1] = 5; М[1, 1, 0] = 6; М[1, 1, 1] = 7.
3.3. Стандартные (типовые) задачи на двумерных массивах
Встандартной матричной задаче может потребоваться:
1)получить новую матрицу (ввести матрицу) по заданному правилу;
2)найти какую-либо величину, используя элементы данной матрицы;
3)преобразовать матрицу требуемым образом;
4)определить, обладает ли матрица (ее один или несколько элементов, строка, столбец) указанным свойством;
5)выполнить ту или иную операцию над матрицей (матрицами).
Задача 6 иллюстрирует использование вложенных циклов при вычислении двойных сумм.
Задача 6
100 50 1
Вычислить: ∑∑i + j2 .
i=1 j=1
{$N +, E} PROGRAM Lab7_6; Uses Crt;
var
sum: extended;
96

i, j : 1..100; Begin
ClrScr; sum : = 0;
Textcolor (LightRed);
For i : = 1 |
To 100 Do |
Цикл по i |
For j : = 1 |
To 50 Do |
Цикл по j |
sum : = sum + 1/ (1 + sqr (j));
WriteLn (' Сумма равна ', sum);
ReadKey;
End.
Пояснения к задаче 6
Заданная сумма sum суть:
1/(1 + 12) + 1/(1 + 22) + ... + 1/(1 + 502) + 1/(2 + 12) + 1/(2 + 22) + ... + + 1/(2 + 502) + 1/(100 + 12) + 1/(100 + 22) + … + 1/(100 + 502);
sum содержит 100 * 50 = 5 000 слагаемых, поэтому тип переменной, где
будет копиться сумма sum, объявим extended , иначе, если объявить Real, будет переполнение.
В программе идет перебор всех значений по индексу i, который меняет-
ся от 1 до 100 (внешний цикл), и перебор всех значений по индексу j, который меняется от 1 до 50 (внутренний цикл). Обратите внимание, что до входа
вцикл начальное значение суммы приравнивается к нулю (sum : = 0).
4.Контрольные вопросы
1.Что такое массив?
2.Что такое идентификатор массива?
3.Что такое переменная с индексом?
4.Какие значения принимает индекс у переменных массива на языке
Паскаль?
5.Верно ли, что массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип?
6.Какие типы данных недопустимы для компонентов массива? Почему?
7.В каком разделе (разделах) программы допустимо описание данных
регулярного типа?
8.Где и как определяется общее число элементов массива?
9.Можно ли размерность массива определить с помощью типа диапа-
зонов?
10.Дайте определение индекса. Какие типы данных можно использовать
при описании индекса?
11.Может ли левая граница индексов массива быть меньше правой?
12.Может ли левая граница индексов массива быть положительной?
13.Может ли левая граница индексов массива быть равной нулю?
14.Может ли левая граница индексов массива быть отрицательной?
15.Как осуществляется доступ к каждому элементу массива?
97