![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
TBVlad |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Смысл задачи вот в чём:
Программа должна удалить из строки все слова с нечётной длиной. Но то, что я запостю ниже, выполняется неправильно: колбасит чётные слова и т.д. (лажа появляется после выполнения первого delete в строке). Вот этот код (он компилируется). Код Program String13; Var s,r : string; i,k,n : integer; Begin Writeln('Vvedite stroku >'); Readln(s); n:=length(s); i:=1; While i<=n do Begin k:=0; While (s[i]<>' ') and (i<=n) do Begin k:=k+1; i:=i+1; End; r:=copy(s,i-k,k); If length(r) mod 2<>0 then delete(s,i-k,k); i:=i+1; End; Writeln('Rezultat - ', s); End. Сообщение отредактировано: TBVlad - 28.01.2006 19:38 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
А так:
Program String13;
Var
s: string;
i, k: integer;
Begin
Writeln('Vvedite stroku >');
Readln(s);
i := 1;
While i <= length(s) do Begin
k := 0;
While (s[i] <> ' ') and (i <= length(s)) do Begin
inc(k); inc(i);
End;
If odd(k) then begin
delete(s,i-k,k);
dec(i, k);
end
else inc(i);
End;
Writeln('Rezultat - ', s);
End.
? |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 0:43 |