Lab2
.docxФедеральное агентство по образованию
Московский государственный открытый университет
Рязанский институт (филиал)
Кафедра информационных технологий
Информатика
отчет
по
лабораторной работе №2
Выполнил студент группы 285
Ерёмин С.Н.
Проверил доцент
Засорин С.В.
Рязань, 2009
Задание №1: Составить программу вычисления значений функций:
С
Начало
хема алгоритма:
Ввод x, a, b
нет
да
нет
да
Вывод «y»
Конец
Текст программы:
Program lab2_1;
Var
a,b,x,y:real;
Begin
Writeln('vvedite x, a, b');
Read(x,a,b);
If x>pi then
Begin
y:=1-exp(-a*x+b)*sin(a*x+b);
End
else
If x<=-pi then
Begin
y:=1-(exp(-a*x)+exp(a*x))*sin(a*x);
End
else
Begin
y:=1-exp(-a*x)*(a*x+b);
End;
Writeln('rezultat vichisleniya y=',y:6:2)
End.
Результаты выполнения:
vvedite x, a, b
-4 1 1
rezultat vichisleniya y=-40.33
vvedite x, a, b
0 1 1
rezultat vichisleniya y= 0.00
vvedite x, a, b
5 1 1
rezultat vichisleniya y= 1.01
Задание №2: Треугольник задан координатами своих вершин xi, yi, i=1, 2, 3 на плоскости. Определить, является ли заданный треугольник равнобедренным.
С
Начало
хема алгоритма:
Ввод x1,y1,x2,y2,x3,y3
Расчет расстояний s1, s2, s3
s1=s2 или s2=s3 или s1=s3
нет
Треугольник равнобедр.
Треугольник не равнобедр.
да
Конец
Текст программы:
Program lab2_2;
Var
s1,s2,s3,x1,y1,x2,y2,x3,y3:real;
Begin
Writeln('vvedite koordinati vershin treugolnika');
Read(x1,y1,x2,y2,x3,y3);
s1:=Sqrt(sqr(x2-x1)+sqr(y2-y1));
s2:=Sqrt(sqr(x3-x2)+sqr(y3-y2));
s3:=Sqrt(sqr(x1-x3)+sqr(y1-y3));
if (s1=s2)or(s2=s3)or(s3=s1) then
Begin
Writeln('treugolnik ravnobedrenniy');
End
else
Begin
Writeln('treugolnik ne ravnobedrenniy');
end
End.
Результаты выполнения:
vvedite koordinati vershin treugolnika
1 2
3 4
5 6
treugolnik ravnobedrenniy
vvedite koordinati vershin treugolnika
45 43
87 67
9 6
treugolnik ne ravnobedrenniy
Задание №3: Точки А, В, С заданы своими координатами xi, yi, i=1, 2, 3 на плоскости. Определить, какая из точек является наиболее удаленной, а какая наименее удаленной от точки D(x4,y4)
С
1
2
хема алгоритма:Начало
s2<s1 и s2<s3
Ввод x1,y1,x2,y2,x3,y3
нетда
т.B менее удалена
т.C менее удалена
Ввод x4, y4
Расчет расстояний s1, s2, s3
Конец
s1>s2 и s1>s3
нет
т.А более удалена
s2>s1 и s2>s3
данет
т.B более удалена
т.C более удалена
да
s1<s2 и s1<s3
да нет
т.А менее удалена
1
2
Текст программы:
Program lab2_3;
Var
s1,s2,s3,x1,y1,x2,y2,x3,y3,x4,y4:real;
Begin
Writeln('vvedite koordinati 3-x tochek');
Read(x1,y1,x2,y2,x3,y3);
Writeln('vvedite koordinati tochki D');
Read(x4,y4);
s1:=Sqrt(sqr(x4-x1)+sqr(y4-y1));
s2:=Sqrt(sqr(x4-x2)+sqr(y4-y2));
s3:=Sqrt(sqr(x4-x3)+sqr(y4-y3));
if (s1>s2)and(s1>s3) then
Begin
Writeln('tochka A > udalena');
End
else if (s2>s1)and(s2>s3) then
Begin
Writeln('tochka B > udalena');
End
else
Begin
Writeln('tochka C > udalena');
End;
if (s1<s2)and(s1<s3) then
Begin
Writeln('tochka A < udalena');
End
else if (s2<s1)and(s2<s3) then
Begin
Writeln('tochka B < udalena');
End
else
Begin
Writeln('tochka C < udalena');
End;
End.
Результаты выполнения:
vvedite koordinati 3-x tochek
1 2
2 3
3 4
vvedite koordinati tochki D
1 1
tochka C > udalena
tochka A < udalena
vvedite koordinati 3-x tochek
9 0
-10 0
0 8
vvedite koordinati tochki D
0 0
tochka B > udalena
tochka C < udalena
З адание №4: Составить программу, в которой по заданному значению аргумента x определяется значение функции y, заданной в виде графика
y
0
-a a 2a x
-b
С
Начало
хема алгоритма:
Ввод x, a, b
x<-a или x>a и x<2a
нет
y=0
да
нет
y=a
и
да нет
y=-bx/a+b
y=bx/a+b
да
Вывод y
Конец
Текст программы:
Program lab2_4;
Var
x,y,b,a:real;
Begin
Writeln('vvedite x, a, b');
Read(x,a,b);
if (x<-a)or(x>a)and(x<2*a) then
Begin
y:=0
End
else if (x>=2*a) then
Begin
y:=a
End
else if (x>=-a)and(x<=0) then
Begin
y:=-b*x/a+b
End
else
Begin
y:=b*x/a+b
End;
Writeln('znachenie y=',y:6:2)
End.
Результаты выполнения:
vvedite x, a, b
1 2 3
znachenie y= 4.50
vvedite x, a, b
3 4 -5
znachenie y= -8.75
Задание №5: Составить программу, которая после введенного с клавиатуры чмсла в диапазоне от 1 до 999, обозначающего денежную единицу, дописывает слово «рубль» в правильной форме. Например, 12 рублей, 21 рубль, 3 рубля и т.д.
Схема алгоритма:
Текст программы:
Program Lab2_5;
Var
x,n,m:integer;
Begin
Writeln('vvedite chislo');
Read(x);
if x>100 then
Begin
n:=x mod 100;
End;
if (x>=11)and(x<=14) then
Begin
Writeln('rubley');
End
else if (n<=14)and(n>=11) then
Begin
Writeln('rubley');
End
else
Begin
m:=x mod 10;
Case m of
0,5..9: writeln(' rubley');
1: writeln(' rubl');
2..4: writeln(' rubla');
End;
End;
End.
Результаты выполнения:
vvedite chislo
400
Rubley
vvedite chislo
1
rubl