|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.10.2012, 00:52 | #1 |
Пользователь
Регистрация: 24.09.2012
Сообщений: 51
|
Лаба7: Удалить все буквы "а" из строки (Паскаль)
Задали произвольную строку, выполнить с ней следующие действия. Внимание! Не использовать дополнительную строку и встроенные функции. Удалить все буквы "а" из строки.
в чем моя ошибка ??? подскажите Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 30.10.2012 в 08:33. |
30.10.2012, 07:26 | #2 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
И насколько я помню цикл while в отличии от for каждый раз вычисляет границу цикла, так что выкинем b и будет использовать только Length(s). Или идти циклом for с конца, тогда вообще не будет заморочек с длиной строки (пример много на форуме, насколько помню for i := Length(s) downto 1 do делал Серж) |
|
30.10.2012, 08:40 | #3 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
согласен с Poma][a, во всех случаях, когда нужен цикл и в цикле удаляются элементы, лучше делать обратный цикл от последнего элемента к первому:
Код:
Но есть и ещё одно замечание по программе... Цитата:
Цитата:
Впрочем, попробуйте сдать задание с этой функцией, потому как в противном случае прийдётся изменять (уменьшать) длину строки - а это можно сделать или хакерскими методами, либо, опять же, встроенными функциями... |
||
30.10.2012, 08:56 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Предлагаю такое сжатие строки:
Код:
I'm learning to live...
|
30.10.2012, 09:04 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Отлично, Белик Виталий, садитесь, зачёт!
|
30.10.2012, 09:12 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
30.10.2012, 15:04 | #7 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Красиво
Ток несколько вопросов : А зачем Length(a), если наша строка c ? (Наверное, просто описка) И зачем последний цикл восстанавливает длину строки? |
30.10.2012, 17:20 | #8 |
Пользователь
Регистрация: 30.10.2012
Сообщений: 34
|
вот тебе код
#var l:string; i,ll:integer; begin readln(l); ll:=length(l); for i:=1 to ll do begin if l[i]='а' then delete(l,i,1);end; writeln('novaa stroka ',l);end.# |
30.10.2012, 19:45 | #9 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Люблю цитировать Сержа :
Цитата:
|
|
30.10.2012, 20:22 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
NinaSSS, во-первых, для Delete правильный код я уже опубликовал выше пост #3 (цикл должен быть обратный от конца строки к началу, т.к. Вы в цикле удаляете элементы, следущий элемент будет сдвигаться!) Ваш код вообще не рабочий!
во-вторых, Ромаха прав, Delete встроенная функция в-третитьих, Stilet привел пример кода БЕЗ использования встроенных функций. в-четвёртных, код нужно оформлять тегами! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Строки(pascal) - удалить все гласные русские буквы | wormiks40 | Помощь студентам | 3 | 20.04.2012 09:39 |
Как удалить все буквы их ячеек и оставить № телефонов. | Ppaa | Microsoft Office Excel | 14 | 05.07.2011 13:49 |
из заданной строки текста вывести в алфавитном порядке все содержащиеся гласные буквы (Паскаль) | zzz6 | Помощь студентам | 4 | 30.06.2011 13:46 |
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, | Шпунюся | Помощь студентам | 1 | 16.12.2010 21:02 |
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова | nick23 | Помощь студентам | 7 | 01.11.2009 14:47 |