Как найти радиус окружности паскаль

Клёвый код

Скриптописание и кодинг

Решаем задачи Абрамян на C. Matrix78

Matrix78. Дана матрица размера $$M times N$$. Упорядочить ее строки так, чтобы их минимальные элементы образовывали убывающую последовательность.

Решаем задачи Абрамян на C. Matrix77

Matrix77. Дана матрица размера $$M times N$$. Упорядочить ее столбцы так, чтобы их последние элементы образовывали убывающую последовательность.

Решаем задачи Абрамян на C. Matrix76

Matrix76. Дана матрица размера $$M times N$$. Упорядочить ее строки так, чтобы их первые элементы образовывали возрастающую последовательность.

Решаем задачи Абрамян на C. Matrix75

Matrix75. Дана матрица размера $$M times N$$. Элемент матрицы называется ее локальным максимумом, если он больше всех окружающих его элементов. Поменять знак всех локальных максимумов данной матрицы на противоположный. При решении допускается использовать вспомогательную матрицу.

Решаем задачи Абрамян на C. Matrix74

Matrix74. Дана матрица размера $$M times N$$. Элемент матрицы называется ее локальным минимумом, если он меньше всех окружающих его элементов. Заменить все локальные минимумы данной матрицы на нули. При решении допускается использовать вспомогательную матрицу.

Решаем задачи Абрамян на C. Matrix73

Matrix73. Дана матрица размера $$M times N$$. После последнего столбца, содержащего только отрицательные элементы, вставить столбец из нулей. Если требуемых столбцов нет, то вывести матрицу без изменений.

Решаем задачи Абрамян на C. Matrix72

Matrix72. Дана матрица размера $$M times N$$. Перед первым столбцом, содержащим только положительные элементы, вставить столбец из единиц. Если требуемых столбцов нет, то вывести матрицу без изменений.

Решаем задачи Абрамян на C. Matrix71

Matrix71. Дана матрица размера $$M times N$$. Продублировать столбец матрицы, содержащий ее минимальный элемент.

Решаем задачи Абрамян на C. Matrix70

Matrix70. Дана матрица размера $$M times N$$. Продублировать строку матрицы, содержащую ее максимальный элемент.

Решаем задачи Абрамян на C. Matrix69

Matrix69. Дана матрица размера $$M times N$$ и целое число $$K$$ $$(1 le K le $$N$$)$$. После столбца матрицы с номером $$K$$ вставить столбец из единиц.

Графика в Паскаль

Графика в Паскаль

С помощью графики в Паскаль можно рисовать фигуры и изображения, визуализировать математические вычисления и использовать элементы графики в компьютерных играх. Мы познакомимся как задавать графический режим в паскаль, рисовать точки, окружности, линии, выводить текст в графическом режиме паскаль.
Для того, чтобы рисовать графические фигуры в Паскаль нужно импортировать модуль GraphABC. В Паскаль это можно сделать с помощью команды uses GraphABC .
Чтобы начать работу с графикой в Pascal нужно задать окно для графики. В модуле GraphABC это можно сделать с помощью команды setWindowSize(x, y) , где x это ширина окна, а y высота.
С помощью модуля GraphABC на Паскале можно отобразить точку, линию, прямоугольник, прямоугольник с закруглёнными краями, окружность, дуга, сектор круга, можно вывести текст на экран.
Чтобы задать расположение объекта в графическом окне Паскаль, нужно указать его координаты в системе координат. Начало координат находится в левом верхнем углу окна для графики.Положительное направление оси X слева направо, оси Y сверху вниз. Чем больше X, тем правее точка, чем больше Y, тем точка ниже.
В Pascal в модуле GraphABC был создан новый тип данных для цвета. Цвет задаётся с помощью строки clЦвет . Чтобы установить цвет рисования графических фигур в паскаль, необходимо использовать команду

Основные цвета в графических программах на паскале

clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный

Рисование точки в Паскаль

