Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

molodzo


Удален

Извините, а можете еще помочь. 1 макс. элемент найти получилось, а вот как найти 3???

function max_in_mas (a: massiv): integer;
Var
   max1,max2,max3: integer;
   j: byte;
begin
    for j:=1 to n do
      begin
       if a[j]>max1 then
          max1:=a[j];
      end;
    max_in_mas:=max1;
    for j:=1 to n do
      begin
       if (a[j]>max2) and (max1>a[j]) then
          max2:=a[j];
      end;
    max_in_mas:=max2;
    for j:=1 to n do
      begin
       if (a[j]>max3) and (max1>a[j]) and (max2>a[j]) then
        max3:=a[j];
      end;
      max_in_mas:=max1;
   
end;

BEGIN
     writeln('razmer massiva a=',n);
     vvod(a);
     max1:=max_in_mas(a);
        writeln('max1= ', max1:5:0);
     max2:=max_in_mas(a);
        writeln('max2= ', max2:5:0);
     max3:=max_in_mas(a);
        writeln('max3= ', max3:5:0);
END.

После всего получается, что 3 макс. элемента равны, а они должны быть разными.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 14 дек. 2006 11:16 | IP
amigo


Начинающий

просто отсортируйте массив

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 14 дек. 2006 15:05 | IP
amigo


Начинающий

Вот алгоритм сортировки:
Procedure max_in_mas;
Var
i,j: byte;
max,p:integer;
begin

for i:=1 to n-1 do       begin
max:=A;
p:=I;
   for j:=I+1 to n do        begin
if A[j]>max  then begin
p:=j;
max:=A[j];
end;
end;
max:=A;
A:=A[p];
A[p]:=max;
end;
end;

После сортировки все элементы выстроены по порядку. Если нужно найти
Первые три максимальных то это будут A[1], A[2],A[3] соответственно.


(Сообщение отредактировал amigo 14 дек. 2006 15:53)

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 14 дек. 2006 15:38 | IP
KMA



Долгожитель

amigo, Можно и по другому, например, как вы нашли максимальный элемент и затереть его, например, поставить значению элемента 0.  Кстати, прошу, пожалуйста, очень пожалуйста, ставь i не в квадратные скобки, а в фигурные, ведь все же теряется.  

molodzo, не удивительно, что так получается, ведь вы же находите один максимальный элемент во всем списке.

Draconit давай, о цене договоримся. Пиши задачу в личку.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 14 дек. 2006 16:52 | IP
amigo


Начинающий



Draconit давай, о цене договоримся. Пиши задачу в личку.


Мы уже с ним почти договорились... Нечего клиентов отбивать.

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 14 дек. 2006 17:04 | IP
amigo


Начинающий



(Сообщение отредактировал amigo 14 дек. 2006 17:47)

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 14 дек. 2006 17:26 | IP
molodzo


Удален

В моей задаче так делать нельзя, ведь потом мне надо вывести весь массив+вставить после каждого макс. эл-та 0.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 14 дек. 2006 18:10 | IP
amigo


Начинающий

Это переделать можно за 2 минуты. Вам главное идею понять,
она описана. Совет: непишите вы max1,max2,max3 а вместо
этого просто заведите массив на три элемента. В этом массиве
Вы будете хранить номера трёх максимальных элементов.
А в исходной функции начните первый цикл с 1 до 3-х. И
уберите перемещение элементов массива. Вообщем подумайте. Желаю удачи!

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 14 дек. 2006 18:26 | IP
kotenokGaw


Удален

Помогите составить программу пожалуйста: "В строке слова разделены одним пробелом. Поменять местами первое и последнее слово."

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 14 дек. 2006 18:41 | IP
molodzo


Удален

Спасибо всем!Буду думать!

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 14 дек. 2006 18:49 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com