Лабораторная работа 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
 
  1. Задача "Векторные вычисления" (Word).

    Указания

    1. Оформите в виде функции вычисление длины вектора. Длина вектора A(x,y,z)вычисляется как A(x,y,z)=sqrt(x2+y2+z2).
    2. Оформите в виде функции вычисление скалярного произведения векторов. Скалярное произведение векторов A(x1,y1,z1) и B(x2,y2,z2) вычисляется как A*B=x1*x2+y1*y2+z1*z2.
    3. Оформите в виде процедуры вычисление векторного произведения векторов. Векторное произведение векторов A(x1,y1,z1) и B(x2,y2,z2) вычисляется как вектор [AB]=(y1*z2-z1*y2, z1*x2-x1*z2, x1*y2-y1*x2).
    4. Оформите в виде функции вычисление смешанного произведения векторов. Смешанное произведение векторов ABC вычисляется как скалярное произведение вектора A на векторное произведение [BC]: ABC=A*[ВС]. В реализации данной функции используйте вызовы написанных ранее подпрограмм вычисления скалярного произведения векторов и вычисления векторного произведения векторов.

     

  1. Задача "Медленно минуты уплывают в даль..." (Word).

    Указания

    1. Оформите в виде процедуры перевод минут в число полных дней, часов, и минут. В реализации используйте стадартные операции div (деление нацело) и mod (взятие остатка).
    2. Оформите перевод дней в число полных лет, месяцев и дней в виде процедуры.

     

  2. Задача "Вычисление функции" (Word).

    Указания

    1. Оформите нахождение максимума из двух чисел в виде функции Max.
    2. Оформите нахождение минимума из двух чисел в виде функции Min.
    3. Оформите вычисление функции Z(x,y) в виде соответствующей функции. В реализации данной функции используйте вложенный оператор if и написанные ранее подпрограммы Max и Min.

     

  3. Задача "Вид треугольника" (Word).

    Указания

    1. Оформите в виде функции определение вида треугольника:
      function TypeOfTriangle(A, B, C: Real): Integer;
      { По длинам сторон треугольника A, B, C возвращает целое число (вид треугольника):
      0, если треугольник с такими сторонами построить нельзя
      3, если треугольник равносторонний
      2, если треугольник равнобедренный
      1, иначе (треугольник общего вида). }
    2. Треугольник существует, если сумма длин двух любых его сторон больше длины третьей стороны. В реализации функции TypeOfTriangle используйте вложенный оператор if .
    3. В реализации вывода результатов используйте оператор case.

     

  4. Задача "Квадратное уравнение" (Word).

    Указания

    1. Оформите в виде процедуры вычисление действительных корней квадратного уравнения и их количества:
      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.}

     

  5. Задача "Копейка рубль бережет" (Word).

    Указания

    1. Оформите в виде процедуры перевод копеек в рубли и копейки.
    2. Оформите в виде функции подбор для заданного числа соответствующей формы слова "рубль". В реализации функции используйте оператор case.
    3. Оформите в виде функции подбор для заданного числа соответствующей формы слова "копейка". В реализации функции используйте оператор case.

     

  6. Задача "Все о цифрах в числе" (Word).

    Указания

    1. Оформите в виде функции нахождение количества цифр числа.
    2. Оформите в виде функции нахождение суммы цифр числа .
    3. Оформите в виде функции нахождение произведения цифр числа.
    4. В реализации функций используйте оператор while ... do или repeat ... until.

     

  7. Задача "Число Фибоначчи" (Word).

    Указания

    1. Оформите в виде функции нахождение n-го числа Фибоначчи.
    2. В реализации функции используйте оператор цикла for ... to.

     

  8. Задача "Больничная статистика" (Word).

    Указания

    1. Определите константу "Размерность массива" и тип "Массив целых чисел" соответствующей размерности. Например:
      const
         Size=100;
      type
         TArray=array [1..Size] of Integer;
    2. Оформите нахождение минимального, максимального элементов и среднего арифметического элементов массива в виде отдельных подпрограмм.

     

  9. Задача "Матрица" (Word).

    Указания

    1. Определите константу "Размерность матрицы" и тип "Матрица целых чисел" соответствующей размерности. Например:
      const
         Size=10;
      type
         TMatrix=array [1..Size, 1..Size] of Integer;
    2. Оформите ввод и вывод элементов квадратных матриц в виде отдельных подпрограмм. Обеспечьте ввод элементов матрицы с клавиатуры в виде
      Введите элемент [..., ...] =>_
      (c указанием номера строки и столбца).
    3. Оформите нахождение суммы и произведения квадратных матриц в виде отдельных подпрограмм.

     

  10. Задача "Статистика символов текста" (Word). 

Контрольные вопросы и задания

  1. Покажите в тексте программы:
  2. Покажите в тексте программы (для каждой подпрограммы):
  3. Напишите, какое значение будет иметь переменная 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
  4. Определите значение переменной S после выполнения следующих операторов:
    1. S:=0;
      i:=0;
      while i<5 do
        i:=i+1;
      s:=s+1/i;
    2. S:=0;
      i:=1;
      while i>1 do begin
        s:=s+1/i;
        i:=i-1;
      end;
    3. s:=0;
      i:=1;
      repeat
        s:=s+1/i;
        i:=i-1;
      until i<=1;
    4. s:=1;
      n:=1;
      for i:=2 to n do
        s:=s+1/i;
  5. Чем отличаются текстовые, типизированные и нетипизированные файлы?
  6. Объясните семантику следующих стандартных процедур для работы с текстовыми файлами: Assign, Reset, Rewrite, Append, Close.