Решение проблемных задач на персональном компьютере
Федеральное
Государственное Образовательное учреждение
Дагестанский
механический техникум
им.
С. Орджоникидзе
Отчет
по практике
"Решение
проблемных задач на персональном
компьютере"
Выполнил:
Гусейнов Эмран
Руководитель
практики:
Гасанова М. М.
г.
Каспийск,
2011
. Программы линейной структуры
Задача.
Дан прямоугольный треугольник АВС()
,для которого определен след. Набор характерных параметров: a,b,c-стороны
треугольника; α,β- острые
углы
(в
градусах); h-высота,
опушенная на гипотенузу с; S-
площадь; P-периметр
треугольника. По заданным
a и
h вычислить
все
остальные.
TForm1.Button1Click(Sender:
TObject);,a,b,Alf,Gam,Bet,n,S,P,c:real;:=StrToFloat(edit1.Text);:=StrToFloat(Edit2.Text);:=h/a;
alf:=n*180/pi; bet:=90-alf;:=a*(sin(alf)/cos(alf));:=sqrt(a*a+b*b);:=(a*b)/2;:=a+b+c;.Caption:='Стороны:
а=
'+FloatToStr(a)+' b='+FloatTOStr(Round(b))+'
c='+FloatTOStr(Round(c));.Caption:='Углы:
aльфа=
'+FloatToStr(Round(alf)) +'гр.
бетта=
'+FloatTOStr(Round(bet))+'гр.';.Caption:='S='+FloatToStr(Round(S))+'
P='+FloatToStr(Round(P)); end;
2. Ветвления
Задача.
TForm1.Button1Click(Sender:
TObject);a,b,c:integer;:=StrToInt(Edit1.Text);:= StrToInt(Edit2.Text)
;:=StrToInt(Edit3.Text) ;
if a<0 then Label4.Caption:='Сторона А не
может быть отрицательной'b<0 then Label4.Caption:='Сторона B на может быть
отрицательной'c<0 then Label4.Caption:='Сторона C на может быть
отрицательной'
else begin:=c*c;:=a*a;:=b*b;c=a then
Label4.Caption:='Трехугольник с такими сторонами
существовать может'
else if a=c+b then
Label4.Caption:='Трехугольник с такими сторонами
существовать может'
else if b=c+a then
Label4.Caption:='Трехугольник с такими сторонами
существовать может'Label4.Caption:='Трех угольник с такими сторонами
существовать неможет'
end;;TForm1.Button2Click(Sender:
TObject);a,b,c:integer;Edit1.Text='' then Label4.Caption:='введите
A';Edit3.Text='' then Label4.Caption:='введите
C';Edit2.Text='' then Label4.Caption:='введите
B';
end;TForm1.Button3Click(Sender:
TObject);
begin.Caption:='Зачем ты нажимаещ на Форму???';end;
3. Оператор выбора
Задача.
Пусть элементами равностороннего треугольника
являются
) Сторона а
) Площадь S
) Высота h
) Радиус вписанной окружности r
Составить программу, которая по заданному номеру
и значению соответствующего элемента вычислила бы значение всех остальных
элементов треугольника
TForm1.Button1Click(Sender:
TObject);a,b,c,s,rad,rad2,h:real;:=0; a :=0; b :=0; c :=0; s :=0;
rad:=0;rad2:=0;h:=0;RadioGroup1.ItemIndex of
: begin a:=StrToFloat(Edit1.Text);
s:=((a*a)*sqrt(3))/4; h:=(2*s)/a*a;rad:=(2*s)/(a+a+a); rad2:=(a*a*a)/(4*s);
end;
:begin s:=StrToFloat(Edit1.Text);
a:=sqrt((4*s)/sqrt(3)); h:=(2*s)/a*a;rad:=(2*s)/(a+a+a); rad2:=(a*a*a)/(4*s);
end;
:begin h:=StrToFloat(Edit1.Text);
a:=sqrt((4*s)/sqrt(3));rad:=(2*s)/(a+a+a); rad2:=(a*a*a)/(4*s); end;
:begin rad:=StrToFloat(Edit1.Text);
h:=(2*s)/a*a;a:=sqrt((4*s)/sqrt(3)); rad2:=(a*a*a)/(4*s); end;
:begin rad2:=StrToFloat(Edit1.Text);
h:=(2*s)/a*a;a:=sqrt((4*s)/sqrt(3));rad:=(2*s)/(a+a+a); ; end;label1.Caption:='
';;.Caption:='a='+FloatToStr(a)+#13+'S='+FloatToStr(s)+#13+'h='+FloatToStr(h)
+#13+'ðàä.âïèñ='+FloatToStr(rad)
+#13+'ðàä.îïèñ='+FloatToStr(rad2)
;;.
. Целочисленная арифметика
Задача.
Даны натуральные числа n,
k. Проверить ,есть
ли в записи числа
Цифра m
TForm1.Button1Click(Sender:
TObject);n,k,b,i,m,z:integer;:=StrToInt(Edit1.Text);
k:=StrToInt(Edit2.Text);:=StrToInt(Edit3.Text);:=1;
i:=1;i<=k do:=z*n; i:=i+1;;.Caption:='Z='+intToStr(z);z>0 do begin:=z mod
10;b= m thenLabel4.Caption:='Есть';:=0;
endif z= m then Label4.Caption:='Есть'Label4.Caption:='Нет';:=z
div 10;;;
end.
. Табулирование функций
(3)Написать программу вычисления значения
функции F(x)
На отрезке [a,b]с
шагом h
procedure
TForm1.Button1Click(Sender: TObject);n,x,a,b,h,F:real;:integer;
begin:=StrToFloat(Edit1.text);:=StrToFloat(Edit2.text);:=StrToFloat(Edit3.text);:=(b-a)/h;:=a;i<n
do:=a;:=abs(x)-7*x*5;.Lines.Add(FloatToStr(F));:=a+h;;.Caption:=FloatToStr(x);.Lines.Add(FloatToStr(x));
end;
. Массивы и матрицы
1.Сформулировать одномерный массив с помощью
генератора случайных чисел поменять местами элементы, стоящих на четных местах
,на элементы ,стоящих на нечетных местах.
Form1.Button1Click(Sender:
TObject);a :array[1..10] of integer;:integer;;i:=1 to 10 do begin a[i]:= random
(15);.Cells[i-1,0]:= IntToStr(a[i]);
{if i mod 2=0 then begin:=a[i];
a[i]:=a[i+1]; a[i+1]:=a[i];; }end;end;TForm1.Button2Click(Sender: TObject);a
:array[1..10] of integer;:array[1..10] of integer;,p:integer;i:=1 to 10 do
begin:=i;i mod 2=0 then begin[p]:=a[i];.Cells[p-1,0]:= IntToStr(z[p]);
endbegin[p+1]:=a[i];.Cells[p-1,0]:= IntToStr(z[p]);
end; end; end; end.
. Дана матрица
размером а [n,m]
. найти в каждой строке матрицы максимальный и минимальный элементы и поменять
их местами с первым и последним элементом строки соответственно.
программа линейный масив генератор
TForm1.Button1Click(Sender:
TObject);a,b:array[1..10,1..10] of
integer;,t,k,p,m,n,min,i,j:integer;;:=strtoint(edit1.Text);:=strtoint(edit2.Text);:=0;
k:=0;i:=1 to n doj:=1 to m do[i,j]:=random(20)-5; b[i,j]:=a[i,j];.Cells[i-1,j-1]:=intToStr(b[i,j]);;j:=1
to m do begin:=-10000; min:=10000;i:=1 to n doa[i,j]>max then begin
max:=a[i,j]; p:=i;.Cells[0,j-1]:=intToStr(max); endif a[i,j]<min
thenmin:=a[i,j]; k:=i;.Cells[0,j-1]:=intToStr(min);end;;:=a[p,j];
a[p,j]:=a[1,j]; a[1,j]:=t;:=a[k,j]; a[k,j]:=a[n,j]; a[n,j]:=t;;i:=1 to n doj:=1
to m do stringgrid2.Cells[i-1,j-1]:=intToStr(a[i,j]);
end;
7. Обработка строковых данных
Задача.
Из строки удалить среднюю букву ,если длина
строки четная ,если длина строки не четная -удалить две средние буквы.
sedmoeconsol;;str:STRING;,s,a:integer;('vvedite
stroku');(str);:=Length(str);(k);k mod 2=0 then:= k div
2;(str,a,1);begin:=k-1;:=k div 2;(str,a,2);;:=Length(str);(str); writeln(k);;.
8. Процедуры и
функции
Задача:
Вычислить значение
где
n ≤ 10
Project3;
{$APPTYPE
CONSOLE};F(v:real):real;:=Exp(v*ln(10));;a,i,n,y:real;('vvedite n');(n);n>10
do begin('N dolgen bit <10');(n);;:=1; i:=1;i<=n do
begin:=a*i;:=i+1;;:=F(n)/a;('y=',y:15:6);;..