Квадратное уравнение имеет вид: ах^2 + bx + c = 0. (1)здесь а, b и с – коэффициенты. сначала надо вычислить дискриминант квадратного уравненияd = (b^2 – 4ac) (2)если d > 0, то квадратное уравнение имеет два корня х1 и х2. обозначим с = корень(d). то есть надо вычислить квадратный корень из d. имеем такие решениях1 = (–b + c)/(2a) и x2 = (–b – c)/(2a). (3)если дискриминант d = 0, то c = 0 и оба корня одинаковы х1 = х2 (хотя в школе обычно говорят, что имеется только одно решение) и вычисляются по формулех1 = х2 = –b/(2a). (4). эта формула следует из формулы (3) при с = d = 0.если дискриминант d меньше нуля, то корень из d вычислить нельзя, с будет мнимым числом. вообще говоря, корни есть (2 штуки), но они будут мнимыми числами. хотя в школе учат, что в этом случае корней нет. так и будем считать, что корней нет.алгоритм решения будет следующий но только здесь дискриминант d обозначен малой буквой d
Program rabota_s_massivom; uses crt; label metka; const N=30; var M: array[1..N] of integer; i,k,s,kmax,reserve:integer; begin for i:=1 to N do begin write('Введите ',i,'-й элемент: '); readln(M[i]); end; writeln('Массив:'); for i:=1 to N do begin write(M[i],' '); end; k:=1; {Число элементов в текущей последовательности. Изначально считаем, что последовательность состоит из одного (первого) элемента} {Ищем первый нечётный элемент:} repeat reserve:=reserve+1; until (m[reserve] mod 2 = 1) or (reserve = 30); writeln(reserve); if (m[reserve] mod 2 = 0) and (reserve = 30) then begin writeln('Все числа чётные. Искомая последовательность не существует'); goto metka; end; s:=M[reserve]; {Сумма элементов текущей последовательности пока что равна первому нечётному элементу} kmax:=0; {Наибольшая длина последовательности} for i:=reserve+1 to n do {Перебираем все элементы, начиная с первого нечётного} begin if (m[i] mod 2 = 1) then {Если текущее число всё ещё нечетно} begin s:=s+m[i]; {Увеличиваем сумму последовательности} k:=k+1 {Увеличиваем счётчик длины последовательности} end else {Если встретилось четное число} begin if k>kmax then {Проверяем, не является ли полученная последовательность длиннее нашего максимума} begin {Если да:} kmax:=k; {Запоминаем новую длину последовательности} reserve:=s {Запоминаем сумму её элементов} end; k:=0; {Устанавливаем длину новой последовательности равной 0} s:=0 {Сумма элементов этой последовательности тоже пока что = 0} end; end; if k>kmax then {Если самая длинная последовательность находится в конце массива, проверим ещё раз текущий максимум} begin kmax:=k; reserve:=s end; writeln('самая длинная последовательность нечётных чисел состоит из ',kmax,' элементов'); writeln('и сумма этой последовательности равна ',reserve); metka: end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку