Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
_Astarta_
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 31
#1

Вывести слова, содержащие буквы «о» и «е» - Turbo Pascal

11.06.2016, 20:12. Просмотров 405. Ответов 2
Метки нет (Все метки)

Дан произвольный текст на русском языке. Написать программу, которая выводит слова, содержащие буквы «о» и «е».
Не могу добавить условие, чтобы выводились слова с этими буквами. Сделал программу, которая просто разделяет текст на слова:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const r='.,;;?! ';
var tekst: string;
slovo: string[25];
i: byte;
begin
write('Введите текст - '); readln(tekst);
tekst:= tekst+' ';
slovo:= '';
writeln('В заданном тексте имеются следующие слова:');
for i:=1 to length(tekst) do
if pos(tekst[i], r)=0
then slovo:=slovo+tekst[i]
else begin
if slovo<>'' then writeln(slovo);
slovo:= ''
end;
end.
Добавлено через 21 час 59 минут
Сделал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const o='о';
e='е';
p='О';
q='Е';
r=' ,.';
var  s,t:string;
i,j,k:integer;
begin
write('Введите текст: ');
readln(s);
s:=s+' ';       {Чтобы текст всегда заканчивался разделителем}
writeln('Cлова, содержащие буквы "о" и "е": ');
for i:=1 to length(s) do begin
if pos(s[i],r)=0
then t:=t+s[i]
else begin
if (t<>'') then  begin
for j:=1 to length(t) do begin
if (pos(t[j],o)<>0) or (pos(t[j],e)<>0) or (pos(t[j],p)<>0) or (pos(t[j],q)<>0)
then begin
writeln(t);
k:=k+1;   {Считаем количество выведенных слов}
end;
end;
t:='';     {Обнуляем переменную, для нормального вывода ответа}
end;
end;
end;
if k=0 then writeln('Таких нет');     {Если ни одно слово не подходит по условию}
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2016, 20:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести слова, содержащие буквы «о» и «е» (Turbo Pascal):

Вывести на экран слова, содержащие три буквы - Turbo Pascal
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

Вывести на экран слова, содержащие три буквы - Turbo Pascal
Дана строка, содержащая текст, заканчивающийся точкой.Вывести на экран слова, содержащие три буквы.

Вывести на экран слова, содержащие три буквы - Turbo Pascal
всем привет, помогите решить: Дан текст. Вывести на экран слова, содержащие три буквы. заранее спасибо))

Для трех исходных строк вывести на экран все слова из строки, содержащие по 4 буквы. - Turbo Pascal
Написать программу в соответствии с заданием. Вычислительный процесс выполнить с использованием процедуры. В вариантах работы с матрицами...

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы. - Turbo Pascal
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы. Заранее спасибо.

Выделить из предложения слова, содержащие две или более одинаковые буквы - Turbo Pascal
Строки (string) и использование библиотечных функций для их преобразования. Процедуры и функции Длина вводимого предложения не более 80...

2
ChiliPalmer
20 / 20 / 5
Регистрация: 09.04.2016
Сообщений: 145
12.06.2016, 14:31 #2
_Astarta_, а если в слове будет несколько букв О или Е ( например ТЕРЕМ или МОЛОКО) - твоя программа выведет слово на экран столько раз, сколько эта буква встречается в слове. Ты считаешь - это правильно?

Добавлено через 16 минут
П.с. Зачем в строке 18 делать цикл для каждого символа слова Т, если функция POS предназначена как раз для того, чтобы определять появление(номер позиции) подстроки в строке - типа Pos(o, T)? Такой вариант кода позволит без цикла определять - есть ли в исходной строке нужный тебе символ. Если цикл не убирать, то вместо функции Pos(в твоем написании) можно использовать просто оператор сравнения типа if (T[j]=o) or (T[j]=e) or { и так далее... }, но тогда слово будет выведено на экран столько раз, сколько буква встречается в слове, а это неправильно.
0
_Astarta_
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 31
13.06.2016, 13:49  [ТС] #3
Про 18-ую строку понял, исправил. Про программу в целом: нет, я не считаю, что это правильно. Но как исправить-не знаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2016, 13:49
Привет! Вот еще темы с ответами:

Строки. Преобразовать строку: оставить слова, содержащие буквы и цифры, остальные удалить - Turbo Pascal
Преобразовать строку таким образом, чтобы в ней остались только слова, содержащие буквы и цифры, остальные слова удалить.

Вывести на экран слова,содержащие три буквы - Pascal
1.дана символьная строка ,содержащая текст,заканчивающийся точкой. Вывести на экран слова,содержащие три буквы. 2.даны натуральные n,...

Строки. Вывести на экран слова, содержащие 3 буквы - Pascal
Дана строка, содержащая текст, заканчивающаяся точкой. Вывести на экран слова, содержащие 3 буквы. Мне только основную часть, или...

Вывести на экран слова, содержащие три буквы - Pascal
1. дана символьная строка ,содерщая текст, заканчиваюшияся точкой. Вывести на экран слова, содержащие три буквы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru