100 ! паскаль! даны точки a и b .a(x1; y1) b(x2; y2).определить: к какой четверти на координатной плоскости относятся точки a и b.2)найти расстояние от точки a до начала координат.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 type Point=record x,y:real end;
function ReadPoint(c:char):Point; begin Write('Координаты точки ',c,': '); Read(Result.x,Result.y); end;
procedure Quarter(a:Point); begin Write('Точка (',a.x,',',a.y,') '); if a.x<0 then begin if a.y>0 then Writeln('принадлежит II четверти') else if a.y=0 then Writeln('лежит на оси абсцисс') else Writeln('принадлежит III четверти') end else if a.x=0 then begin if a.y=0 then Writeln('лежит на пересечении координатных осей') else Writeln('лежит на оси ординат') end else if a.y<0 then Writeln('принадлежит IV четверти') else begin if a.y=0 then Writeln('лежит на оси абсцисс') else Writeln('принадлежит I четверти') end end;
begin var a,b:Point; a:=ReadPoint('A'); b:=ReadPoint('B'); Quarter(a); Quarter(b); Write('Расстояние от точки А до начала координат: '); Writeln(sqrt(sqr(a.x)+sqr(b.x))) end.
Тестовое решение: Координаты точки A: -3.7 1.73 Координаты точки B: 6 8 Точка (-3.7,1.73) принадлежит II четверти Точка (6,8) принадлежит I четверти Расстояние от точки А до начала координат: 7.04911341943084
//Как давно я не писал program //Pascal ABC.NET v3.1 сборка 1219
program boshe10iz10; Var xa,ya,xb,yb:real;
function qua(x,y:real):byte; begin if (x>0) and (y>0) then qua:=1; if (x<0) and (y>0) then qua:=2; if (x<0) and (y<0) then qua:=3; if (x>0) and (y<0) then qua:=4; end;
function dist(x,y:real):real; begin dist:=sqrt(sqr(x)+sqr(y)); end;
begin read(xa,ya,xb,yb); writeln('Point A in ',qua(xa,ya),' quarter'); writeln('Point B in ',qua(xb,yb),' quarter'); writeln('The distance from the origin to the point A=',dist(xa,ya)); end.
Пример ввода: 2.75 -7.25 3 4 Пример вывода: Point A in 4 quarter Point B in 1 quarter The distance from the origin to the point A=7.75403120963541
Будет работать только в Pascal.ABC. Желательно вводите величины от 30-50, так как всё измеряется в пикселях.
Program Zagacha; Uses GraphABC; Var r, a, b: Integer; Begin WriteLn('Введите значение r'); ReadLn(r); WriteLn('Введите значение a'); ReadLn(a); WriteLn('Введите значение b'); ReadLn(b); If ((r + a + b) < 30) Or ((r + a + b) > 200) Then Begin r := 50; a := 100; b := 100; End; DrawCircle(Round(Window.Width / 2), Round(Window.Height / 2), r); DrawRectangle(Round((Window.Width - a) / 2), Round((Window.Height - b) / 2), Round((Window.Width + a) / 2) + 1, Round((Window.Height + b) / 2) + 1); If (a = b) And (a * b = 4 * r * r) Then TextOut(Round(Window.Width / 2 - 50), 10, 'Окружность вписана') Else If (a = b) And (a * b = 2 * r * r) Then TextOut(Round(Window.Width / 2 - 50), 10, 'Окружность описана') Else TextOut(Round(Window.Width / 2 - 50), 10, 'Окружность посторонняя') End.
Целая часть от деления: 37 div 2 = 18 18 div 2 = 9 9 div 2 = 4 4 div 2 = 2 2 div 2 = 1 1 div 2 = 0
Остаток от деления: 37 mod 2 = 1 18 mod 2 = 0 9 mod 2 = 1 4 mod 2 = 0 2 mod 2 = 0 1 mod 2 = 0
1) Остаток от деления 37 на записываем в обратном порядке. Получаем число в 2-ой системе счисления: 100101 37 = 100101(2)
2) Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения. 0.375*2 = 0.75 (целая часть 0) 0.75*2 = 1.5 (целая часть 1) 0.5*2 = 1 (целая часть 1) 0*2 = 0 (целая часть 0) Получаем число в 2-ой системе счисления: 0110 0.375 = 0110(2)
type
Point=record
x,y:real
end;
function ReadPoint(c:char):Point;
begin
Write('Координаты точки ',c,': ');
Read(Result.x,Result.y);
end;
procedure Quarter(a:Point);
begin
Write('Точка (',a.x,',',a.y,') ');
if a.x<0 then begin
if a.y>0 then Writeln('принадлежит II четверти')
else
if a.y=0 then Writeln('лежит на оси абсцисс')
else Writeln('принадлежит III четверти')
end
else
if a.x=0 then begin
if a.y=0 then Writeln('лежит на пересечении координатных осей')
else Writeln('лежит на оси ординат')
end
else
if a.y<0 then Writeln('принадлежит IV четверти')
else begin
if a.y=0 then Writeln('лежит на оси абсцисс')
else Writeln('принадлежит I четверти')
end
end;
begin
var a,b:Point;
a:=ReadPoint('A'); b:=ReadPoint('B');
Quarter(a); Quarter(b);
Write('Расстояние от точки А до начала координат: ');
Writeln(sqrt(sqr(a.x)+sqr(b.x)))
end.
Тестовое решение:
Координаты точки A: -3.7 1.73
Координаты точки B: 6 8
Точка (-3.7,1.73) принадлежит II четверти
Точка (6,8) принадлежит I четверти
Расстояние от точки А до начала координат: 7.04911341943084