Задать вопрос
12 апреля, 14:27

Кто-нибудь может прямо построчно объяснить как это работает, и исправить код в случае ошибки?

function find (x:integer) : boolean;

begin

if pos ('7', IntToStr (x)) = 0

then result:=False

else result:=True

end;

const n = 1000;

var

a:array[1 ... n] of integer;

i:integer; i, o: file of text;

begin

AssignFile (i, 'Input. dat') ;

AssignFile (o, 'Output. dat') ;

Rewrite (o) ;

Reset (i) ;

for i:=1 to n do

readln (i, a[i]) ;

for i:=1 to n do

if find (a[i])

then writeln (o, a[i]) ;

.

CloseFile (i) ;

CloseFile (o) ;

end.

+2
Ответы (1)
  1. 12 апреля, 15:52
    0
    Ffunction find (x: integer) : boolean;

    begin

    if pos ('7', IntToStr (x)) = 0

    then result : = False

    else result : = True

    end;

    const

    n = 1000;

    var

    a: array[1 ... n] of integer;

    ii: integer;

    i, o: text;

    begin

    AssignFile (i, 'Input. dat') ;

    AssignFile (o, 'Output. dat') ;

    Rewrite (o) ;

    Reset (i) ;

    for ii : = 1 to n do

    readln (i, a[ii]) ;

    for ii : = 1 to n do

    if find (a[ii])

    then writeln (o, a[ii]) ;

    CloseFile (i) ;

    CloseFile (o) ;

    end.

    Функция Find пытается разыскать цифру 7 в целом числе, которое она получает в качестве аргумента. Если поиск успешен, возвращается "Истинно", если нет - "Ложно" - это символизирует успешность поиска.

    В программе используются два текстовых файла - i, связанный с файлом input. dat, и o, связанный с файлом Output. dat.

    Данные из input. dat считываются в целочисленный массив a, содержащий 1000 элементов.

    Затем элементы массива просматриваются, начиная с первого, на предмет наличия в элементе числа, содержащего цифру 7, что проверяется вызовом функции Find. Каждое число, содержащее цифру 7, выводится в файл Output. dat.

    Недостаток программы: если в файле input. dat будет меньше 1000 чисел, программа все равно будет просматривать все 1000 элементов, анализируя оставшийся "мусор". так же есть большая вероятность, что программа будет аварийно завершена, если этот "мусор" не сможет быть интерпретирован, как целые числа.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Кто-нибудь может прямо построчно объяснить как это работает, и исправить код в случае ошибки? function find (x:integer) : boolean; begin if ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы