Процедуры и функции. Тексты программ

Материал из Вики проекта PascalABC.NET
Версия от 15:49, 19 января 2010; Mikst (обсуждение | вклад) (→‎Ссылки)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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

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.

Табулирование функции

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.

Функция вычисления an

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.

Функция вычисления n!

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.

Функция, преобразующая цифру к ее словесному наименованию

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.

Функция проверки числа на четность

function Even(x: integer): boolean;
begin
  Result := x mod 2 = 0
end;

begin
  writeln(Even(3));
  writeln(Even(4));
  writeln(Even(7));
end.

Функция определения простоты числа

function IsSimple(N: integer): boolean;
begin
  Result := True;
  for var i:=2 to round(sqrt(N)) do 
    if N mod i = 0 then
    begin
      Result := False;
      exit;
    end;
end;

begin
  writeln(IsSimple(13));
  writeln(IsSimple(4));
  writeln(IsSimple(7));
end.

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

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.

Функция определения НОД числа

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.

Процедура вывода таблицы умножения

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.

Ссылки