putPixel(x, y, color) , где x и y это координаты точки, color это цвет точки.

Пример программы в паскаль рисование красной точки
uses GraphABC;
begin
setWindowSize(500, 500);
putPixel(30, 30, clRed);
end.

Рисование линии в Паскаль

line(x1, y1, x2, y2) x1, y1 это координаты начала линии, x2, y2 координаты конца линии.

Пример программы в Паскаль рисование линии
uses GraphABC;
begin
setWindowSize(500, 500);
line(30, 30, 40, 40, clBlue);
end.

Рисование прямоугольника в Паскаль

rectangle(x1, y1, x2, y2) x1, y1 это координаты первой точки, x2, y2 координаты второй точки.

Пример программы на паскаль рисование прямоугольника
uses GraphABC;
begin
setWindowSize(500, 500);
rectangle(200, 200, 320, 350);
end.
Для задания в Паскаль прямоугольника с закруглёнными краями используется команда roundRect(x1, y1, x2, y2, w, h) , x1, y1 это координаты первой точки, x2, y2 координаты второй точки, w и h это ширина и высота закругления краёв.
uses GraphABC;
begin
setWindowSize(500, 500);
roundRect(350, 300, 450, 340, 40, 40);
end.

Рисование окружности в Паскаль

drawcircle(x, y, r) где x и y это координаты центра окружности, r это радиус окружности.

пример программы на Паскаль рисование окружности
uses GraphABC;
begin
setWindowSize(500, 500);
drawcircle(47, 47, 10);
end.

Для того,чтобы нарисовать закрашенный круг используется набор команда
SetBrushColor(цвет заполнения круга);
SetPenColor(цвет границы);
cirlce(x, y, r) где x и y это координаты центра круга, r это радиус круга

Пример программы на паскаль для рисования закрашенного круга

uses GraphABC;
begin
setWindowSize(500, 500);
SetBrushColor(clGreen);
SetPenColor(clRed);
circle (100,100,50);
end.

Для рисования эллипса в Паскаль используется команда ellipse(x1, y1, x2, y2), где x и y координаты прямоугольника, ограничивающего эллипс.
uses GraphABC;
begin
setWindowSize(500, 500);
ellipse(100, 100, 150, 200);
end.
Задание дуги и сектора окружности в паскаль схожи. При их задании задаются координаты центра круга, по которому они будут отображаться, радиус этого круга и градусная мера дуги. При задании дуги на экран выводится только сама дуга. В отличии от дуги, при задании сектора отображается не только дуга, но и два отрезка, исходящие из центра окружности, они опираются на дугу.
Дуга рисуется в Паскаль с помощью команды arc(x, y, r, a1, a2) , Сектор в Паскаль рисуется с помощью команды pie(x, y, r, a1, a2) , где x и y это координаты центра окружности, r это радиус окружности, a1 это начальная градусная мера дуги, a2 это конечная градусная мера дуги. Дуги и секторы задаются против часовой стрелки.

Пример программы в паскаль рисование дуги и сектора
uses GraphABC;
begin
setWindowSize(500, 500);
arc(10, 200, 50, 0, 60);
pie(10, 300, 50, 0, 60);
end.

Для вывода текста на экран в графическом режиме Паскаль

используется команда textOut(x, y, s) , где x и y это координаты левой верхней части текста, s это выводящийся текст.

Пример программы на паскаль вывод текста в графическом режиме
uses GraphABC;
begin
setWindowSize(500, 500);
textOut(100, 200, ‘текст’);
end.
Для заливки отображённых объектов в Паскаль используется команда floodFill(x, y, color) , где x и y это координаты точки, находящейся в полости объекта.

Пример программы на паскаль рисование закрашенного прямоугольника

