Срешением, ! предлагаются 5 на абстрактном алгоритмическом языке. от вас требуются исчерпывающие конкретные ответы на все поставленные вопросы. программировать на компьютере ничего не следует. 1 есть ли смысл в следующем фрагменте программы? дать развернутые пояснения. real y=2.0,x=1.0,e=1.0; do{ e=e/2.0; y=x+e; }while(y< > 1.0) 2 разобраться в назначении и алгоритме программы. выявить ошибки. cоставить пример обращения к процедуре. провести разумную трассировку программы для конкретных данных. определить эффективность и надежность программы в общепринятом смысле. предложить улучшения алгоритма и программы. proc xx(y[],l,r) // заголовок процедуры { integer y[n],l,r,x,i,j,f,t,z; //описание типов переменных i=l; j=r; x=(l+r)/2; // три оператора присваивания do{ do{ f=0; if(y[i]y[x]) f=1; if(f< 0)i=i+1; } while(f< 0); do{ f=0; if(y[j]> y[x]) f=-1; if(y[j] if(f< 0)j=j+1; } while(f< 0); if(i< =j) {z=y[i]; y[i]=y[j]; y[j]=z; } } while(i< =j) if(l if(i } 3 есть ли смысл в следующем фрагменте программы? есть ли ошибки? пояснить. proc yy(x) // заголовок процедуры { integer x; if(x==1)return(1); if(x< > 1)return(x*yy(x-1)); } 4 сравнить два варианта программы: // 1-й вариант // 2-ой вариант real a,b,c,y; y=a+b+c; real a,b,c,y; y=c+b+a; 5 разобраться в назначении и алгоритме программы. выявить ошибки. составить пример обращения к процедуре. провести "разумную" трассировку. определить эффективность и надежность программы в общепринятом смысле. предложить улучшения алгоритма и программы. избавиться от goto. proc rr(u[],n) // заголовок процедуры { integer u[n],n,v1; c1,c2; //описание типов переменных c1=1; do{ m1: // m1 -это метка v1=rand()*n; // rand- процедура генерации вещественных // случайных чисел из интервала (0.0; 1.0) c2=1; do{ if(v1==u[c2]) goto m1; } while (c2< =n); u[c1]=v1; c1=c1+1; } while (c1< =n); } общие пояснения // -это комментарий; список параметров процедуры.; y[i]- i-ый элемент массива y; {} - блочный (составной) оператор, содержащий группу операторов; ==/ > /< =/< > - логические операции равно/ меньше/ больше/ меньше и равно/ не равно; do {} while(b) - циклически выполняется {}, пока b -истинно; остальное принимать по смыслу.
const
m = 10;
var
t: array[1..m] of integer;
i, n, nm, sm: integer;
begin
//Заполняем массив сл.числами и подсчитываем
//количество элементов и среднее арифметическое
//согласно условию задачи
for i := 1 to m do
begin
t[i] := random(-20, 20);write(t[i]:4);
if (i > 1) and (i <= m) then
if t[i] > t[i - 1] then n := n + 1
else if t[i] < t[i - 1] then begin
sm := sm + t[i];nm := nm + 1;
end;
end;
writeln;
writeln('число элементов больших предыдущего = ', n);
writeln('ср. арифметическое элементов меньших предыдущего = ', sm / nm);
end.
Тестовое решение:
6 13 19 8 -19 -11 -20 -15 -19 -13
число элементов, больших предыдущего = 5
среднее арифметическое элементов, меньших предыдущего = -12.5
begin
writeln("введите количество метров пробегания жирафа");
read(y1);
writeln("введите, за сколько секунд он должен пробежать");
read(x1);
writeln("введите количество метров пробегания зайца");
read(y2);
writeln("введите, за сколько секунд он должен пробежать");
read(x2);
v1:=y1/x1;
v2:=y2/x2;
if v1>v2 then
begin
writeln("жираф чемпион");
end
else if v1<v2 then
begin
writeln("заяц чемпион");
end
else
begin
writeln("победила дружба);
end;
end;