1) Сравнить два файла с точностью до слов (без учета неотображаемых символов и пробелов между словами). Совпадающие слова вывести в третий файл, несовпадающие слова в четвертый, а их количества на экран.
2) Упорядочить методом прямого включения по возрастанию только положительные элементы массива, оставив остальные эл-ты на своих местах. Напечатать индексы эл-ов, оставшихся на местах.
Вот мой исходник проги, но она работает не совсем правильно. Если запустить, то прога сортирует + эл-ты по блокам, а не весь массив (после запуска станет понятно, почему работает неправильно).
Как ее доделать (или переделать совсем), чтобы все было ОК?
Код
Program Lab;
Uses Crt;
Type TMas = array[1..30] of integer;
Var i,n : integer;
A, B : TMas;
Procedure Sort(Var A : TMas);
Var i,j,x : integer;
Begin
For i:=2 to n do
begin
x:=A[i];
j:=i-1;
If x > 0 then
While (j>0) and (x<=A[j]) do
begin
A[j+1]:=A[j];
Dec(j);
end;
A[j+1]:=x;
end;
end;
BEGIN
ClrScr;
Write('Vvedite N=');
readln(n);
Writeln('Vvedite isxodnyi massiv:');
For i:=1 to n do
begin
write('A[',i,']=');
readln(A[i]);
end;
Writeln;
Writeln('Otsortirovannyi massiv:');
Writeln;
For i := 1 to n do writeln('A[',i,']=',A[i]);
Writeln;
Writeln('Homepa elementov, ostavshixsya na svoix mestax:');
For i := 1 to n do
If A[i] < 0 then Writeln(i);
readln;
END.
Uses Crt;
Type TMas = array[1..30] of integer;
Var i,n : integer;
A, B : TMas;
Procedure Sort(Var A : TMas);
Var i,j,x : integer;
Begin
For i:=2 to n do
begin
x:=A[i];
j:=i-1;
If x > 0 then
While (j>0) and (x<=A[j]) do
begin
A[j+1]:=A[j];
Dec(j);
end;
A[j+1]:=x;
end;
end;
BEGIN
ClrScr;
Write('Vvedite N=');
readln(n);
Writeln('Vvedite isxodnyi massiv:');
For i:=1 to n do
begin
write('A[',i,']=');
readln(A[i]);
end;
Writeln;
Writeln('Otsortirovannyi massiv:');
Writeln;
For i := 1 to n do writeln('A[',i,']=',A[i]);
Writeln;
Writeln('Homepa elementov, ostavshixsya na svoix mestax:');
For i := 1 to n do
If A[i] < 0 then Writeln(i);
readln;
END.