![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Гость_Рада |
![]()
Сообщение
#1
|
Гость ![]() |
Дана строка символов. Изменить строку – во всех словах с четным номером поменять местами первый и последний символы. Слова ограничены одним или несколькими пробелами. Порядок ввода исходных данных: - исходная строка. Порядок вывода результатов: - новая строка.
Преобразовать обработку строки в процедуру (или функцию). Написать к ней тестовую программу. Созданную процедуру использовать для построчной обработки текстового файла (Text). Результат обработки записывается в новый файл того же типа. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Гость_Рада
А в чем именно возникли трудности? Разбиение строки на слова? Работа со словами? Работа с файлом? Вы вообще начинали делать эту задачу? |
APAL |
![]()
Сообщение
#3
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Какие есть свои наработки по этому поводу? Выкладывай сюда.
Надеюсь, Вас не придется учить паскалю с нуля? Ведь у задачи явно "ноги растут" из какого-то курса преподавания... -------------------- |
Гость_Рада |
![]()
Сообщение
#4
|
Гость ![]() |
Да я икак не могу не понять,как определять номер элемента строки
|
Манго |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Ограничение прбелом untill s[i]:=' ' Да?
А что надо сделать,чтобы потом слова считывались дальше? |
APAL |
![]()
Сообщение
#6
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
А пробовали поискать на этом форуме? Для чего создан раздел F.A.Q. ?
http://pascal.dax.ru/forum/index.php?showtopic=2361 -------------------- |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Попробуйте разобраться в работе этой функции:
Код function getToken(delim: char; var s: string): string; var p: byte; begin getToken := ''; p := pos(delim, s); if p <> 0 then begin getToken := Copy(s, 1, pred(p)); delete(s, 1, p); exit end; getToken := s; s := '' end; const st : string = 'what is your name'; var sTok: string; p: byte; begin repeat p := pos(' ', st); if p > 0 then begin delete(st, p, 1); end; until p = 0; while st <> '' do begin sTok := getToken(' ', st); writeln(sTok); end; end. Как Вы думаете, для чего предназначена функция getToken, что именно она делает? |
APAL |
![]()
Сообщение
#8
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Или вот полезно будет посмотреть:
http://pascalnet.ru/forum/index.php?showtopic=3024 -------------------- |
Манго |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Как работать со словом строки(то,к-ое до прбела)???
Добавлено (17.11.04 12:33): Ну ,в смысле,что надо сделать,чтобы я могла с ним работать? |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Манго
А разобраться в приведенной программе не пробовали? Я по-Вашему это для себя пишу? Сообщение отредактировано: volvo - 17.11.2004 12:37 |
Манго |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Нет,просто я это сообщение писала до того ,как читала ваше;
так выщло ,не сердитесь rolleyes.gif Добавлено: Я не поняла работу функции getToken ![]() |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Манго
Эта функция как раз и занимается тем, что берет из строки следующее слово. А дальше его нужно обработать - попробуйте. Кстати, программу запускали или нет? По ее выходным данным можно однозначно сказать, для чего она предназначена :yes: |
Манго |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Хорощо,сейчас попрую.
Кстати,программу я написала,но она не работает <_< А программа такая: Код program Stroka; uses crt; var s,s0 : string; f : text; t:char; i,n,d,k,pssl,n0 : integer; begin clrscr; writeln('Vvedite stroku '); readln(s); n:=length(s); for k:=0 to pssl do begin {k-schetchik slov;pssl-poslednee slovo} while s[i] <> ' ' do read(s[i]); if s[i] =' ' then d:=i-1; { d-nomer poslednego elementa} s0:=s[d]; n0:=length(s0); end; if (k mod 2)=0 then begin t:=s0[1];s0[1]:=s0[n0];s0[n0]:=t;end; writeln('Novaja stroka ',s); readkey; end. Код программ заключаем в соответсвующие теги! Сообщение отредактировано: APAL - 17.11.2004 14:07 |
Манго |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Не подскажите,почему?????????? :p2:
|
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
Манго
Смотрите, что происходит в программе: Код program Stroka; uses crt; var s,s0 : string; f : text; t:char; i,n,d,k,pssl,n0 : integer; begin clrscr; writeln('Vvedite stroku '); readln(s); n:=length(s); {1. переменная pssl не инициализируется явно (хотя по умолчанию = 0)} for k:=0 to pssl do begin {k-schetchik slov;pssl-poslednee slovo} {2. Попытка считывания С КЛАВИАТУРЫ символов до тех пор, пока не будет введен пробел, а ведь надо читать из строки S} while s[i] <> ' ' do read(s[i]); {3. переменной i тоже явно не присвоено значение (по умолчанию тоже i=0), но ведь в нулевом символе хранится длина строки!} if s[i] =' ' then d:=i-1; { d-nomer poslednego elementa} s0:=s[d]; n0:=length(s0); end; if (k mod 2)=0 then begin t:=s0[1];s0[1]:=s0[n0];s0[n0]:=t;end; writeln('Novaja stroka ',s); readkey; end. |
Манго |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата {1. переменная pssl не инициализируется явно (хотя по умолчанию = 0)} for k:=0 to pssl do begin {k-schetchik slov;pssl-poslednee slovo} {2. Попытка считывания С КЛАВИАТУРЫ символов до тех пор, пока не будет введен пробел, а ведь надо читать из строки S} 1)Я ,наверно,не так поняла,но разве pssl не будет увеличиваться сам в ходде работы счётчика? 2)Сильно ли влияет на программу считывание с клавиатуры или из строки?Символы то те же,или нет ? ![]() |
Guest |
![]()
Сообщение
#17
|
Гость ![]() |
Цитата разве pssl не будет увеличиваться сам в ходде работы счётчика? Нет!!! В ходе работы цикла Цитата for k=0 to pssl do будет само собой увеличиваться значение переменной к (а вернее, не будет, поскольку по умолчанию pssl получит значение 0, и цикл будет работать, как Цитата for k=0 to 0 do т.е., всего один раз). Лучше все-таки юзайте функцию от Volvo. Или ищите добрую душу, которая сделает все за Вас. Если Вы очень-очень ласково попросите, может, я и разжалоблюсь. :p2: |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Цитата Сильно ли влияет на программу считывание с клавиатуры или из строки? Так нельзя уже считывать с клавиатуры! Строка введена - теперь нужно пользоваться только тем, что уже было введено (тем более, что эта задача будет применяться к работе с файлами) |
Guest |
![]()
Сообщение
#19
|
Гость ![]() |
Да я не прошу ВСЁ за меня делать,я прошу помочь исправить то,что я уже
сделала так,чтобы программа работала ![]() |
Манго |
![]()
Сообщение
#20
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: ![]() ![]() ![]() |
:yes: Я исправила программу!!!
Но она всё равно не работает!!! ![]() Код var s,s0 : string; f : text; t:char; i,n,d,k,pssl,n0 : integer; begin clrscr; writeln('Vvedite stroku '); readln(s); n:=length(s); for k:=0 to pssl do begin {k-schetchik slov;pssl-poslednee slovo} i:=1;pssl:=n;{!} while s[i] <> ' ' do read(s[i]); if s[i] =' ' then d:=i-1; { d-nomer poslednego elementa} s0:=s[d]; n0:=length(s0); end; if (k mod 2)=0 then begin t:=s0[1];s0[1]:=s0[n0];s0[n0]:=t;end; writeln('Novaja stroka ',s); readkey; end.[QUOTE]var s,s0 : string; f : text; t:char; i,n,d,k,pssl,n0 : integer; begin clrscr; writeln('Vvedite stroku '); readln(s); n:=length(s); for k:=0 to pssl do begin {k-schetchik slov;pssl-poslednee slovo} i:=1;pssl:=n;{!} while s[i] <> ' ' do read(s[i]); if s[i] =' ' then d:=i-1; { d-nomer poslednego elementa} s0:=s[d]; n0:=length(s0); end; if (k mod 2)=0 then begin t:=s0[1];s0[1]:=s0[n0];s0[n0]:=t;end; writeln('Novaja stroka ',s); readkey; end. Что теперь неправильно? Подскажите!!Немнжко же осталось,чтобы она заработала!!! :yes: ![]() Сообщение отредактировано: Манго - 17.11.2004 14:32 |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 5:12 |