Решение проблемных задач на персональном компьютере
Программы линейной структуры. Составление программы, которая по заданному номеру и значению соответствующего элемента вычисляет значение всех остальных элементов треугольника. Формулирование одномерного массива с помощью генератора случайных чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | русский |
Дата добавления | 01.12.2012 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное Государственное Образовательное учреждение
Дагестанский механический техникум
им. С. Орджоникидзе
Отчет по практике
"Решение проблемных задач на персональном компьютере"
Выполнил:
Гусейнов Эмран
Руководитель практики:
Гасанова М. М.
г. Каспийск, 2011
1. Программы линейной структуры
Задача.
Дан прямоугольный треугольник АВС() ,для которого определен след. Набор характерных параметров: a,b,c-стороны треугольника; б,в- острые углы (в градусах); h-высота, опушенная на гипотенузу с; S- площадь; P-периметр треугольника. По заданным a и h вычислить все остальные.
procedure TForm1.Button1Click(Sender: TObject);
var
h,a,b,Alf,Gam,Bet,n,S,P,c:real;
begin
a:=StrToFloat(edit1.Text);
h:=StrToFloat(Edit2.Text);
n:=h/a; alf:=n*180/pi; bet:=90-alf;
b:=a*(sin(alf)/cos(alf));
c:=sqrt(a*a+b*b);
s:=(a*b)/2;
P:=a+b+c;
Label3.Caption:='Стороны: а= '+FloatToStr(a)+' b='+FloatTOStr(Round(b))+' c='+FloatTOStr(Round(c));
Label4.Caption:='Углы: aльфа= '+FloatToStr(Round(alf)) +'гр. бетта= '+FloatTOStr(Round(bet))+'гр.';
Label5.Caption:='S='+FloatToStr(Round(S))+' P='+FloatToStr(Round(P)); end;
2. Ветвления
Задача.
Даны три положительных числа. Определить, можно ли построить треугольник со сторонами, длины которых равны этим числам.
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:integer;
begin
a:=StrToInt(Edit1.Text);
b:= StrToInt(Edit2.Text) ;
c:=StrToInt(Edit3.Text) ;
if a<0 then Label4.Caption:='Сторона А не может быть отрицательной'
else
if b<0 then Label4.Caption:='Сторона B на может быть отрицательной'
else
if c<0 then Label4.Caption:='Сторона C на может быть отрицательной'
else begin
c:=c*c;
a:=a*a;
b:=b*b;
if c=a then
Label4.Caption:='Трехугольник с такими сторонами существовать может'
else if a=c+b then
Label4.Caption:='Трехугольник с такими сторонами существовать может'
else if b=c+a then
Label4.Caption:='Трехугольник с такими сторонами существовать может'
else Label4.Caption:='Трех угольник с такими сторонами существовать неможет'
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var a,b,c:integer;
begin
if Edit1.Text='' then Label4.Caption:='введите A';
if Edit3.Text='' then Label4.Caption:='введите C';
if Edit2.Text='' then Label4.Caption:='введите B';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Label4.Caption:='Зачем ты нажимаещ на Форму???';end;
3. Оператор выбора
Задача.
Пусть элементами равностороннего треугольника являются
1) Сторона а
2) Площадь S
3) Высота h
4) Радиус вписанной окружности r
5) Радиус описанной окружности R
Составить программу, которая по заданному номеру и значению соответствующего элемента вычислила бы значение всех остальных элементов треугольника
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,s,rad,rad2,h:real;
begin
s:=0; a :=0; b :=0; c :=0; s :=0; rad:=0;rad2:=0;h:=0;
case RadioGroup1.ItemIndex of
0: 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;
1: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;
2:begin h:=StrToFloat(Edit1.Text); a:=sqrt((4*s)/sqrt(3));rad:=(2*s)/(a+a+a); rad2:=(a*a*a)/(4*s); end;
3:begin rad:=StrToFloat(Edit1.Text); h:=(2*s)/a*a;a:=sqrt((4*s)/sqrt(3)); rad2:=(a*a*a)/(4*s); end;
4:begin rad2:=StrToFloat(Edit1.Text); h:=(2*s)/a*a;a:=sqrt((4*s)/sqrt(3));rad:=(2*s)/(a+a+a); ; end;
else label1.Caption:=' ';
end;
label1.Caption:='a='+FloatToStr(a)+#13+'S='+FloatToStr(s)+#13+'h='+FloatToStr(h) +#13+'?aa.aien='+FloatToStr(rad) +#13+'?aa.iien='+FloatToStr(rad2) ;
end;
end.
4. Целочисленная арифметика
Задача.
Даны натуральные числа n, k. Проверить ,есть ли в записи числа
Цифра m
procedure TForm1.Button1Click(Sender: TObject);
var n,k,b,i,m,z:integer;
begin
n:=StrToInt(Edit1.Text);
k:=StrToInt(Edit2.Text);
m:=StrToInt(Edit3.Text);
z:=1; i:=1;
while i<=k do
begin
z:=z*n; i:=i+1;
end;
Label5.Caption:='Z='+intToStr(z);
while z>0 do begin
b:=z mod 10;
if b= m then
begin Label4.Caption:='Есть';
Z:=0; end
else if z= m then Label4.Caption:='Есть'
else Label4.Caption:='Нет';
z:=z div 10;
end;
end;
end.
5. Табулирование функций
(3)Написать программу вычисления значения функции F(x) На отрезке [a,b]с шагом h
procedure TForm1.Button1Click(Sender: TObject);
var n,x,a,b,h,F:real;
i:integer;
begin
a:=StrToFloat(Edit1.text);
b:=StrToFloat(Edit2.text);
h :=StrToFloat(Edit3.text);
n:=(b-a)/h;
x:=a;
while i<n do
begin
x:=a;
F:=abs(x)-7*x*5;
Memo1.Lines.Add(FloatToStr(F));
a:=a+h;
end;
Label5.Caption:=FloatToStr(x);
Memo1.Lines.Add(FloatToStr(x));
end;
6. Массивы и матрицы
1.Сформулировать одномерный массив с помощью генератора случайных чисел поменять местами элементы, стоящих на четных местах ,на элементы ,стоящих на нечетных местах.
procedure Form1.Button1Click(Sender: TObject);
var a :array[1..10] of integer;
i:integer;
begin
randomize;
for i:=1 to 10 do begin a[i]:= random (15);
StringGrid1.Cells[i-1,0]:= IntToStr(a[i]);
{if i mod 2=0 then begin
b:=a[i]; a[i]:=a[i+1]; a[i+1]:=a[i];
end; }end;end;
procedure TForm1.Button2Click(Sender: TObject);
var a :array[1..10] of integer;
z:array[1..10] of integer;
i,p:integer;
begin
for i:=1 to 10 do begin
p:=i;
if i mod 2=0 then begin
z[p]:=a[i];
StringGrid2.Cells[p-1,0]:= IntToStr(z[p]); end
else begin
z[p+1]:=a[i];
StringGrid2.Cells[p-1,0]:= IntToStr(z[p]);
end; end; end; end.
2. Дана матрица размером а [n,m] . найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно.
программа линейный масив генератор
procedure TForm1.Button1Click(Sender: TObject);
var a,b:array[1..10,1..10] of integer;
max,t,k,p,m,n,min,i,j:integer;
begin
randomize;
n:=strtoint(edit1.Text);
m:=strtoint(edit2.Text);
p:=0; k:=0;
for i:=1 to n do
for j:=1 to m do
begin
a[i,j]:=random(20)-5; b[i,j]:=a[i,j];
stringgrid1.Cells[i-1,j-1]:=intToStr(b[i,j]);
end;
for j:=1 to m do begin
max:=-10000; min:=10000;
for i:=1 to n do
begin
if a[i,j]>max then begin max:=a[i,j]; p:=i;
stringgrid3.Cells[0,j-1]:=intToStr(max); end
else if a[i,j]<min then
begin min:=a[i,j]; k:=i;
stringgrid4.Cells[0,j-1]:=intToStr(min);end;
end;
t:=a[p,j]; a[p,j]:=a[1,j]; a[1,j]:=t;
t:=a[k,j]; a[k,j]:=a[n,j]; a[n,j]:=t;
end;
for i:=1 to n do
for j:=1 to m do stringgrid2.Cells[i-1,j-1]:=intToStr(a[i,j]);
end;
7. Обработка строковых данных
Задача.
Из строки удалить среднюю букву ,если длина строки четная ,если длина строки не четная -удалить две средние буквы.
program sedmoeconsol;
uses
SysUtils;
var str:STRING;
k,s,a:integer;
begin
writeln('vvedite stroku');
readln(str);
k:=Length(str);
writeln(k);
if k mod 2=0 then
begin
a:= k div 2;
Delete(str,a,1);
end
else begin
k:=k-1;
a:=k div 2;
Delete (str,a,2);
end;
k:=Length(str);
writeln(str); writeln(k);
readln;
end.
8. Процедуры и функции
Задача:
Вычислить значение
где n ? 10
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
FUNCTION F(v:real):real;
BEGIN
F:=Exp(v*ln(10));
END;
var a,i,n,y:real;
begin
writeln('vvedite n');
readln(n);
While n>10 do begin
Writeln ('N dolgen bit <10');
readln(n);
end;
a:=1; i:=1;
while i<=n do begin
a:=a*i;
i:=i+1;
end;
y:=F(n)/a;
writeln('y=',y:15:6);
readln;
end..
Размещено на Allbest.ru
Подобные документы
Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Формирование одномерного массива, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца. Определение столбца, в котором равное количество положительных и отрицательных элементов. Написание программы и ее тестирование.
контрольная работа [97,2 K], добавлен 21.06.2009Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.
практическая работа [37,5 K], добавлен 20.05.2012Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.
контрольная работа [1,3 M], добавлен 20.12.2012Анализ способов построения генераторов случайных чисел для криптографических задач. Анализ генератора случайных чисел на основе магнитометров. Анализ статистических свойств двоичных последовательностей, полученных путем квантования данных магнитометра.
дипломная работа [2,5 M], добавлен 06.05.2018История и термины теории графов. Описание алгоритма Дейкстры. Математическое решение проблемы определения кратчайшего расстояния от одной из вершин графа до всех остальных. Разработка программы на объектно-ориентированном языке программирования Delphi 7.
контрольная работа [646,9 K], добавлен 19.01.2016Способы получения случайных чисел в программировании и их использование для решения ряда задач. Принцип действия и тестирование работы генератора случайных чисел в Borland C++, его преимущества. Генерация одномерной и двумерной случайной величины.
лабораторная работа [105,4 K], добавлен 06.07.2009Разработка программы на языке Visual++ с использованием библиотеки MF, которая рассчитывает по введенным значениям длин сторон треугольника прямоугольный он или нет, а также вычисляет его периметр, площадь, радиус описанной и вписанной окружностей.
курсовая работа [442,0 K], добавлен 18.06.2011Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Разработка программы, которая вычисляет определенный интеграл методом трапеций для подынтегральной функции и моделирует задачу вынужденных колебаний без затухания. Описание интерфейса программы в среде Delphi. Решение задачи с помощью пакета MathCAD.
курсовая работа [738,8 K], добавлен 24.05.2013