Функция для определения позиции буквы в слове ,не могу найти ошибку.var slovo :string;     i :integer;function ups(var s :string; ch :char):integer;var i,n :integer;  begin  for i:=1 to length(s) do   if s[i]=ch then n:=i  else...

Функция для определения позиции буквы в слове ,не могу найти ошибку. var slovo :string;      i :integer; function ups(var s :string; ch :char):integer; var i,n :integer;   begin   for i:=1 to length(s) do   if s[i]=ch then n:=i   else n:=0;   ups:=n;   end; begin    writeln('vvedite slovo'); readln(slovo); writeln('N = ',ups(slovo,a)); end.
Гость
Ответ(ы) на вопрос:
Гость
Ошибок тут больше одной. Во-первых, в операторе вывода стоит вызов функции 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, производящая поиск подстроки в строке...
Не нашли ответ?
Ответить на вопрос
Похожие вопросы