Программа


PROGRAM Circle;
CONST QuantityElement=10;   { Количество элементов вектора }
TYPE Coordinate=record X,Y:real end;  { Тип координаты }
     CircleType=record { Тип окружность }
                  Centre,PointOfCircle:Coordinate;
                  R:real  { Радиус окружности }
                end;
     CircleArrayType=array [1..QuantityElement] of CircleType; { Массив-тип }
VAR CircleArray:CircleArrayType; { Массив окружностей }
PROCEDURE InputVector (var CircleArray:CircleArrayType);
                                                   { Процедура ввода массива }
  Var i:word; { Счетчик }
  Begin
    for i:=1 to QuantityElement do { Цикл ввода элементов массива }
      begin
        WriteLn('Введите окружность #',i);
                                 { Вывод приглашения ввести элемент массива }
        with CircleArray[i] do
          begin
            Write('     X-координата центра: ');
            ReadLn(Centre.X);   { Ввод элемента массива }
            Write('     Y-координата центра: ');
            ReadLn(Centre.Y);   { Ввод элемента массива }
            Write('     X-координата точки окружности: ');
            ReadLn(PointOfCircle.X);   { Ввод элемента массива }
            Write('     Y-координата точки окружности: ');
            ReadLn(PointOfCircle.Y);   { Ввод элемента массива }
            R:=Sqrt(Sqr(Centre.X-PointOfCircle.X)+Sqr(Centre.Y-PointOfCircle.Y))
                                             { Вычисление радиуса окружности }
          end
      end
  End;
PROCEDURE OutputVector (CircleArray:CircleArrayType);
                                                  { Процедура вывода массива }
  Var i:word;   { Счетчик }
  Begin
    { Вывод шапки таблицы: }
    WriteLn('╔══════════╤═════════════════════════╤═════════════════════════╤════════════╗');
    WriteLn('║  Номер   │    Центр окружности     │    Точка окружности     │   Радиус   ║');
    WriteLn('║окружности├────────────┬────────────┼────────────┬────────────┤            ║');
    WriteLn('║          │      X     │      Y     │      X     │      Y     │            ║');
    WriteLn('╠══════════╪════════════╪════════════╪════════════╪════════════╪════════════╣');
    for i:=1 to QuantityElement do { Цикл вывода массива }
      with CircleArray[i] do
        WriteLn('║   ',i:2,'     │',Centre.X:12,'│',Centre.Y:12,'│',PointOfCircle.X:12,'│',PointOfCircle.Y:12,'│',R:12,'║');
                                                    { Вывод элемента массива }
    WriteLn('╚══════════╧════════════╧════════════╧════════════╧════════════╧════════════╝')
                                                          { Закрытие таблицы }
  End;
FUNCTION GetMinCircle(CircleArray:CircleArrayType):word;
                                      { Функция поиска наименьшей окружности }
  Var i:word;   { Счетчик }
      Number:word; { Номер наименьшей окружности }
  Begin
    Number:=1;
    for i:=2 to QuantityElement do { Цикл просмотра массива }
      if CircleArray[Number].R>CircleArray[i].R then Number:=i;
      { Если радиус просматриваемой окружности меньше минимального,
        то переопределение номера минимальной окружности }
    GetMinCircle:=Number  { Определение значения функции }
  End;
BEGIN
  WriteLn; { Пропуск строки }
  InputVector(CircleArray); { Ввод массива }
  WriteLn; { Пропуск строки }
  OutputVector(CircleArray); { Вывод массива }
  WriteLn; { Пропуск строки }
  WriteLn('Номер наименьшей окружности: ',GetMinCircle(CircleArray))
                           { Определение и вывод номера наимеьшей окружности }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию