Решение проблемных задач на персональном компьютере

Программы линейной структуры. Составление программы, которая по заданному номеру и значению соответствующего элемента вычисляет значение всех остальных элементов треугольника. Формулирование одномерного массива с помощью генератора случайных чисел.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 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

  • Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.

    лабораторная работа [123,5 K], добавлен 15.01.2014

  • Разработка программы на языке Visual++ с использованием библиотеки MF, которая рассчитывает по введенным значениям длин сторон треугольника прямоугольный он или нет, а также вычисляет его периметр, площадь, радиус описанной и вписанной окружностей.

    курсовая работа [442,0 K], добавлен 18.06.2011

  • Разработка программы, которая вычисляет определенный интеграл методом трапеций для подынтегральной функции и моделирует задачу вынужденных колебаний без затухания. Описание интерфейса программы в среде Delphi. Решение задачи с помощью пакета MathCAD.

    курсовая работа [738,8 K], добавлен 24.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.