Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 23.05.2011, 16:29   #1 (permalink)
Lotan
Новичок
 
Регистрация: 23.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите поправить код

Есть задача. Написать программу для вывода слов палиндромов (то есть тех, которые и в одну и в другую сторону читаются одинаково). Так вот, программу написал, но нужно чтобы прога еще и выводила слова-палиндромы, в которых гласных букв больше, чем согласных.

Вот, собственно мой код:

Program Palindroms;
uses crt;
const
Delim= [' ', ',', '.', '?', '!'];
var
s,stmp:string;
i,j,l:integer;
f:boolean;
begin
clrscr;
writeln('s:');
readln(s);
i:=1;
while i<=length(s) do
if (not(s[i] in delim)) then
begin
j:=i;stmp:='';
while (s[j]<>' ')and(j<=length(s)) do
begin
stmp:=stmp+s[j];
j:=j+1;
end;
f:=true;
l:=length(stmp);
for j:=1 to l do
if stmp[j]<>stmp[l-j+1] then f:=false;
if f then writeln(stmp);
i:=i+length(stmp);
end
else i:=i+1;
readln
end.

Буду ждать Ваших мудрых советов
Lotan вне форума   Ответить с цитированием

Старый 23.05.2011, 16:29
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Поищите решение проблемы в аналогичных обсуждениях

Поправить прогу с графическим режимом
Поправить программу. Иначе отчислят.
У 2х компов алергия на ГТА - как поправить?

Старый 23.05.2011, 16:36   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Lotan Посмотреть сообщение
Так вот, программу написал, но нужно чтобы прога еще и выводила слова-палиндромы, в которых гласных букв больше, чем согласных.
Ну так введите еще два множества - гласных и согласных букв (с полным перечислением), и каждый найденный палиндром проанализируйте на количество тех и других.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.05.2011, 16:43   #3 (permalink)
Lotan
Новичок
 
Регистрация: 23.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Как это кодом записать?
Lotan вне форума   Ответить с цитированием
Старый 23.05.2011, 17:03   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Lotan Посмотреть сообщение
Как это кодом записать?
Ну... если Вы, как утверждаете, "написали" выложенную программу, то никаких проблем возникнуть не должнО. В раздел констант вводите что-нибудь типа
Glas=['а','е','и'... и т.д до 'я'];
Sogl=['б','в','г'... и т.д до 'щ'];
В раздел описания переменных
N_glas, N_sogl, k:Integer;
В конце для каждого найденного палиндрома организуете цикл вида
N_glas:=0;
N_sogl:=0;
For k:=1 to length(stmp) do
begin
if stmp[k] in Glas then Inc(N_glas);
if stmp[k] in Sogl then Inc(N_sogl);
end;
If N_glas>N_sogl then writeln(stmp);
И всего делов-то!
Vladimir_S вне форума   Ответить с цитированием
Старый 23.05.2011, 17:06   #5 (permalink)
Lotan
Новичок
 
Регистрация: 23.05.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

огромное человеческое спасибо
Lotan вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:27.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.