т.к. в программе присвоены значения переменным a=10, а b=5, приступаем к решению конструкции с условным оператором ЕСЛИ , тут есть логическое условие в виде конъюнкции (И), при котором, если а> 5 И при этом a>b тогда переменной а присваивается значение a:=a-5. Но в нашем случае а больше 10, но не больше b (т.к. оно равно 5) поэтому условие не выполняется и а остается равным 10.
3.Б
a:=10;
b:=5;
если НЕ (a<b) то
a:=5
значение переменной а=5
т.к. в программе присвоены значения переменным a=10, а b=5, приступаем к решению конструкции с условным оператором ЕСЛИ , тут есть логическое условие в виде инверсии (НЕ) , при котором, если НЕ(а<b), т.е. a>b, тогда переменной а присваивается значение a:=5. В нашем случае a>b т.к. 10>5, значит выполняется следующее действие в виде присвоения a:=5.
4.
a:=10; b:=5;
если (a>1) ИЛИ (a<b) то
a:=a-5;
если (a>1) И (a=b) то
a:=a-5;
а равно 10, б равно 5. условный оператор ЕСЛИ и дизъюнкция ИЛИ
проверяем условие а больше 1 - ДА(10>1), а меньше б- НЕТ(10>5). В случае дизъюнкции достаточно чтоб одно из частей условия было истинно. Значит выполняем присвоение а:=а-5=10-5=5. А стало равно 5.
Следующее условие с конъюнкцией, проверяем - а больше 1 - ДА (5>1 ), а равно б - ДА (5=5). Здесь обе части логического выражения выполняются значит переходим к действию а:=а-5=5-5=0.
ответ. А равно 0 (а=0).
5.
a:=24;
b:=8;
b:=a mod b;
если a>b то
c:=a div (b+5);
иначе c:=b.
а равно 24, б равно 8. потом б присваивается значение a mod b, это значит что от а нужно найти остаток от деления на б. 24 / 8 = 3 при этом остаток 0. значит б теперь равно 0
условие a>b 24>0 -ДА, значит с:=a div (b+5), здесь нужно узнать целую часть при делении. сначала b+5=0+5=5. потом а/5=24/5=целая часть =4 и остаток =4. значит с=4.
Если бы условие не выполнилось тогда бы с присвоилось значение б, которое равно 0.
USES CRT,Graph;VAR Device,Mode:Integer; i,x,y,s:Integer;BEGINCLRSCR; Device:=0; InitGraph(Device,Mode,''); s:=100; x:=320; y:=240; for i:=1 to 9 do begin SetLineStyle(0,0,ThickWidth); Circle(x,y,s); Delay(200); SetColor(Black); Circle(x,y,s); s:=s-10; SetColor(White); end; for i:=1 to 9 do begin SetLineStyle(0,0,ThickWidth); Circle(x,y,s); Delay(200); SetColor(Black); Circle(x,y,s); s:=s+10; SetColor(White); end; Circle(x,y,s);Readln;END.
// PascalABC.NET 3.1, сборка 1214 от 09.04.2016 function AutoMorph(n:integer):boolean; begin var s1:=n.ToString; Result:=(s1=(n*n).ToString.Right(s1.Length)) end;
begin var a,b:integer; Write('Введите а и b: '); Read(a,b); for var i:=a to b do if AutoMorph(i) then Print(i) end.
Тестовое решение: Введите а и b: 1 10000 1 5 6 25 76 376 625 9376
Попробовал переписать функцию в более примитивный вид. По-моему, она не стала проще, только удлинилась...
function AutoMorph(n:integer):boolean; begin var s1:=IntToStr(n); // n переводим в строковое представление var s2:=IntToStr(n*n); // n*n переводим в строковое представление var l1:=Length(s1); // длина строки s1 s2:=RightStr(s2,l1); // правые l1 символов из s2 Result:=(s1=s2) end;
3.А
a:=10;
b:=5;
если (a>5) ИЛИ (a<b) то
a:=a-5
значение переменной а=10
т.к. в программе присвоены значения переменным a=10, а b=5, приступаем к решению конструкции с условным оператором ЕСЛИ , тут есть логическое условие в виде конъюнкции (И), при котором, если а> 5 И при этом a>b тогда переменной а присваивается значение a:=a-5. Но в нашем случае а больше 10, но не больше b (т.к. оно равно 5) поэтому условие не выполняется и а остается равным 10.
3.Б
a:=10;
b:=5;
если НЕ (a<b) то
a:=5
значение переменной а=5
т.к. в программе присвоены значения переменным a=10, а b=5, приступаем к решению конструкции с условным оператором ЕСЛИ , тут есть логическое условие в виде инверсии (НЕ) , при котором, если НЕ(а<b), т.е. a>b, тогда переменной а присваивается значение a:=5. В нашем случае a>b т.к. 10>5, значит выполняется следующее действие в виде присвоения a:=5.
4.
a:=10; b:=5;
если (a>1) ИЛИ (a<b) то
a:=a-5;
если (a>1) И (a=b) то
a:=a-5;
а равно 10, б равно 5. условный оператор ЕСЛИ и дизъюнкция ИЛИ
проверяем условие а больше 1 - ДА(10>1), а меньше б- НЕТ(10>5). В случае дизъюнкции достаточно чтоб одно из частей условия было истинно. Значит выполняем присвоение а:=а-5=10-5=5. А стало равно 5.
Следующее условие с конъюнкцией, проверяем - а больше 1 - ДА (5>1 ), а равно б - ДА (5=5). Здесь обе части логического выражения выполняются значит переходим к действию а:=а-5=5-5=0.
ответ. А равно 0 (а=0).
5.
a:=24;
b:=8;
b:=a mod b;
если a>b то
c:=a div (b+5);
иначе c:=b.
а равно 24, б равно 8. потом б присваивается значение a mod b, это значит что от а нужно найти остаток от деления на б. 24 / 8 = 3 при этом остаток 0. значит б теперь равно 0
условие a>b 24>0 -ДА, значит с:=a div (b+5), здесь нужно узнать целую часть при делении. сначала b+5=0+5=5. потом а/5=24/5=целая часть =4 и остаток =4. значит с=4.
Если бы условие не выполнилось тогда бы с присвоилось значение б, которое равно 0.
ответ: с=4