Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Зайцев М. Г. / Отчет по лаб 2 Зайцев 2 семестр

.docx
Скачиваний:
14
Добавлен:
02.01.2020
Размер:
72.27 Кб
Скачать

Отчет по лаб.работе№2

  1. Вычислить площадь треугольника со сторонами 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

конец

  1. Вычислить высоты треугольника по длинам трёх его сторон 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

Конец

  1. Вычислить значение у

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

конец

  1. Определить, попадает ли точка с координатами 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

‘ВВЕДИТЕ ПОВТОРНО’