Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2011, 14:23   #1
Fromki
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 60
По умолчанию Паскаль процедуры и функции

Пожалуйста, нужно написать программу, то что выделено красным в коде должны быть задействованы через процедуру и функцию:

Вводится матрица MT (n,m) с цифровой информацией. Составить программу нахождения в строках матрицы отрицательных элементов, подсчета их количества и сумм. Получить новую матрицу, в которой элементы будут представлены числами, полученными от деления суммы отрицательных элементов по строке на значение конкретного элемента. Исходные, промежуточные и результатные данные вывести на дисплей.
Fromki вне форума Ответить с цитированием
Старый 15.03.2011, 14:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вводится матрица MT (n,m) с цифровой информацией.
Покажи программой как ты вводишь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2011, 11:29   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Код надо предоставить, чтобы помощь была не с нуля, а если с нуля - то задание имеет цену...
phomm вне форума Ответить с цитированием
Старый 17.03.2011, 17:09   #4
Fromki
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 60
По умолчанию

Вот код,только он для этой постановки задачи,не большое отличие:
Вводится матрица MT (n,m) с цифровой информацией. Составить программу нахождения в столбцах матрицы положительных (>0) элементов, подсчета их количества и сумм. Получить новую матрицу, в которой элементы будут представлены числами, полученными от деления суммы положительных элементов по столбцу на значение конкретного элемента. Исходные, промежуточные и результатные данные вывести на дисплей.
Код:
program lab4;
uses  crt;
Label
   L1,L2;
