Сдвигаем число А вправо на i бит, а потом сдвигаем результат влево на i бит. Освободившиеся правые разряды автоматически заполняются нулями.
var
a, i, j: integer;
begin
Write('Введите через пробел целое А и натуральное i: ');
Readln(a, i);
a := (a shr i) shl i;
Writeln('a=', a)
end.
Тестовое решение:
Введите через пробел целое А и натуральное i: 124 5
a=96
Потому что условный оператор проверяет выражение на истинность. Если истина то выполнится одна ветка, если ложь то другая ветка конструкции ветвления.
Vari:integer;beginfor i:=100 to 999 do beginif (i mod 15=11) and (i mod 11=9) thenwrite(i+' ');end;end. Писал на скорую руку,могут быть ошибки
1)Олег представь, что НЕ- минус, и все как в математике
2)22
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
<u>//№7</u>
begin
var (s,k,p):=(0,0,BigInteger(1));
var n:integer;
repeat
n:=ReadInteger;
s+=n; p*=n; k+=1;
until s>200;
Writeln('Кол-во= ',k,', S=',s,' П= ',p,', Ср.арифм= ',s/k)
end.
<u>Пример</u>
56
-231
220
118
-52
31
45
110
Кол-во= 8, S=297 П= 2679630617664000, Ср.арифм= 37.125
<u>//№8</u>
begin
var n:=Abs(ReadlnInteger('n='));
var x:=ReadlnInteger('Введите цифру');
var k:=0;
while n>0 do begin
var d:=n mod 10;
if d=x then k+=1;
n:=n div 10
end;
Writeln('Цифра ',x,' встретилась ',k,' раз(а)')
end.
<u>Пример</u>
n= 1235361212
Введите цифру 2
Цифра 2 встретилась 3 раз(а)
<u>//№9</u>
begin
var (a,b):=ReadInteger2('Введите a и b:');
for var i:=a to b do
if i.IsEven and (i mod 7<>0) then begin
var j:=Sqr(BigInteger(i));
Writeln(i:10,j:19,i*j:28)
end
end.
<u>Примеры</u>
Введите a и b: 123456789 123456796
123456790 15241578997104100 1881676417513891481839000
123456792 15241579490931264 1881676508963366945945088
123456794 15241579984758436 1881676600412845373014184
123456796 15241580478585616 1881676691862326763046336
Введите a и b: 6 20
6 36 216
8 64 512
10 100 1000
12 144 1728
16 256 4096
18 324 5832
20 400 8000