Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Инф_Паскаль_3_2007.doc
Скачиваний:
5
Добавлен:
14.08.2019
Размер:
338.94 Кб
Скачать

6.2.5. Выделение символов в строке и подсчет их вхождения

Ввести предложение. Подсчитать количество гласных в нем. В более общей постановке задачи – символов из некоторого эталонного набора (согласные, звонкие согласные, цифры и т.д.).

Текст программы, реализующей эту задачу, приведен ниже.

Program Count_Gl;

Var

Predl,Gl:String; { Предложение и эталонная строка }

n,m,i,j,kol:Integer; { Вспомогательные переменные }

Begin

Gl:=’аеёиоуыэюяАЕЁИОУЫЭЮЯ’; {Строка эталонов}

m:=Length(Gl);

WriteLn('Введите предложение');

ReadLn(Predl);

n := Length(Predl);

kol := 0;

For i:=1 to n do

For j:=1 to m do

If Predl[i] = Gl[j] then

kol:=kol + 1;

Writeln('Количество гласных в предложении = ',kol);

Readln;

End.

6.2.6. Выделение символов в строке и подсчет слов в строке

Ввести предложение длиной не более 80 символов и подсчитать количество слов в нем и количество букв "а". Будем считать, что одно слово от другого отделяется одним пробелом.

Текст программы, реализующей эту задачу, приведен ниже.

Program Predl;

Var

Pr : String;

i, n, Ks, Ka : Integer;

Begin

Ks := 0;

Ka := 0;

Writeln('Введите предложение');

Readln(Pr);

n := Length(Pr); {Длина предложения}

For i := 1 to n do

If Pr[i] = ' ' Then

Ks:= Ks + 1

Else

If Pr[i] = 'a' Then

Ka := Ka + 1;

If Pr[n]<> ' ' Then

Ks:=Ks+1; {если в конце предложения нет пробела}

Writeln('Количество слов в предложении равно ',Ks,

'количество букв а - ',Ka);

End.

6.2.7. Выделение слов и упорядочение их по длине

Ввести предложение. Упорядочить его слова по возрастанию длины и вывести их в столбик.

Текст программы, реализующей эту задачу, приведен ниже.

Program Sl;

Const m = 50;

Var Predl, Rsl : string;

Slovo : array [1..m] of string;

n,k,i,j,kol : integer;

BEGIN

WriteLn('Введите предложение');

ReadLn(Predl);

n := Length(Predl);

k := 1;

Slovo[k] := '';

i := 1;

While i<=n do

If predl[i] <> ' ' then {символ – не пробел}

begin

Slovo[k] := slovo[k] + predl[i];

i := i + 1;

end

Еlse {символ – пробел}

begin

k := k + 1;

slovo[k] := '';

While (predl[i]=' ') and (i <= n) do

i := i + 1;

end;

WriteLn('Слова из предложения');

For i := 1 to k do

WriteLn(slovo[i]);

For j := 1 to k-1 do

For i := 1 to k-j do

If Length(slovo[i])> Length(slovo[i+1]) then

Begin

RSl:= slovo[i];

slovo[i]:= slovo[i+1];

slovo[i+1]:=Rsl;

End;

WriteLn('Упорядоченные слова из предложения');

For i := 1 to k do

WriteLn(slovo[i]);

End.

6.2.8. Расположение слов по алфавиту

Ввести предложение. Упорядочить его слова по алфавиту и вывести их в столбик.

Текст программы, реализующей эту задачу, приведен ниже.

Program Sl;

Const m = 50;

Var Predl, Rsl : string;

Slovo : array [1..m] of string;

n,k,i,j,kol : integer;

BEGIN

WriteLn('Введите предложение');

ReadLn(Predl);

n := Length(Predl);

k := 1;

Slovo[k] := '';

i := 1;

While i<=n do

If predl[i] <> ' ' then {символ – не пробел}

begin

Slovo[k] := slovo[k] + predl[i];

i := i + 1;

end

Еlse {символ – пробел}

begin

k := k + 1;

slovo[k] := '';

While (predl[i]=' ') and (i <= n) do

i := i + 1;

end;

For j := 1 to k-1 do

For i := 1 to k-j do

If slovo[i]> slovo[i+1] then

Begin

RSl:= slovo[i];

slovo[i]:= slovo[i+1];

slovo[i+1]:=Rsl;

End;

WriteLn('Упорядоченные слова из предложения');

For i := 1 to k do

WriteLn(slovo[i]);

End.