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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2012, 18:39   #1
sunrise7
 
Регистрация: 23.11.2011
Сообщений: 8
Стрелка Паскаль.Файлы.

Дан файл вещественных чисел. Найти общее количество его локальных экстремумов, т. е. локальных минимумов и локальных максимумов
помогите, пожалуйста решить
sunrise7 вне форума Ответить с цитированием
Старый 23.04.2012, 18:43   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Что понимать под "локальными"? Файл вещественных чисел, по сути, это набор вещественных числел => существует один минимум и один максимум.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 23.04.2012, 19:04   #3
sunrise7
 
Регистрация: 23.11.2011
Сообщений: 8
По умолчанию

локальный минимум элемент, который меньше своих соседей. локальный максимум,который больше соседей.
sunrise7 вне форума Ответить с цитированием
Старый 23.04.2012, 19:24   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
type
  fl=file of real;
procedure create(var T:fl);
var
  x:real;
  i:integer;
begin
  randomize;
  rewrite(T);
  for i:=1 to 20 do
    begin
      x:=random(25)/7;
      write(T,x);
    end;
  closefile(T);
end;

var
  T:Fl;
  a,b,c:real;
  count:integer;
begin
  assignfile(t,'input.txt');
  create(T);
  reset(T);
  while not eof(T) do
    begin
      read(t,a);
      write(a:2:2,' ');
    end;
  writeln;
  writeln;
  reset(T);
  read(T,a);
  read(T,b);
  read(T,c);

  count:=0;
  if (b>a)and(b>c) then
    begin
      write('Lmax=',b:2:2,' ');
      inc(count);
    end;
  if (b<a)and(b<c) then
    begin
      write('Lmin=',b:2:2,' ');
      inc(count);
    end;

  while not EOF(T) do
  begin
    a:=b;
    b:=c;
    read(t,c);
    if (b>a)and(b>c) then
      begin
        write('Lmax=',b:2:2,' ');
        inc(count);
      end;
    if (b<a)and(b<c) then
      begin
        write('Lmin=',b:2:2,' ');
        inc(count);
      end;
  end;
writeln;
writeln('count= ',count);
readln;
end.
Первое и последнее число в расчет не брал.
Все тривиальное просто

Последний раз редактировалось whatever; 23.04.2012 в 19:27.
whatever вне форума Ответить с цитированием
Старый 23.04.2012, 19:27   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от sunrise7 Посмотреть сообщение
локальный минимум элемент, который меньше своих соседей. локальный максимум,который больше соседей.
А как узнать, где в файле расположены соседи данного элемента?
s-andriano вне форума Ответить с цитированием
Старый 23.04.2012, 19:35   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

s-andriano, не глумитесь, плиз!
ну очевидно, что любой элемент в файле, кроме первого и последнего, имеет соседей:
элемент, расположенный непосредственно ДО текущего, и элемент, расположенный сразу ПОСЛЕ текущего.
вот эти элементы и являются его соседями...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2012, 19:59   #7
sunrise7
 
Регистрация: 23.11.2011
Сообщений: 8
По умолчанию

спасибо большое)
sunrise7 вне форума Ответить с цитированием
Старый 23.04.2012, 20:24   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
s-andriano, не глумитесь, плиз!
ну очевидно, что любой элемент в файле, кроме первого и последнего, имеет соседей:
элемент, расположенный непосредственно ДО текущего, и элемент, расположенный сразу ПОСЛЕ текущего.
вот эти элементы и являются его соседями...
Элементы могут располагаться ДО либо ПОСЛЕ только в структурированных данных, например, в массиве, списке либо последовательности.
Файл сам по себе предопределенной структуры не имеет, структура (если она есть) задается внешней программой, работающей с этим файлом.

Я ПРЕДПОЛАГАЮ, что условие следует читать как "Дан файл, содержащий последовательность...". Но это только мои догадки. Прояснить задачу и рассеять возникающие сомнения IMHO должен автор вопроса.
Кстати, если мои предположения верны, то приведенный код задачу не решает, т.к. первый и последний элементы последовательности могут быть даже глобальными экстремумами, поэтому не рассматривать их в качестве локальных (т.е. "претендентов" на глобальный) методически неправильно.
Есть и другие проблемы:
3, 5, 5, 4 - очевидно, локальный максимум, но программа его не найдет.

Ну и общее замечание: прежде, чем заново открывать файл, его рекомендуется сначала закрыть.

Последний раз редактировалось s-andriano; 23.04.2012 в 20:31.
s-andriano вне форума Ответить с цитированием
Старый 23.04.2012, 20:29   #9
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Элементы могут располагаться ДО либо ПОСЛЕ только в структурированных данных, например, в массиве, списке либо последовательности.
Файл сам по себе предопределенной структуры не имеет, структура (если она есть) задается внешней программой, работающей с этим файлом.

Я ПРЕДПОЛАГАЮ, что условие следует читать как "Дан файл, содержащий последовательность...". Но это только мои догадки. Прояснить задачу и рассеять возникающие сомнения IMHO должен автор вопроса.
Кстати, если мои предположения верны, то приведенный код задачу не решает, т.к. первый и последний элементы последовательности могут быть даже глобальными экстремумами, поэтому не рассматривать их в качестве локальных (т.е. "претендентов" на глобальный) методически неправильно.
Доля здравого смысла, конечно, есть, но я не думаю, что стоит искать такие "подковырки" в задаче для первокурсника.
P.S.
Цитата:
3, 5, 5, 4 - очевидно, локальный максимум, но программа его не найдет.
В сообщении №3 четко прослеживается строгое неравенство. Это тоже на совести ТС.
Цитата:
Ну и общее замечание: прежде, чем заново открывать файл, его рекомендуется сначала закрыть.
Не согласен. В сам файл изменения не вносились, потери данных не будет, так что закрывать незачем. Хотя если и закрыть хуже не будет.
Все тривиальное просто

Последний раз редактировалось whatever; 23.04.2012 в 20:59.
whatever вне форума Ответить с цитированием
Старый 23.04.2012, 21:22   #10
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от whatever Посмотреть сообщение
В сообщении №3 четко прослеживается строгое неравенство. Это тоже на совести ТС.
Как мы выяснили, топикастеру свойственно ошибаться.
И когда данное топикастером определение явно противоречит общепринятому, мне кажется, на это нужно обратить внимание.
Опять же, нигде нет утверждения, что элемент - единственное число. Почему бы в качестве элемента не рассматривать всю совокупность подряд идущих чисел, имеющих одинаковую величину?
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файлы, Паскаль Dean Помощь студентам 3 05.04.2011 18:50
файлы. (паскаль) Kate Valerevna Помощь студентам 0 01.11.2010 17:38
Паскаль.Файлы olya3 Помощь студентам 4 19.12.2009 12:30
Файлы. Паскаль Mariya0202 Помощь студентам 4 15.10.2009 18:34
Файлы!Паскаль ТРОЯН=) Помощь студентам 1 23.03.2009 10:08