Использование вспомогательных программ - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Найти все корни уравнения qx2 + cx + s = 0, где q, c, s - длины векторов соответственно а= (а1, а2, а3, а4), в= (в1, в2, в3), Н= (Н1, Н2, Н3, Н4, Н5). Вычисления длины вектора оформить в виде вспомогательной программы.

Решение задачи: «Использование вспомогательных программ»

textual
Листинг программы
type vec=array[1..5] of real;
procedure vector(var v:vec;n,a:byte;c:char);
var i:byte;
begin
writeln('Вектор ',c);
for i:=1 to n do
 begin
  v[i]:=a*random;
  write(v[i]:6:2);
 end;
writeln;
end;
function dlina(v:vec;n:byte):real;
var i:byte;
    s:real;
begin
s:=0;
for i:=1 to n do
s:=s+sqr(v[i]);
dlina:=sqrt(s);
end;
var a,b,h:vec;
    q,c,s,d:real;
begin
vector(a,4,3,'A');
vector(b,3,10,'B');
vector(h,5,3,'H');
q:=dlina(a,4);
c:=dlina(b,3);
s:=dlina(h,5);
writeln('Коэффициенты уравнения q=',q:0:2,' c=',c:0:2,' s=',s:0:2);
d:=c*c-4*q*s;
if d<0 then write('Уравнение не имеет действительных корней')
else if d=0 then write('Уравнение имеет 2 одинаковых корня=x',(-c+sqrt(d))/(2*q):0:2)
else write('Уравнение имеет 2 разных корня x1=',(-c-sqrt(d))/(2*q):0:2,
                                         '  x2=',(-c+sqrt(d))/(2*q):0:2);
end.

Объяснение кода листинга программы

  1. Объявление типа данных вектор - массив из 5 элементов типа real с индексами от 1 до 5.
  2. Объявление процедуры вектор, которая принимает ссылку на вектор, его размер и значение заполнения, а также символ, обозначающий вектор, и выводит информацию о векторе.
  3. Объявление функции длина, которая принимает вектор и его размер, вычисляет сумму квадратов элементов вектора, извлекает квадратный корень из этой суммы и возвращает результат.
  4. Объявление переменных a, b, h типа вектор, а также переменных q, c, s, d типа real.
  5. Вызов процедуры вектор для вектора a размером 4 с заполнением значением 3, для вектора b размером 3 с заполнением значением 10 и для вектора h размером 5 с заполнением значением 3.
  6. Вычисление длины вектора a, b и h с помощью функции длина и сохранение результатов в переменные q, c и s соответственно.
  7. Вывод информации о векторах a, b и h и их длинах.
  8. Вычисление значения d как разности квадратов c и 4qs.
  9. Проверка значения d и вывод соответствующего сообщения о наличии или отсутствии действительных корней уравнения q=c*c/4*q*s.
  10. Если d отрицательно, то выводится сообщение о том, что уравнение не имеет действительных корней.
  11. Если d равно нулю, то выводится сообщение о том, что уравнение имеет два одинаковых корня.
  12. Если d положительно, то выводятся два разных корня уравнения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы