![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Sam-017 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 29.11.2011 Город: Самара Учебное заведение: ПГУТИ ![]() |
Прокомментируйте пожалуйста что выполняется в каждой строке программы.
1. program ryad; uses crt; function Fac(n: integer): LongInt; begin if n > 1 then fac := n * Fac(n-1) else fac:= 1; end; function power(c,st:real):real; begin power:=exp(st*ln©); end; var sl,x,s,e:real; k:integer; begin writeln('vvedite x'); readln(x); writeln('e summa k'); s:=0; k:=1; e:=0.001; sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3))) ; while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s,k); s:=0; k:=1; e:=0.0001; sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3)); while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s,k); s:=0; k:=1; e:=0.00001; sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3)); while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s,k); s:=0; k:=1; e:=0.000001; sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3))); while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s:6:7,' ',k); readln; end. 2. uses crt; var s, temp, min:string; i:integer; begin clrscr; writeln('введите строку...'); readln(s); s:=s+' '; temp:=''; i:=1; repeat if s[i]<>' ' then temp:=temp+s[i]; if ((s[i]=' ') or (i=length(s))) and (temp<>'') then begin if length(temp)>2 then delete(s,i-length(temp),1); dec(i); temp:=''; end; inc(i); until i>length(s); writeln(s); readln; end. 3. program example; uses crt; const n = 5; var bRow: array [1..n] of 0..1; aMatrix: array [1..n, 1..2*n] of Real; x: Real; i,j: 1..2*n; begin write('введите вещественное число х: '); readln(x); writeln('Матрица ', n, 'x', 2*n, 'целых чисел сформирована автоматически:'); randomize; for i := 1 to n do begin for j := 1 to 2*n do begin aMatrix[i, j] := -2*x + random(Round(4*x)); write(aMatrix[i, j]:6:2) end; writeln('') end; for i := 1 to n do for j := 1 to 2*n do if aMatrix[i, j] <= x then bRow[i] := 1 else begin bRow[i] := 0; break end; writeln('Матрица обработана. Последовательность b[1]..b[',n,'] сформулирована'); for i := 1 to n do write(bRow[i]:2); readln; end. |
Julia |
![]()
Сообщение
#2
|
Ассистент ![]() ![]() ![]() ![]() Группа: Julia Сообщений: 593 Регистрация: 23.2.2007 Город: Улан-Удэ Учебное заведение: БГУ Вы: преподаватель ![]() |
program ryad; //Заголовок программы
uses crt; //Зачем-то подключается модуль crt function Fac(n: integer): LongInt; // Описывается рекурсивная функция вычисления факториала числа begin //открывается операторная скобка if n > 1 then // проверяется условие fac := n * Fac(n-1) // выполняется оператор присваивания имени функции выражения, в выражении рекурсивно вызывается функция else // слово "иначе" fac:= 1; // присваивание имени функции 1 end; // закрывается операторная скобка function power(c,st:real):real; // описывается функция возведения в степень begin // уже было power:=exp(st*ln©); // собственно возведение в степень end; //было var sl,x,s,e:real; // описываются глобальные переменные k:integer; begin // было writeln('vvedite x'); // выводится сообщение на экран readln(x); // считывается значение в переменную writeln('e summa k'); //было s:=0; //без комментариев k:=1; e:=0.001; sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3))) ; while sl>e do begin // задается цикл с предусловием sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); //вычисляется слагаемое какого-то выражения if k mod 2 = 0 then // к проверяется на четность s:=s+sl // слагаемое добавляется в сумму else s:=s-sl; // слагаемое добавляется со знаком "-" inc(k) // к увеличивается на 1 end; writeln(e:6:6,' ',s,k); s:=0; //здесь и далее зачем-то переписывается то же, что и в предыдущем фрагменте программы k:=1; e:=0.0001; sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3)); while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s,k); s:=0; k:=1; e:=0.00001; sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3)); while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s,k); s:=0; k:=1; e:=0.000001; sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3))); while sl>e do begin sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); if k mod 2 = 0 then s:=s+sl else s:=s-sl; inc(k) end; writeln(e:6:6,' ',s:6:7,' ',k); readln; end. Дальше предлагаю самостоятельно |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 19:27 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru