Рассмотрим, что делает эта программа.
c := 0; // начальное значение счётчика
for i := 1 to 9 do // цикл по i
if A[i - 1] < A[i] then begin // если текущий элемент больше предыдущего
c := c + 1; // то увеличиваем счётчик на 1
t := A[i]; // и меняем текущий элемент местами с предыдущим
A[i] := A[i - 1];
A[i - 1] := t
end;
Последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t).
Итак, моделируем, что делает программа и считаем число обменов.
0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
1) <span>6 9 7 2 1 5 0 3 4 8 -> </span><span>9 6 7 2 1 5 0 3 4 8 ОБМЕН
2) </span>9 6 7 2 1 5 0 3 4 8 -> <span>9 7 6 2 1 5 0 3 4 8 ОБМЕН
3) </span>9 7 6<span> 2 1 5 0 3 4 8 ОК
4) </span>9 7 6<span> 2 1 5 0 3 4 8 ОК
5) </span>9 7 6 2 1 5 0 3 4 8 -> 9 7 6<span> 2 5 1 0 3 4 8 ОБМЕН
6) </span>9 7 6<span> 2 5 1 0 3 4 8 ОК
7, 8, 9) Ноль будет "всплывать" в конец, 3 ОБМЕНА
Всего будет 6 обменов, <u>c = 6</u>.</span>
Var x,a,h:integer;
begin
read(x);
while a<=x-3 do
begin
a:=a*2;
h:=h+3;
end;
writeln(h);
end.
вроде бы как то так у меня баги паскаля на компе поэтому проверить не получилось. если что попробуй убрать "-3" в 4 строке. а так должно работать.
//допустим,что будем вводить числа до тех пор, пока не введём 0
int k = 0;//кол-во чисел
int sum = 0;//сумма чисел
float sr;//среднее арифм
int a;//вводимые числа
do {
cout << "Enter: ";
cin >> a;
if (a != 0 && a \% 8 == 0) {
++k;
sum += a;
}
} while (a != 0);
if (k != 0) {
sr = sum / static_cast<float>(k);
}
if (k >= 1) {
cout << "Srednee arifm: " << sr << endl;
}
else {
cout << "NO" << endl;
}
<span>Операторы dif & mod означают соответственно результат от целочисленного деления и его остаток.
В нашем случае это оператор mod, т.е. остаток:
х:=(10+47):26 --> х:=57:26 --> х:=5;
z:=(24+5):10 --> z:=29:10 --> z:=9.
Программа выведет на экран z, т.е. 9. </span>
var a:array[1..15]of integer;
i:integer;
begin
for i:=1 to 15 do begin a[i]:=random(31)-15; write(a[i]:4); end;
writeln;
for i:=1 to 15 do if a[i]>=0 then a[i]:=sqr(a[i]) else a[i]:=abs(a[i]);
for i:=1 to 15 do write(a[i]:4);
end.
var a:array[1..15]of integer;
i:integer;
begin
for i:=1 to 15 do begin a[i]:=random(31)-15; write(a[i]:3); end;
writeln;
for i:=1 to 15 do if a[i] mod 2=0 then a[i]:=2 else a[i]:=a[i]-5;
for i:=1 to 15 do write(a[i]:3);
end.
var a:array[1..15]of integer;
i:integer;
begin
for i:=1 to 15 do begin a[i]:=random(31)-15; write(a[i]:3); end;
writeln;
for i:=1 to 15 do if a[i] mod 6=0 then a[i]:=a[i] div 2 else a[i]:=a[i] div 5;
for i:=1 to 15 do write(a[i]:3);
end.
var a:array[1..15]of integer;
i,k:integer;
begin
for i:=1 to 15 do begin a[i]:=random(31)-15; write(a[i]:3); end;
writeln;
k:=a[3];
a[3]:=a[11];
a[11]:=k;
for i:=1 to 15 do write(a[i]:3);
end.