Символьный массив 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.

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

  1. Создаётся одномерный массив char a размером 80x1.
  2. Создаётся одномерный массив integer l размером 80x1.
  3. Создаётся одномерный массив char space размером 80x1.
  4. Создаётся одномерный массив char tochka размером 80x1.
  5. Создаётся одномерный массив byte p, q, st, sch размером 80x1.
  6. Строка, вводимая пользователем, сохраняется в переменной str.
  7. Переменная p и переменная st инициализируются.
  8. Если введенная строка пуста, выводится сообщение «Введённая строка пуста».
  9. Иначе, в цикле: — Выводится сообщение «Будем проводить проверку слов? 1 - да, 0 - нет». — Вводится ответ пользователя. — Если ответ пользователя равен 1, выводится сообщение «Проверка не была произведена». — Если ответ пользователя равен 0, выводится сообщение «Введите 1 символ для сравнения окончания слова». — Вводится символ. — Вычисляется длина введенного символа. — Вычисляется позиция пробела в введенном символе. — Если пробел отсутствует, выводится сообщение «Строка пуста или было введено более 1 символа для проверки». — Если пробел есть, вычисляется длина слова, оканчивающегося на введенный символ. — Если длина слова равна длине введенного символа, выводится сообщение «Слово оканчивается на заданную букву». — Если длина слова больше длины введенного символа, выводится сообщение «Слово не оканчивается на заданную букву».
  10. Выводится количество слов, удовлетворяющих условию.
  11. Цикл завершается.
  12. Выводится сообщение «Количество слов удовлетворяющих условию: ».
  13. Завершается программа.

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


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

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

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