Создать файл 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 - счетчик.
Алгоритм решения задачи:
Создать константу-массив, присвоив ей заданные значения массива.
Связать файловые переменные с соответствующими файлами.
Открыть файл X на запись. Записать в него все элементы массива. Закрыть файл.
Открыть файл X на чтение, а файл Y на запись. Присвоить счетчику значение 1. Пока не будет достигнут конец файла X, считывать из него очередное число. Если при этом счетчик имеет четное значение, то записывать число в файл Y. После считывания и проверки на четность номера очередного числа, увеличивать счетчик на 1. После того как файл X будет прочитан, закрыть оба файла.
Открыть файл 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);
Объяснение:
var
arr:array[1..1000] of integer;
i,N:integer;
max:integer;
begin
max:=1;
write('Укажите кол-во эл-ов - ');
read(N);
for i:=1 to N do//Присваивание и вывод массива
begin
arr[i]:=1+random(100);
write(arr[i],' ');
if arr[i]>max then max:=arr[i];
end;
writeln;
writeln('Максимальный эл-т - ',max);
for i:=1 to N do//Увеличение чет. эл-ов
begin
if arr[i] mod 2=0 then arr[i]:=arr[i]+max;
write(arr[i],' ');
end;
end.
Объяснение:
1) Чтобы получить 4 литра нужно из девятилитрового ведра перелить воду в пятилитровое ведро. Т.к. в пятилитровое ведро вместится только 5 литров, то в девятилитровом останется 4 литра.
2) Чтобы получить 1 литр нужно из девятилитрового ведра перелить воду в пятилитровое ведро. Т.к. в пятилитровое ведро вместится только 5 литров, то в девятилитровом останется 4 литра. Теперь нужно из девятилитрового ведра, в котором сейчас 4 литра, перелить воду в трёхлитровое ведро. Т. к. в трёхлитровое ведро вместится только 3 литра, то в девятилитровом будет 1литр. В пятилитровом так и останется 5 литров.