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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

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

Напишите пожалуйста код с использованием процедур и функций:

Вводится матрица MT (n,m) с цифровой информацией. Составить программу нахождения в строках матрицы отрицательных (<0) элементов, подсчета их количества и сумм. Получить новую матрицу, в которой элементы будут представлены числами, полученными от деления суммы отрицательных элементов по строке на значение конкретного элемента. Исходные, промежуточные и результатные данные вывести на дисплей.
Fromki вне форума Ответить с цитированием
Старый 27.02.2011, 19:58   #2
Антон Лысенко
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 181
По умолчанию

В чем состоит ваша проблема? Проблема с процедурами и функциями или работой с матрицей?
Антон Лысенко вне форума Ответить с цитированием
Старый 28.02.2011, 05:18   #3
Fromki
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 60
По умолчанию

и то и другое
Fromki вне форума Ответить с цитированием
Старый 28.02.2011, 07:14   #4
CepbIu
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Fromki Посмотреть сообщение
Напишите пожалуйста код с использованием процедур и функций:

Вводится матрица MT (n,m) с цифровой информацией. Составить программу нахождения в строках матрицы отрицательных (<0) элементов, подсчета их количества и сумм. Получить новую матрицу, в которой элементы будут представлены числами, полученными от деления суммы отрицательных элементов по строке на значение конкретного элемента. Исходные, промежуточные и результатные данные вывести на дисплей.
1) в любом случае это будет для ПК "цифровая информация"
2) что пробовали что бы посчитать?
3) что пробовали что бы получить новую матрицу?

Вы написали что у вас проблема с процедурами и функциями - в чём именно она заключается? Вы не понимаете разницу? Вы понимаете что такое матрица?
Какой язык написания? Или вам нужен просто алгоритм?
CepbIu вне форума Ответить с цитированием
Старый 28.02.2011, 08:02   #5
Fromki
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 60
По умолчанию

язык Паскаль. Я вообще ничего не понимаю в нем, мне нужен только код
Fromki вне форума Ответить с цитированием
Старый 28.02.2011, 08:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Денюжку готов выложить?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.02.2011, 09:02   #7
Нур
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 44
По умолчанию

проблема у него со знанием грамматики языка = "Paskal" XD
Нур вне форума Ответить с цитированием
Старый 28.02.2011, 10:28   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

либо твой код , пускай и неработающий, но показывающий, что ты учишься не на тракториста, а на айтишника, и конкретный вопросы по устранению косяков либо рублей 200 на телефон и код тебе приведут десятки человек (ну в смысле кому оплатишь, а могут многие)
phomm вне форума Ответить с цитированием
Старый 28.02.2011, 16:08   #9
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 вне форума Ответить с цитированием
Старый 28.02.2011, 16:43   #10
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Fromki, я не очень хорошо понял что за код вы выше привели и какое отношение он имеет к вашей задаче?
Помоему проше заново код написать чем разбираться в вышем алгоритме...
Вы указали что вам нужно в данном коде использовать процедуры/функции, укажите в каких целях вы их хотите использовать

я тут набросал без процедур/функций:
Код:
var
    a:array [1..100,1..100] of integer;
    b:array [1..100,1..100]of real;
i,j,n,m,k,s:integer;
begin
read(n,m);
randomize;
for i:=1 to n do
begin
      for j:=1 to m do
      begin
           a[i,j]:=random(100)-50;
           write(a[i,j]:3);
      end;
      k:=0;
      s:=0;
      for j:=1 to m do
          if a[i,j]<0 then begin k:=k+1;s:=s+a[i,j];end;
      writeln(' For line ',i,' Amound negative=',k,' Summ=',s);

           for j:=1 to m do
               b[i,j]:=s/a[i,j];
      writeln;
end;
writeln('Second Matrix');
for i:=1 to n do
begin
     for j:=1 to m do
     write(b[i,j]:3:2);
writeln;
end;
end.

Последний раз редактировалось Летучий_СкилетиК; 28.02.2011 в 16:48.
Летучий_СкилетиК вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Paskal процедуры и функции Fromki Помощь студентам 1 22.02.2011 13:35
Процедуры и функции Paskal Fromki Помощь студентам 6 09.02.2011 10:23
Использование функции ord.(paskal) netcher Помощь студентам 5 01.03.2009 21:30
выражения и функции языка Object Paskal etrom Помощь студентам 1 23.10.2008 22:42