Ошибок тут больше одной. во-первых, в операторе вывода стоит вызов функции ups, которой в качестве второго аргумента передается неизвестная переменная a. если имелся в виду символ "а", его надо было заключить в одинарные кавычки. во-вторых, в теле функции ups определяется значение n в цикле. даже, если искомый символ найден и n получит значение позиции этого символа в слове, то если слово просмотрено не полностью, следующий же проход по циклу снова сбросит n в ноль. следовательно, эта функция будет выдавать верный результат только если искомая буква - последняя в слове. var slovo: string; i: integer; function ups(var s: string; ch: char): integer; var i, n: integer; begin i: =1; n: =0; while (i< =length(s)) and (n=0) do begin if s[i] = ch then n : = i; i: =i+1 end; ups: =n end; begin writeln('vvedite slovo'); readln(slovo); writeln('n = ', ups(slovo, 'a')); end. замечание: в языке паскаль имеется функция pos, производящая поиск подстроки в
Reutskii884
05.06.2021
Procedure sqroot(a, b, c: real; var x1, x2: real; var nroots: integer); {корни квадратного уравнения с коэффициентами a,b,c. nroots - количество найденных действительных корней n=0: корни мнимые, х1 - вещественная часть, х2 - мнимая; n=1: корни действительные и равные, х1=х2; n=2: корни действительные и разные, х1, х2} var d: real; begin d : = sqr(b) - 4 * a * c; if d < 0 then begin nroots : = 0; x1 : = -b / (2 * a); x2 : = sqrt(-d) / (2 * a); end else if d = 0 then begin nroots : = 1; x1 : = -b / (2 * a); x2 : = x1 end else begin nroots : = 2; d : = sqrt(d); x1 : = (-b - d) / (2 * a); x2 : = (-b + d) / (2 * a) end end; {тестирование} var a2, a1, a0, x1, x2: real; n: integer; begin repeat write('введите коэффициенты уравнения: '); readln(a2, a1, a0); if abs(a2) + abs(a1) > 0 then begin sqroot(a2, a1, a0, x1, x2, n); case n of 0: writeln('корни мнимые: ', x1: 0: 6, '-i*', x2: 0: 6, ', ',x1: 0: 6, '+i*', x2: 0: 6); 1: writeln('корни действительные и равные: ', x1: 0: 6); 2: writeln('корни действительные и разные: ', x1: 0: 6, ', ', x2: 0: 6) end end until abs(a2) + abs(a1) = 0 end. тестовое решение: введите коэффициенты уравнения: 3 -2.5 1 корни мнимые: 0.416667-i*0.399653, 0.416667+i*0.399653 введите коэффициенты уравнения: -3 5 2 корни действительные и разные: 2.000000, -0.333333 введите коэффициенты уравнения: 4 -6 2.25 корни действительные и равные: 0.750000 введите коэффициенты уравнения: 0 0 0
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Госпади это решить какие законы нужно тут применить и как это решать вообще