Автор работы: Пользователь скрыл имя, 14 Марта 2011 в 18:27, курсовая работа
Задача 1.
Составить программу, которая позволяет численно убедиться в справедливости равенства, приведенного ниже, с заданной точностью E:
Вычисления необходимо продолжать до тех пор, пока для очередного члена ряда А не будет выполнено условие: . Значение Е вводятся в диалоге по запросу пользователя (например, ). Вывести значения всех членов ряда и количество итераций, необходимых для достижения заданной точности.
Условие задач 2
Текст программы 3
Результаты работы программы 30
Список используемой литературы: 33
Vari,j,A,B,n,m:integer;
begin
Randomize;
A:=Random(999)-999; n:=Random(998)+1;
B:=Random(999); m:=Random(998)+1;
Edit32.Text:=IntToStr(A); Edit30.Text:=IntToStr(n);
Edit33.Text:=IntToStr(B); Edit31.Text:=IntToStr(m);
Edit36.Text:=IntToStr(A); Edit34.Text:=IntToStr(n);
Edit37.Text:=IntToStr(B); Edit35.Text:=IntToStr(m);
for i:=1 to n do
for j:=1 to m do
M2[i,j]:=A+Random((B+1)-A);
Button37.Click;
Button31.Enabled:=False;
Button32.Enabled:=False;
end;
procedure TForm1.Button33Click(Sender: TObject);
varn,m,i,j:integer;
begin
n:=0;
m:=0;
{=== Если
массив заполнен и задан
if (edit32.Text<>'') and (edit54.Text<>'') and (edit55.Text<>'') then begin
n:=StrToInt(Edit54.Text);
m:=StrToInt(Edit55.Text);
end;
{=== Если
запрашивается элемент > 0 и <
границ массива ==============}
if (n>0) and (n<StrToInt(Edit34.Text)+1) and (m>0) and (m<StrToInt(Edit35.Text)+1) then begin
Edit56.Text:=IntToStr(M2[n,m])
j:=StrToInt(Edit55.Text);
i:=StrToInt(Edit54.Text)+4;
SetGridFocus(StringGrid1, i, j );
end else
Edit56.Text:='';
{=============================
end;
procedure TForm1.Button31Click(Sender: TObject);
vari,j,A,B,n,m:integer;
Code:integer;
begin
Randomize;
{== Проверка
ввода значений ==============================
Val(Edit30.Text,n,code);
if (code<>0) then begin
Edit30.Text:='';
end
else begin
n:=strtoint(Edit30.Text);
Edit34.Text:=inttostr(N);
end;
Val(Edit31.Text,m,code);
if (code<>0) then begin
Edit31.Text:='';
end
else begin
m:=strtoint(Edit31.Text);
Edit35.Text:=inttostr(m);
end;
Val(Edit32.Text,A,code);
if (code<>0) then begin
Edit32.Text:='';
end
else begin
A:=strtoint(Edit32.Text);
Edit36.Text:=inttostr(A);
end;
Val(Edit33.Text,B,code);
if (code<>0) then begin
Edit33.Text:='';
end
else begin
B:=strtoint(Edit33.Text);
Edit37.Text:=inttostr(B);
end;
{=== Проверка
ввода значений и заполнение
массива ====================}
if (Edit34.Text<>'') and (Edit35.Text<>'') and (Edit36.Text<>'') and (Edit37.Text<>'')and
(StrToInt(Edit37.Text)>=
for i:=1 to n do
for j:=1 to m do M2[i,j]:=A+Random((B+1)-A);
Button37.Click;
end
else begin
Edit30.Text:=''; Edit31.Text:=''; Edit34.Text:=''; Edit36.Text:='';
Edit32.Text:=''; Edit33.Text:=''; Edit35.Text:=''; Edit37.Text:='';
for i:=1 to 4 do
for j:=1 to 4 do
Edit54.Text:=''; Edit55.Text:=''; Edit56.Text:='';
Label102.Visible:=true;
Timer2.Enabled:=True;
end;
if (Edit34.Text<>'') then begin
Button37.Click;
Button31.Enabled:=False;
Button32.Enabled:=False;
end;
end;
procedure TForm1.Button37Click(Sender: TObject);
Var i,j,A,B,n,m,M2i,M2j:integer;
sum:longint;
begin
n:=StrToInt(Edit34.Text);
m:=StrToInt(Edit35.Text);
{=== Нахождение
суммы отрицательных элементов
столбцов ==============}
for j:=1 to m do begin
sum:=0;
for i:=1 to n do begin
if (M2[i,j]<0) then sum:=sum+M2[i,j];
end;
StringGrid1.Cells[j,0]:=
end;
{=== Нахождение
кол-ва отрицательных
for j:=1 to m do begin
sum:=0;
for i:=1 to n do begin
if (M2[i,j]<0) then sum:=sum+1;
end;
StringGrid1.Cells[j,1]:=
end;
{=== Нахождение
суммы положительных элементов
столбцов ==============}
for j:=1 to m do begin
sum:=0;
for i:=1 to n do begin
if (M2[i,j]>0) then sum:=sum+M2[i,j];
end;
StringGrid1.Cells[j,2]:=
end;
{=== Нахождение
кол-ва положительных
for j:=1 to m do begin
sum:=0;
for i:=1 to n do begin
if (M2[i,j]>0) then sum:=sum+1;
end;
StringGrid1.Cells[j,3]:=
end;
{=== Заполнение
заглавных ячеек таблицы ======
StringGrid1.Font.Size:=8;
StringGrid1.Cells[0,0]:='
StringGrid1.Cells[0,1]:='Кол-
StringGrid1.Cells[0,2]:='
StringGrid1.Cells[0,3]:='Кол-
StringGrid1.Cells[0,4]:='
StringGrid1.ColWidths[0]:=65;
{=== Подгонка
таблицы под введенные размеры
двумерного массива ======}
StringGrid1.RowCount:=n+5;
StringGrid1.ColCount:=m+1;
{=== Нумерация
колонок и строк ==============================
for i:=1 to m+1 do StringGrid1.Cells[i,4]:=
for i:=1 to n+5 do StringGrid1.Cells[0,i+4]:='
{=== Заполнение
таблицы массивом ==============================
M2i:=0;
M2j:=0;
For i:=5 to n+5 do begin
M2i:=M2i+1;
m2j:=1;
for j:=1 to m+1 do begin
StringGrid1.Cells[j,i]:=
M2j:=M2j+1;
end;
end;
{=============================
end;
procedure TForm1.Button34Click(Sender: TObject);
begin
Panel1.Visible:=true; Panel6.Visible:=False;
Panel2.Visible:=false; Panel5.Visible:=False;
Panel3.Visible:=False; Panel4.Visible:=false;
PageControl1.Visible:=False;
end;
procedure TForm1.Button35Click(Sender: TObject);
vark,n,code:integer;
A,E,S:Extended;
begin
if (copy(Edit38.Text,1,1)='0')
and (StrToInt(copy(Edit38.Text,3,
E:=StrToFloat(Edit38.Text);
k:=1;
A:=1/2;
s:=0;
{-->}while (abs(A)>=E) do begin
A:=1/((2*k-1)*(2*k+1));
k:=k+1;
s:=s+A;
memo3.Lines[k-2]:=IntToStr(k-
memo5.Lines[k-2]:=IntToStr(k-
{-->}end;
Edit39.Text:=IntToStr(k-1);
end else
Edit38.Text:='';
end;
procedure TForm1.Button36Click(Sender: TObject);
begin
memo3.Text:='';
memo5.Text:='';
memo3.Lines[0]:='Шаг / Значение А на шаге i';
memo5.Lines[0]:='Шаг / Значение
S на шаге i';
Edit39.Text:='';
Edit38.Text:='0,0001';
end;
procedure TForm1.Button38Click(Sender: TObject);
var s:string;
n:double;
begin
{--- Проверка
ввода в окно "Введите E" ------------------------------
s:=Edit38.Text;
ifTryStrToFloat(s, n) then
begin
if (StrToFloat(s)>0) and (StrToFloat(s)<0.6) then button35.Click
else Edit38.Text:='';
end
else Edit38.Text:='';
{-----------------------------
end;
procedure TForm1.Button39Click(Sender: TObject);
begin
Panel1.Visible:=false; Panel6.Visible:=true;
Panel2.Visible:=false; Panel5.Visible:=False;
Panel3.Visible:=False; Panel4.Visible:=False;
PageControl1.Visible:=False;
end;
procedure TForm1.Button40Click(Sender: TObject);
Vari,j,n,k:integer;
s:string;
begin
k:=0;
for i:=0 to 7 do begin
for j:=1 to 8 do begin
k:=0;
k:=length(StringGrid2.Cells[i,
if (k>15) then begin
Label107.Visible:=true;
Edit41.Text:=IntToStr(i+1);
Edit42.Text:=IntToStr(j);
end;
end;
end;
if (Label107.Visible=False) then
button43.Click;
end;
procedure TForm1.Button42Click(Sender: TObject);
begin
Label107.Visible:=False;
Edit40.Text:='';
Edit41.Text:='';
Edit42.Text:='';
end;
procedure TForm1.Button43Click(Sender: TObject);
vark,i,j,d:integer;
s:string;
begin
Edit40.Text:='Всевведеноверно'
// Сохраняем по выбранному пути
ifsavedialog1.Executethen
SaveStringGrid(StringGrid2, savedialog1.FileName);
end;
procedure TForm1.StringGrid2Click(
begin
Label107.Visible:=False;
Edit40.Text:='';
Edit41.Text:='';
Edit42.Text:='';
end;
procedure TForm1.Button41Click(Sender: TObject);
begin
// Открываем по выбранному пути
if opendialog1.Execute then
LoadStringGrid(StringGrid2, opendialog1.FileName);
end;
procedure TForm1.Button44Click(Sender: TObject);
begin
Panel1.Visible:=false; Panel6.Visible:=False;
Panel2.Visible:=false; Panel5.Visible:=true;
Panel3.Visible:=False; Panel4.Visible:=false;
PageControl1.Visible:=False;
end;
procedure TForm1.Button45Click(Sender: TObject);
var t0,t0code,tn,tncode,a,acode,M:
s:string;
h:double;
begin
M:=0; //
Накапливаемая метка - правильно ли введены
данные
Val(Edit43.Text,t0,t0code);
if (t0code<>0) then Edit43.Text:='' else
if (t0<0) then Edit43.Text:='' else
M:=M+1;
Val(Edit44.Text,tn,tncode);
if (tncode<>0) then Edit44.Text:='' else
if (tn<0) then Edit44.Text:='' else
M:=M+1;
if (t0 >= tn) then Edit43.Text:=''
else M:=M+1;
Val(Edit46.Text,a,acode);
if (a<=0) then Edit46.Text:='' else
M:=M+1;
{--- Проверка
ввода в окно "Шаг (h)" ------------------------------
s:=Edit45.Text;
ifTryStrToFloat(s, h) then
begin
Edit48.Text:='Введеноверно';
if (StrToFloat(s)>0) then M:=M+1;