Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mybook11.05.12.doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆
  1. Вычислите длину самого короткого и самого длинного слов в строке

const nmax=100;

var s,sp:string;

i,j,n,kol:integer;

a:array[1..nmax] of string;

begin

assign(input,'input.txt'); reset(input);

assign(output,'output.txt'); rewrite(output);

readln(s);

n:=0;

while length(s)>0 do

begin

sp:='';

while s[1]=' ' do delete(s,1,1);

while (length(s)>0)and(s[1]<>' ') do

begin

sp:=sp+s[1];

delete(s,1,1);

end;

inc(n);

a[n]:=sp;

end;

for i:=1 to n-1 do

for j:=i+1 to n do

if length(a[i])>length(a[j])

then

begin

sp:=a[i];

a[i]:=a[j];

a[j]:=sp;

end;

write(length(a[1]),' ',length(a[n]));

close(input);

close(output);

end.

  1. Подсчитайте количество букв в каждом слове данной строки

const nmax=100;

var s,sp:string;

i,j,n,kol:integer;

a:array[1..nmax] of string;

begin

assign(input,'input.txt'); reset(input);

assign(output,'output.txt'); rewrite(output);

readln(s);

n:=0;

while length(s)>0 do помещаем слова строки в массив

begin

sp:='';

while s[1]=' ' do delete(s,1,1);

while (length(s)>0)and(s[1]<>' ') do

begin

sp:=sp+s[1];

delete(s,1,1);

end;

inc(n);

a[n]:=sp;

end;

for i:=1 to n do выводим длину каждого слова

write(length(a[i]),' ');

close(input);

close(output);

end.

  1. Дана строка. Определить количество слов этой строки, в которых есть ровно две буквы «е»

const nmax=100;

var s,sp:string;

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

a:array[1..nmax] of string;

begin

assign(input,'input.txt'); reset(input);

assign(output,'output.txt'); rewrite(output);

readln(s);

n:=0;

while length(s)>0 do помещаем слова строки в массив

begin

sp:='';

while s[1]=' ' do delete(s,1,1);

while (length(s)>0)and(s[1]<>' ') do

begin

sp:=sp+s[1];

delete(s,1,1);

end;

inc(n);

a[n]:=sp;

end;

res:=0;

for i:=1 to n do

begin

kol:=0;

for j:=1 to length(a[i]) do подсчитываем количество букв «е»

if a[i][j]='e' then inc(kol); в слове

if kol=2 then inc(res); если букв «е» две, то считаем слово

end;

write(res);

close(input);

close(output);

end.

  1. Составьте программу, удаляющую все лишние пробелы из введенной строки

const nmax=100;

var s,sp:string;

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

a:array[1..nmax] of string;

begin

assign(input,'input.txt'); reset(input);

assign(output,'output.txt'); rewrite(output);

readln(s);

n:=0;

while length(s)>0 do помещаем слова строки в массив

begin

sp:='';

while s[1]=' ' do delete(s,1,1);

while (length(s)>0)and(s[1]<>' ') do

begin

sp:=sp+s[1];

delete(s,1,1);

end;

inc(n);

a[n]:=sp;

end;

s:='';

for i:=1 to n do собираем слова в строку, помещая

между ними по одному пробелу

s:=s+a[i]+' ';

delete(s,length(s),1); стираем лишний последний пробел

write(s);

close(input);

close(output);

end.

Эту задачу можно решить и не помещая слова строки в массив.

  1. Напишите программу, сортирующую символы введенной с клавиатуры строки в порядке возрастания их номеров в ascii-таблице. Например, если введено: 'cba', в результате надо получить ‘abc’.

const nmax=100;

var s:string;

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

a:array[1..nmax] of char;

p:char;

begin

assign(input,'input.txt'); reset(input);

assign(output,'output.txt'); rewrite(output);

readln(s);

n:=length(s);

for i:=1 to n-1 do сортируем символы строки

for j:=i+1 to n do

if s[i]>s[j]

then

begin

p:=s[i];

s[i]:=s[j];

s[j]:=p;

end;

write(s);

close(input);

close(output);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]