Зайцев М. Г. / Отчет по лаб 2 Зайцев 2 семестр
.docxОтчет по лаб.работе№2
-
Вычислить площадь треугольника со сторонами a, b, c. Перед вычислением площади проанализируйте введённые в качестве длин сторон значения. Если введённые значения не могут выступать в качестве длин сторон треугольника, необходимо сообщить об этом пользователю и потребовать повторный ввод. Площадь треугольника вычисляйте по формуле Герона
program ex1;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var a,b,c,s,p:real;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('a= ');readln(a);
write('b= ');readln(b);
write('c= ');readln(c);
if (a<0) or(b<0)or( c<0)or(a>=b+c)or(b>=a+c)or(c>=a+b)
then write('a,b,c – не стороны треугольника, повторите ввод')
else begin p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('площадь треугольника: ',s:5:2);end;readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
A=3, b=4,c=5 |
6 |
Левая ветвь структуры в-ния |
2 |
A=-1,b=2,c=1 |
'a,b,c – не стороны треугольника, повторите ввод' |
Правая ветвь структуры в-ния |
начало
Введите стороны треугольника a,b,c
(a<0)or(b<0)or(c<0)or(a>=b+c)or(b>=a+c)or
(c>=a+b)
и
л
p:=(a+b+c)/2
s:=sqrt(p*(p-a)*(p-b)*(p-c))
Повторите
ввод
Выведите
Площадь треугольника S
конец
-
Вычислить высоты треугольника по длинам трёх его сторон a, b, c. Перед вычислением площади проанализируйте введённые в качестве длин сторон значения. Если введённые значения не могут выступать в качестве длин сторон треугольника, сообщить об этом пользователю и потребовать повторный ввод. Площадь треугольника s вычисляйте по формуле Герона
конец
Повторите
ввод
program ex2;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var a,b,c,s,p,h1,h2,h3:real;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('a= ');readln(a);
write('b= ');readln(b);
write('c= ');readln(c);
if (a<=0) or(b<=0)or( c<=0)or(a>=b+c)or(b>=a+c)or(c>=a+b)
then write('a,b,c – не стороны треугольника, повторите ввод')
else begin p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
h1:=2*s/a;h2:=2*s/b;h3:=2*s/c;
writeln('h1= ',h1:2:1,'h2= ',h2:2:1,'h3= ',h3:2:1); end;
readln;
end.
начало
Введите стороны треугольника a,b,c
(a<0)or(b<0)or(c<0)or(a>=b+c)or(b>=a+c)or
(c>=a+b)
p:=(a+b+c)/2
s:=sqrt(p*(p-a)*(p-b)*(p-c))
h1:=2*s/a,h2:=2*s/b,h3:=2*s/c
Повторите
ввод
Выведите
Высоты треугольника:
h1,h2,h3
конец
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
A=3, b=4,c=5 |
H1=4,h2=3,h3=2.4 |
Левая ветвь структуры в-ния |
2 |
A=-1,b=2,c=1 |
'a,b,c – не стороны треугольника, повторите ввод' |
Правая ветвь структуры в-ния |
3.Проанализировать введённое целое число и вывести сообщение о его чётности.
program ex3;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var a:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('a= ');readln(a);
if (a mod 2=0) then writeln('четное')
else writeln('не четное');
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
A=3 |
‘Не четное’ |
Левая ветвь структуры в-ния |
2 |
A=8 |
‘четное’ |
Правая ветвь структуры в-ния |
начало
и
Введите a
A mod2=0
л
Вывести a: четное
Вывести a: нечетное
конец
4. Проанализировать введённую пару целых чисел a, n и вывести сообщение о кратности числа a числу n.
program ex4;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var a,n:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('a: ');readln(a);
write('n: ');readln(n);
if a mod n=0 then
writeln('a кратно n ') else writeln ('a не кратно n');
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
A=9, n=3 |
‘A кратно n’ |
Правая ветвь структуры в-ния |
2 |
A=7, n=11 |
‘A не кратно n’ |
Левая ветвь структуры в-ния |
начало
Введите a,n
a mod n=0
л
и
Вывести ‘a не кратно n’
Вывести ‘a кратно n’
конец
5. Вычислить корни квадратного уравнения
если
то корни действительные; следовательно, необходимо вычислять
если d<0, то корни мнимые
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var a,b,c,e,f,x1,x2,d:real;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('a= ');readln(a);
write ('b= ');readln(b);
write ('c= ');readln(c);
d:=sqr(b)-4*a*c; e:=-b/(2*a);
if(d>=0) then begin f:=sqrt(d)/(2*a);
x1:=e+f;x2:=e-f;
writeln(‘действительные корни:x1= ',x1:4:2,
' x2= ',x2:4:2);end
else begin f:=sqrt(abs(d))/(2*a);
writeln(‘мнимые корни:x1= ',e:2:1,'+i* ',f:2:1,'
x2= ',e:2:1,'-i* ',f:2:1); end;
readln;
начало
end.
Ввести a,b,c
Вывести мнимые корни: х1,х2
f:=sqrt(abs(d))/*a);x1:=e+i*f;
x2:=e-i*f
d:=sqr(b)-4*a*c
e:=-b/(2*a)
d>=0
л
и
f:=sqrt(d)/(2*a)
x1:=e+f;x2:=e-f
Вывести действительные корни: х1,х2
конец
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
a=1, b=4,c=1 |
‘действительные корни X1=-0.27, x2=-3.73’ |
Правая ветвь структуры в-ния |
2 |
A=1,b=1,c=1 |
‘мнимые корни X1=-0.5+i*0.9, x2=-0.5-i*0.9’ |
Левая ветвь структуры в-ния |
6. Вычислить значение функции
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var a,b,x,z,m:real;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('x= ');readln(x);
write('a= ');readln(a);
write('b= ');readln(b);
if a>=b then begin m:=a;a:=b;b:=m;end;
if x<=a then z:=sin(x);
if (x>a) and (x<b) then z:=cos(x);
if x>=b then z:=sin(x)/cos(x);
writeln('z= ',z:4:2);readln;
end.
7.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
math;
var x,y:real;
begin
write('x= ');readln(x);
if x>=1 then y:=sqrt(x)/2;
if (x>0) and (x<1) then y:=power(x,1/3)/3;
if x<=0 then y:=power(abs(x),1/4)/4;
writeln('y= ',y:6:2);;readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
X=0.5 |
0.26 |
Левая,правая,левая |
2 |
Х=2 |
0.71 |
Правая,левая,левая |
3 |
Х=-1 |
0.25 |
Левая,левая,правая |
Начало
x>=1
y:=sqrt(x)/2
y:=power(x,1/3)/3
x<=0
y:=power(abs(x),1/4)/4
Введите x
(x>0) and (x<1)
Выведите y
Конец
-
Вычислить значение у
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var x,y:real;
begin
write ('x= ');readln(x);
if (x>=1) and (x<2) then y:=sin(x);
if (x>=2) and (x<3)then y:=exp(-x);
if (x>=3) and (x<4) then y:=ln(x);
if (x>=4) and (x<5) then y:=sin(x)/cos(x);
if (х<1) or (x>=5) then writeln(‘введите другой х’);
writeln('y= ',y:6:3);readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
Х=1 |
0.84 |
Правая,левая,левая,левая,левая |
2 |
Х=2 |
0.14 |
Левая,правая,левая,левая,левая |
3 |
Х=3 |
1.10 |
левая,левая,правая,левая,левая |
4 |
Х=4 |
1,15 |
,левая,левая,левая, правая левая |
5 |
Х=5 |
‘введите другой х’ |
левая,левая,левая,левая, правая |
начало
Введите x
(x>=1) and (x<2)
y:=sin(x)
(x>=2) and (x<3)
y:=exp(-x)
(x>=3) and (x<4)
y:=ln(x)
(x>=4) and (x<5)
y:=sin(x)/cos(x)
(х<1) or (x>=5)
введите другой х
Выведите y
конец
-
Определить, попадает ли точка с координатами x0,y0 в круг радиусом r. Уравнение окружности r2= x2+y2.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var x,y,r:real;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('x= ');readln(x);
write ('y= ');readln(y);
write('r= ');readln(r);
if (sqr(x)+sqr(y))<=sqr(r)
then writeln('точка попадает в область круга’)
else writeln(‘точка не попадает в область круга’);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
Х=5,y=1,r=2 |
‘точка не попадает в область круга’ |
правая |
2 |
Х=0,y=0,r=1 |
‘точка попадает в область круга’ |
левая |
начало
(sqr(x)+sqr(y))<=sqr(r)
Вывести точка не попадает в область круга
Вывести точка попадает в область круга
конец
Л И
10. Определите и сообщите, к какому множеству символов принадлежит введённая литера:
-
прописная латинская
Начало
-
строчная латинская
-
арабская цифра
-
прописная кириллица
Введите x,y,r
-
строчная кириллица
-
другой символ
program Project1;
символ
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
арабская цифра
‘0’..’9’
var x:char;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('x= ');readln(x);
прописная латинская
case x of
'0'..'9': writeln('арабская цифра'); ‘A’..’Z
'A'..'Z': writeln('прописная латинская’);
'a'..'z': writeln('строчная латинская');
'à'..'я': writeln('строчная кириллица');
строчная латинская
'À'..'Я’: writeln ('прописная кириллица');
else writeln('другой символ'); end; ‘a’..’z’
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
примечание |
1 |
2 |
‘арабская цифра’ |
1-ая ветвь case строчная кириллица
|
2 |
L |
‘прописная латинская’ |
2-ая ветвь case |
3 |
l |
‘строчная латинская’ |
3-ая ветвь case |
4 |
ф |
‘строчная кириллица’ |
4-ая ветвь case |
5 |
Ф |
‘прописная кириллица’ |
5-ая ветвь case |
6 |
: |
‘другой символ’ |
6-ая ветвь case |
‘а’..’я’
прописная кириллица
‘А’..’Я’
другой символ
конец
11. Выполните задание предыдущего пункта (8), используя оператор Case
program Project2;
начало
{$APPTYPE CONSOLE}
uses
Введите x
SysUtils;
var x,y:real;m:integer;
m:=trunc(x)
begin
write('x= ');readln(x);
m:=trunc(x);
m
case m of
1:y:=sin(x);
y:=sin(x)
2: y:=exp(-x); 1
3: y:=ln(x);
4: y:=sin(x)/cos(x);
else writeln(‘введеный х не входит ни в один промежуток’
y:=exp(-x)
'); 2
end;
writeln('y= ',y:3:2);
readln; 3
y:=ln(x)
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Примечание |
1 |
1.9 |
0.94 |
1-ая ветвь case,левая ветвь,левая ветвь,левая ветвь |
2 |
2.5 |
0.08 |
2-ая ветвь case,левая ветвь,левая ветвь,левая ветвь |
3 |
3.5 |
1.25 |
3-я ветвь case,левая ветвь,левая ветвь,левая ветвь |
4 |
4.5 |
0.07 |
4-я ветвь case,левая ветвь,левая ветвь,левая ветвь |
5 |
0 |
‘введеный х не входит ни в один промежуток’ |
5-я ветвь, левая ветвь,левая ветвь,левая ветвь |
y:=sin(x)/cos(x);
4
введеный х не входит ни в один промежуток
Вывести y
Конец
12. Преобразуйте целое число из интервала [0..15] в соответствующий ему 16-ричный символ.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var m:char;x:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write(‘введите целое число: '); readln(x);
m:='p';
if x=10 then m:='A';
if x=11 then m:='B';
if x=12 then m:='C';
if x=13 then m:='D';
if x=14 then m:='E';
if x=15 then m:='F';
if x=16 then m:='G';
if x=0 then m:='0';
if (x=1) then m:='1';
if (x=2) then m:='2';
if(x=3) then m:='3';
if (x=4) then m:='4';
if (x=5) then m:='5';
if (x=6) then m:='6';
if (x=7) then m:='7';
if (x=8) then m:='8';
if(x=9) then m:='9';
if m='p' then writeln('введите повторно’) else
writeln('символ который соответствует числу х: ',m);readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Примечание |
1 |
10 |
‘A’ |
|
2 |
11 |
‘B’ |
|
3 |
12 |
‘C’ |
|
4 |
13 |
‘D’ |
|
5 |
14 |
‘E’ |
|
6 |
15 |
‘F’ |
|
7 |
16 |
‘G’ |
|
8 |
0 |
‘0’ |
|
9 |
1 |
‘1’ |
|
10 |
2 |
‘2’ |
|
11 |
3 |
‘3’ |
|
12 |
4 |
‘4’ |
|
13 |
5 |
‘5’ |
|
14 |
6 |
‘6’ |
|
15 |
7 |
‘7’ |
|
16 |
8 |
‘8’ |
|
17 |
9 |
‘9’ |
|
18 |
90 |
‘ВВЕДИТЕ ПОВТОРНО’ |
|