- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
program lab_16;
{$APPTYPE CONSOLE}
uses
windows,
SysUtils;
{#1. Дана строка, содержащая русский текст.
Если в тексте нет слов-палиндромов длиной более 1-й буквы,
то вывести слова текста в соответствии с убыванием количества согласных,
в противном случае пpодублиpовать в словах текста гласные буквы и вывести
полученные слова в поpядке, обpатном к алфавитному.}
const nmax=100;
Alf = ['А'..'Я','а'..'я'];
rulett3 = ['А', 'Е', 'Ё', 'И', 'О', 'У', 'Ы', 'Э', 'Ю', 'Я', 'а', 'е', 'ё', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я'];
type Mas_slov=array[1..nmax] of string;
procedure vvod(var a : Mas_slov; var n : integer);
var stroka,str:string;
i : integer;
begin
reset(input,'input.txt');
read(stroka);
str:='';
n:=0;
stroka:=stroka+' ';
for i:=1 to length(stroka) do
if stroka[i] in Alf then str:=str+stroka[i]
else if str<>'' then begin
inc(n);
a[n]:=str;
str:='';
end;
end;
function kolsog(x:string):integer; {фунция нахождения кол-ва согл букв}
var k,j,z:integer;
begin
z:=0;
for k:=1 to length(x) do
if not (x[k] in rulett3) then inc(z);
kolsog:=z;
end;
function palin(x:string):boolean; {проверка на палиндром}
var z,i:integer;
begin
palin:=false;
z:=0;
for i:=1 to length(x) do
if x[i]=x[length(x)+1-i] then z:=z+1;
if z=length(x) then palin:=true;
end;
function prov(a : Mas_slov; n : integer):boolean;
var i,j:integer;
begin
prov:=false;
for i:=1 to n do
if (length(a[i])>1) and (palin(a[i])=true) then prov:=true;
end;
procedure sort(var a:mas_slov; n: integer);
var i,j:integer;
st:string;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if kolsog(a[i])< kolsog(a[j]) then
begin st:=a[i]; a[i]:=a[j]; a[j]:=st; end;
end;
function dubl(x:string):string; {дублирование гласных букв}
var q:integer;
begin
q:=1;
while q<>length(x)+1 do begin
if (x[q] in rulett3) then begin Insert(x[q],x,q); inc(q,2)end else inc(q); end;
dubl:=x;
end;
procedure dubl2(var a:mas_slov; n:integer);
var i:integer;
begin
for i:=1 to n do
a[i]:=dubl(a[i]);
end;
procedure sort2(var a:mas_slov; n: integer);
var i,j:integer;
st:string;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin st:=a[i]; a[i]:=a[j]; a[j]:=st; end;
end;
Lure Of Chaos 14.06.2010 19:58 # 0
Мистер Хэнки 14.06.2010 20:17 # 0
Lure Of Chaos 14.06.2010 20:25 # 0
neanton 14.06.2010 20:23 # 0
Lure Of Chaos 14.06.2010 20:25 # 0
guest 14.06.2010 22:44 # +2
guest 14.06.2010 22:47 # −1
guest 15.06.2010 03:27 # +1
вебкил что ли писал?
bugmenot 15.06.2010 18:48 # +1
guest 16.06.2010 10:03 # 0
guest 16.06.2010 10:07 # 0
Webkill 16.06.2010 10:14 # −2
guest 16.06.2010 10:16 # 0