Подсчитать количество букв «и» в списке, состоящем из пяти фамилий: Якубовский, Барханов, Ниссельсон, Терехин, Сидоров. Если таких букв чётное количество, то упорядочить эти фамилии по алфавиту. Напечатать исходный и упорядоченные списки — Pascal(Паскаль)

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.

Leave a Comment

− 1 = 1