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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 22:39   #1
nucweapon
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
Восклицание Для матрицы и массива (заданы номера столбцов) найти минимальные элементы, поместить в массив, найти сред. ариф.(Delphi)

Задана матрица B(7,8) и массив J (n), содержащий номера столбцов, для которых необходимо определить минимальный элемент (n<=8). Значение минимальных элементов заполнить в массиве А. Определить среднее арифметическое вычисленных минимальных значений
Напечатать матрицу B в виде матрицы, массивы J и A, среднее арифметическое значение.

Код мой!
Код:
program Project_matrix;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Type
vector=array [1..100] of integer;
   Matrix=array [1..100, 1..100] of integer;
Var
    t:vector;
   A: matrix;
   g,z,e:integer;
    i, j,r : integer;
   P: integer;

Procedure vvod (var m: matrix);

Var k , h : byte ;

Begin

   For i :=1 to g do 

      For j :=1 to z do 

        M[i,j]:= random (10) ;

End;

procedure vectorJ (l:vector);

var k,h:byte;

begin
for r:=1 to g do
l[r]:=j;
write(l[r]:2);
end;

Procedure print (m: matrix);
Var k, h: byte;
Begin
   For j:=1 to g do

   begin
      For i:=1 to z do
      
      begin
       
         Write (M[i, j]:6);
         end;
      Writeln;
   end ;
End ;
Begin

   readln(g,z);
   e:=g;


   Vvod(a);
   Print(a);
   vectorJ(t);

   readln;
End .
________
1) Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.



2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.10.2011 в 00:08.
nucweapon вне форума Ответить с цитированием
Старый 24.10.2011, 21:05   #2
nucweapon
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию Доработал. Осталось найти среднее арифметическое и не работает поиск min

Код:
 

Program project_by_matrix;

{$APPTYPE CONSOLE}

var n,m:integer;
      a:array[1..100,1..100]of  integer;
      b:array[1..100]of integer;

procedure vvod;
var j,i:integer;
      begin
        writeln('RAZMER');
         readln(n,m);
            for i:=1 to m do
               for j:=1 to n do
                   Begin
                    write ('a[',i,',',j,']=');
                     readln (a[i,j]);
                   End;
           end;


Procedure print ;
Var i, j: byte;
     Begin
          For j:=1 to m do
             begin
                 For i:=1 to n do
                     begin
                            Write (a[i, j]:6);
                     end;
                  writeln;
             end;
        end;

procedure oper (n1:integer;var min:integer);
var j1:integer;
     begin
         min:=8;
         for j1:=1 to m do if min>a[n1,j1] then min:=a[n1,j1];
     end;

procedure resh;
var i,min:integer;
        begin
            for i:=1 to n do
               begin
                   oper(i,min);
                   b[i]:=min;
               end;
            writeln('MINIMAL',b[i]);
        end;

begin
vvod;
readln;
print;
readln;
//oper;
resh;
readln;

readln;
end.
nucweapon вне форума Ответить с цитированием
Старый 25.10.2011, 09:31   #3
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

1. по условию у вас задана матрица 7х8, а вы создаете 100х100
2. при нахождении минимума зачем вы ему присваиваете значение 8? присвойте значение первого элемента
Код:
min:=a[n1,1];
3. среднее арифметическое это сумма элементов деленная на количество. следовательно после того как вы найдете все минимумы вам надо пройтись по массиву А, просуммировать все минимумы и подсчитать их количество, а потом разделить сумму на кол-во.

PS: при форматировании не обязательно сдвигать каждую строку - такое форматирование также нечитабельно как и вообще без форматирования.
Dush вне форума Ответить с цитированием
Старый 25.10.2011, 09:38   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Нормальное у него форматирование, не придирайся. Лучше хоть какой-нибудь стиль, чем его полное отсутствие. Все видно и хорошо читается.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.10.2011, 18:32   #5
nucweapon
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию Немного доработал.

Код:

Program project_by_matrix;

{$APPTYPE CONSOLE}

Const 
m=7;
N=8;
var 
        kol:integer;
        B:array [1..m,1..n] of real;
        J:array of integer;
        A:array of real;

procedure vvod(var b:array of real; c:array of real;kol:integer);
var j,i:integer;
begin

      for i:=1to m do
      for j:=1to n d
          Begin
              write ('b[',i,',',j,']=');
              readln (b[i,j]);
          End;
J:=1;

While I<>2 do begin
Writeln (' выбери пункт меню');
Writeln (' 1: добавить номер столбца');
Writeln (' 2:выход'');

     Case i of integer

     1:begin
        Writeln (' 1: введи номер столбца');
        Read(c[j]);
        j:=j+1;
        end;
        End;
Kol:=j;
End;


Procedure print(a:array of real) ;
Var i, j: byte;
   Begin
       For j:=1to m do
           begin
               For i:=1to n do
                   begin
                       Write (a[i, j]:6);
                   end;
               writeln;
               Writeln;
           end;
       end;

procedure oper(kol,m:integer; b:array of real;j: array of integer;var a:array of real);
var I,k,min:integer;

       begin
           For I:=1 to kol do
                Begin
                    Min:=b[1,j[i]];
                       For k:=2 to m do
                        If  b[k,j[i]]<min then min:=b[k,j[i]];
                            a[i]:=min;
                End;
            end;

procedure resh;
var i,min:integer

         begin
             for i:=1to n do
                 begin
                     oper(i,min);
                     b[i]:=min;
                 end;
             writeln('MINIMAL',b[i]);
         end;

begin
vvod(b,j);
readln;
print(b);
readln;
//oper;
resh;*
readln;

readln;
end.
Точнее переработал полностью.

Последний раз редактировалось nucweapon; 25.10.2011 в 19:36.
nucweapon вне форума Ответить с цитированием
Старый 26.10.2011, 09:37   #6
nucweapon
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Dush Посмотреть сообщение
1. по условию у вас задана матрица 7х8, а вы создаете 100х100
Если Вы всмотритесь в код, то увидите, что 100x100 - это максимальный размер матрицы. А в процедуре VVOD я задаю размерность с клавиатуры, так как условия в последующем могут варьироваться.
nucweapon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# дан двумерный массив 9х9. найти наименьший и наибольший элементы массива и поменять их местами. Koksa Помощь студентам 1 10.10.2011 11:28
найти максимальный и минимальные элементы viknik Помощь студентам 1 01.06.2011 23:12
Задать два массива целых чисел: А(12) и В(6). Найти минимальные элементы этих массивов и поменять.... eragon_ua Помощь студентам 5 15.04.2011 07:58
Массив случайных чисел, сред. ариф. vladxxl Общие вопросы C/C++ 1 27.11.2010 23:52
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24