VirtualPC | Дата: Понедельник, 22.12.2008, 03:21 | Сообщение # 1 |
Новичок
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Есть несколько программ на Паскале. Возникла потребность их переделать под решение других задач. Пробовал переделать, но не все в них понимаю. 1. 2 способа. Code При помощи FOR
Program P1; uses crt; var x,r,s,sv,f,c:real; i,j:integer; begin clrscr;
Writeln('Аргумент: X=0,29'); x:=0.29; s:=0; f:=2; for j:=4 to 12 do begin c:=1; Sv:=0; for i:=1 to 10 do begin c:=c*x; f:=(i+2)*f; if odd(i) then r:=(sqrt(i)*ln(x+1))/((sqrt(j)+f)) else r:= (-1)*(sqrt(i)*ln(x+1))/((sqrt(j)+f)); Sv:=Sv+r; writeln('Внутренняя сумма S[',i,']=',SV); end; s:=s+sv; writeln('Внешняя сумма S[',j,']=',S);
end; writeln('Общая сумма S=',S:12:6); readln; end.
При помощи WHILE
Program P2; uses crt; var x,r,s,sv,f,c:real; i,j:integer; begin clrscr;
Writeln('Аргумент: X=0,29'); x:=0.29; s:=0; f:=2; j:=4; while (j<=12) do begin c:=1; Sv:=0; While (i<=10) do begin c:=c*x; f:=(i+2)*f; if odd(i) then r:=(sqrt(i)*ln(x+1))/((sqrt(j)+f)) else r:= (-1)*(sqrt(i)*ln(x+1))/((sqrt(j)+f)); Sv:=Sv+r; i:=i+1; writeln('Внутренняя сумма S[',i,']=',SV); end; s:=s+sv; writeln('Внешняя сумма S[',j,']=',S); j:=j+1; end; writeln('Общая сумма S=',S:12:6); readln; end.
Изменить нужно для решения: (где 0.63 это переменная Х, а пример - общий член ряда) Добавлено (21.12.2008, 20:21) --------------------------------------------- 2. Code I. Сумма бесконечного ряда program P1; uses crt; var i:integer; M,S:real; const x =1.2; e =5*(1E-5); pi=3.1415; function fact(n:integer):longint; var F:longint; k:integer; begin F:=1; for k:=1 to n do F:=F*k; fact:=F; end; function rowm(a:integer;b:real):real; begin if odd(a) then rowm:=(-1)*sqr(ln(x+a))/fact(2*a+1) {"a" - непар.} else rowm:= sqr(ln(x+a))/fact(2*a+1) {"a" - пар.} end; begin clrscr;
writeln('Аргумент: X=1.2'); writeln('Точность: е=5*(1E-5)'); i:=1; S:=0; M:=rowm(i,x); while abs(M) >= e do begin S:=S+M; writeln(' Член = ',M:20:10,' Сумма = ',S:20:10); i:=i+1; M:=rowm(i,x); end; writeln(' Общая сумма = ',S:20:10); writeln writeln readln; end.
II. Обработка массива
program P2; uses crt; const m = 6; n = 6; type matr = array [1..m, 1..n] of integer; var v:matr; i,j:integer; procedure inputarr(var a:matr); var c:byte; i,j:integer; begin writeln(' Процедура ввода матрицы'); writeln(' Выберите вариант ввода:'); writeln(' 1:Случайные числа'); writeln(' 2:Ввод с клавиатуры'); readln(c); case c of 1: begin randomize; for i:=1 to m do for j:=1 to n do a[i,j]:=random(100); end; 2: begin for i:=1 to m do for j:=1 to n do begin write('Введите a[',i,',',j,']: '); readln(a[i,j]); end; end; end; end; procedure obrab(a:matr); var sum,i,j:integer; begin sum:=0; writeln(' Сумма элементов главной и побочной диагонали:'); for i:=1 to m do for j:=1 to n do sum:=sum+a[i,i] +a[n-j+1,j]; writeln('',sum:12); end; begin clrscr;
inputarr(v); writeln(' Матрица:'); for i:= 1 to m do begin for j:= 1 to n do write(v[i, j]:3); writeln; end; writeln; obrab(v); readln; end. Изменить нужно для решения: Задана матрица: Найти ряди с наибольшей и наименьшей суммой элементов. Распечатать найденные ряды и суммы. 3. Code program P1; uses crt; type mas=array[1..4,1..4] of integer; const b:mas=((1,2,3,4),(5,6,7,8),(9,10,11,12),(13,14,15,16)); var c,i,j:integer; a:mas; procedure showmatrix(m:mas); begin for i:= 1 to 4 do begin for j:= 1 to 4 do write(m[i, j]:3); writeln; end; end; begin clrscr; writeln(' Выберите вариант заполнения матрицы:'); writeln(' 1: Как константа'); writeln(' 2: Случайные числа'); writeln(' 3: Ввод с клавиатуры'); readln(c); case c of 1: begin for i:=1 to 4 do for j:=1 to 4 do a[i,j]:=b[i,j]; end; 2: begin randomize; for i:=1 to 4 do for j:=1 to 4 do a[i,j]:=random(100); end; 3: begin for i:=1 to 4 do for j:=1 to 4 do begin write('Введите a[',i,',',j,']: '); readln(a[i,j]); end; end; end; writeln(' Матрица имеет вид:'); showmatrix(a); for i:=1 to 4 do for j:=1 to 4 do begin c:=a[i,1]; a[i,1]:=a[5-j,j]; a[5-j,j]:=c; end; writeln(' Преображенная матрица имеет вид:'); showmatrix(a); readln; end. Изменить нужно для решения: Задана матрица: Нужно поменять местами наибольший и первый элементы в каждом ряде матрицы. Помогите, кто может.
Сообщение отредактировал VirtualPC - Понедельник, 22.12.2008, 03:22 |
|
| |