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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2015, 11:15   #1
karisha98
Пользователь
 
Регистрация: 18.10.2015
Сообщений: 10
По умолчанию Строки, записи, множества, файлы

Задание Пусть вводится последовательность чисел в диапазоне от 1 до 255. Признак конца последовательности - 0. Определите переменые min и max как минимальное и максимальное из введёных чисел. Напечатайте по одному разу все числа из интервала(min, max), которые не были введены.

Как по мне что-то не так:
Код:
var f : file of integer;
    WasNumber : array[1..255] of boolean;
    i, Min, Max, X :  integer;
begin
  {сначала отметим, что ни одно число ещё не встречалось!}
  for i:=1 to 255 do WasNumber[i] := false;
 
  assign(f,'file.txt');
  rewrite(f);
  Reset(f);
 
  Min := 255; Max := 0;
  while Not eof(f) do begin
     Read(f, X);
     if (X>=1)  and (X<=255) then begin
         WasNumber[X] := true;
         if X>Max then Max := X;
         if X<Min then Min := X; 
     end;
  end;
 
  WriteLn('Найденные значения: Min =', Min, ' Max =', Max);
  WriteLn('числа от ',Min,' до ', Max, ', которых не было в файле: ');
  for i:=Min to Max do
    if Not WasNumber[i] then Write(i:4);
  Writeln;
 Readln;
end.
Кто сможет исправить ?

Последний раз редактировалось Stilet; 07.11.2015 в 11:52.
karisha98 вне форума Ответить с цитированием
Старый 07.11.2015, 11:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А что именно не так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2015, 00:22   #3
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Код:
var
a:set of byte;
i,imin,imax:integer;
start:boolean;
begin
start:=true;
a:=[];
repeat
readln(i);
a:=a+[i];
if start then
begin
imin:=i;
imax:=i;
start:=false;
end
else
begin
if i>imax then imax:=i;
if (i<imin) and(i>0) then imin:=i;
end;
until i=0;
writeln('-----');
for i:=imin to imax do if not (i in a) then writeln(i);
end.

Последний раз редактировалось temaps; 08.11.2015 в 00:37. Причина: writeln('-----');
temaps вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мне нужно изучить массивы,строки,множества,записи,про цедуры и функции и файлы за 10 дней. Аелд Помощь студентам 4 09.05.2015 14:49
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Строки, записи, множества. bodya00728 Помощь студентам 0 17.11.2011 18:40
Записи и множества. Типизированные файлы madishka Помощь студентам 0 17.12.2010 21:59
Строки, записи и файлы, процедуры функции Gray_Mc Фриланс 8 24.11.2010 16:21