|
|||
1. Постановка задачи. Дано: s – строка символов из слов, разделенных символом пробела. Надо: вывести список слов строки. Находим позицию i-того символа пробела, начиная с первого символа с помощью функции pos. Если i<>0 (пробел найден), выделяем сим ⇐ ПредыдущаяСтр 2 из 2 1. Постановка задачи Дано: s – строка символов из слов, разделенных символом пробела. Надо: вывести список слов строки. Находим позицию i-того символа пробела, начиная с первого символа с помощью функции pos. Если i< > 0 (пробел найден), выделяем символы, начиная с 1 по i-1 в отдельную строку с помощью функции copy. Удаляем текущее слово из строки с помощью процедуры delete: начиная с 1 символа, удаляем i символов (слово вместе с разделяющим пробелом). 2. Программный код: write(‘Введите предложение: ‘); readln(s); repeat i: =pos(‘ ‘, s); if i< > 0 then begin w: =copy(s, 1, i-1); delete(s, 1, i); end else w: =s; writeln(‘слово: ’, w); until i=0;
Пример 3. Составьте программу разбиения строки на слова с формированием из них массива (поскольку заранее неизвестно количество слов в строке, создайте массив w, заведомо больший количества слов n). Программный код: var s: string; i, n: integer; w: array [1.. 200] of string; begin write(‘Введите предложение: ‘); readln(s); n: =1; repeat i: =pos(‘ ‘, s); if i< > 0 then begin w[n]: =copy(s, 1, i-1); n: =n+1; delete(s, 1, i); end else w[n]: =s; until i=0; for i: =1 to n do writeln(w[i]); end.
Пример 4. Составьте программу поиска самого длинного слова во введенной строке. К программе примера 3 следует дописать код: m: =1; for i: =2 to N do if length(w[i])> length(w[m]) then m: =i; writeln(‘Самая длинная строка ‘, w[m], ’ под номером ‘, m);
Контрольные вопросы 1. Как описываются строковые переменные? 2. Какова максимальная длина строки в Pascal? 3. Какие операции допустимы над строками? 4. Назовите стандартные процедуры и функции для работы со строками. 5. В чем отличие строковой переменной от массива символов? Задания для самостоятельного выполнения 1. Создайте две строки из больших и малых русских букв. 2. Найдите номера букв из введенного слова в массивах, сформированных в задании 1. 3. Разбейте введенную строку на слова, учитывая, что слова могут разделяться пробелами, запятыми и точками. 4. Удалите из строки самое длинное слово. 5. Преобразуйте введенное предложение так, чтобы последовательность слов не изменилась, а сами слова были задом наперед (‘Hello world’ => ’olleH dlrow’, воспользуйтесь инверсией одномерного массива)
|
|||
|