Программирование

Автор работы: Пользователь скрыл имя, 14 Марта 2011 в 18:27, курсовая работа

Описание работы

Задача 1.

Составить программу, которая позволяет численно убедиться в справедливости равенства, приведенного ниже, с заданной точностью E:



Вычисления необходимо продолжать до тех пор, пока для очередного члена ряда А не будет выполнено условие: . Значение Е вводятся в диалоге по запросу пользователя (например, ). Вывести значения всех членов ряда и количество итераций, необходимых для достижения заданной точности.

Содержание работы

Условие задач 2

Текст программы 3

Результаты работы программы 30

Список используемой литературы: 33

Файлы: 1 файл

Медведев Н.А - 2 курс, Курсовая.docx

— 411.44 Кб (Скачать файл)

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)>=StrToInt(Edit36.Text)) and (StrToInt(Edit34.Text)>0) and (StrToInt(Edit35.Text)>0)then begin

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]:=IntToStr(sum);

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]:=IntToStr(sum);

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]:=IntToStr(sum);

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]:=IntToStr(sum);

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]:=IntToStr(i);

for i:=1 to n+5 do StringGrid1.Cells[0,i+4]:='       '+IntToStr(i); 

{=== Заполнение  таблицы массивом ====================================} 

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]:=IntToStr(M2[M2i,M2j]);

   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,1))<6) then begin 

     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-1)+'       '+FloatToStr(A)+#13+#10;

memo5.Lines[k-2]:=IntToStr(k-1)+'       '+FloatToStr(s)+#13+#10;

{-->}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,j]); 

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(Sender: TObject);

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:integer;

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;

Информация о работе Программирование