• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите поправить код

  • Автор темы Автор темы Lotan
  • Дата начала Дата начала

Lotan

Ученик
Регистрация
23 Май 2011
Сообщения
4
Реакции
0
Баллы
0
Помогите поправить код

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

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

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 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.

Буду ждать Ваших мудрых советов ;)
 
Так вот, программу написал, но нужно чтобы прога еще и выводила слова-палиндромы, в которых гласных букв больше, чем согласных.
Ну так введите еще два множества - гласных и согласных букв (с полным перечислением), и каждый найденный палиндром проанализируйте на количество тех и других.
 
Как это кодом записать?
 
Как это кодом записать?
Ну... если Вы, как утверждаете, "написали" выложенную программу, то никаких проблем возникнуть не должнО. В раздел констант вводите что-нибудь типа
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);
И всего делов-то!
 
огромное человеческое спасибо ;)
 
Назад
Сверху