IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Прокомментировать программу, Прокомментировать программу
Sam-017
сообщение 13.12.2011, 10:54
Сообщение #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
сообщение 13.12.2011, 13:52
Сообщение #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.



Дальше предлагаю самостоятельно
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 25.5.2025, 19:27

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru