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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 17:12   #1
igabenu
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 27
По умолчанию Найти колво единиц в массиве

Дан двумерный массив. Найти столбец, в котором максимальное колво едениц(1). Как на делфи это решить? Заранее спасибо

Последний раз редактировалось igabenu; 09.03.2011 в 17:20.
igabenu вне форума Ответить с цитированием
Старый 09.03.2011, 17:14   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

если действия по столбцу, то поменяй циклы местами
Код:
for j:=1 to n do begin
k:=0;
for i:=1 to m do
if m[i,j]=1 then k:=k+1;
end;
...
end;

Последний раз редактировалось unbanned; 09.03.2011 в 17:18.
unbanned вне форума Ответить с цитированием
Старый 09.03.2011, 17:20   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
k:=0;
for j:=1 to n do
for i:=1 to m do 
if m[i,j]=1 then k:=k+1;
хм... Помоему найдёт только кол-во 1. А не номер столбца с максимальным кол-вом единиц!
Нужно как-то так!
Код:
num = 0;
count:=0;
count_temp = 0;
for j:=1 to n do
begin
    for i:=1 to m do 
        if m[i,j]=1 then Inc(count_temp);
    if count_temp > count then 
    begin
        count := count_temp;
        num := j;
    end;
end;
Writeln (num);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 09.03.2011, 17:47   #4
igabenu
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 27
По умолчанию

Hacker19_90, спс за помощь, но код не рабочий
igabenu вне форума Ответить с цитированием
Старый 09.03.2011, 17:57   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от igabenu Посмотреть сообщение
Hacker19_90, спс за помощь, но код не рабочий
Так прям и выдал - "Я не рабочий";
Может покажите, как вы его дополнили?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 09.03.2011, 18:39   #6
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

я где то сказал что это решение данной задачи?
я говорил про действия со столбцами)))
а вот решение:
Код:
const
  n = 5;
  m = 5;

var
  mk, mj, i, j, k: integer;
  a: array [1..n, 1..m] of integer;

begin
  randomize;
  for i := 1 to n do 
  begin
    for j := 1 to m do 
    begin
      a[i, j] := -1 + random(5);
      write(a[i, j]:3);
    end;
    writeln;
  end;
  mk := 0;
  mj := 0;
  for j := 1 to m do 
  begin
    k := 0;
    for i := 1 to n do
      if a[i, j] = 1 then k := k + 1;
    if k > mk then
    begin
      mk := k;
      mj := j;
    end;
  end;
  if mk <> 0 then
    writeln('В столбце: ', mj, ' Количество: ', mk)
  else writeln('В матрице нет единиц');
end.
так же и на delphi...
Код:
program Project1;

{$APPTYPE CONSOLE}

const
  n = 5;
  m = 5;

var
  mk, mj, i, j, k: integer;
  a: array[1..n, 1..m] of integer;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  randomize;
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := -1 + random(5);
      write(a[i, j]: 3);
    end;
    writeln;
  end;
  mk := 0;
  mj := 0;
  for j := 1 to m do
  begin
    k := 0;
    for i := 1 to n do
      if a[i, j] = 1 then
        k := k + 1;
    if k > mk then
    begin
      mk := k;
      mj := j;
    end;
  end;
  if mk <> 0 then
    writeln('V stolbce: ', mj, ' kolichestvo: ', mk)
  else
    writeln('V matrice net edinic');
  readln;
end.

Последний раз редактировалось unbanned; 09.03.2011 в 18:51.
unbanned вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчитать колво строк в ячейке без вывода на экран gramp Microsoft Office Excel 3 02.03.2011 00:22
Найти байт максимальным количестов единиц и байт с максмальным количеством нулей и разность (ассемблер) Beren42 Помощь студентам 0 15.12.2010 20:32
Найти байтс наибольшим числом единиц и найти байт с наибольшим чилом нулей. Найти разность число единиц м Beren42 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.12.2010 17:44
Найти сумма единиц Bayram_662 Паскаль, Turbo Pascal, PascalABC.NET 6 22.10.2009 22:11
Даны сведения о товарах на складе: наименование, цена, количество единиц товара. Найти товар, стоимость н Evidence Паскаль, Turbo Pascal, PascalABC.NET 1 03.06.2009 00:09