Продолжить и проверить последовательности - Pascal
Формулировка задачи:
Замечены следующие закономерности:
а) 1*9+2=11; 12*9+3=111; 123*9+4=1111;
б) 9*9+7=88; 98*9+6=888; 987*9+5=8888;
написать программы, проверяющие и продолжающие эти последовательности.
помогите
примерно набросал
var
a1, an: integer;
n, p,g,q,z,z1,z2
i: integer;
x: integer;
begin
Write('Введите значение элемента An=');
readln(an);
a1 := 1;
writeln('1=4');
n := 1;
p := 1;
while a1 < an do
begin
p :=
1*9+2=11;
g:=12*9+3=111;
q:= 123*9+4=1111;
z:=9*9+7=88;
z1:= 98*9+6=888;
z2:=987*9+5=8888;
x := n * p;
x2:
writeln(n, '=', x);
a1 := x;
Inc(n);
end;
Dec(n);
if a1 <> an then
writeln('Число ', (an), ' не пренадлежит последовательности')
else
writeln('Номер числа ', (an), ' в последовательности=', n);
readln;
end.Решение задачи: «Продолжить и проверить последовательности»
textual
Листинг программы
var a,b:longint;i:byte; begin a:=1; b:=9; for i:=1 to 8 do begin writeln(a,'*9+',a mod 10+1,'=',a*9+(a mod 10+1),'; '); a:=(a*10+a mod 10+1); end; for i:=1 to 7 do begin writeln(b,'*9+',b mod 10-2,'=',b*9+(b mod 10-2),'; '); b:=(b*10+b mod 10-1) end end.
Объяснение кода листинга программы
- Объявляются переменные:
aтипа longint со значением 1bтипа longint со значением 9iтипа byte
- Начинается цикл
for, в котором переменнаяiизменяется от 1 до 8:- Выводится результат операции в формате
a*9+ (a mod 10 + 1) = a*9 + (a mod 10 + 1) - Значение переменной
aобновляется какa * 10 + a mod 10 + 1
- Выводится результат операции в формате
- Начинается новый цикл
for, в котором переменнаяiизменяется от 1 до 7:- Выводится результат операции в формате
b*9 + (b mod 10 - 2) = b*9 + (b mod 10 - 2) - Значение переменной
bобновляется какb * 10 + b mod 10 - 1
- Выводится результат операции в формате
- Завершение программы.