|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
03.12.2010, 11:15 | #1 (permalink) |
Member
Регистрация: 11.11.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Найти ошибки в программе по замене букв в тексте. Турбо Паскаль.
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. |
03.12.2010, 11:15 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую обратить внимание на данные топики, в них могут быть полезные ответы Расчет производной на языке турбо паскаль Турбо Паскаль |
03.12.2010, 22:12 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
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; var i,N_a,N_b:byte; text:string; P_a,P_b:Array[1..128] of byte; BEGIN N_a:=0; N_b:=0; writeln('Vvedite text'); readln(text); for i:=1 to length(text) do if (i mod 2 = 0) and (text[i]='a') then begin Inc(N_a); P_a[N_a]:=i; end else if (i mod 2 = 1) and (text[i]='b') then begin Inc(N_b); P_b[N_b]:=i; end; for i:=1 to N_b do P_b[i]:=P_b[i]+(i-1); for i:=1 to N_a do begin Delete(text,P_a[i],1); Insert('e',text,P_a[i]); end; for i:=1 to N_b do begin Delete(text,P_b[i],1); Insert('ak',text,P_b[i]); end; writeln(text) ; readln; END. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|