Хелпикс

Главная

Контакты

Случайная статья





Решение задач. Строковый тип



Решение задач. Строковый тип

 

 

Пример 1.

Дано слово, состоящее из четного числа букв. Вывести на экран его первую половину.

 

Var i,x:byte;

a:string;

begin

repeat

write('Введите слово из четного числа букв');

readln(a);

x:=length(a); {определяем длину слова}

until (x mod 2 = 0);

x:= x div 2; {применяем целочисленное деление}

for i:=1 to x do write(a[i]);

readln

end.

 

Пример 2.

Составить программу, которая печатает заданное слово в обратном порядке.

 

Var i,x:byte;

a:string;

begin

write('Введите слово ');

readln(a);

x:=length(a);{определяем длину слова}

for i:=x downto 1 do write(a[i]);

readln

end.

 

Пример 3.

Дано предложение. Определить число пробелов в нем.

 

Var i,x,k:byte;

a:string;

begin

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

readln(a);

x:=length(a); {определяем длину слова}

k:=0;

for i:=1 to x do if a[i]=' ' then k:=k+1;

writeln(k);

readln

end.

 

Пример 4.

Дано предложение. Определить порядковый номер первой встреченной буквы 'к'. Если такой буквы нет, сообщить об этом.

 

Var i,x,k,f:byte;

a:string;

begin

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

readln(a);

x:=length(a);{определяем длину слова}

k:=0; I:=0; f:=0;

repeat

I:=I+1;

if a[i]<>'к' then k:=k+1 else f:=1;

until (I=x)or( a[i]='к' );

if f=1 then writeln(k) else writeln(' Нет такой буквы');

readln

end.

 

 

Пример 5. Дано название города. Определить, четно или не четно количество символов в нем.

 

Var x:byte;

a:string;

begin

write('Введите слово');   

readln(a);

x:=length(а);    

if odd(x) then write('не четно') else write('четно');

readln

end.

 

Значение функции odd(x) истинно, если число x не четное.

 

 

Пример 6. Проверьте, является ли строка палиндромом.

 

var

s: string;

i,f: byte;

begin

write('String: ');

readln(s);

f := 0;

for i := 1 to length(s) div 2 do

   if s[i] <> s[length(s)-i+1] then begin { сравниваем символы}

       writeln('No palindrome');

       f := 1;

       break

   end;

if f = 0 then

   write('Palindrome');

readln

end.

 

Пример 7. В строке, состоящей из слов, разделенных пробелами, определить длину кратчайшего и самого длинного слов.

 

Описание переменных:

str - исходная строка,

len - длина исходной строки,

shortest, longest - длины самого короткого и самого длинного слов,

current - длина текущего слова.

Алгоритм решения задачи:

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

Если очередной символ - это пробел, то сравниваем значение current со значениями записанными в переменных shortest и longest. При необходимости меняем их значения на то, что находится в current. Значение current обнуляем.

Чтобы сравнить длину последнего слова (ведь пробела после него может не быть, и, следовательно, current не сравнивается с shortest и longest), предусмотрено сравнение переменных за циклом.

Программа на языке Паскаль:

var

str: string;

len, i: byte;

shortest, longest, current: byte;

begin

readln(str);

len := length(str);

shortest := 255;

longest := 0;

current := 0;

for i:=1 to len do begin

   if (str[i] <> ' ') then

       current := current + 1

   else begin

       if current < shortest then

           shortest := current;

       if current > longest then

           longest := current;

       current := 0;

   end;

end;

if current < shortest then

   shortest := current;

if current > longest then

   longest := current;

 

writeln(shortest, ' ', longest);

readln;

end.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.