напишите пожалуйста программу,чтобы ввод чисел осуществлялся из внешнего файла вот её текст
Даны массивы А1, … , А20
В1, … , В20
Поменять местами Аmin и В max .
Паскаль, одномерные массивы
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Код: Выделить всё
type
TData = integer;
var
f:text;
a,b:array[1..20] of TData;
r:TData;
Amin,Bmax,an,bn,i:integer;
begin
assign(f,'c:\in.txt');
reset(f);
an:=0;
writeln; writeln; writeln('A:');
while not eoln(f) and (an<20) do begin
inc(an);
read(f,a[an]);
write(a[an], ' ');
end;
writeln; writeln('B:');
if not eoln(f) then readln(f);
bn:=0;
while not eof(f) and (bn<20) do begin
inc(bn);
read(f,b[bn]);
write(b[bn], ' ');
end;
close(f);
Amin:=1;
for i:=2 to an do if a[i]<a[Amin] then Amin:=i;
Bmax:=1;
for i:=2 to bn do if b[i]>b[Bmax] then Bmax:=i;
writeln; writeln;
writeln('Min A[',Amin,']:=',a[Amin]);
writeln('Max B[',Bmax,']:=',b[Bmax]);
r:=b[Bmax];
b[Bmax]:=a[Amin];
a[Amin]:=r;
writeln; writeln; writeln('A:');
for i:=1 to an do write(a[i],' ');
writeln; writeln('B:');
for i:=1 to bn do write(b[i],' ');
writeln;
readln;
end.
не могли бы вы прокомментировать что , где происходит??
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Код: Выделить всё
type
TData = integer;
{integer - заменяем на другой тип, если требуется другой тип,
напр. Real, в качестве базового}
var
f:text;
a,b:array[1..20] of TData;
r:TData;
Amin,Bmax,an,bn,i:integer;
begin
{открываем файл. В файле содержится 2 строки входных данных,
разделенных пробелами}
assign(f,'c:\in.txt');
reset(f);
an:=0; {счетчик количества элементов в А}
writeln; writeln; writeln('A:');
while not eoln(f) and (an<20) do begin
{считывается до 20 значений из 1 строки.
Если меньше, то тоже ничего страшного}
inc(an);
read(f,a[an]);
write(a[an], ' ');
end;
writeln; writeln('B:');
{если в строке остались лишние числа, то их надо пропустить}
if not eoln(f) then readln(f);
bn:=0;
while not eof(f) and (bn<20) do begin
{считывается до 20 значений из 2 строки.
Если меньше, то тоже ничего страшного}
inc(bn);
read(f,b[bn]);
write(b[bn], ' ');
end;
close(f);
{поиск номера минималоьного элемента А (внимание! номера)}
Amin:=1;
for i:=2 to an do if a[i]<a[Amin] then Amin:=i;
{поиск номера максимального элемента В}
Bmax:=1;
for i:=2 to bn do if b[i]>b[Bmax] then Bmax:=i;
writeln; writeln;
writeln('Min A[',Amin,']:=',a[Amin]);
writeln('Max B[',Bmax,']:=',b[Bmax]);
{обмен элементов Bmax-ного и Amin-ного}
r:=b[Bmax];
b[Bmax]:=a[Amin];
a[Amin]:=r;
{вывод результатов}
writeln; writeln; writeln('A:');
for i:=1 to an do write(a[i],' ');
writeln; writeln('B:');
for i:=1 to bn do write(b[i],' ');
writeln;
readln;
end.