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

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

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

> Улучшить функцию улучшил я, но не знаю правильно или нет
сообщение
Сообщение #1


Знаток
****

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

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


Первичные данные целых чисел массив, элементы в массиве упорядочены возрастающем порядке. Функция Daug читает элементы и определяет число который больше всех в этом массиве находится. Если есть числа которые одинаковое число раз повторяются то в ответе любое должно быть.
Задание простое и логичное.
Код
const m = ...;
      n = ...;
type masyvas = array [m..n] of integer;
function Daug (a : masyvas) : integer;
var i, r,        
    k,          
    sk : integer;
begin
  r := a[m];
  sk := 1; k := 1;
  for i := m + 1 to n do
    begin
      if a[i] = a[i – 1]
        then begin
               k := k + 1;
               if k > sk
                 then begin
                        r := a[i];
                        sk := k
                      end
             end
        else k := 1
    end;
  daug := r
end;

Henry Ledgard писал что этот алгоритм пробовали улучшить сто людей но некто лучше нечего не придумал.
Но вы сто первый.
Попробуйте написать решение одной переменной, и одной управляемой структурой меньше.
Что это за структура управляемой?
Я вот изменил не много не знаю правильно или нет.
Код
const m = ...;
      n = ...;
type masyvas = array [m..n] of integer;
function Daug (a : masyvas) : integer;
var i,        
    k,          
    sk : integer;
begin
  Daug := a[m];
  sk := 1; k := 1;
  for i := m + 1 to n do
      if a[i] = a[i – 1]
        then begin
               k := k + 1;
               if k > sk
                 then begin
                        Daug := a[i];
                        sk := k
                      end
             end
        else k := 1
end;


Сообщение отредактировано: maksimla -


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

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

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


Написал что эта программа неелегантная .
  const m = ...;
n = ...;
type masyvas = array [m..n] of integer;

function Daug(a : masyvas): integer;
var
i, j, sk : Integer;
begin
j := 1;
sk := 0;
Doug := a[m];
for i := m + 1 to n do
if (a[i] <> a[i-1]) and (i-j > sk) then begin
sk := i-j;
Daug := a[i-1];
j := i;
end;
end;

а за эту другой так сделал поставил 8 балов.

И написал что надобыло сравнивать i элимент с i-sk элиментам.


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
maksimla   Улучшить функцию улучшил я   9.10.2009 22:27
maksimla   а я даже тут в данной мне функции нашел ошибку вве…   18.10.2009 15:44
volvo   Ты задание внимательно читал? У тебя - НЕ возраст…   18.10.2009 15:46
maksimla   ой совсем забыл про возрастающий порядок   18.10.2009 15:52
maksimla   А может можно сделать так чтобы сама функция к себ…   18.10.2009 16:13
volvo   Рекурсия? Я не думаю, что ты этим улучшишь функцию…   18.10.2009 16:17
maksimla   а мне надо избавится от одной управляемой структур…   18.10.2009 16:19
volvo   А ты не делай поспешных выводов :) Вот в этой функ…   18.10.2009 20:19
maksimla   спасибо все понятно. Я даже так и не думал что та…   18.10.2009 21:07
volvo   Да какие пару часов? Тут все прозрачно: сначала пе…   18.10.2009 21:35
maksimla   спасибо за объяснения   19.10.2009 15:32
maksimla   мне сказали что так нельзя использоватьпеременную …   3.11.2009 20:20
volvo   Это проблема того, кто тебе это сказал. Не надо пр…   3.11.2009 21:04
maksimla   Написал что эта программа неелегантная . const…   6.11.2009 20:32
Lapp   Написал что эта программа неелегантная . [code=…   7.11.2009 11:22
Lapp   А функция твоя выглядит примерно вот так: function…   7.11.2009 12:40
maksimla   Написал что эта программа неелегантная . cons…   7.11.2009 13:38
Lapp   обсурд ему 8 а мне 4 баллаДа уж, за неправильную п…   7.11.2009 15:01


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

 





- Текстовая версия 17.05.2024 18:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name