var
A : array [1..10,1..10] of integer;
j : array [1..10,1..10] of integer;
B:array [1..10,1..10] of  real;
ch:char;
x, y, q, error:integer;
begin
clrscr;
   window(3,4,70,14);
    writeln ('Вашему вниманию представляется программа');
    writeln ('которая находит в столбцах матрицы положительные >0 элементы,');
    writeln ('подсчета их количества и сумм.);
    writeln ('Затем получает новую матрицу, в которой элементы’);
    writeln ('будут представлены числами, полученные от деления ');
    writeln ('положительных элементов по столбцу на значение конкретного элемента.');
    writeln ('Требования:');
    writeln ('Элементы матрицы должны быть целыми числами!');
    writeln ('Размерность матрицы должна быть не меньше двух,');
    writeln ('но и не более ста элементов');
    window (42,15,75,23);
    writeln (‘Программу составил студент’);
    writeln ('группы ***********');
    window (1,1,75,25);
    gotoxy(20,24);
    writeln ('для продолжении нажмите любую клавишу ');
    Ch:=readkey;
    L1:Clrscr;
repeat
    write('Введите размерность матрицы: ');
    {$I-}
    readln(q);
    error:=IOResult;
    {$I+}
    If(error<>0) or (q>100) or (q<2) then
    writeln('Ошибка ввода размерности’);
    until(error=0) and (q<=100) and (q>=2);
    writeln('Введите матрицу:',q,' столбца(ов) и ',q,' строк(и)');

for y:=1 to q do
begin
for x:=1 to q do
 begin
{$I-}
repeat
 read (A[y,x]);
         error:=ioresult;
         {$I+}
         If ( A[y,x] > 99) or (A[y,x] < -99) or (Error <> 0)  then
          writeln('ошибка ввода элемента матрицы’);
      until ( A[y,x] <=99) and ((A[y,x] >=-99) and (Error = 0));
     Readln;
     end;
     end;
     clrscr;
   writeln(‘Исходная матрица’);
     y:=0;
   while y < q do
    begin
       x:=1;
       j[y+1,1]:=0;
       j[y+1,2]:=0;
      repeat
     if A[y+1,x]>0 then
        begin
     j[y+1,1]:=j[y+1,1]+ A[y+1,x];
     j[Y+1,2]:=  j[Y+1,2]+1;
        end;
      inc(x);
      until x>q;
     y:=y+1;
    end;
    writeln('');
   y:=1;
   repeat
     for x:=1 to q do
       begin
   if  (y=1)  then
        write('_____')
       else
   if  (y>q+1)  then
        write('-----')
         else
        begin
           if A[x,y-1] > -1 then
                write(' ');
        write(A[x,y-1]);
        write(' | ');
         end;
        end;
       writeln;
       inc(y,1);
    until (q+2<y);

    for x:=1 to q do
      begin
      write(' ');
 write(j[x,1]:1:0);
        write(' | ');
      end;
 writeln(' сумма элементов >0');
     for x:=1 to q do
      begin
   write(' ');
 write(j[x,2]:1:0);
        write(' | ');
      end;
 writeln(' количество элементов >0');

for x:=1 to q do
for y:=1 to q do
if A[x,y]<>0 then
B[x,y]:= j[x,1] div A[x,y];
 writeln;

   writeln(‘Полученная матрица’);
   x:=0;
   repeat
     inc(x,1);
     for y:=1 to q do
     begin
       if  (x=1)  then
         write('_____')
         else
   if  (x>q+1)  then
        write('-----')
         else
        begin
     if B[y,x-1] > -1 then
                write(' ');
     write(B[y,x-1]:1:1);
     write(' | ');
        end;
     end;
     writeln;
   until q<(x-1);
begin
  writeln;
  writeln('Хотите повторить? <Y/N)');
       L2:
           Case Readkey of
           #89: Goto L1;
           #121: Goto L1;
           #78: Exit;
           #110: Exit;
       End;
       Goto L2;
readln;
readln;
end;
end.
Fromki вне форума Ответить с цитированием
Старый 17.03.2011, 19:02   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

сделайте меня это развидеть (никогда не думал , что скажу сию тролльскую фразу)

какая-то непонятная смесь из разных циклов ифов кейсов и даже готов. ну в целом, конечно, понятно чем она занимается, но очень настораживает идентичность 2 программ - приведенной и желаемой, я так полагаю ученик желает узнать , как поменть программу , чтобы получить результат. что ж, я скажу - надо поменять знак, точнее место с "> 0" на "< 0" , и вроде как, >-1 на <1, остальное не смотрел... меня собственно удивляет неумение переделать идентичную прогу с ничтожным отличием.. как Вы дальше-то учиться будетет ?

Последний раз редактировалось phomm; 17.03.2011 в 19:08.
phomm вне форума Ответить с цитированием
Старый 19.03.2011, 20:07   #6
Fromki
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 60
По умолчанию

Да это я могу сделать, я не могу сделать через процедуру и функцию
Fromki вне форума Ответить с цитированием
Старый 19.03.2011, 21:14   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

думаю что-т такое :
Код:
// передаем строку матрицы и 2 пустые переменные для сохранения результатов
procedure negmxparams(var Ar : array of integer; var aqnt, asum : integer); 
var i : integer;
begin
aqnt := 0;
asum := 0;
for i := low(ar) to high(ar)
  do if ar[i]<0 
    then begin
    inc(aqnt);
    inc(asum,ar[i]);
    end;
end;

вызывать так

negmxparams(a[row], qnt, sum);
без проверки , думаю должна работать...

думай над второй, приводи код, доказывай, что ты учишься на айти-спеца, если толковый, пусть и не рабочий код приведешь, поправим, будь спок)
phomm вне форума Ответить с цитированием
Старый 19.03.2011, 21:17   #8
Fromki
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 60
По умолчанию

хорошо буду пробовать, за кусок спс
Fromki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль...Процедуры и функции Miledi Помощь студентам 3 14.05.2012 18:22
паскаль. процедуры и функции Антон Лысенко Помощь студентам 4 23.02.2011 23:17
функции и процедуры (паскаль) spr1te Помощь студентам 0 27.12.2010 18:17
Паскаль.Процедуры и Функции. radon228 Помощь студентам 5 22.05.2010 00:25