• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Нужна помощь в решении двух задач

Статус
В этой теме нельзя размещать новые ответы.

Andrei_F

Ученик
Регистрация
27 Июн 2011
Сообщения
2
Реакции
0
Баллы
0
Нужна помощь в решении двух задач

Добрый день. Необходима помощь в решении двух задач. С остальными справился, но с этими двумя большие затруднения.
1) Даны координаты x[ i ], y[ i ] (i = 1, . . ,n) точек (n<=100) A[ 1 ], . . ,A[ n ] на плоскости. Найти минимальную площадь кольца с центром в начале координат. Внутри и на границе находятся точки, расположенные на расстоянии от начала координат не более чем на r (r-задано).
2) Сформировать массив y=(y[ i , j ]) размера n*n (n<=20), элементы которого вычисляются по формуле y=((-1)^ i+j)*(z^i+j)/((i*j)!), где z-заданное число.
Или хотя бы разъяснение как их решить на языке Паскаль. Заранее благодарен.
 
Добрый день. Необходима помощь в решении двух задач. С остальными справился, но с этими двумя большие затруднения.
1) Даны координаты x[ i ], y[ i ] (i = 1, . . ,n) точек (n<=100) A[ 1 ], . . ,A[ n ] на плоскости. Найти минимальную площадь кольца с центром в начале координат. Внутри и на границе находятся точки, расположенные на расстоянии от начала координат не более чем на r (r-задано).
Писать программу не буду, задачка - элементарная, сами справитесь. Итак:
1. Все точки располагаются внутри круга заданного радиуса - переобозначим его для удобства Rmax. Эта величина дана.
2. Требуется найти расстояние до наиболее близкой к началу координат точки. Обозначим это расстояние Rmin. Делается это так:
а) Строим массив r = корень квадратный из (x^2 + y^2).
б) Стандартной процедурой находим минимальный элемент полученного массива. Он и будет искомым значением Rmin.
3. Находим площадь кольца: S=Pi*(Rmax^2 - Rmin^2).
Всё!

2) Сформировать массив y=(y[ i , j ]) размера n*n (n<=20), элементы которого вычисляются по формуле y=((-1)^ i+j)*(z^i+j)/((i*j)!), где z-заданное число.
Или хотя бы разъяснение как их решить на языке Паскаль. Заранее благодарен.
Тут я прежде всего хочу заметить, что если Вы не напутали и в знаменателе действительно находится (i*j)!, то Ваши преподы - люди не без юмора. По моим оценкам, при i=j=n=20 указанная величина (400!) выражается где-то 800-значным числом. Лихо... Но, впрочем, Паскаль способен такое перемолоть, только тут надо аккуратно с форматами. В остальном же задачка никаких сложностей не представляет:
Код:
VAR
 Y:Array[1..20,1..20] of Extended;
 Z:Real;
 N:Byte;
 i,j:Integer;

function Nfact(n:LongInt):Extended;
VAR
  i:LongInt;
  fact:Extended;
BEGIN
  IF n=0 THEN fact:=1 ELSE
    BEGIN
      fact:=1;
      FOR i:=1 TO n DO
        fact:=fact*i;
    END;
  Nfact:=fact;
END;

Function Sign(M:Byte):ShortInt;
begin
 If (M mod 2) = 0 then Sign:=1 else Sign:=-1;
end;

function X2np(X:Extended; n:WORD):Extended;
Var i:WORD;
    Y:Extended;
BEGIN
  IF n=0 THEN X2np:=1 ELSE
  IF n=1 THEN X2np:=X ELSE
  BEGIN
    Y:=X;
    FOR i:=2 TO n DO Y:=Y*X;
    X2np:=Y;
  END;
END;

BEGIN
 Write('N (<21) = ');
 Readln(N);
 Write('Z= ');
 Readln(Z);
 For i:=1 to N do
  For j:=1 to N do
   begin
    Y[i,j]:=(Sign(i)+j)*(X2np(Z,i)+j)/Nfact(i*j);
    Writeln('Y[',i:2,',',j:2,']= ',Y[i,j]);
   end;
 Readln
END.
 
Спасибо огромное вам за помощь.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху