Распечатать все слова четной длины, в которых нет удвоенной буквы Н - PascalABC.NET
Формулировка задачи:
уважаемые эксперты
помогите пожалуйста с заданием
27.1. Дана матрица размером 6Х6 элементов, случайным образом заполненная. Сформировать одномерный массив В, где В(j) равно среднему арифметическому значению всех индексов наибольшего и наименьшего элементов в jом столбце.
27.2. Дана произвольная строка символов. Распечатать все слова четной длины, в которых нет удвоенной буквы Н. (н). Если таких слов нет, то выдать сообщение.
помогите буду очень благодарен заранее спаибо
ребят потскажите пожалуйста срочняк надо
завтра контроха !
Решение задачи: «Распечатать все слова четной длины, в которых нет удвоенной буквы Н»
textual
Листинг программы
uses crt; var s,sl,sc: string; i,k,j,n: integer; begin write('s='); readln(s); s:=s+' '; sl:=''; writeln('Слова четной длины без "нн"'); for i:=1 to length(s) do if s[i]<>' ' then sl:=sl+s[i] else begin if (length(sl) mod 2=0) and (length(sl)<>0) then begin n:=0; for j:=1 to length(sl)-1 do if ((sl[j]='н') and (sl[j+1]='н')) or ((sl[j]='Н') and (sl[j+1]='Н')) then inc(n); if n=0 then begin write (sl,' '); inc(k); end; end; sl:=''; end; if k=0 then writeln('Таких слов нет'); end.
Объяснение кода листинга программы
- uses crt; - Импортируем необходимые модули для работы с консолью
- var s,sl,sc: string; - Объявляем три переменные типа строка
- i,k,j,n: integer; - Объявляем четыре переменные типа целое число
- write('s='); - Выводим запрос на ввод строки
- readln(s); - Считываем введенную строку
- s:=s+' '; - Добавляем пробел в конец строки
- sl:=''; - Инициализируем переменную для хранения промежуточных результатов
- writeln('Слова четной длины без
нн
'); - Выводим заголовок цикла - for i:=1 to length(s) do - Запускаем цикл по всем символам строки
- if s[i]<>' ' then sl:=sl+s[i] - Добавляем в переменную sl все символы кроме пробелов
- else - Если текущий символ - пробел
- begin - Запускаем блок проверки
- if (length(sl) mod 2=0) and (length(sl)<>0) then - Проверяем, что длина строки четная и больше нуля
- begin - Запускаем блок проверки
- n:=0; - Инициализируем счетчик
- for j:=1 to length(sl)-1 do - Запускаем цикл по всем символам строки кроме последнего
- if ((sl[j]='н') and (sl[j+1]='н')) - Проверяем наличие удвоенной буквы
н
- or ((sl[j]='Н') and (sl[j+1]='Н')) - Проверяем наличие удвоенной буквы
Н
- then inc(n); - Увеличиваем счетчик, если условие выполняется
- end; - Завершаем блок проверки
- if n=0 then - Если счетчик равен нулю
- begin - Запускаем блок проверки
- write (sl,' '); - Выводим промежуточный результат на экран
- inc(k); - Увеличиваем счетчик найденных слов
- end; - Завершаем блок проверки
- sl:=''; - Очищаем переменную sl для следующего цикла
- end; - Завершаем блок проверки
- if k=0 then writeln('Таких слов нет'); - Если счетчик равен нулю, выводим сообщение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д