Использование вспомогательных программ - 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.
Объяснение кода листинга программы
- Объявление типа данных
вектор
- массив из 5 элементов типа real с индексами от 1 до 5. - Объявление процедуры
вектор
, которая принимает ссылку на вектор, его размер и значение заполнения, а также символ, обозначающий вектор, и выводит информацию о векторе. - Объявление функции
длина
, которая принимает вектор и его размер, вычисляет сумму квадратов элементов вектора, извлекает квадратный корень из этой суммы и возвращает результат. - Объявление переменных
a
,b
,h
типавектор
, а также переменныхq
,c
,s
,d
типа real. - Вызов процедуры
вектор
для вектораa
размером 4 с заполнением значением 3, для вектораb
размером 3 с заполнением значением 10 и для вектораh
размером 5 с заполнением значением 3. - Вычисление длины вектора
a
,b
иh
с помощью функциидлина
и сохранение результатов в переменныеq
,c
иs
соответственно. - Вывод информации о векторах
a
,b
иh
и их длинах. - Вычисление значения
d
как разности квадратовc
и 4qs. - Проверка значения
d
и вывод соответствующего сообщения о наличии или отсутствии действительных корней уравненияq=c*c/4*q*s
. - Если
d
отрицательно, то выводится сообщение о том, что уравнение не имеет действительных корней. - Если
d
равно нулю, то выводится сообщение о том, что уравнение имеет два одинаковых корня. - Если
d
положительно, то выводятся два разных корня уравнения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д