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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2020, 12:20   #1
Maren_yar
Новичок
Джуниор
 
Регистрация: 09.05.2020
Сообщений: 1
Вопрос логическая функция Pascal

Здравствуйте!
Задание такое: Составить логическую функцию, которая не использует массивов и проверяет, выполняется ли свойство: 1)наличия нулевых элементов в некотором файле; 2)упорядоченности элементов некоторого файла по убыванию. С первым заданием проблем не возникло, а вот второе не знаю, как решить. Прикрепляю в качестве примера код для первого задания.
Код:
uses crt;
var R:file of real;
procedure logik(f:file of real);
var i,k:integer; s:real;
begin
k:=0;
assign(f,'F:\программирование\12 лаба\f1');
reset(f);
for i:=1 to 6 do begin
eof(f);
read(f,s);
if s=0 then k:=k+1;
end;
close(f);
if k<>0 then writeln('В файле имеются 0, их количество равно ',k)
        else writeln('В файле не имеется 0');
end;

begin
writeln;
logik(R);
end.
Maren_yar вне форума Ответить с цитированием
Старый 09.05.2020, 12:58   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,716
По умолчанию

Ну это не логическая функция. Она бы должна выглядеть как-то так:
Код:
function logik(f:file of real) : Boolean;
var i,k:integer; s:real;
begin
.......
logik := k > 0 ;
end;
.......
  Write ('Нулевые элементы '); 
  if logik(R) then Writeln (' есть ') else Writeln (' отсутствуют ');
Со вторым просто: завести логическую переменную, присвоить ей начальное значение
Код:
  flag := true ;
  // Прочитать вне цикла первый элемент, пусть будет а ;
  read(f,а);
 // В цикле, начиная со 2-го элемента:
  read(f,s);
  if (s<a) then a := s else 
      begin flag := false ; Break end ;
...........
   logik := flag ;
   end ;
А почему цикл до 6, а не до eof ?
Вот тут он есть - а к чему он, если его результат ни на что не влияет ?
Код:
eof(f);

Последний раз редактировалось digitalis; 09.05.2020 в 19:14.
digitalis на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Логическая функция Ilai Помощь студентам 7 06.10.2014 21:57
Логическая переменная, оператор присваивания (Pascal) Electorat Помощь студентам 9 26.11.2013 15:52
Логическая функция для построения логического вектора Начинающий програм Помощь студентам 3 08.03.2012 13:59
логическая функция same(t), определяющая, есть ли в бинарном дереве T хотя бы два одинаковых элемента 123456789igor Паскаль, Turbo Pascal, PascalABC.NET 1 30.05.2011 00:22
C++ палиндром и логическая функция Blondy Помощь студентам 9 18.11.2009 09:11