Поменять местами слово, начинающееся на 'a', со словом, оканчивающимся на 'я' - Turbo Pascal
Формулировка задачи:
задание: Поменять местами слово, начинающееся на 'a', со словом, оканчивающимся на 'я', при условии, что такие слова существуют и являются единственными
Исходные данные - строка слов, разделенных пробелом, результат - массив слов, длина слова - [4-9] символов, количество слов 8
помогите плииз
Решение задачи: «Поменять местами слово, начинающееся на 'a', со словом, оканчивающимся на 'я'»
textual
Листинг программы
uses crt; const n=10; var X:array[1..n] of string[10]; i,i1,i2,k:byte; s:string[10]; begin clrscr; writeln('Программа обработки данных строкового типа'); writeln('Введите ', n,' слов из 4-10 руских букв'); For i:=1 to n do begin write(i, '-e слово '); readln(x[i]); end; k:=0;i1:=0; For i:=1 to n do if x[i][1]='а'then begin k:=k+1; i1:=i; end; if k=0 then begin write('Слова на букву а нет, работа программы завершена!'); readln; exit; end; if k>1 then begin write('Слова на букву а несколько, работа программы завершена!'); readln; exit; end; k:=0;i2:=0; For i:=1 to n do if x[i][length(x[i])]='я'then begin k:=k+1; i2:=i; end; if k=0 then begin write('Слова, оканчивающегося на букву я нет, работа программы завершена!'); readln; exit; end; if k>1 then begin write('Слов,оканчивающегося на букву я несколько, работа программы завершена!'); readln; exit; end; s:=x[i1]; x[i1]:=x[i2]; x[i2]:=s; writeln('Обмен слов:'); For i:=1 to n do write(' ',x[i]); readln end.
Объяснение кода листинга программы
- Создается переменная
n
, которая представляет собой число от 1 до 10. - Создается массив
X
типаstring[10]
, который будет использоваться для хранения введенных слов. - Создаются три переменные
i
,i1
иi2
, которые будут использоваться для цикла. - Создается переменная
k
, которая будет использоваться для отслеживания количества слов на буквуа
. - Создается переменная
s
, которая будет использоваться для временного хранения слова. - Запускается цикл
for
, который выполняетсяn
раз. В каждой итерации цикла пользователю предлагается ввести слово из 4-10 русских букв. - Внутри цикла
if
проверяется, начинается ли введенное слово с буквыа
. Если это так, то увеличивается значение переменнойk
на единицу и значения переменныхi
иi1
меняются местами. - Если после выполнения всех итераций цикла
k
равно нулю, то выводится сообщение о том, что слов на буквуа
нет. - Если после выполнения всех итераций цикла
k
больше единицы, то выводится сообщение о том, что слов на буквуа
несколько. - Аналогично предыдущему пункту, происходит проверка на окончание слова на букву
я
. Если это так, то увеличивается значение переменнойk
на единицу и значения переменныхi
иi2
меняются местами. - Если после выполнения всех итераций цикла
k
равно нулю, то выводится сообщение о том, что слов, оканчивающихся на буквуя
, нет. - Если после выполнения всех итераций цикла
k
больше единицы, то выводится сообщение о том, что слов, оканчивающихся на буквуя
, несколько. - Внутри цикла
for
происходит обмен словами, хранящимися в массивеX
. Для этого значения переменныхi1
иi2
меняются местами. - Выводится сообщение с обменом слов.
- Программа завершается и пользователь может выйти из нее с помощью команды
readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д