М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
uvalievnursulta2
uvalievnursulta2
01.02.2020 07:52 •  Информатика

Кто-нибудь может прямо построчно объяснить как это работает, и исправить код в случае ошибки? 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.

👇
Ответ:
Асият27
Асият27
01.02.2020
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 элементов, анализируя оставшийся "мусор". так же есть большая вероятность, что программа будет аварийно завершена, если этот "мусор" не сможет быть интерпретирован, как целые числа.
4,7(7 оценок)
Открыть все ответы
Ответ:
Artemka1610
Artemka1610
01.02.2020
Var a, b, x1, x2, y1, y2, s, p: real;
begin
write('Введите через пробел x1 и y1: ');
read(x1, y1);
write('Введите через пробел x2 и y2: ');
read(x2, y2);
a:=x2-x1;
b:=y1-y2;
s:=a*b;
p:=2*(a+b);
writeln('S = ', s);
writeln('P = ', p);
end.

Делать подобное контрпродуктивно, слишком много ненужного кода.

var x1, x2, y1, y2, s, p: real;
function a(x1, x2: real): real;
begin
a:=x2-x1;
end;
function b(y1, y2: real): real;
begin
b:=y1-y2;
end;
begin
write('Введите через пробел x1 и y1: ');
read(x1, y1);
write('Введите через пробел x2 и y2: ');
read(x2, y2);
s:=a(x1, x2)*b(y1, y2);
p:=2*(a(x1, x2)+b(y1, y2));
writeln('S = ', s);
writeln('P = ', p);
end.
4,4(3 оценок)
Ответ:
dashamazurkevi
dashamazurkevi
01.02.2020
Const
  n1=15;
  n2=10;
  n3=12;
type
  V=array[1..15] of string;
procedure M_in(s:string; var a:V; n:integer);
{ ввод данных в массив }
var i:integer;
begin
  Writeln('Вводите по одному ',n,' элементов массива ',s);
  for i:=1 to n do Readln(a[i])
end; 

procedure M_out(var a:V; n:integer; c:char);
{ выводит элементы, начинающиеся с указанного символа }
var i:integer;
begin
  Writeln('*** Слова на букву ',c,' ***');
  for i:=1 to n do
    if a[i][1]=c then Writeln(a[i]);
  Writeln
end; 

var
  s1,s2,s3:V;
begin
  M_in('S1',s1,n1);
  M_in('S2',s2,n2);
  M_in('S3',s3,n3);
  M_out(s1,n1,'В');
  M_out(s2,n2,'Ц');
  M_out(s3,n3,'А');
end.
4,8(54 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