Найти ошибки в программе по замене букв в тексте. Турбо Паскаль.
Здравствуйте! Задали написать программу, но довести ее до рабочего состояния у меня не получается :tehnari_ru_1013: Условия задания слудующие: "В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву "б" на сочетание "ак", если "б" стоит на нечетном месте. По словом "текст" понимается строка символов, слова в которой, разделены пробелами, ".", ",", "!", "?", ";", ":", одним или несколькими." Ниже приведу код, помогите разобраться,пожалуйста.
program zamena; var i:byte; text:string;; begin writeln("Vvedite text"); readln(text); for i = 1 to lenght(text) do if i mod 2 = 0 and pos(text, i, 1) = "а" then otvet: = "е" else otvet: = pos(text, i, 1) end if inc(i); text:= otvet; writeln(text) ; readln(); for i = 1 to lenght(text) if i mod 2 = 1 and pos(text, i, 1) = "б" then otvet = otvet & "ак" else otvet = otvet & pos(text, i, 1) end if inc(i); writeln(text) ; readln(); end. |
Цитата:
1. Паскаль не использует двойных кавычек (разве что как символ при вводе/выводе текста), только одинарные (апострофы). 2. В цикле for..to при задании исходного значения переменной цикла используется знак присваивания, а не равенства, т.е. for i:=1 to n do - правильно, а for i=1 to n do - неправильно. 3. Функция Pos имеет два, а не три параметра. 4. Функция, возвращающая длину строки, пишется Length, а не Lenght. 5. Что за таинственная переменная otvet? Она нигде не описана. 6. end if - такого в Паскале не водится, это же не Бэйсик. 7. Знак & как символ какой бы то ни было операции в Паскале не употребляется. И т.д., и т.п., и проч. - продолжать можно долго. Ниже я приведу свое решение Вашей задачи (естественно, отлаженную программу). Единственное - чтобы не путаться с кодировками кириллицы, я заменил русские буквы латинскими, т.е. a (лат.) заменяется на e (лат.) и b на ak. Попробуйте разобраться: Код:
program zamena; |
Часовой пояс GMT +4, время: 15:20. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.