ТЕМА: " ПРАКТИКУМ ПО РЕШЕНИЮ ЗАДАЧ ПРОЦЕДУРАМИ И ФУНКЦИЯМИ"

Ход урока.

I. Проверка домашнего задания.

Задача № 1. Даны координаты вершин треугольника и точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника.

Решение.

  1. Нахождение длин сторон (OB, OC,OA,BA,CA,BC).
  2. Нахождение площади трех треугольников S1(ABO), S2 (OBC), S3 (OCA).
  3. Нахождение высот треугольников.
  4. Сравнение высот (нахождение до ближайшей стороны).

    program tr;
    var x,y,x1,y1,x2,y2,x3,y3:integer;
    ob,oc,oa,bc,ca,ba,s1,s2,s3,h1,h2,h3,n1,n2: real;

    procedure dlin(r,t,c,d:real; var l1:real);
    begin
    l1:=sqrt(sqr(r-c)+sqr(t-d));
    end;

    procedure pl(f,g,j:real; var s:real);
    var p:real;
    begin
    p:=(f+g+j)/2;
    s:=sqrt(p*(p-f)*(p-g)*(p-j));
    end;

    procedure wis(a,s:real; var h:real);
    begin
    h:=2*s/a;
    end;

    procedure min(e,p:real; var n:real);
    begin
    if e<p then n:=e else n:=p;
    end;

    begin
    read (x,y,x1,y1,x2,y2,x3,y3);
    dlin(x,y,x1,y1,ob);
    dlin(x,y,x2,y2,oc);
    dlin(x,y,x3,y3,oa);
    dlin(x1,y1,x3,y3,ba);
    dlin(x2,y2,x3,y3,ca);
    dlin(x1,y1,x2,y2,bc);
    pl(ba,ob,oa,s1);
    pl(ob,bc,oc,s2);
    pl(oc,ca,oa,s3);
    wis(ba,s1,h1);
    wis(bc,s2,h2);
    wis(ca,s3,h3);
    min(h1,h2,n1);
    min(n1,h3,n2);
    writeln('расстояние до ближайшей стороны =',n2:5:2);
    end.

Задача № 2. Вычислить: z=f(sin a, b) + f(cos a, b) + f (sin2 a, b-1) + f(sin a - cos a, b2 - 1) + f(sin2 a-1, cos a+b), где


program pr2;
var a,b,z:real;

function fun(u,t:real):real;
begin
if u>0 then fun:=u+sin(t) else fun:=u+t;
end;

begin
read (a,b);
z:=fun(sin(a),b)+fun(cos(a),b)+fun(sqr(sin(a)),b-1)+fun(sin(a)-cos(a),b*b-1)+fun(sqr(sin(a))-1,cos(a)+b);
writeln (z:8:2);
end.

II. Практическая работа на ЭВМ.

  1. Исполнить программу задачи № 1 для:
    №№
    X
    Y
    X1
    Y1
    X2
    Y2
    X3
    Y3
    Ответ
    1
    21
    7
    10
    11
    20
    3
    30
    16
    1.65
    2
    187
    93
    162
    102
    213
    76
    296
    157
    3.34
    3
    200
    100
    10
    170
    160
    10
    300
    190
    23.68
  2. Исполнить программу задачи № 2 для:
    №№
    A
    B
    Ответ
    1
    2.3
    21.3
    45.46
    2
    -0,6
    31.2
    1033.02
    3
    0.15
    -2.1
    -0.13
  3. Вызвать с диска программу NOK.PAS.

    program pr7; {поиск наименьшего общего кратного двух чисел x и y}
    label 1;
    var x,y,m,n,nok:integer;

    begin
    read (x,y);
    if x>y then begin m:=x; n:=y; end else begin m:=y; n:=x; end;
    nok:=m;
    1: if nok/n<>int(nok/n) then begin nok:=nok+m; goto 1; end;
    writeln('nok=',nok);
    end.

    Эта программа находить наименьшее обшее кратное двух чисел.

    Внесите изменения в программу таким образом:
    чтобы определить наименьшее общее кратное трех чисел, сохранить работу на своем диске под именем NOK3.PAS;
    чтобы определить наибольший общий делитель трех чисел, сохранить работу на своем диске под именем NOD3.PAS;
    Примечание. НОД определяется по формуле:
Hosted by uCoz

к оглавлению     на домашнюю