Распечатать все слова четной длины, в которых нет удвоенной буквы Н - 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.

Объяснение кода листинга программы

  1. uses crt; - Импортируем необходимые модули для работы с консолью
  2. var s,sl,sc: string; - Объявляем три переменные типа строка
  3. i,k,j,n: integer; - Объявляем четыре переменные типа целое число
  4. write('s='); - Выводим запрос на ввод строки
  5. readln(s); - Считываем введенную строку
  6. s:=s+' '; - Добавляем пробел в конец строки
  7. sl:=''; - Инициализируем переменную для хранения промежуточных результатов
  8. writeln('Слова четной длины без нн'); - Выводим заголовок цикла
  9. for i:=1 to length(s) do - Запускаем цикл по всем символам строки
  10. if s[i]<>' ' then sl:=sl+s[i] - Добавляем в переменную sl все символы кроме пробелов
  11. else - Если текущий символ - пробел
  12. begin - Запускаем блок проверки
  13. if (length(sl) mod 2=0) and (length(sl)<>0) then - Проверяем, что длина строки четная и больше нуля
  14. begin - Запускаем блок проверки
  15. n:=0; - Инициализируем счетчик
  16. for j:=1 to length(sl)-1 do - Запускаем цикл по всем символам строки кроме последнего
  17. if ((sl[j]='н') and (sl[j+1]='н')) - Проверяем наличие удвоенной буквы н
  18. or ((sl[j]='Н') and (sl[j+1]='Н')) - Проверяем наличие удвоенной буквы Н
  19. then inc(n); - Увеличиваем счетчик, если условие выполняется
  20. end; - Завершаем блок проверки
  21. if n=0 then - Если счетчик равен нулю
  22. begin - Запускаем блок проверки
  23. write (sl,' '); - Выводим промежуточный результат на экран
  24. inc(k); - Увеличиваем счетчик найденных слов
  25. end; - Завершаем блок проверки
  26. sl:=''; - Очищаем переменную sl для следующего цикла
  27. end; - Завершаем блок проверки
  28. if k=0 then writeln('Таких слов нет'); - Если счетчик равен нулю, выводим сообщение

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы