uses crt;
const n=5;
s:array[1..n] of string=
('Якубовский','Барханов','Ниссельсон','Терехин','Сидоров');
var i,j,k:byte;
b:string;
begin
clrscr;
writeln('Исходный список:');
k:=0;
for i:=1 to n do
begin
writeln(s[i]);
for j:=1 to length(s[i]) do
if s[i][j]='и'then k:=k+1;
end;
writeln;
writeln('Количество букв и в списке=',k);
if odd(k) then write('Количество букв нечетное')
else
begin
writeln('Количество букв четное');
for i:=1 to n-1 do
for j:=i+1 to n do
if s[i]>s[j] then
begin
b:=s[i];
s[i]:=s[j];
s[j]:=b;
end;
writeln;
writeln('Список по алфавиту:');
for i:=1 to n do
writeln(s[i]);
end;
readln
end.
Следующий вариант состоит из модуля и программы
unit MyType;
interface
const n=5;
type mas=array[1..n] of string;
implementation
end.
unit Vvod;
interface
uses MyType;
procedure VvdMas(var s:mas);
implementation
procedure VvdMas;
var i:byte;
begin
s[1]:='Якубовский';
s[2]:='Барханов';
s[3]:='Ниссельсон';
s[4]:='Терехин';
s[5]:='Сидоров';
end;
end.
unit Vyvod;
interface
uses MyType;
procedure VyvMas(var s:mas);
implementation
procedure VyvMas;
var i:byte;
begin
for i:=1 to n do
writeln(s[i]);
writeln;
end;
end.
unit TipAlg;
interface
uses MyType;
function Count(s:mas):byte;
procedure Sort(var s:mas);
implementation
function Count;
var i,j,k:byte;
begin
k:=0;
for i:=1 to n do
for j:=1 to length(s[i]) do
if s[i][j]='Ё'then k:=k+1;
Count:=k;
end;
procedure Sort;
var i,j:byte;
b:string;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if s[i]>s[j] then
begin
b:=s[i];
s[i]:=s[j];
s[j]:=b;
end;
end;
end.
uses Crt,MyType,Vvod,Vyvod,TipAlg;
var fam:mas;
k:byte;
begin
clrscr;
writeln('Исходный список:');
VvdMas(fam);
VyvMas(fam);
k:=Count(fam);
writeln('Количество букв и в списке=',k);
if odd(k) then write('Количество букв нечетное')
else
begin
writeln('Количество букв четное');
Sort(fam);
writeln;
writeln('Список по алфавиту:');
VyvMas(fam);
end;
readln
end.