![]()
|
|||||||
Решение задач. Строковый типРешение задач. Строковый тип
Пример 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.
|
|||||||
|