IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Строка символов, Работа со строками
сообщение
Сообщение #1


Гость






Дана строка символов. Изменить строку – во всех словах с четным номером поменять местами первый и последний символы. Слова ограничены одним или несколькими пробелами. Порядок ввода исходных данных: - исходная строка. Порядок вывода результатов: - новая строка.
Преобразовать обработку строки в процедуру (или функцию). Написать к ней тестовую программу.
Созданную процедуру использовать для построчной обработки текстового файла (Text). Результат обработки записывается в новый файл того же типа.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Гость_Рада
А в чем именно возникли трудности? Разбиение строки на слова? Работа со словами? Работа с файлом? Вы вообще начинали делать эту задачу?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Какие есть свои наработки по этому поводу? Выкладывай сюда.
Надеюсь, Вас не придется учить паскалю с нуля? Ведь у задачи явно "ноги растут" из какого-то курса преподавания...


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Да я икак не могу не понять,как определять номер элемента строки
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Ограничение прбелом untill s[i]:=' ' Да?
А что надо сделать,чтобы потом слова считывались дальше?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


А пробовали поискать на этом форуме? Для чего создан раздел F.A.Q. ?

http://forum.pascal.net.ru/index.php?showtopic=2361


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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, что именно она делает?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Или вот полезно будет посмотреть:
http://pascal.net.ru/forum/index.php?showtopic=3024


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Как работать со словом строки(то,к-ое до прбела)???

Добавлено (17.11.04 12:33):
Ну ,в смысле,что надо сделать,чтобы я могла с ним работать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Манго

А разобраться в приведенной программе не пробовали? Я по-Вашему это для себя пишу?

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Нет,просто я это сообщение писала до того ,как читала ваше;
так выщло ,не сердитесь rolleyes.gif

Добавлено:
Я не поняла работу функции getToken sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Манго
Эта функция как раз и занимается тем, что берет из строки следующее слово. А дальше его нужно обработать - попробуйте.

Кстати, программу запускали или нет? По ее выходным данным можно однозначно сказать, для чего она предназначена :yes:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Хорощо,сейчас попрую.
Кстати,программу я написала,но она не работает <_<
А программа такая:

Код
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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Не подскажите,почему?????????? :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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
Пол: Женский

Репутация: -  0  +


Цитата
{1. переменная pssl не инициализируется явно (хотя по умолчанию = 0)}
for k:=0 to pssl do begin {k-schetchik slov;pssl-poslednee slovo}
{2. Попытка считывания С КЛАВИАТУРЫ символов до тех пор, пока не будет введен пробел, а ведь надо читать из строки S}


1)Я ,наверно,не так поняла,но разве pssl не будет увеличиваться сам в ходде работы счётчика?

2)Сильно ли влияет на программу считывание с клавиатуры или из строки?Символы то те же,или нет ?huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата
разве pssl не будет увеличиваться сам в ходде работы счётчика?

Нет!!! В ходе работы цикла
Цитата
for k=0 to pssl do

будет само собой увеличиваться значение переменной к (а вернее, не будет, поскольку по умолчанию pssl получит значение 0, и цикл будет работать, как
Цитата
for k=0 to 0 do

т.е., всего один раз). Лучше все-таки юзайте функцию от Volvo. Или ищите добрую душу, которая сделает все за Вас. Если Вы очень-очень ласково попросите, может, я и разжалоблюсь. :p2:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Цитата
Сильно ли влияет на программу считывание с клавиатуры или из строки?


Так нельзя уже считывать с клавиатуры! Строка введена - теперь нужно пользоваться только тем, что уже было введено (тем более, что эта задача будет применяться к работе с файлами)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






Да я не прошу ВСЁ за меня делать,я прошу помочь исправить то,что я уже
сделала так,чтобы программа работала rolleyes.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


:yes: Я исправила программу!!!
Но она всё равно не работает!!! lol.gif

Код

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: smile.gif

Сообщение отредактировано: Манго -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.01.2025 22:59
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name