• Предмет: Информатика
  • Автор: feldman2001
  • Вопрос задан 2 года назад

помогите написать программу на паскале (с использованием процедур и функций) ​

Приложения:

BobbyFresnel: Лишь для тех, у кого Лазарус установлен. Но программисты на нем не пишут, вот в чем беда.
feldman2001: напишите просто код на паскале. я его отформатирую для ллазуруса
BobbyFresnel: Это дурная среда с формочками и окошечками.
BobbyFresnel: У лазаруса не просто паскаль, там Free Pascal
feldman2001: можешь просто на паскале написать программу (без окон и форм)
BobbyFresnel: смотри, там есть глупое требование написать функцию, которая опредеояет количество столбцов, не содержащих отрицательных элементов. Зачем проверять столбцы, если мы формируем массив и те его элементы, где не было отрицательных, заменяем нулями? Можно же просто посчитать количество нулей в этом массиве.
feldman2001: ладно. я понял. ты ничего не сделаешь. спасибо
BobbyFresnel: Могу сделать, если убрать неоднозначности. Писать функцию, как по-умному, или как в задании? Откуда брать значения для элементов исходного массива? Вводить или от датчика случайных?
feldman2001: вводить
feldman2001: главное это вводить самому значения и использовать функции и процедуры. на остальное не обращай внимание

Ответы

Ответ дал: BobbyFresnel
1

procedure FormMas(a: array[,] of integer; var v: array of int64);

var

 m, n, i, j, k: integer;

begin

 m := length(a, 0);

 n := length(a, 1);

 setlength(v, n);

 for j := 0 to n - 1 do

 begin

   v[j] := 1;

   k := 0;

   for i := 0 to m - 1 do

     if a[i, j] < 0 then

     begin

       k := k + 1;

       v[j] := v[j] * a[i, j]

     end;

   if k = 0 then

     v[j] := 0;

 end;

end;

function KolNul(a: array[,] of integer): integer;

var

 m, n, i, j, k, p: integer;

begin

 k := 0;

 m := length(a, 0);

 n := length(a, 1);

 for j := 0 to n - 1 do

 begin

   p := 0;

   for i := 0 to m - 1 do

     if a[i, j] < 0 then

       p := p + 1;

   if p = 0 then

     k := k + 1;

 end;

 KolNul := k;

end;

var

 m, n, i, j, k: integer;

 a: array[,] of integer;

 b: array of int64;

begin

 read(m, n);

 setlength(a, m, n);

 for i := 0 to m - 1 do

   for j := 0 to n - 1 do

     read(a[i, j]);

 FormMas(a, b);

 for j := 0 to n - 1 do

   write(b[j], ' ');

 writeln;

 k := KolNul(a);

 write(k);

end.

Вас заинтересует