Символьный массив char - Pascal
Формулировка задачи:
1. Описать символьный массив длиной 80 символов.
2. Ввести предложение, состоящее из слов, разделенных пробелами.
. Слово заканчивается заданной буквой.
4. Массив просмотреть до точки, если она есть, или до последнего введеного символа. Выдать слова с указанием их длины, слова, удовлетворяющие заданию, пометить примечанием, например, "Начинается на заданную букву".
5. В случае исключительных ситуаций выдать сообщение
СТРОКА ПУСТА
СЛОВ, УДОВЛЕТВОРЯЮЩИХ ЗАДАНИЮ, НЕТ
СЛОВО ЕДИНСТВЕННОЕ
если можно с коментами
Решение задачи: «Символьный массив char»
textual
Листинг программы
uses crt; var a:array[1..80] of string; {одномерный массив} str,sl,by,by1:string; {предложение,} l:array[1..80] of integer; {оддномерный массив} maxl,i:integer; {} space,tochka:char; {пробел ,точка} p,q,st,sch:byte; {} begin clrscr; maxl:=0; p:=0; space:=' '; tochka:='.'; sch:=0; writeln('Введите предложение:'); readln(str); p:=pos(tochka,str); if p>0 then str:=copy(str,1,p-1); repeat st:=length(str); by1:=copy(str,st,st); if by1=space then str:=copy(str,1,st-1) else i:=1; until i=1; i:=0; repeat p:=pos(space,str); if p=1 then Delete(str,p,1) else begin i:=i+1; a[i]:=copy(str,1,p-1); Delete(str,1,p); l[i]:=length(a[i]); if maxl<l[i] then maxl:=l[i]; end; until p=0; if l[1]=0 then write ('Введенная строка пуста') else begin repeat writeln ('Будем проводить проверку слов? 1 - да, 0 - нет'); readln(q); until (q=1) or (q=0); if q=0 then begin writeln ('Проверка не была произведена'); for p:=1 to i do begin writeln('слово №',p:2,':',a[p]:maxl,' (Длина слова =',l[p]:3,') Примечание: отсутсвует'); end; end else begin writeln ('Введите 1 символ для сравнения окончания слова'); readln (by); st:=length(by); p:=pos(space,by); if (st=0) or (st>=2)or (p=1) then begin writeln ('Проверка не была произведена'); writeln ('Строка пуста или было введено более 1 символа для проверки'); sl:='отсутствует' end else begin for p:=1 to i do begin st:=length(a[p]); by1:=copy(a[p],st,st); if by=by1 then begin sl:='Слово оканчивается на заданную букву'; inc(sch); end else sl:='Слово не оканчивается на заданную букву'; writeln('слово №',p:2,':',a[p]:maxl,' (Длина слова =',l[p]:3,') Примечание: ',sl); end; writeln ('Количество слов удовлетворяющих условию: ',sch); end; end; end; readln; end.
Объяснение кода листинга программы
- Создаётся одномерный массив char a размером 80x1.
- Создаётся одномерный массив integer l размером 80x1.
- Создаётся одномерный массив char space размером 80x1.
- Создаётся одномерный массив char tochka размером 80x1.
- Создаётся одномерный массив byte p, q, st, sch размером 80x1.
- Строка, вводимая пользователем, сохраняется в переменной str.
- Переменная p и переменная st инициализируются.
- Если введенная строка пуста, выводится сообщение «Введённая строка пуста».
- Иначе, в цикле: — Выводится сообщение «Будем проводить проверку слов? 1 - да, 0 - нет». — Вводится ответ пользователя. — Если ответ пользователя равен 1, выводится сообщение «Проверка не была произведена». — Если ответ пользователя равен 0, выводится сообщение «Введите 1 символ для сравнения окончания слова». — Вводится символ. — Вычисляется длина введенного символа. — Вычисляется позиция пробела в введенном символе. — Если пробел отсутствует, выводится сообщение «Строка пуста или было введено более 1 символа для проверки». — Если пробел есть, вычисляется длина слова, оканчивающегося на введенный символ. — Если длина слова равна длине введенного символа, выводится сообщение «Слово оканчивается на заданную букву». — Если длина слова больше длины введенного символа, выводится сообщение «Слово не оканчивается на заданную букву».
- Выводится количество слов, удовлетворяющих условию.
- Цикл завершается.
- Выводится сообщение «Количество слов удовлетворяющих условию: ».
- Завершается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д