uses GraphABC;
begin
setWindowSize(500, 500);
rectangle(200, 200, 320, 350);
floodFill(250,250, clRed);
end.
В модуле GraphABC в Pascal можно изменять само перо. Для изменения цвета используется setPenColor(color) . Для изменения толщины используется setPenWidth(px) , ширина кисти измеряется в пикселях. Для изменения стиля пера используется команда setPenStyle(x) , в качестве аргумента туда вводится стиль пера, их существует три типа (clSolid, clClear, clDash).
При выведении текста можно изменять его цвет и стиль., для этого есть команда setFontColor(color) и setFontStyle(fsStyle) . Существуют стили fsNormal (обычный), fsBold (полужирный), fsItalic (курсив) и fsUnderline (подчёркивание), можно создавать и их комбинации, например, fsBoldItalicUnderline.

Полезно почитать по теме графика в паскаль

—>Графика в Паскале —>

. Для каждой процедуры и функции будет предложена теория и пример

в примерах перед каждой фигурой заданы цвет контура и цвет заливки:

Процедура Circle (x, y: integer; r: integer) вычерчивает окружность радиуса r с центром в точке с координатами (x, y). ОКРУЖНОСТЬ НЕ ЗАКРАШИВАЕТСЯ

circle(100,100,50);

Процедура Arc (x, y, ugol_ begin, ugol_ end, r: integer) вычерчивает дугу окружности радиуса r с центром в точке с координатами (x, y). Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца дуги. Отсчет углов ведется против часовой стрелки. Значения угловых координат задается в градусах. ДУГА НЕ ЗАКРАШИВАЕТСЯ

arc(100,100,45,135,50);

Процедура Ellipse (x, y: integer; ugol_ begin, ugol_ end, rx, ry: integer) вычерчивает эллипс или дугу эллипса с центром в точке с координатами (x, y). Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца дуги. Параметры rx и ry определяют горизонтальный и вертикальный радиусы эллипса. ЭЛЛИПС НЕ ЗАКРАШИВАЕТСЯ

ellipse(150,100,0,270,100,50);

Процедура FillEllipse (x, y, rx, ry: integer) вычерчивает изображение полного закрашенного эллипса с центром в точке с координатами (x, y). Параметры rx и ry определяют горизонтальный и вертикальный радиусы эллипса. Эллипс может быть закрашен в соответствии со стилем, заданным процедурой SetFillStyle (о ней чуть позже). Этот ЭЛЛИПС ЗАКРАШИВАЕТСЯ

FillEllipse(150,100,100,50);

Процедура PieSlice (x, y: integer; ugol_ begin, ugol_ end, r: integer) вычерчивает сектор окружности радиуса r с центром в точке с координатами ( x, y). Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца сектора. СЕКТОР ЗАКРАШИВАЕТСЯ

PieSlice(150,100,45,270,50);

Сектор может быть закрашен в соответствии со стилем, заданным процедурой SetFillStyle (о ней чуть позже).

Процедура Sector (x, y: integer; ugol_ begin, ugol_ end, rx, ry: integer) вычерчивает сектор эллипса с центром в точке с координатами (x, y) и горизонтальным радиусом rx, вертикальным — ry. Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца сектора. СЕКТОР ЗАКРАШИВАЕТСЯ

sector(150,100,0,270,100,50);

Сектор может быть закрашен в соответствии со стилем, заданным процедурой SetFillStyle (о ней чуть позже).

источники:

http://itrobo.ru/programmirovanie/paskal/grafika-v-paskal.html

http://zhekinpascal.ucoz.ru/index/okruzhnost_ehllips_duga_sektor/0-18

0 / 0 / 0

Регистрация: 27.12.2012

Сообщений: 19

1

Найти радиус окружности

09.06.2013, 18:14. Показов 5214. Ответов 3


Студворк — интернет-сервис помощи студентам

В треугольник заданный координатами своих вершин на плоскости: A(x1,y1), B(x2,y2), C(x3,y3) вписана окружность. Найти радиус окружность.



0



Puporev

Почетный модератор

64287 / 47586 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

