О том как работать со строками в языке 1С 8 читайте здесь.
Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Общий план
Изначально предположим, что слово палиндром.
Сравним первую букву в слове с последней. Если не равны - слово не палиндром.
Далее сравним вторую букву с предпоследней. Если не равны - слово не палиндром.
Далее сравним третью букву с пред предпоследней ... и так далее, пока не дойдём до середины слова. Если до середины дошли и все буквы при сравнении совпадали - перед нами палиндром.
Подсказка
ввести строку от пользователя (Строка)
Начало =1
Конец = длина Строка
Палиндром =Истина
цикл пока (Начало < Конец):{
если символ из Строка под номером Начало не равен символу из Строка под номером Конец тогда
{
Палиндром =Ложь
прервать цикл
}
Начало = Начало +1
Конец = Конец -1}
если Палиндром =Истина тогда
вывести "строка палиндром"
иначе
вывести "строка не палиндром"
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Упражнение №8. Пользователь вводит текст. Нужно посчитать и вывести: количество слов, количество пробелов, количество знаков препинания.
Подсказки:
Пример: "Доброе утро, страна!"
Результат: 3 слова, 2 пробела и 2 знака препинания.
Общий план
Вводим от пользователя строку с текстом. Бежим по каждому символу этой строки. Если символ является буквой, то мы внутри какого-то слова (запомним это). Если же символ является пробелом или знаком препинания (а перед этим были на букве), то слово закончилось.
При переходе от одного слова к другому увеличиваем счётчик слов. Если встретили пробел, то увеличиваем счётчик пробелов. Если встретили знак препинания, то увеличиваем счётчик знаков препинания.
В конце выводим пользователю результаты подсчётов.
Подсказка
ввести от пользователя строку Текст
ЗнакиПрепинания ="`~!@#$%^&*()-=_+\|[]{};':"",.<>/?"
КоличествоСлов =0
КоличествоПробелов =0
КоличествоЗнаковПрепинания =0
МыВСлове =Ложь
цикл для А от 1 до (длина Текст):{
Символ = буква из строки Текст под номером А
если Символ =" " Или Символ содержится в строке ЗнакиПрепинания тогда
{
если МыВСлове =Истина тогда
КоличествоСлов = КоличествоСлов +1
МыВСлове =Ложь
если Символ =" " тогда
КоличествоПробелов = КоличествоПробелов +1
иначе
КоличествоЗнаковПрепинания = КоличествоЗнаковПрепинания +1} иначе
МыВСлове =Истина}
если МыВСлове =Истина тогда
КоличествоСлов = КоличествоСлов +1
вывести КоличествоСлов, КоличествоПробелов и КоличествоЗнаковПрепинания
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Упражнение №9. Пользователь вводит текст. Нужно построить и вывести словарь текста в отсортированном по длине слов виде - от самого короткого до самого длинного.
Подсказки:
Пример: "Мой дядя самых честных правил, когда не в шутку занемог".
Словарь: в не мой дядя самых когда шутку правил честных занемог
Общий план
Введём текст от пользователя. По уже известному нам из предыдущего упражнения алгоритму разобьём текст на отдельные слова и сложим их в массив.
Упорядочим массив (используя известный нам метод пузырька) по возрастанию длины слова и выведем слова пользователю.
Подсказка
ввести строку Текст от пользователя
привести Текст к нижнему регистру букв
ЗнакиПрепинания ="`~!@#$%^&*()-=_+\|[]{};':"",.<>/?"
объявить пустой массив Слова
ТекущееСлово =""
МыВСлове =Ложь
цикл для А от 1 до (длина Текст):{
Символ = символ из строки Текст под номером А
если Символ равен пробелу или является знаком препинания тогда
{
если МыВСлове =Истина тогда
{
добавить ТекущееСлово в массив Слова
ТекущееСлово =""}
МыВСлове =Ложь} иначе {
МыВСлове =Истина
ТекущееСлово = ТекущееСлово + Символ
}}
если МыВСлове =Истина тогда
{
добавить ТекущееСлово в массив Слова
}
сортируем массив Слова по длине слов (используя метод пузырька описанный ранее)
выводим все элементы массива Слова
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Для учеников
Второй модуль - самый сложный в школе. Если вы не программировали ранее - приготовьтесь к тому, что не сможете решить некоторые из задач с первого раза и без подсказок.
Поэтому вовремя останавливайтесь и спрашивайте преподавателя, если что-то не понятно даже с подсказками.
В крайнем случае, пройдите все оставшиеся модули школы, а затем вернитесь с новыми силами к решению задач второго модуля.