![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.12.2008
Сообщений: 35
|
![]()
Ребят посмотрите пожалуйста код,не могу понять где ошибка!!!
вот задача!!! Строки, занесение 1 строки в центр 2-ой, с помощью своей функции возвращения длины строки. Код:
Последний раз редактировалось Rid; 12.12.2009 в 09:24. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1)
Цитата:
2) чем Вас стандартная функция Length не устраивает?! 3) в TurboPascal длина строки всегда хранится в НУЛЕВОМ байте строки: Код:
Код:
![]() а Ваш код (если допустить, что leng(s2) работает и возвращает длину строки) попытается вылезти за границу строки - я про +l ![]() 5) а зачем в процеду Center передавать лишний параметер?! l - судя по вашему коду - это длина первой строки. Не логичнее было бы её вычислять прямо в теле процедуры?!! и вообще, задача решается ОДНОЙ строчкой: Код:
Код:
Последний раз редактировалось Serge_Bliznykov; 12.12.2009 в 11:56. |
|
![]() |
![]() |
![]() |
#3 | |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
![]() Код:
Serge_Bliznykov опоздал ![]() Цитата:
Последний раз редактировалось dr.Chas; 12.12.2009 в 12:04. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
dr.Chas
понятно. возможно. Тогда и Insert нельзя использовать, наверное... так же, как и Copy... ![]() Если уж на то пошло, тогда лучше вообще не пользоваться типом string (которого, кстати, в ANSI Pascal не было, это Борланд его добавил) и реализовывать всё через array[1..255] of char; да там и процедура Center всё равно не рабочая! Там надо длину строки C ручками задавать! или, хотя бы вначале сделать c:= s1+s2; а потом уже мутить с копированием строчек... Последний раз редактировалось Serge_Bliznykov; 12.12.2009 в 14:32. |
![]() |
![]() |
![]() |
#5 | ||
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#6 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
![]()
Serge_Bliznykov, если отталкиваться от приведённого задания то вроде как ни чего не запрещено кроме length. А так конечно многое зависит от преподавателя, как он хочет это видеть. Ну а в центр вставить, например можно так сделать цикл до конца строки, которую мы уже определили
![]() IT-man, ну да надо бы заменить на другой какой-нибудь символ, который не встречается в текстах. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
да. с точкой согласен. косяк. Тогда уж лучше прибавлять и #0 искать. (хотя и нулевой байт тоже допускается в строчках, но вероятность его наличия НАМНОГО меньше и в данной задаче ею можно пренебречь!)
а что касается по сути задания. Я никогда не понимал подобные искуственные ограничения. и повторяю. Либо уж совсем запретить тип string и полностью требовать реализации на array[..] of char либо, кто мне запретит написать так: Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 02.12.2008
Сообщений: 35
|
![]()
Угу,спс учел свои не доработки!!!
А центр я использовал по заданию,чтобы в центр второй строки, вставить 1-ю,а за writeln спасибо недопер=) еще один вопрос: Type string1=array[-1..1024] of char; {первые два байта содержат динамическую длину строки} как понять динамическую длину строки 1ые - 2 байта,то есть -1 и 0 элемент, содержат длину строки???? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Считывание строки неограниченной длины (Си) | 0kopok | Помощь студентам | 6 | 05.10.2009 20:46 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |
Строки. Как вывести часть строки? | Anfall | Общие вопросы Delphi | 7 | 26.02.2009 09:10 |
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй | gotex | Помощь студентам | 4 | 08.05.2008 02:27 |