Глава 1
Задача 1.7 Разделитель строк 4
Напишите программу, в которой пользователь вводит строку.
Программа должна вывести каждое слово с новой строки и сделать это надо
в несколько отдельных компонентов, как например в Список, ПолеСоСписком и тд.
Решение
В этой программе создана отдельная процедура ВзятьСлово(),
которая ищет слово и выводит его в разные компоненты. Эта процедура
вызывается в цикле Пока, критерием окончания которого является возвращаемое
значение функции НеКонецПредложения(). Интересно, что здесь можно выводить
слова пошагово вызывая процедуру ВзятьСлово() нажатием кнопки Шаг.
Хорошая программа!
Код программы
//Автор Ф.В.Заглядов
//*
//*
Перем Буфер,й,Метка1;
//*******************************************
Функция НеКонецПредложения()
Если 1=ПустаяСтрока(Буфер) Тогда
Возврат 0;
Иначе
Возврат 1;
КонецЕсли;
КонецФункции
//-------------------------------------------
Процедура Старт()
Буфер=Предложение;
й=0;
Слова="";
Список.УдалитьВсе();
ПолеСоСписком.УдалитьВсе();
Метка1="";
Табл1.УдалитьСтроки();
КонецПроцедуры
//-------------------------------------------
Процедура ВзятьСлово()
й=й+1;
Буфер=СокрЛ(Буфер);
Пробел=Найти(Буфер," ");
Если 0=Пробел Тогда
Слово=Буфер;
Буфер="";
Иначе
Слово=Лев(Буфер,Пробел-1);
Буфер=Сред(Буфер,Пробел+1);
КонецЕсли;
Сообщить(""+й+"."+Слово+"("+Буфер+")");
Слова=Слова+"="+й+"."+Слово+РазделительСтрок;
Список.ДобавитьЗначение(Слово);
ПолеСоСписком.ТекущаяСтрока(1);
ПолеСоСписком.ДобавитьЗначение(Слово);
Метка1=Метка1+"="+й+"."+Слово+РазделительСтрок;
Табл1.НоваяСтрока();
Табл1.УстановитьЗначение(й,"ном",й);
Табл1.УстановитьЗначение(й,"Слова",Слово);
КонецПроцедуры
//-------------------------------------------
Процедура Сформировать()
Старт();
Пока (1=НеКонецПредложения()) И (й<10) Цикл
ВзятьСлово();
КонецЦикла;
КонецПроцедуры
Предложение="Привет как дела";
Старт();
Табл1.НоваяКолонка("ном",,,,"№",3,,);
Табл1.НоваяКолонка("Слова",,,,"Слова",10,,);
Назад |
Начало урока |
Вверх |
Вперед
Содержание