![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
lansel |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
помогите пожалуйста,оч плохо соображаю в паскале
....Дана строка содержащая текст , заканчивающиеся точкой. Вывести на экран слова,содержащие три буквы,Напишите программу для ее решения Сообщение отредактировано: lansel - |
volvo |
![]()
Сообщение
#2
|
|||
Гость ![]() |
|
|||
sheka |
![]()
Сообщение
#3
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
var s:string;
begin
s:='На заборе тоже три буквы написано: *** .';
writeln('три ***');
end.
![]() |
lansel |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
sheka,правда?
Добавлено через 13 мин. а если через write ('введите текст');readln (s); а дальше.....что бы только на три буквы? |
andriano |
![]()
Сообщение
#5
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
1. Разделить строку на отдельные слова.
2. Вывести только те, длина которых равна 3. Примечание: можно делать в единственном цикле. |
lansel |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
andriano,можешь показать
|
andriano |
![]()
Сообщение
#7
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Могу.
Но будет лучше, если ты сам попытаешься хоть что-то сделать. |
lansel |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
andriano,ну пожалуйста
|
lansel |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
напишите кто нибудь,,,,,мне срочно......пожалуйста
|
Unconnected |
![]()
Сообщение
#10
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Разбиение на слова, все способы
Получить длину строки можно функцией length(s);, она возвращает целое значеие, равное длине строки. Надо будет, думаю, завести отдельный массив для слов. Добавлено через 15 мин. const
limits = [#0..#32,'.',',',':',';','!','?','"'];
type
TWords = array[1..40] of string;
var
s:string;
words:TWords;
i,n:integer;
function GetWords(s:string; var w:TWords):byte;
var i,back,n:byte;
begin
i := 1;
n := 0;
while(i<=length(s)) do begin
while(i<=length(s)) and (s[i] in limits) do
inc(i);
if i<=length(s) then begin
back := i;
while(i<=length(s)) and not(s[i] in limits) do
inc(i);
inc(n);
w[n] := copy(s, back, i-back);
end;
end;
GetWords := n;
end;
begin
writeln('Vvedite stroku');
readln(s);
n:=getwords(s,words);
for i:=1 to n do if length(words[i])=3 then writeln(words[i]);
readln;
end.
Способ разбиения на слова позаимствовал у klem4'а, по ссылке в предыдущем посте. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
lansel |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
Unconnected,спасиб
Добавлено через 1 мин. а попроще способа нет? |
Unconnected |
![]()
Сообщение
#12
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
А чем тебе этот сложный? Спрашивай.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
andriano |
![]()
Сообщение
#13
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#14
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Можно обойтись без массива, если выводить слова в процессе разбора. Совершенно согласен.Unconnected, зачем такой наворот? Можно попроще, конечно. const
limits = [#0..#32,'.',',',':',';','!','?','"'];
var
s,t: string;
i: integer;
begin
Write('Vvedite stroku: ');
ReadLn(s);
t:='';
for i:=1 to Length(s)+1 do
if (i>Length(s))or(s[i] in Limits) then begin
if Length(t)=3 then WriteLn(t);
t:=''
end
else t:=t+s[i];
ReadLn
end.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
lansel |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
Lapp,огромное спасибо!!)))
|
lansel |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
а без Limits можно обойтись?
Сообщение отредактировано: lansel - |
Unconnected |
![]()
Сообщение
#17
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Можно, в принципе, если знаешь, что в твоей строке из разделителей будут только пробелы.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
lansel |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
Unconnected,прост мы такое еще не проходили....
|
Lapp |
![]()
Сообщение
#19
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Unconnected,прост мы такое еще не проходили.... Ты бы лучше на вопрос ответил. Годится использовать ТОЛЬКО пробел в качестве разделителя? Какие символы МЕЖДУ словами могут быть?-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
lansel |
![]()
Сообщение
#20
|
Новичок ![]() Группа: Пользователи Сообщений: 30 Пол: Мужской Репутация: ![]() ![]() ![]() |
давай с пробелом
|
![]() ![]() |
![]() |
Текстовая версия | 9.04.2025 3:25 |