|
|||||||||||||||||||||||||||||||||||
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ОБРАБОТКИ СТРОКОВЫХ ДАННЫХ3. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ОБРАБОТКИ СТРОКОВЫХ ДАННЫХ 3.1 Перестановка символов. Поменять местами первый и второй символ в заданном слове произвольной длины. Возможное решение: PROGRAM Str; var t: string; c: char; begin writeln('Введите слово'); readln(t); {ввод слова} c:=t[1]; {перестановка первого и второго символа} t[1]:=t[2]; t[2]:=c; writeln('Ответ: ',t) {печать строки, полученной в результате перестановки } end. 3.2 Обработка списка строк. Задан список из 6 слов. Определить, сколько слов списка начинается на букву «А». Одно из возможных решений данной задачи имеет следующий вид: PROGRAM Spisok; Var s: string[20]; i, k: integer; begin k:=0; for i:=1 to 6 do begin writeln('Введите слово'); readln(s); if s[1]='А' then k:=k+1 {Сравнение первой буквы слова с буквой А} end; writeln(‘k=’,k) end. 3.3 Нахождение наиболее короткого слова списка. Задан список из 8 слов. Найти самое короткое слово в списке. Если таких слов несколько, то распечатать их в один столбец. Решение поставленной задачи сводится к нескольким этапам: ввести список слов в виде массива строковых переменных; подсчитать длину каждой строки; определить наименьшую из длин; распечатать те строки массива, длина которых совпадает с наименьшей. Пример возможного решения поставленной задачи: PROGRAM Str_min; type M_st=array[1..8] of string[20]; M_int=array[1..8] of integer; var s: M_st; n: M_int; i, min: integer; begin for i:=1 to 8 do begin writeln('Введите слово'); readln(s[i]); n[i]:=length(s[i]) {Вычисление количества букв в i-ом слове } end; min:=n[1]; for i:=2 to 8 do if min>n[i] then min:=n[i]; {Нахождение наименьшего из количеств букв} writeln(‘Наиболее короткое слово’); for i:=1 to 8 do if n[i]=min then writeln(s[i]) {Печать слов, состоящих из наименьшего количества букв} end. В данной программе для обозначения слов используется массив строковых переменных s, для обозначений соответствующих им длин слов – целочисленный массив n. Наименьший элемент массива n хранится в виде переменной min. 3.4 Разработать программу, удаляющую из вводимой с клавиатуры строки пробелы между словами и записывающую в массив N длину (число символов) каждого слова. Длина текста – не более 80 символов. Число слов – не более 10. Наличие более одного символа ‘пробел’ подряд свидетельствует о конце строки. Используемые в программе идентификаторы приведены в таблице 3.1. Табл. 3.1
Текст программы Program Prim1; Uses Crt; Label 4; VAR N: ARRAY [1..10] OF INTEGER; I, J, K, L: INTEGER; A: STRING [80]; PR, OTVET:BYTE; BEGIN CLRSCR; REPEAT REPEAT WRITELN (' Введите через пробел'); READLN (A); WRITELN('Исходная строка'); WRITELN(A); WRITELN ('Работаем дальше? 1 -да,0 -нет'); READLN (OTVET); UNTIL OTVET=1; K:=0; L:=0; PR:=0; FOR I:=1 TO length(a) DO IF (A[I]= ' ') THEN BEGIN L:=L+1; N[L]:=K; IF (A[I+1]=' ')THEN GOTO 4; FOR J:=i TO length(a) DO A[J]:= A[J+1]; K:=1 END ELSE begin K:=K+1; N[L+1]:= K-l; end; 4:WRITELN ('Результирующая строка'); WRITELN (A); WRITELN ('№ слова число букв'); FOR I:=1 TO L+1 DO WRITELN (' N[',I,'] =',N[I]:6); WRITELN('Обработать еще одну строку? 1 –да 0 -нет'); READLN(PR); UNTIL PR=0 END.
|
|||||||||||||||||||||||||||||||||||
|