Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2009, 18:23
boxep boxep вне форума
Прохожий
 
Регистрация: 20.10.2008
Сообщения: 49
Репутация: 10
По умолчанию Правильно ли что в файле числа записаны в порядке возростания...

Дан файл чисел проверить записаны ли числа в порядке возрастания?

вот код, только не знаю верно ли написан алгоритм?
Цитата:
var pos:Tstudent;
begin
seek(F,0);
while not eof(F) do
read (f,pos);
if pos.age+1 > pos.age then
showmessage('Yes')
else
showmessage('No');
Ответить с цитированием
  #2  
Старый 02.07.2009, 20:26
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

1.А какой тип поля Age?
Если integer - то алгоритм неправильный, поскольку n+1 всегла больше n

2. Программа выдаст результат только для последней записи, поскольку поле слова do нет программных скобок (begin...end)
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...

Последний раз редактировалось mak-karpov, 02.07.2009 в 20:31.
Ответить с цитированием
  #3  
Старый 02.07.2009, 22:26
boxep boxep вне форума
Прохожий
 
Регистрация: 20.10.2008
Сообщения: 49
Репутация: 10
По умолчанию

Цитата:
Сообщение от mak-karpov
1.А какой тип поля Age?
Если integer - то алгоритм неправильный, поскольку n+1 всегла больше n

2. Программа выдаст результат только для последней записи, поскольку поле слова do нет программных скобок (begin...end)
Да, integer, а как тогда их сравнить следующий и настоящий? Что то не врубаюсь?
Ответить с цитированием
  #4  
Старый 02.07.2009, 22:34
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

ну запоминай в какой-нибудь переменной
например так
Код:
var c : Integer;
      b : boolean;
      pos : TStudent;
begin
seek(F,0);
c := 0;
b := true;
while not eof(F) do begin
   read (f,pos);
   if pos.Age <= c then b := false;
   c := pos.Age;
end;
if b then //Правильно
     else //Неправильно 
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #5  
Старый 02.07.2009, 23:08
boxep boxep вне форума
Прохожий
 
Регистрация: 20.10.2008
Сообщения: 49
Репутация: 10
По умолчанию

Цитата:
Сообщение от mak-karpov
ну запоминай в какой-нибудь переменной
например так
Код:
var c : Integer;
      b : boolean;
      pos : TStudent;
begin
seek(F,0);
c := 0;
b := true;
while not eof(F) do begin
   read (f,pos);
   if pos.Age <= c then b := false;
   c := pos.Age;
end;
if b then //Правильно
     else //Неправильно 
А это получается в "с" мы сохраняем предыдущее значение pos.Age и сравниваем. Блин оказывается так просто, а я не додумался
Спасибо Вам огромное!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter