Загрузка данных


1. procedure RectSP(a, b: real; var S, P: real);
begin
  S := a * b;
  P := a + b; // Внимание: в оригинале ошибка, периметр прямоугольника равен 2*(a+b)
end;

var
  x, y: real; // Стороны прямоугольника
  S: real;    // Площадь прямоугольника
  P: real;    // Периметр прямоугольника
begin
  write('Введите стороны прямоугольника: ');
  readln(x, y);
  RectSP(x, y, S, P);
  writeln('Площадь равна ', S);
  writeln('Периметр равен ', P);
end.
2. function f(x: real): real;
begin
  Result := x * x - 2 * x + 3;
end;

var
  a, b: real; // [a,b] - отрезок, на котором табулируется функция f(x)
  N: integer; // Количество частей, на которые разбивается [a,b]
begin
  write('Введите a,b: ');
  readln(a, b);
  write('Введите N: ');
  readln(N);
  var h := (b - a) / N;
  var x := a;
  writeln('x   f(x)');
  for var i := 0 to N do
  begin
    writelnFormat('{0,3:f1} {1,6:f2} ', x, f(x));
    x += h;
  end;
end.
3. function Power(a: real; n: integer): real;
begin
  Result := 1;
  for var i := 1 to n do
    Result *= a;
end;

var
  a: real;
  n: integer;
begin
  write('Введите a: ');
  readln(a);
  write('Введите n: ');
  readln(n);
  writelnFormat('{0} в степени {1} = {2}', a, n, Power(a, n));
end.
4. function Factorial(n: integer): integer;
begin
  Result := 1;
  for var i := 2 to n do
    Result *= i;
end;

var n: integer;
begin
  write('Введите n: ');
  readln(n);
  writelnFormat('{0}! = {1}', n, Factorial(n));
end.
5. function DigitName(n: integer): string;
begin
  case n of
    0: Result := 'ноль';
    1: Result := 'один';
    2: Result := 'два';
    3: Result := 'три';
    4: Result := 'четыре';
    5: Result := 'пять';
    6: Result := 'шесть';
    7: Result := 'семь';
    8: Result := 'восемь';
    9: Result := 'девять';
  end;
end;

begin
  writeln(DigitName(3));
  writeln(DigitName(5));
  writeln(DigitName(7));
end.
6. function Even(x: integer): boolean;
begin
  Result := x mod 2 = 0
end;

begin
  writeln(Even(3));
  writeln(Even(4));
  writeln(Even(7));
end.
7. function Fib(N: integer): integer;
begin
  if (N = 1) or (n = 2) then
    Result := 1
  else
  begin
    var a := 1;
    var b := 1;
    for var i := 3 to N do
    begin
      Result := a + b;
      a := b;
      b := Result;
    end;
  end;
end;

begin
  writeln(Fib(5));
  writeln(Fib(6));
  writeln(Fib(7));
end.
8. function NOD(a, b: integer): integer;
begin
  while b <> 0 do
  begin
    var c := a mod b;
    a := b;
    b := c;
  end;
  Result := a;
end;

var x, y: integer;
begin
  x := 15; y := 12;
  writelnFormat('НОД чисел {0} и {1} равен {2}', x, y, NOD(x, y));
  x := 144; y := 64;
  writelnFormat('НОД чисел {0} и {1} равен {2}', x, y, NOD(x, y));
  x := 99; y := 54;
  writelnFormat('НОД чисел {0} и {1} равен {2}', x, y, NOD(x, y));
end.
9. procedure Pifagor(n: integer);
begin
  for var i := 1 to n do
  begin
    for var j := 1 to n do
      write(i * j:4);
    writeln;
  end;
end;

begin
  Pifagor(15);
end.