Написать программу на паскале если данное число х меньше нуля, то z присвоить значение большего из 2 чисел х и у, иначе z присвойте значение полсуммы этих чисел.
1способ var a, b: integer; begin write('введите a: '); readln(a); write('введите b: '); readln(b); var x : = range(a, b); writeln('последовательность: '); x.println; writeln('ср. ариф. неотриц чисел: '); writeln(x.where(x -> x > = 0).average); end. 2 способ var a, b,i,s: integer; k: real; begin write('введите a: '); readln(a); write('введите b: '); readln(b); writeln('последовательность: '); for i: =a to b do write(i,' '); writeln(); s: =0; for i: =a to b do if i> =0 then begin s: =s+i; k: =k+1; end; writeln('ср. ариф. неотриц чисел: '); write(s/k); end.
Konchenko1980
22.12.2021
Все нормальные люди делают это так: procedure f(n: integer); forward; procedure g(n: integer); forward; procedure f(n: integer); begin writeln('вызов f(',n,') - *'); //write('*'); if n> 10 then f(n-2) else g(n); writeln('завершение f(',n,')') end; procedure g(n: integer) ; begin writeln('вызов g(',n,') - **'); //write('**'); if n> 1 then f(n-3); writeln('завершение g(',n,')') end; begin f(20) end. результат вызов f(20) - * вызов f(18) - * вызов f(16) - * вызов f(14) - * вызов f(12) - * вызов f(10) - * вызов g(10) - ** вызов f(7) - * вызов g(7) - ** вызов f(4) - * вызов g(4) - ** вызов f(1) - * вызов g(1) - ** завершение g(1) завершение f(1) завершение g(4) завершение f(4) завершение g(7) завершение f(7) завершение g(10) завершение f(10) завершение f(12) завершение f(14) завершение f(16) завершение f(18) завершение f(20) считаем звездочки, их 17. осталось оформить ответ, сделав вид, что это не программная выдача, а "я такой умный, на бумажке расписал". а "ненормальные люди" и в самом деле делают это вручную, не понимая, что ручной разбор рекурсии такой длины - это глупость.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Написать программу на паскале если данное число х меньше нуля, то z присвоить значение большего из 2 чисел х и у, иначе z присвойте значение полсуммы этих чисел.
program z;
uses crt;
var x,y,z: real;
begin
clrscr;
write('введите х: ');
readln(x);
write('введите y: ');
readln(y);
if (x< 0) and (x> y) then z: =x;
if (x< 0) and (x< y) then z: =y;
if (x> =0) then z: =(x+y)/2;
writeln('z=',z);
readkey;
end.