Заполнить двоичный файл целыми числами из промежутка [-3000; 8000]. Количество компонент
Заполнить двоичный файл целыми числами из промежутка [-3000; 8000]. Количество компонент файла вводится с клавиатуры. Поменять местами в файле 1-ый нечетный по значению компонент и заключительный четный.
1) Тест для работы
2) Написать обычный алгоритм
3) Код программки
4) Скрин шот
5) Заключение (какие логические оплошности)
2 ответа
Рома Мажейко
Var i,n,fs,ls: integer;
fsz,indf,indl: int64;
f: file of integer;
begin
write('n = '); readln(n);
// запись в файл целых чисел
assign(f,'input.txt');
rewrite(f);
for i:=1 to n do write(f,random(-3000,8000));
close(f);
// замена элементов в файле
assign(f,'input.txt');
reset(f);
fsz:=FileSize(f);
indf:=0;
for i:=0 to fsz-1 do
begin
read(f,n);
if ((n mod 2)lt;gt;0) and (indf=0) then
begin
indf:=i; fs:=n;
end;
if (n mod 2)=0 then
begin
indl:=i; ls:=n;
end;
end;
reset(f);
seek(f,indf);
write(f,ls);
reset(f);
seek(f,indl);
write(f,fs);
close(f);
end.
fsz,indf,indl: int64;
f: file of integer;
begin
write('n = '); readln(n);
// запись в файл целых чисел
assign(f,'input.txt');
rewrite(f);
for i:=1 to n do write(f,random(-3000,8000));
close(f);
// замена элементов в файле
assign(f,'input.txt');
reset(f);
fsz:=FileSize(f);
indf:=0;
for i:=0 to fsz-1 do
begin
read(f,n);
if ((n mod 2)lt;gt;0) and (indf=0) then
begin
indf:=i; fs:=n;
end;
if (n mod 2)=0 then
begin
indl:=i; ls:=n;
end;
end;
reset(f);
seek(f,indf);
write(f,ls);
reset(f);
seek(f,indl);
write(f,fs);
close(f);
end.
Karina Sljunina
Нужно на С++
Егор
В вопросе необходимо указывать язык программирования.
Ivan Valenskij
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программка не работает, обновите версию!
begin
var fn:='MtFile.bin';
var n:=ReadInteger;
var f:file of integer;
var s:=SeqRandom(n,-3000,8000); // последовательность не хранится
Rewrite(f,fn);
foreach var m in s do Write(f,m);
f.Close; // файл сотворен и закрыт
Reset(f,fn);
var b:integer; // буфер
while not Eof(f) do begin Read(f,b); Print(b) end; Writeln;
Seek(f,0); // стали в начало файла
Read(f,b);
var iOdd:=0;
while not Eof(f) and b.IsEven do
begin Read(f,b); iOdd+=1 end;
if Eof(f) and b.IsEven then
begin Writeln('Нет нечетных компонент'); exit end;
var (bb,iEven):=(b,n);
repeat
iEven-=1; Seek(f,iEven); Read(f,b)
until (iEven=1) or b.IsEven;
if b.IsOdd then begin Writeln('Нет четных компонент'); exit end;
Seek(f,iEven); Write(f,bb);
Seek(f,iOdd); Write(f,b);
Seek(f,0);
while not Eof(f) do begin Read(f,b); Print(b) end; Writeln;
f.Close
end.
Пример
10
3166 6355 3596 6926 1266 6143 7401 7624 1402 -627
3166 1402 3596 6926 1266 6143 7401 7624 6355 -627
// Внимание! Если программка не работает, обновите версию!
begin
var fn:='MtFile.bin';
var n:=ReadInteger;
var f:file of integer;
var s:=SeqRandom(n,-3000,8000); // последовательность не хранится
Rewrite(f,fn);
foreach var m in s do Write(f,m);
f.Close; // файл сотворен и закрыт
Reset(f,fn);
var b:integer; // буфер
while not Eof(f) do begin Read(f,b); Print(b) end; Writeln;
Seek(f,0); // стали в начало файла
Read(f,b);
var iOdd:=0;
while not Eof(f) and b.IsEven do
begin Read(f,b); iOdd+=1 end;
if Eof(f) and b.IsEven then
begin Writeln('Нет нечетных компонент'); exit end;
var (bb,iEven):=(b,n);
repeat
iEven-=1; Seek(f,iEven); Read(f,b)
until (iEven=1) or b.IsEven;
if b.IsOdd then begin Writeln('Нет четных компонент'); exit end;
Seek(f,iEven); Write(f,bb);
Seek(f,iOdd); Write(f,b);
Seek(f,0);
while not Eof(f) do begin Read(f,b); Print(b) end; Writeln;
f.Close
end.
Пример
10
3166 6355 3596 6926 1266 6143 7401 7624 1402 -627
3166 1402 3596 6926 1266 6143 7401 7624 6355 -627
Юрок
Можешь написать на Си либо на С++?
Vaska Danilchuk
Просто необходимо на си или с++
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных
Разные вопросы.
Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей
Математика.
Определить предложения какие они по цели высказывания и по интонации
Русский язык.
"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.
Русский язык.
на одной грядке коротышки посадили 3 ряда морковок по 8 штук
Разные вопросы.
эссе на тему какое образование дается в каждой семье
Қазақ тiлi.
Put the verb in brackets into the Present Indefinite.
1The Volga ,
Английский язык.
Облако тегов