5. Проанализируйте предложенный код и определите, что будет выведено в результате его исполнения? а) а = int (input ("введите число: if a< 0: print("Neg") elif a = 0: print("Zero") else: print("Pos") сор
{ Boland Pascal 7.01 } uses Crt; const n=20; var a,b:array[1..n] of integer; i,k:integer; begin ClrScr; Randomize; Writeln('*** Исходный массив ***'); k:=0; for i := 1 to n do begin a[i]:=Random(51)-25; Write(a[i]:4); if Odd(a[i]) and (a[i]>0) then begin Inc(k); b[k]:=a[i] end end; Writeln; if k>0 then begin Writeln('*** Сформированный массив ***'); for i:=1 to k do Write(b[i]:4); Writeln end else Writeln('Нет элементов для формирования выходного массива'); ReadKey end.
А вот для сравнения современный вариант программы: // PascalABC.NET 3.0, сборка 1088 begin var n:=ReadInteger('Размер массива='); var a:=ArrRandom(n,-25,25); Writeln('*** Исходный массив ***',#13#10,a); var b:=a.Where(x->(Odd(x) and (x>0))); If b.Count>0 then Writeln('*** Сформированный массив ***',#13#10,b) else Writeln('Нет элементов для формирования выходного массива') end.
// PascalABC.NET 3.0, сборка 1088 function Fib(n:integer):longint; begin if n<3 then Fib:=1 else Fib:=Fib(n-2)+Fib(n-1) end;
var a,b,f,mn:longint; i:integer; begin Write('Введите а и b: '); Read(a,b); if a<b then mn:=a else mn:=b; i:=1; repeat f:=fib(i); Inc(i); until f>=mn; if f=mn then begin if a=mn then mn:=b else mn:=a; if fib(i)=mn then Writeln('Соседние числа Фибоначчи') else Writeln('Меньшее - число Фибоначчи, большее - не его сосед') end else Writeln('Меньшее - не число Фибоначчи, работа закончена') end.
Тестовые решения: Введите а и b: 610 987 Соседние числа Фибоначчи
Введите а и b: 500 250 Меньшее - не число Фибоначчи, работа закончена
Введите а и b: 610 830 Меньшее - число Фибоначчи, большее - не его сосед
Если будет а<0, то программа выведет "Neg"
Если а=0, то программа выведет "Zero"
Если а>0 программа выведет "Pos"