09.06.2013, 19:58

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Найдешь длины сторон по формуле

Pascal
1
sa:=sqrt(sqr(x1-x2)+sqr(y1-y2));

найдешь полупериметр

Pascal
1
p:=(sa+sb+sc)/2;

найдешь r

Pascal
1
r:=sqrt((p-sa)*(p-sb)*(p-sc)/p);

http://www.fxyz.ru/%D1%84%D0%B… %B8%D0%BA/



0



0 / 0 / 0

Регистрация: 27.12.2012

Сообщений: 19

09.06.2013, 21:03

 [ТС]

3

привет, я нашел формулу, но мне нужна программа от var до end, я какбы не шарю программирование(



0



Почетный модератор

64287 / 47586 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

10.06.2013, 08:01

4

Цитата
Сообщение от Мати
Посмотреть сообщение

я какбы не шарю программирование(

Я это могу понять в сентябре, но в июне извини…



0



Begin14. Дана длина $$L$$ окружности. Найти ее радиус $$R$$ и площадь $$S$$ круга, ограниченного этой окружностью, учитывая, что $$L=2*pi*R$$, $$S=pi*R^2$$. В качестве значения $$pi$$ использовать 3.14.

Решение:

$R=frac{L}{pi*2}$.

Delphi/Pascal

1

2

3

4

5

6

7

8

9

10

11

program Begin14;

var

  L,R,S: Real;

begin

  Write(‘Введите длинну окружности: ‘);

  Readln(L);

  R:=L/(3.14*2);

  Writeln(‘Радиус круга равен: ‘,R);

  S:=3.14*sqr(R);

  Writeln(‘Площадь круга равна: ‘,S);

end.

Другие задачи из раздела Begin можно посмотреть здесь.

uses crt;
const nmax=50;
      e=0.01;
type
Point=record {точка}
      x,y:real;{координаты}
      end;
Okruz=record {окружность}
      o:Point;{координаты центра}
      r:real;{радиус}
    end;
MassP=array[1..nmax] of Point; {множество-массив точек}
procedure Tochki(var t:MassP;var n:integer);{создание множества точек}
var i:integer;
begin
repeat
write('Количество точек от 3 дo ',nmax,' n=');
readln(n);
until n in [3..nmax];
for i:=1 to n do
 begin
  t[i].x:=10*random;
  t[i].y:=10*random;
 end;
write('X:');
for i:=1 to n do
write(t[i].x:5:2);
writeln;
write('Y:');
for i:=1 to n do
write(t[i].y:5:2);
writeln;
end;
{вычисление параметров окружности, проходящей через три точки}
procedure Okr(t1,t2,t3:Point;var ok:Okruz);
var a,b,x,y:real;
    k0,k1,k2,m0,m1,m2:real;
begin
k0:=sqr(t1.x)-sqr(t2.x)+sqr(t1.y)-sqr(t2.y);
k1:=2*(t1.y-t2.y);
k2:=2*(t1.x-t2.x);
m0:=sqr(t1.x)-sqr(t3.x)+sqr(t1.y)-sqr(t3.y);
m1:=2*(t1.y-t3.y);
m2:=2*(t1.x-t3.x);
a:=k2*m0-k0*m2;
b:=k2*m1-k1*m2;
if b=0 then exit;
y:=a/b;
ok.o.y:=y;
if abs(m2) > e then x:=(m0-y*m1)/m2
else
  if abs(k2) > e then x:=(k0-y*k1)/k2
  else exit;
ok.o.x:=x;
ok.r:=sqrt(sqr(t1.x-x)+sqr(t1.y-y));
end;
{определение принадлежности точки окружности}
function Prin(a:Point;ok:Okruz):boolean;
begin
if (sqr(a.x-ok.o.x)+sqr(a.y-ok.o.y))-sqr(ok.r)<-e then Prin:=true
else Prin:=false
end;
 
var t:MassP;
    ok:Okruz;
    n,i,j,k,l,k1,k2,mn,vn,nr:integer;
    r,x,y:real;
begin
randomize;
Tochki(t,n);
mn:=n;
r:=0;
x:=0;
y:=0;
for i:=1 to n-2 do
for j:=i+1 to n-1 do
for k:=j+1 to n do
 begin
  Okr(t[i],t[j],t[k],ok);
  k1:=0;k2:=0;
  for l:=1 to n do
  if Prin(t[l],ok)then k1:=k1+1 {считаем внутри}
  else k2:=k2+1;{снаружи}
  if abs(k1-k2)<mn then{если разность меньше, запоминаем все параметры}
   begin
    mn:=abs(k1-k2);
    r:=ok.r;
    x:=ok.o.x;
    y:=ok.o.y;
    vn:=k1;
    nr:=k2-3;
   end;
 end;
writeln('Окружность: координаты центра x0=',x:0:2,' Y0=',y:0:2,' R=',r:0:2);
writeln('Внутри точек=',vn,' снаружи=',nr);
end.

begin11-20

Сегодня мы с вами продолжаем решать задачи Begin11-20. В этой статье не будет блок-схем вообще. «Почему?» — спросите вы. Потому что на данном этапе задачи настолько просты, и настолько дублируют друг друга, что смысла в подробном разборе просто нет.

Begin11. Даны два ненулевых числа. Найти сумму, разность, произведение и частное их модулей.

Для того, чтобы решить данную задачу вы должны вспомнитьвстроенную в Паскаль функцию. Эта функция — abs. Кроме того, хотелось бы рассказать еще об одной интересной фишке. Наверняка, во время тестирования какой-либо программы вы сталкивались с проблемой типа Real. Считая корни, синусы, косинусы и прочее получается примерно такое число — 0.784674838737. Как избежать этого?  Для этого после переменной прописываются определенные параметры. Например, write(a:5:2), где 5 — ширина поля вывода, а 2 количество знаков после запятой.

program Begin11;

var
a, b, summ, razn, proizv, chast: real;

begin
write('Введите два числа: ');
read(a, b);
a := abs(a); {используем функцию}
b := abs(b);
summ := a + b;
proizv := a * b;
chast := a / b;
razn := a - b;
writeln('Сумма модулей -- ', summ:5:2); 
writeln('Разность модулей -- ', razn:5:2);
writeln('Частное модулей -- ', chast:5:2);
writeln('Произведение модулей -- ', proizv:5:2);
end.

Begin12. Даны катеты прямоугольного треугольника a и b.

Найти его гипотенузу c и периметр P: c = √(a2 + b2), P = a + b + c.

Ничего сложного в этой задаче нет.

program Begin12;

var
  a, b, c, p: real;

begin
  write('Введите два катета прямоугольного треугольника: ');
  read(a, b);
  c := sqrt(sqr(a) + sqr(b));
  p := a + b + c;
  writeln('Периметр -- ', p:5:2);
  writeln('Гипотенуза -- ', c:5:2);
end.

Begin13. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2S1 = π·(R1)2, S2 = π·(R2)2, S3 = S1 – S2. В качестве значения π использовать 3.14.

Не забываем указывать pi, как константу.

Задачи

program Begin13;

const
  pi = 3.14;

var
  R1, R2, S1, S2, S3: real;

begin
  write('Введите два радиуса: ');
  read(R1, R2);
  S1 := pi * sqr(R1);
  S2 := pi * sqr(R2);
  S3 := S1 - S2;
  writeln('Площадь большего круга -- ', S1:5:2);
  writeln('Площадь меньшего круга -- ', S2:5:2);
  writeln('Площадь кольца -- ', S3:5:2);
end.

Begin14. Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью, учитывая, что L = 2·π·R, S = π·R2. В качестве значения π использовать 3.14.

program Begin14;

const
  pi = 3.14;

var
  L, S, R: real;

begin
  write('Введите длину окружности: ');
  read(L);
  R := L / (2 * pi);
  S := pi * sqr(R);
  writeln('Площадь круга -- ', S:5:2);
  writeln('Радиус круга -- ', R:5:2);
end.

Begin15. Дана площадь S круга. Найти его диаметр D и длину L окружности,ограничивающей этот круг, учитывая, что L = π·D, S = π·D2/4. В качестве значения π использовать 3.14.

program Begin15;

const
  pi = 3.14;

var
  L, S, D: real;

begin
  write('Введите площадь окружности: ');
  read(S);
  D := sqrt(4 * S / pi);
  L := D * pi;
  writeln('Длина круга -- ', L:5:2);
  writeln('Диаметр круга -- ', D:5:2);
end.

Begin16. Найти расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси: |x2 – x1|.

На самом деле непонятно, почему именно х21. Ведь число в модуле будет одинаковым. Что 8 — 9, что 9 -8 равняются единице.

program Begin16;

const
  pi = 3.14;

var
  X1, X2, Rast: real;

begin
  write('Введите координаты двух точек на оси x: ');
  read(X1, X2);
  Rast := abs(X2 - X1);
  writeln('Расстояние между двумя точками -- ', Rast:5:2);
end.

Begin17. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.

Иногда, если не понимаешь условие задачи, полезно составить рисунок к задаче.

Задачи

program Begin17;

var
  X1, X2, X3: real;

begin
  write('Введите координаты трех точек на оси x: ');
  read(X1, X2, X3);
  writeln('AC = ', abs(X3-X1));
  writeln('BC = ', abs(X3-X2));
  writeln('AC + BC = ', abs(X3-X1)+ abs(X3-X2));
end.

Begin18. Даны три точки A, B, C на числовой оси. Точка C расположена между точками A и B. Найти произведение длин отрезков AC и BC.

Посмотрев на рисунок, мы понимаем, что нахождение длины отрезков не меняется. Кстати, попробуйте составить эту программу, используя только три переменных!

program Begin18;

var
  X1, X2, X3: real;

begin
  write('Введите координаты трех точек A, B, C : ');
  read(X1, X2, X3);
  writeln('AC = ', abs(X3-X1));
  writeln('BC = ', abs(X3-X2));
  writeln('AC * BC = ', abs(X3-X1)* abs(X3-X2));
end.

Begin19.Даны координаты двух противоположных вершин прямоугольника: (x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат. Найти периметр и площадь данного прямоугольника.

Для того, чтобы наглядно увидеть что от нас требуется, составим такой прямоугольник на листе бумаге. И увидим, что на что надо умножать.

program Begin19;

var
  X1, X2, Y1, Y2, P, S, a, b: real;

begin
  write('Введите координаты двух точек х1 у1 х2 у2 : ');
  read(X1, Y1, X2, Y2);
  a := abs(X2 - X1);
  b := abs(Y2 - Y1);
  P := 2 * (a + b);
  S := a * b;
  writeln('Периметр прямоугольника -- ', P:5:2);
  writeln('Площадь прямоугольника -- ', S:5:2);
end.


Begin20. Найти расстояние между двумя точками с заданными координатами (x1, y1) и (x2, y2) на плоскости.

Расстояние вычисляется по формуле √(x2 — x1)2+(y2 — y1)2.

program Begin20;

var
a, x1, x2, y1, y2: real;

begin
write('Введите x1, y1: ');
readln(x1, y1);
write('Введите x2, y2: ');
readln(x2, y2);
a := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
writeln('Расстояние между точками -- ', a:5:2);
end.

На сегодня все. С Новым Годом!

Поиграем? Кто поймает кота? 🙂

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти значение выражений более рациональным способом
  • Как найти мастера по ремонту газовых плит
  • Как найти оригинальные кроссовки адидас
  • Как найти мужчину для переписки
  • Create2dtexture call of duty modern warfare remastered как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии