Считать массива из файла и записать два файла с чётным и не чётным массивом - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

нужно считать с файла массив и записать в 2-а разных файла чётные значения массива , а вдругом не чётные

Решение задачи: «Считать массива из файла и записать два файла с чётным и не чётным массивом»

textual
Листинг программы
var
  A1, A2: array[-10000..10001] of integer;  
  F, F1, F2: text; { файловая переменная }
  S,S1,S2: string; { строка }
  i: integer;
 
///Процедура определения целого числа (если слово в файле является
///целым числом, то оно будет выведено на экран) 
procedure count(t: string; i2, m: word);
var
  p: integer;
  v: string;
  u: boolean;
begin
  u := true;
  for p := 1 to m do
    if not(S[i2 + p-1] in ['0','1','2','3','4','5','6','7','8','9']) then
    begin u := false; break end;
  if u then 
  begin 
    write(copy(s,i2,m), ' ');
    v := copy(s,i2,m);
    if v[m] in ['0','2','4','6','8'] then S1 := S1 + v + ' '
    else S2 := S2 + v + ' ';
  end
end;
 
///Процедура выделения слова из текста
procedure slovo();
var
  j, i1, k: word;
  f: boolean;
begin
  i1:=0;
  k:=0;
  f := false;
  for j := 1 to length(s) do
  begin
    if (ord(s[j]) <> 32) then
    begin
      inc(k);
      if f = false then
      begin
        f := true; 
        i1 := j;
      end
    end
    else
    if f then 
    begin     
      f := false;
      count(copy(s,i1,k), i1, k);  
      k := 0;
    end
  end
end;   
 
begin
  S1 := ''; //сначала в файле с четными
  S2 := ''; //и нечетными числами ничего нет.
 { Внимание: текстовый файл лолжен находится 
 по адресу "D:\мой_текстовый_файл.txt" }
  Assign(F, 'D:\мой_текстовый_файл.txt'); { назначаем собственное имя }
  Reset(F); { открываем файл для чтения }
  Assign(F1, 'D:\четный_массив.txt'); { назначаем имя файла для записи}
  Rewrite(F1); { открываем файл для записи }
  Assign(F2, 'D:\нечетный_массив.txt'); { назначаем имя файла для записи}
  Rewrite(F2); { открываем файл для записи }
  writeln('Массив целых чисел из файла:');
  writeln;
  repeat
    if Eof(F) then Break; { прекратить, если конец файла }
    Readln(F, S); { прочитать строку из файла }
    slovo(); //вызываем процедуру по отделению слов из текста     
  until false;
 { Производим запись в файл: } 
  for i := 1 to Length(S1) do
    Write(F1, s1[i]); {записываем текст в файл 'D:\четный_массив.txt'} 
  for i := 1 to Length(S2) do
    Write(F2, s2[i]); {записываем текст в файл 'D:\нечетный_массив.txt'} 
  Close(F); { закрываем файл с начальным массивом }
  Close(F1); { закрываем файл с массивом четных чисел }
  Close(F2); { закрываем файл с массивом нечетных чисел }
  writeln;
  writeln;
  writeln('Результат посмотрите в директориях:');
  writeln;
  writeln('   Массив четных чисел - "D:\четный_массив.txt"');
  writeln('   Массив нечетных чисел - "D:\нечетный_массив.txt"');
end.

Объяснение кода листинга программы

  1. Переменные A1, A2, F, F1, F2, S, S1, S2 и i объявлены для выполнения задачи.
  2. Процедура count определяет целое число в строке. Она проверяет каждый символ в строке, начиная с i2 и до m, и если он не является числом, то переменная u устанавливается в false. Если все символы являются числами, то переменная u устанавливается в true и число выводится на экран.
  3. Процедура slovo выделяет слово из текста. Она начинает с i1 = 0 и k = 0. Если текущий символ не является пробелом, то k увеличивается и если f = false, то устанавливается f = true и i1 запоминает позицию первого символа слова. Если текущий символ является пробелом, то f устанавливается в false и вызывается процедура count для выделения слова.
  4. В основной части кода открываются файлы F, F1 и F2 для чтения и записи соответственно.
  5. Чтение и запись массива осуществляется в цикле while, который продолжается до тех пор, пока не достигнет конца файла.
  6. После чтения строки из файла вызывается процедура slovo для выделения слов из строки.
  7. После окончания цикла, файлы F, F1 и F2 закрываются.
  8. В цикле перед выводом результатов на экран указываются пути к файлам с четными и нечетными числами.
  9. Результат выводится на экран, указывая пути к файлам с четными и нечетными числами.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы