Напишите, , программу на pascal. дан одномерный массив. определить, могут ли его элементы образовать возрастающую последовательность после удаления одного из элементов.
Var ar:array[1..n] of integer; CouOfDel,i:integer; begin for i:=1 to n do readln(ar[i]); for i:=2 to n do if ar[i-1]>ar[i] then inc(CouOfDel); if CouOfDel>1 then writeln('Нет') else writeln('Да'); end.
Для того чтобы перевести из двоичной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью двойки (показатель системы из которой переводим). Определяем степень (последнее число имеет нулевую степень, каждое следующее +1): 43210 11110 Получаем: 11110=1*2^4+1*2^3+1*2^2+1*2^1+0*2^0=16+8+4+2+0=30 11110 (2)=30 (10)
Для того чтобы перевести из восьмеричной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью восьмерки (показатель системы из которой переводим). Определяем степень (последнее число имеет нулевую степень, каждое следующее +1): 210 372 Получаем: 372 (8) = 3*8^2+7*8^1+2*8^0=192+56+2=250
Для того чтобы перевести из шестнадцатеричной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью шестнадцати (показатель системы из которой переводим). Определяем степень (последнее число имеет нулевую степень, каждое следующее +1): 210 32А Учитывая соответствие букв в шестнадцатеричной системе числам в десятичной: А - 10 B - 11 C - 12 D - 13 E - 14 F - 15 получаем: 32А (16) = 3*16^2+2*16^1+10*16^0=768+32+10=810.
Const
n=5;
Var
ar:array[1..n] of integer;
CouOfDel,i:integer;
begin
for i:=1 to n do
readln(ar[i]);
for i:=2 to n do
if ar[i-1]>ar[i] then inc(CouOfDel);
if CouOfDel>1 then writeln('Нет') else writeln('Да');
end.
Пример ввода:
1
2
2
1
3
Пример вывода:
Да