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


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 38

Тема: Разработка программ с использованием функций на Pascal ABC
Цель: Научиться работать с функциями

Наглядные пособия и раздаточный материал:

1. Методические указания к выполнению практического занятия.
2. ПЭВМ

Изучение нового материала

1. Работа с функциями

Контрольные вопросы

1. Что такое текстовый файл?
2. Какие существуют виды текстовых файлов?
3. Как описать файловые переменные?
4. Как открыть файл?
5. Как прочитать файл?
6. Как записать в файл?

Практическое задание

1 Вычисление площади и периметра прямоугольника

```pascal
procedure RectSP(a,b: real; var S,P:real);
begin
  S := a * b;
  P := 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. Табулирование функции

```pascal
function fx(x: real): real;
begin
  Result := x*x - 2*x + 3;
end;
var
  a,b: real;
N: integer;
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. Функция вычисления an

```pascal
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. Функция вычисления n!

```pascal
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. Функция, преобразующая цифру к ее словесному наименованию

```pascal
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. Функция проверки числа на четность

```pascal
function Even(x: integer): boolean;
begin
  Result := x mod 2 = 0
end;
begin
  writeln(Even(3));
  writeln(Even(4));
  writeln(Even(7));
end.
```

7. Функция вычисления n-того числа Фибоначчи

```pascal
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. Функция определения НОД числа

```pascal
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. Процедура вывода таблицы умножения

```pascal
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.
```

Оформить отчет
Содержание отчета:

1. Тема.
2. Цель.
3. Ответы на контрольные вопросы
   Выполнение практического задания.