Pascal. файл f генерируется из случайных чисел, размерность файла указали.изъять из файла все элементы, которые содержат хотя бы одну парную цифру, в ином случае - уменьшить все в 2 раза.

ElizaDevil1 ElizaDevil1    2   25.12.2019 13:56    0

Ответы
Belka172 Belka172  10.10.2020 23:11

var f : file of char; k : word; c1, c2 : char;  

begin  

 assign(f, 'filename.dat');  

 reset(f);  

 k := 0; c2 := #0;  

 while not eof(f) do  

   begin  

     c1 := c2;  

     read(f, c2);  

     if (c1 = 'a') and (c2 = 'b') then inc(k);  

   end;  

 close(f);  

 writeln(k);  

end.

ПОКАЗАТЬ ОТВЕТЫ
Karelina1988 Karelina1988  10.10.2020 23:11

===== PascalABC.NET =====

function HasEven(n:integer): boolean;

begin

 if n = 0 then

 begin

   Result := True;

   Exit

 end;

 Result := True;

 n := Abs(n);

 while n > 0 do

   if (n mod 10).IsEven then

     Exit

   else

     n := n div 10;

 Result := False    

end;

begin

 var f: file of integer;

 var fn1 := ReadlnString('Укажите имя файла');

 if not FileExists(fn1) then  // файла нет - создаем

 begin  

   var n := ReadInteger('Количество записей в файле:');

   var (a, b) := ReadInteger2('Границы интервала данных:');

   if a > b then

     Swap(a, b);

   f := CreateFileInteger(fn1);

   Loop n do

     f.Write(Random(a, b));

   f.Close;

   Println('Файл создан')

 end;

 // файл есть, обрабатываем его

 // Создаем еще один файл и переписываем в него то, что должно остаться

 var fn2 := '$$$temp$$$.bin';

 if FileExists(fn2) then

   DeleteFile(fn2);

 var f2 := CreateFileInteger(fn2);

 Println('Исходный файл');

 var q := False;

 f := OpenFileInteger(fn1);

   while not f.Eof do

   begin  

     var b := f.Read;

     b.Print;

     q := q or HasEven(b)

   end;

 f.Reset;

 Writeln;

 if q then

 begin  

   // элемент с четной цифрой есть - исключение

   while not f.Eof do

   begin  

     var b := f.Read;

     if not HasEven(b) then

       f2.Write(b)

   end

 end  

 else  // нет элемента с четной цифрой - все делим надвое

   while not f.Eof do

     f2.Write(f.Read div 2);

 f.Close;

 f2.Close;

 DeleteFile(fn1);

 RenameFile(fn2, fn1);

 // выведем результат

 Println('Результат');

 ReadElements&<integer>(fn1).Println;

 if FileExists(fn2) then

   DeleteFile(fn2)

end.


Pascal. файл f генерируется из случайных чисел, размерность файла указали.изъять из файла все элемен
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика