Имеется несколько задач, с кривым решением, помогите найти ошибки читать дальше
Задача 1 Найти все трехзначные числа, представимые в виде сумм факториалов своих цифр.
Program V6_Z9;
var
c,n,x,fac,F,i,f1,m:integer;
begin
For n:=100 to 999 do begin
F:=1;
F1:=0;
For m:=1 to 3 do begin {три цифры}
c:=n mod 10; {отделяем последнюю}
if c=0 then fac:=1 else begin
for i := 2 to c do begin
f := f * i;
fac := f;
F1:=fac+F1;
end;
end;
C:=n div 10;
end;
IF F1=n then write(' ',F1,' ');
end;
writeln;
end.
Задача 2
Ввести массив a[1], a[2],... a[n] целых чисел. поменять в нем местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных.
Не знаю как осуществить перестановку не выходя при этом за границы диапазона массива.
Program V6_Z11;
const n=10;
var x,y: array [1..n] of integer;
i:integer;
begin
writeln('Исходный массив');
for i:=1 to n do begin
x[i]:=random(100);
write (x[i],' ');
end;
writeln;
for i:=1 to n do begin
y[i]:=x[i+1];
y[i+1]:=x[i];
end;
writeln('После перестановки');
for i:=1 to n do
write (y[i],' ');
end.
Задача 3
Зашифровать все трехбуквенные слова, заменив все символы на символы с кодом, большим на три еденицы. Вывести новую строку.
Тут вообще тарабарщина и путаница с типами и полный ступор в конце непосредственно с самой заменой.
program V6_Z15;
var
S : string;
Ch:Char;
i, Pos1, Len, LenW:Integer;
begin
Writeln('Задайте строку:');
Readln(S);
Len := Length(S);
Pos1 := 0;
for i := 1 to Len do begin
if S[i]=' ' then Continue;
if (i = 1) or (S[i - 1]=' ') then Pos1 := i;
if (i = Len) or (S[i + 1]=' ') then begin
LenW := i - Pos1 + 2;
if LenW = 3 then
writeln('Строка после обработки:');
Writeln(S);
end;
end;
end.
Имеется несколько задач, с кривым решением, помогите найти ошибки читать дальше