IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Поиск максимального элемента в массиве,нахождение "частого" числа,и кол-ва его повторений.
Andrewshkovskii
сообщение 26.03.2007 19:34
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Дан одномерный массив,надо найти его максимальный элемент(сделано),после чего найти элемент,который повторяется чаще всех остальных,и найти сколько раз он повторяется(с этим и пробелмы..)
Никак не могу реализовать алгоритм.я так понимаю там нужно 3 массива ,1 массив с числами.2ой массив это какое число повторилось,а 3ий сколько раз,потом их отсортировать..ВОт реализовать не могу никак=(


program test;
uses crt;
const
n=10;
type
mas2 = array [1..n] of integer;
mas = array [1..n] of integer;
var
i,max,p:integer;
a:mas;
c:integer;
begin
clrscr;
for i:=1 to n do
begin
write('A[',i,']=');read(a[i]);
end;
max:=a[1];
for i:=1 to n do
begin
if max<a[i] then
max:=a[i];
end;
p:=0;
for i:=1 to n do
begin
if a[i]=a[i+1] then
С[i]:=a[i];
p:=p+1;
end;
writeln(max);
writeln©;
writeln(p);
readkey;
end.

ну тут не правильно...помогите или подскажите как надо сделать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 26.03.2007 19:45
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


  max:=a[1];
for i:=1 to n do
begin
if max>a[i] then
max:=a[i];
end;

А в условии другое!
Цитата
который повторяется чаще всех остальных
но не больше! ты хоть определись!

Добавлено через 2 мин.
А найти число повторений просто! Делаешь цикл и ставишь счетчик на повторение этого числа!

Добавлено через 2 мин.
max:=a[1];
for i:=1 to n do
begin
if max<a[i] then
max:=a[i];
end;
p:=0;
for i:=1 to n do
begin
if a[i]=max then inc(p);
end;

Если по second условию..

Сообщение отредактировано: Артемий - 26.03.2007 19:50


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 26.03.2007 19:54
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


секенду

Сообщение отредактировано: Andrewshkovskii - 26.03.2007 19:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 26.03.2007 19:56
Сообщение #4


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Цитата
секенду

Это можно расшифровать как 2-й вариант? smile.gif

Добавлено через 3 мин.
Цитата
Никак не могу реализовать алгоритм.я так понимаю там нужно 3 массива ,1 массив с числами.2ой массив это какое число повторилось,а 3ий сколько раз,потом их отсортировать

Это ты сам додумал, или основное условие задачи?


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 26.03.2007 20:18
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


да я ошибка,а не второй вариант.
Сам додумался.т.к ты не правильно понял условия(или я не ясно изложил.
Вобшем :
Находим максимальный элемент в массиве.
Находим число ,которое повторяется максимальное количевство раз и находи СКОЛЬКО раз оно повторилось.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Kirill_
сообщение 26.03.2007 20:27
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Кирилл

Репутация: -  0  +


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

Не много другое, вот задача: В массиве a[1 .. n] вывести число, повторяющееся максимальное число раз. Если таких чисел несколько, то вывести их все
А вот решение:
Код

program z5;
uses crt;
var
   n,i,j,m,kol,k,max,t,d,rab: integer;
   b: array [1..100] of integer;
   f: boolean;
   a: array [1..100] of integer;
   ch: char;
begin
clrscr;
   repeat
      repeat
         write ('‚ўҐ¤ЁвҐ а §¬ал ¬ ббЁў : n=');
         readln (n);
      until n in [1..100];
      for i:=1 to n do
         begin
            write ('a[',i,']=');
            readln (a[i]);
         end;
      for i:=1 to n-1 do
         if a[i]>a[i+1] then
            begin
               rab:=a[i];
               a[i]:=a[i+1];
               a[i+1]:=rab;
            end;
      for i:=1 to n-1 do
         begin
            kol:=0;
            for j:=i+1 to n do
                  if a[i]=a[j] then kol:=kol+1;
            b[i]:=kol;
         end;
      max:=b[1];
      for i:=2 to n do
         if b[i]>max then max:=b[i];
      for i:=1 to n do

         if b[i]=max then write(a[i], ',' );
      writeln;
      write ('‚л©вЁ (y/n)?');
      writeln;
      ch:=readkey;
   until upcase (ch)='Y';
end.

Осталось добавить счетчик! smile.gif

Сообщение отредактировано: Kirill_ - 26.03.2007 20:29


--------------------
... И сказал Господь: " Да будет свет ! "
И откомпилировал исходники своя, и нажал F5,
и снизошел свет в мир сей ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 27.03.2007 19:22
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Непонятно следущее :
     for i:=1 to n-1 do
begin
kol:=0;
for j:=i+1 to n do
if a[i]=a[j] then kol:=kol+1;
b[i]:=kol;
end; {тут ,как я понимаю,мы ишем одинаковые элементы,и записываем их кол-во в массив B,так?}
max:=b[1];
for i:=2 to n do
if b[i]>max then max:=b[i]; {здесь ,как я понимаю,мы ищем максимальное значение в массиве совпадений B,так?}
for i:=1 to n do

if b[i]=max then write(a[i], ',' ); {Вот это что?есле элемент в массиве совпадений i равен максимальному числу совпадений,тогда выдать на печать элемент массива a[i],но как он таким образом выдает элемент,повторившийся наибольшее кол-во раз??}
writeln;
write ('‚л©вЁ (y/n)?');
writeln;
ch:=readkey;
until upcase (ch)='Y';


Сообщение отредактировано: Andrewshkovskii - 27.03.2007 19:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"