Лабораторная
работа 2.
Простые задачи
с подпрограммами.
Задание
Контрольные вопросы и задания
Несколько
замечаний перед тем, как приступить к
выполнению задания...
Задание необходимо сдать до 30
сентября включительно. Прежде, чем
сдавать проверьте, все ли требования к
оформлению были выполнены.
Вариант |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
Задачи |
6 9 |
5 10 |
4 11 |
3 9 |
2 10 |
1 11 |
1 10 |
2 11 |
3 10 |
4 10 |
5 11 |
6 11 |
6 10 |
5 9 |
4 9 |
3 11 |
2 9 |
1 9 |
6 10 |
5 9 |
- Задача "Векторные вычисления" (Word).
Указания
- Оформите в виде функции вычисление
длины вектора. Длина вектора A(x,y,z)вычисляется
как A(x,y,z)=sqrt(x2+y2+z2).
- Оформите в виде функции вычисление
скалярного произведения векторов.
Скалярное произведение векторов A(x1,y1,z1)
и B(x2,y2,z2) вычисляется
как A*B=x1*x2+y1*y2+z1*z2.
- Оформите в виде процедуры вычисление
векторного произведения векторов.
Векторное произведение векторов A(x1,y1,z1)
и B(x2,y2,z2) вычисляется
как вектор [AB]=(y1*z2-z1*y2,
z1*x2-x1*z2,
x1*y2-y1*x2).
- Оформите в виде функции вычисление
смешанного произведения векторов.
Смешанное произведение векторов ABC
вычисляется как скалярное
произведение вектора A
на векторное произведение [BC]:
ABC=A*[ВС].
В реализации данной функции
используйте вызовы написанных
ранее подпрограмм вычисления
скалярного произведения векторов и
вычисления векторного произведения
векторов.
- Задача "Медленно минуты уплывают в
даль..." (Word).
Указания
- Оформите в виде процедуры перевод
минут в число полных дней, часов, и
минут. В реализации используйте
стадартные операции div
(деление нацело) и mod
(взятие остатка).
- Оформите перевод дней в число полных
лет, месяцев и дней в виде процедуры.
- Задача "Вычисление функции" (Word).
Указания
- Оформите нахождение максимума из двух
чисел в виде функции Max.
- Оформите нахождение минимума из двух
чисел в виде функции Min.
- Оформите вычисление функции Z(x,y)
в виде соответствующей функции. В
реализации данной функции используйте
вложенный оператор if
и написанные ранее подпрограммы Max
и Min.
- Задача "Вид треугольника" (Word).
Указания
- Оформите в виде функции определение
вида треугольника:
function TypeOfTriangle(A, B,
C: Real): Integer;
{ По длинам сторон треугольника A, B, C
возвращает целое число (вид
треугольника):
0, если треугольник с такими сторонами
построить нельзя
3, если треугольник равносторонний
2, если треугольник равнобедренный
1, иначе (треугольник общего вида). }
- Треугольник существует, если сумма
длин двух любых его сторон больше длины
третьей стороны. В реализации функции TypeOfTriangle
используйте вложенный оператор if
.
- В реализации вывода результатов
используйте оператор case.
- Задача "Квадратное уравнение" (Word).
Указания
- Оформите в виде процедуры вычисление
действительных корней квадратного
уравнения и их количества:
procedure Equation(A, B, C:
Real; var X1, X2: Real; var N: Integer);
{ Вычисление действительных корней
квадратного уравнения и их числа.
A, B, C - коэффициенты квадратного
уравнения, A<>0.
Возвращает:
X1, X2 - значения действительных корней.
Побочный эффект: если действительных
корней нет, возвращает в качестве X1 и X2
нули.
N - число действительных корней:
0, если действительных корней нет,
1, если есть действительные корни и X1=X2
2, если есть действительные корни и
X1<>X2.}
- Задача "Копейка рубль бережет" (Word).
Указания
- Оформите в виде процедуры перевод
копеек в рубли и копейки.
- Оформите в виде функции подбор для
заданного числа соответствующей формы
слова "рубль". В реализации
функции используйте оператор case.
- Оформите в виде функции подбор для
заданного числа соответствующей формы
слова "копейка". В реализации
функции используйте оператор case.
- Задача "Все о цифрах в числе" (Word).
Указания
- Оформите в виде функции нахождение
количества цифр числа.
- Оформите в виде функции нахождение
суммы цифр числа .
- Оформите в виде функции нахождение
произведения цифр числа.
- В реализации функций используйте
оператор while ... do
или repeat ... until.
- Задача "Число Фибоначчи" (Word).
Указания
- Оформите в виде функции нахождение n-го
числа Фибоначчи.
- В реализации функции используйте
оператор цикла for
... to.
- Задача "Больничная статистика" (Word).
Указания
- Определите константу "Размерность
массива" и тип "Массив целых чисел"
соответствующей размерности. Например:
const
Size=100;
type
TArray=array [1..Size] of Integer;
- Оформите нахождение минимального,
максимального элементов и среднего
арифметического элементов массива в
виде отдельных подпрограмм.
- Задача "Матрица" (Word).
Указания
- Определите константу "Размерность
матрицы" и тип "Матрица целых
чисел" соответствующей размерности.
Например:
const
Size=10;
type
TMatrix=array [1..Size, 1..Size] of Integer;
- Оформите ввод и вывод элементов
квадратных матриц в виде отдельных
подпрограмм. Обеспечьте ввод элементов
матрицы с клавиатуры в виде
Введите элемент
[..., ...] =>_
(c указанием номера строки и столбца).
- Оформите нахождение суммы и
произведения квадратных матриц в виде
отдельных подпрограмм.
- Задача "Статистика символов текста"
(Word).
Контрольные
вопросы и задания
- Покажите в тексте программы:
- спецификацию программы,
- заголовок программы,
- тело программы,
- секцию определения переменных
программы.
- Покажите в тексте программы (для каждой
подпрограммы):
- спецификацию подпрограммы,
- заголовок подпрограммы,
- формальные параметры подпрограммы,
- тело подпрограммы,
- секцию определения локальных
переменных подпрограммы.
- Напишите, какое значение будет иметь
переменная Z
после выполнения операторов
Z:=0;
if X>0 then if Y>0 then Z:=1 else Z:=2;
при следующих значениях переменных X
и Y:
a) X=1, Y=1
b) X=1, Y=-1
c) X=-1, Y=1
- Определите значение переменной S
после выполнения следующих операторов:
- S:=0;
i:=0;
while i<5 do
i:=i+1;
s:=s+1/i;
- S:=0;
i:=1;
while i>1 do begin
s:=s+1/i;
i:=i-1;
end;
- s:=0;
i:=1;
repeat
s:=s+1/i;
i:=i-1;
until i<=1;
- s:=1;
n:=1;
for i:=2 to n do
s:=s+1/i;
- Чем отличаются текстовые,
типизированные и нетипизированные файлы?
- Объясните семантику следующих
стандартных процедур для работы с
текстовыми файлами: Assign,
Reset, Rewrite,
Append, Close.