Обработка текста

1. В заданной строке текста определите число различных букв.

program lab8z1;
uses crt;
const book=[‘A’..’Z’,’a’..’z’,’А’..’Я’,’а’..’я’];
var s:string;
i,k:integer;
m:set of char;
begin
clrscr;
writeln(‘Введите текст’);
readln(s);
m:=[];
k:=0;
for i:=1 to length(s) do
if (s[i] in book)and not(s[i] in m) then
begin
k:=k+1;
m:=m+[s[i]];
end;
write(‘Количество различных букв=’,k);
end.

 

2. Дано предложение. Напечатать все различные слова.

program lab8z2;
uses crt;
var
a:string;
b:array[1..100]of string;
i,k,f,j:integer;
begin
writeln(‘Введите предложение: ‘);readln(a);
a:=’ ‘+a;
for i:=1 to length(a) do
if a[i]=’ ‘ then inc(k) else b[k]:=b[k]+a[i];
for i:=1 to k do
begin;
f:=0;
for j:=1 to i do
if (i<>j)and (b[i]=b[j]) then f:=1;
if f=0 then writeln (b[i]);
end;
end.

 

3.  

Вариант 9.

1. Вводится строка произвольного текста. Определить, в каком слове больше букв — в первом или последнем. (Слова разделены пробелами, не обязательно одиночными. В начале и в конце строки могут быть пробелы). Вывести на экран «В первом больше букв, чем в последнем» или «в последнем больше букв, чем в первом».

2. Дана последовательность, содержащая от 1 до 90 слов, в каждом из которых от 1 до 10 строчных русских букв; между соседними словами — не менее одного пробела, за последним словом — точка. Напечатать эти слова по алфавиту.

3. Удалить последнее слово и удвоить предпоследнее.

 

program lab8z31;
uses crt;
var s,a1,a2:string;
b:array[1..100] of string;
i,k,q,w:integer;
begin
writeln(‘Введите строку’);
readln(s);
s:=’ ‘+s;
for i:=1 to length(s) do if s[i]=’ ‘ then inc(k) else b[k]:=b[k]+s[i];
a1:=b[1];
a2:=b[k];
for i:=1 to length(a1) do q:=q+1;
for i:=1 to length(a2) do w:=w+1;
if q>w then writeln(‘В первом больше букв, чем в последнем.’);
if q<w then writeln(‘В последнем больше букв, чем в первом.’);
if q=w then writeln(‘В первом и последнем букв одинаково.’);
end.

 

program lab8z32;
uses crt;
const nmax=90;
var  n,i,j:integer;
a:array[1..nmax] of string;
c:string;
begin
clrscr;
write(‘Введи количество слов: ‘);readln(n);
for i:=1 to n do
begin write(i, ‘ слово: ‘);readln(a[i]); end;
writeln(‘Список по алфавиту: ‘);
for j:=n downto 2 do
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
c:=a[i];
a[i]:=a[i+1];
a[i+1]:=c
end;
for i:=1 to n do  writeln(a[i]);
end.

 

program lab8z33;
uses crt;
var s:string;
b:array[1..100] of string;
i,k:integer;
begin
writeln(‘Введите строку’);
readln(s);
s:=’ ‘+s;
for i:=1 to length(s) do
if s[i]=’ ‘then inc(k)else b[k]:=b[k]+s[i];
for i:=1 to k do
begin
if i=k then b[i]:=b[i-1];
write(b[i],’ ‘);
end;
end.

 

 

Добавить комментарий