Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с массивом 
:(
    Опции темы
bivis
Дата 16.1.2005, 20:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Народ помогите пожалста:
Дан массив содержащий N элементов(N не менее 10).Написать подпрограмму выполняющюю след действея:
определение элемента, значение которого встречается в массиве наибольшее число раз.
  Вверх
~FoX~
Дата 16.1.2005, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Ну и в чем трабл?
Или тебе готовая прога нужна? Тогда это в другой раздел.
Ладно....массив чего? (булеан, стринг, число)
Длинна элмента? (1-н символ, 2-а, 3-и)?

Наиболее просто отсортить и посчитать. Хотя можно обойтись и без сорта.



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
bivis
Дата 17.1.2005, 01:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Смотри не могу понять в чем ошибка.(мне там ещё нужно было элементы местами поменять
1-2;3-4 и тд)

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

const
N=16;
var
k:integer;
a:array[1..N] of integer;
i:integer;
buf:integer;
c:integer;
S:integer;
c1:integer;
S1:integer;
j:integer;
begin


writeln('vvedite k');
readln(k);
if k>10 then
begin
randomize;
for i:=1 to N do
begin
a[i]:=random(k);
write('',a[i]:3);
end;
readln
end
else
begin
writeln('nepravilno');
exit;

end;
writeln('----------------------');

for i:=1 to N do
begin
if Odd(i) then
begin
buf:=a[i];
a[i]:=a[i+1];
end
else
a[i]:=buf;
end;
for i:=1 to N do
begin
write('',a[i]:3);
read;
end;
writeln(' ');

S:=0;
S1:=0;
c:=a[1];

for i:=1 to N do

if a[i]=c then

S:=S+1;


for i:=1 to N do


c1:=a[i];
for j:=1 to N do

a[j]:=a[5];


writeln('',a[i]:3);
readln;











end.




  Вверх
Akella
Дата 17.1.2005, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



а разве так можно
Код

write('',a[i]:3);

PM MAIL   Вверх
Rennigth
Дата 17.1.2005, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



bivis
вроде то?
конечно не оптимально и не красиво, но работает (лень заморачивать)

Код

program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

const
 N=16;
var
 k : integer;
 a : array[1..N] of integer;
 b : array[1..N] of integer;

 i : integer;
 buf : integer;
 c : integer;
 S :  integer;
 c1 : integer;
 S1 : integer;
 j : integer;
 lCountEqualItems, lSaveItem, lSaveCountEqualItems : integer;
begin
 writeln('vvedite k');
 readln(k);
 if k > 10 then
 begin
   randomize;
   for i := 1 to N do
   begin
     a[i] := random(k);
     write('',a[i]:3);
   end;
   readln
 end  else  begin
   writeln('nepravilno');
   exit;
 end;

 writeln('----------------------');

 for i := 1 to N do
   for j := i to N do
     if a[j] < a[i] then
     begin
       buf := a[i];
       a[i] := a[j];
       a[j] := buf;
     end;

{  for i := 1 to N do
   write('',a[i]:3);
}
 for i := 1 to N do
   b[i] := a[i];

 writeln('');
 writeln('----------------------');

 lCountEqualItems := 1;
 buf := a[1];
 for i := 2 to N do
   if a[i] = buf then
     Inc(lCountEqualItems)
   else begin
     if lCountEqualItems >= lSaveCountEqualItems then
     begin
       lSaveItem := buf;
       lSaveCountEqualItems := lCountEqualItems;
     end;
     buf := a[i];
     lCountEqualItems := 1;
   end;
   write('max Number in array = ',lSaveItem);

   for i := 1 to N do
   begin
     if b[i] mod 2 = 0 then
     begin
       buf := b[i];
       b[i] := b[i - 1];
       b[i - 1] := buf;
     end;
   end;

 writeln('');
 writeln('----------------------');

 for i := 1 to N do
   write('',b[i]:3);

 readln;
end.


Добавлено @ 14:17
сорри ошибка там, вот так:
Код

program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

const
 N=16;
var
 k : integer;
 a : array[1..N] of integer;
 b : array[1..N] of integer;

 i : integer;
 buf : integer;
 c : integer;
 S :  integer;
 c1 : integer;
 S1 : integer;
 j : integer;
 lCountEqualItems, lSaveItem, lSaveCountEqualItems : integer;
begin
 writeln('vvedite k');
 readln(k);
 if k > 10 then
 begin
   randomize;
   for i := 1 to N do
   begin
     a[i] := random(k);
     write('',a[i]:3);
   end;
   readln
 end  else  begin
   writeln('nepravilno');
   exit;
 end;

 for i := 1 to N do
   b[i] := a[i];

 writeln('----------------------');

 for i := 1 to N do
   for j := i to N do
     if a[j] < a[i] then
     begin
       buf := a[i];
       a[i] := a[j];
       a[j] := buf;
     end;

{  for i := 1 to N do
   write('',a[i]:3);
}

 writeln('');
 writeln('----------------------');

 lCountEqualItems := 1;
 buf := a[1];
 for i := 2 to N do
   if a[i] = buf then
     Inc(lCountEqualItems)
   else begin
     if lCountEqualItems >= lSaveCountEqualItems then
     begin
       lSaveItem := buf;
       lSaveCountEqualItems := lCountEqualItems;
     end;
     buf := a[i];
     lCountEqualItems := 1;
   end;
   write('max Number in array = ',lSaveItem);

   for i := 1 to N do
   begin
     if i mod 2 = 0 then
     begin
       buf := b[i];
       b[i] := b[i - 1];
       b[i - 1] := buf;
     end;
   end;

 writeln('');
 writeln('----------------------');

 for i := 1 to N do
   write('',b[i]:3);



 readln;
end.




--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Unit
Дата 18.1.2005, 12:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ой, Ren ты чего-то больно нагородил, помоему намного проще будет вот так
program ArrayFilter;
{$APPTYPE CONSOLE}
uses
SysUtils;

const
n = 10;
var
i, j, k: integer;
c, s, s1: integer;
buf:integer;
a: array [1..n] of integer;
procedure ArrayGenNOutput;
begin
write ('k: ');
readln (k);
randomize;
for i := 1 to n do
begin
a[i] := random (k);
write (a[i]:3,' | ');
end;
writeln;
end;
procedure TransArray;
begin
for i:=1 to N do
begin
if Odd(i) then
begin
buf:=a[i];
a[i]:=a[i+1];
end
else
a[i]:=buf;
end;
for i:=1 to N do
begin
write(' | ',a[i]:3);
read;
end;
end;
begin
ArrayGenNOutput;
TransArray;
writeln;
s := 0;
c := 0;
for j := 1 to n do
begin
s1 := 0;
for i := 1 to n do
if a[i]=a[j] then inc (s1);
if s1>=s then
begin
c := a[j];
s := s1;
end;
end;
writeln (c:5,':',s:5);
readln;
end.
  Вверх
Rennigth
Дата 18.1.2005, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



smile
яж просто редактировал код bivis и сказал:
Цитата

  конечно не оптимально и не красиво, но работает (лень заморачивать)
smile
а для сдачи лабараторной покатилобы наверно...



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Bivis
Дата 18.1.2005, 18:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Премного благодарен!
Жизнь длинная, а Земля круглая может быть и сочтемси!
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.