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

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

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

Листинг программы
  1. program lab9;
  2. type mas=array[1..10] of integer;
  3. mtr=array[1..10] of mas;
  4. procedure Kol(a:mas;p,q:integer);
  5. var j:byte;
  6. begin
  7. for j:=1 to 10 do
  8. if(a[j]>=p)and(a[j]<=q) then
  9. writeln('adress=',j);
  10. end;
  11. var a:mtr;
  12. i,j,p,q:integer;
  13. begin
  14. randomize;
  15. writeln('Исходная матрица:');
  16. for i:=1 to 10 do begin
  17. for j:=1 to 10 do begin
  18. a[j,i]:=random(100);
  19. write(a[j,i]:4);
  20. end;
  21. writeln;
  22. end;
  23. writeln('Введите диапазон p<q:');
  24. readln(p,q);
  25. writeln('Кол-во эл-ов из диапазона [',p,',',q,']в столбцах:');
  26. for j:=1 to 10 do
  27. begin
  28. writeln('Столбец ',j);
  29. Kol(a[j],p,q);
  30. end;
  31. readln;
  32. end.

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

textual
Листинг программы
  1. uses Crt;
  2. type mas=array[1..10] of integer;
  3.      mtr=array[1..10] of mas;
  4. function  F(t,ap,aq:integer):byte;
  5. begin
  6.      if (t>=ap) and (t<=aq)
  7.       then F:=1
  8.       else F:=0;
  9. end;
  10. var  a:mtr;
  11.      i,j,p,q:integer;
  12. begin
  13.      ClrScr;
  14.      randomize;
  15.      writeln('Matrix:'); writeln;
  16.       for i:=1 to 10 do begin
  17.        for j:=1 to 10 do begin
  18.         a[i,j]:=random(100);
  19.          write(a[i,j]:4);
  20.        end;
  21.        writeln;
  22.       end;
  23.       writeln;
  24.       writeln('Diapozon p<q:'); readln(p,q); writeln;
  25.       writeln('Elementov is diapozona [',p,',',q,'] v stolbcah:');
  26.       j:=1;
  27.       repeat
  28.          Write('Stolbec ',j,' : ');
  29.          for i:=1 to 10 do
  30.           if F(a[i,j],p,q)=1 then
  31.            Write('[',i,']  ');
  32.          Writeln;
  33.          Inc(j);
  34.       until j>10;
  35.       ReadKey;
  36. end.

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

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

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


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

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

8   голосов , оценка 3.375 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы