
- •Лабораторная работа № 1 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Лабораторная работа № 2 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Лабораторная работа № 3 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Лабораторная работа № 4 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Содержание и оформление отчета
- •Литература
- •Паскаль: операторы ветвления, циклы, массивы, строки
Варианты заданий
|
Вычислить сумму первых N членов арифметической прогрессии двумя способами: с помощью цикла for и цикла repeat. |
|
Вычислить факториал числа с использованием цикла for и цикла repeat. |
|
Выполнить табуляцию значений функции f(x)=x2+sin(x) на заданном отрезке [a, b] |
|
Организовать ввод строковых значений до тех пор, пока пользователь не введет слово "хватит". При этом выводить длину введенных строк. |
|
Найти сумму ряда 1/x с заданной точностью e. |
|
Организовать ввод букв с клавиатуры до тех пор, пока не будет нажата клавиша Escape. Подсчитать количество согласных и гласных букв. |
|
Найти путем подбора корни квадратного уравнения ax2+bx+c=0 на заданном интервале [x1, x2] с заданной точностью е. |
|
Найти наибольший общий делитель двух чисел с помощью цикла for. |
|
Найти наибольший общий делитель двух чисел с помощью цикла repeat. |
|
Найти наименьшее общее кратное двух чисел с помощью цикла while. |
|
Найти наименьшее общее кратное двух чисел с помощью цикла repeat. |
|
Вывести на экран таблицу умножения чисел. |
|
Определить, является ли данное натуральное число простым. |
|
Вывести все простые натуральные числа на отрезке [N1, N2] |
|
Найти сумму первых N членов ряда 1+x/3-x2/4+x3/5-… с помощью цикла for и цикла repeat. |
|
Найти сумму ряда 1+x/2!-x2/4!+x3/6!-… (x из отрезка [-0.5, 0.5]) с заданной точностью e. |
|
Организовать ввод чисел в цикле до тех пор, пока не будет введено число 0. Найти наименьшее из отрицательных. |
|
Организовать ввод чисел в цикле до тех пор, пока не будет введено число 0. Подсчитать сколько раз последовательность введенных чисел меняет знак на противоположный. |
Требования к оформлению отчета приведены в разделе "Содержание и оформление отчета".
Лабораторная работа № 3 Цель работы
Изучение работы с массивами.
Теоретическая часть
Массив – фиксированное количество упорядоченных однотипных компонент, снабженных индексами. Может быть одномерным или двумерным.
Объявление типа массива:
<имя типа>=array [<тип индекса(сов)>] of <тип компонент>;
Пример 8:
type Arr=array [1..3] of Real; Matrix=array [1..3,1..2] of Integer; |
Вместо квадратных скобок можно использовать круглые скобки с точкой:
type Arr=array (.1..3.) of Real; |
Компоненты массива могут быть любого (в том числе структурированного) типа.
Индекс может быть любого порядкового типа, кроме LongInt. При использовании в качестве индекса Integer или Word можно использовать лишь их диапазон.
Описание переменных-массивов производится либо в разделе описания переменных:
var M1, M2 : Arr; Matr : Matrix; M4, M5 : array [1..3] of Real; |
либо в разделе описания констант:
const M3 : Arr=(1,2,3); Mat : Matrix=((1,2),(3,4),(5,6)); |
Здесь M1, M2 – массивы уже объявленного типа Arr, M3 – массив-типизированная константа, M4, M5 – тип массива описывается в разделе переменных var. В последнем случае массивы M4, M5 не идентичны типу Arr, им нельзя присваивать значения других массивов.
Доступ к элементам массива осуществляется указанием имени массива, за которым в квадратных скобках указывается значение индекса (см. пример 9).
Пример 9:
writeln(M1[2]); writeln(Matr[X, Y]); X := M2[Succ(I)]; |
Присвоение другого массива возможно только для массивов идентичного типа! Для массивов, описанных в примере 10 допустим оператор A:=B, недопустим C:= A;
Пример 10:
var A, B : array [1..5] of Integer; C : Array[1..5] of Integer; |
Пример 11:
var Si : array [0..100] of Real; X, Step : Real; i : Integer; begin Step := 0.1; X :=0; for i := 0 to 10 do begin Si[i] := Sin(X); X := X + Step; end; end. |
В примере 11 производится вычисление значений функции sin(x) на отрезке [0, 10] с шагом 0.1 и помещение их в массив Si.
Пример 12.
var A : array [1..5,1..5] of Real; i, j : Integer; begin for i := 1 to 5 do for j := 1 to 5 do begin write('A[',i,',',j,']='); readln(A[i,j]); end; for i := 1 to 5 do begin for j := 1 to 5 do write(A[i,j]:10:2); writeln; end; end. |
В примере 12 вводятся элементы двумерного массива и выводятся на экран в виде таблицы значений.