В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
Dogi2008
Dogi2008
18.01.2022 07:21 •  Информатика

Функция для определения позиции буквы в слове ,не могу найти ошибку. 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.

Ответ:
azzzzzi208
azzzzzi208
01.10.2020 23:06
Ошибок тут больше одной.
Во-первых, в операторе вывода стоит вызов функции 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, производящая поиск подстроки в строке...
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?