Как перейти от процедуры к функции? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

program lab9;
type mas=array[1..10] of integer; 
     mtr=array[1..10] of mas;   
procedure Kol(a:mas;p,q:integer);
var j:byte;
begin
for j:=1 to 10 do
if(a[j]>=p)and(a[j]<=q) then
writeln('adress=',j);
end;
var a:mtr;
    i,j,p,q:integer;
begin
randomize;
writeln('Исходная матрица:');
for i:=1 to 10 do begin
for j:=1 to 10 do begin
a[j,i]:=random(100);
write(a[j,i]:4);
end;
writeln;
end;
writeln('Введите диапазон p<q:');
readln(p,q);
writeln('Кол-во эл-ов из диапазона [',p,',',q,']в столбцах:');
for j:=1 to 10 do
 begin
  writeln('Столбец ',j);
  Kol(a[j],p,q);
 end;
 readln;
end.

Решение задачи: «Как перейти от процедуры к функции?»

textual
Листинг программы
uses Crt;
type mas=array[1..10] of integer;
     mtr=array[1..10] of mas;
function  F(t,ap,aq:integer):byte;
begin
     if (t>=ap) and (t<=aq)
      then F:=1
      else F:=0;
end;
var  a:mtr;
     i,j,p,q:integer;
begin
     ClrScr;
     randomize;
     writeln('Matrix:'); writeln;
      for i:=1 to 10 do begin
       for j:=1 to 10 do begin
        a[i,j]:=random(100);
         write(a[i,j]:4);
       end;
       writeln;
      end;
      writeln;
      writeln('Diapozon p<q:'); readln(p,q); writeln;
      writeln('Elementov is diapozona [',p,',',q,'] v stolbcah:');
      j:=1;
      repeat
         Write('Stolbec ',j,' : ');
         for i:=1 to 10 do
          if F(a[i,j],p,q)=1 then
           Write('[',i,']  ');
         Writeln;
         Inc(j);
      until j>10;
      ReadKey;
end.

Объяснение кода листинга программы

  1. Объявлены типы данных: массив mas (11 элементов), массив mtr (11 элементов), переменные i, j, p, q типа integer, переменная a типа mtr.
  2. Задана функция F с тремя параметрами типа integer и возвращаемым типом byte.
  3. В основной программе:
    • Вывод 10x10 матрицы случайных чисел.
    • Ввод от пользователя интервалов для диапозона.
    • Вывод элементов диапозона в столбцах.
    • Ввод от пользователя ключа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы