Меню сайта

Категории раздела
Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru) [36]
Решение олимпиадных задач по программированию
Готовимся к олимпиаде по математике [3]
Решение олимпиадных задач по математике

Мини-чат

Наш опрос
Уважаемый посетитель сайта, к какой категории вы себя относите?
Всего ответов: 5525

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Главная

Регистрация

Вход
Вы вошли как Гость | Группа "Гости" | RSS


Личный сайт учителя математики и информатики

Фоновой Натальи Леонидовны



Воскресенье, 29.12.2024, 08:56
Главная » Файлы » Внеурочная деятельность » Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru)

Поиск палиндромов
14.02.2012, 08:26

Условие:
В тексте слова отделяются друг от друга пробелами. После последнего слова стоит точка. Найти все слова-перевёртыши, то есть те, которые читаются одинаково слева-направо и справа-налево.

Технические условия:
Программа должна читать исходные данные из файла input.txt, содержащего исследуемый текст. Файл output.txt должен содержать список всех слов-палиндромов, разделённых пробелами.

Примеры входных и выходных файлов:
Отсутствуют.

Решение:
{Программа читает текст из файла input.txt, удаляет точку в конце предложения, затем переводит текст к нижнему регистру, и с помощью функции Perev логического типа, проверяет, является ли каждое из слов исследуемого текста палиндромом}

var
txt:string;
i,n:integer;
f:text;

Function Perev(str:string):boolean;
var
s:string;
k:integer;
begin
s:='';
for k:=length(str) downto 1 do s:=s+str[k];
if s=str then Perev:=True else Perev:=False;
end;

begin
assign(f,'input.txt');
reset(f);
readln(f,txt);
close(f);
for i:=1 to length(Txt) do
begin
case Txt[i] of
'А'..'П':Txt[i]:=Chr(ord(Txt[i])+32);
'Р'..'Я':Txt[i]:=Chr(ord(Txt[i])+80);
'A'..'Z':Txt[i]:=Chr(ord(Txt[i])+32);
end;
end;
n:=1;
assign(f,'output.txt');
rewrite(f);
for i:=1 to length(txt) do
begin
if (Txt[i]=' ') or (i=length(txt)) then
begin
if Perev(Copy(Txt,n,i-n)) then writeln(f,copy(Txt,n,i-n));
n:=i+1;
end;
end;
close(f);
end.
Категория: Готовимся к олимпиаде по программированию (задачи взяты с сайта http://olimpiada.com.ru) | Добавил: admin
Просмотров: 1311 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Кнопка сайта

Одна кнопка

время жизни сайта

Сайт участвует
конкурс сайтов 

Новости образовани

Фраза дня

Web-мастеру

OperaFirefoxGoogle ChromeDownload Master
QIPSkypeµTorrentTeamViewer
Dr.Web CureITAvira AntiVirTotal CommanderCDBurnerXP
PicasaIrfanViewCheMaxDAEMON Tools
AIMPKMPlayerBSplayerK-Lite Codec Pack

Установить себе такой Блок
Скрипты и HTML для uCOz

Раскрутка сайта
Graffiti Decorations(R) Studio (TM) Site Promoter

Copyright MyCorp © 2024
/td>