Переписать числа из одного файла в другой

Задача

Создать файл X компонентами которого являются элемента массива M. Переписать из файла X в файл Y все компоненты, которые стоят на четных местах. Прочитать файл Y.
M = (0,1; 5,6; 0.8; 2,4; 7,3; 6,8; 0,5; 2,3;)

Решение

 

Описание переменных: 

  • M - массив-константа;
  • x, y - переменные, связанные с типизированными файлами;
  • n - считанное из файла очередное число;
  • i - счетчик.

Алгоритм решения задачи: 

  1. Создать константу-массив, присвоив ей заданные значения массива.
  2. Связать файловые переменные с соответствующими файлами.
  3. Открыть файл X на запись. Записать в него все элементы массива. Закрыть файл.
  4. Открыть файл X на чтение, а файл Y на запись. Присвоить счетчику значение 1. Пока не будет достигнут конец файла X, считывать из него очередное число. Если при этом счетчик имеет четное значение, то записывать число в файл Y. После считывания и проверки на четность номера очередного числа, увеличивать счетчик на 1. После того как файл X будет прочитан, закрыть оба файла.
  5. Открыть файл Y на чтение. Пока не будет достигнут его конец, считывать из него очередное число и выводить его на экран. После завершения цикла закрыть файл.

Программа на языке Паскаль: 

 

const M: array[1..8] of real = (0.1, 5.6, 0.8, 2.4, 7.3, 6.8, 0.5, 2.3);
var 
    x,y : file of real;
    n: real;
    i: byte;
begin
    assign(x,'x.dat');
    assign(y,'y.dat');
 
    rewrite(x);
    for i:=1 to 8 do
        write(x, M[i]);
    close(x);
 
    reset(x);
    rewrite(y);
    i := 1;
    while not EOF(x) do begin
        read(x, n);
        if not odd(i) then
            write(y, n);
        i := i + 1;
    end;
    close(x);
    close(y);
 
    reset(y);
    while not EOF(y) do begin
        read(y, n);
        write(n:5:1);
    end;
    writeln;
    close(y);
end.

 

Результат выполнения программы:

  5.6  2.4  6.8  2.3

 

Тема

Файлы

Уровень

Простые задачи

Добавить комментарий