Нужно написать подробное решение этих подпрограмм и сравнить что лучше использовать для решения процедуру или функцию и почему : процедура //uses crt; //подсчет количества слов в строке type arr = array[1..20] of string; procedure first(s: string; var a: arr; var k: integer); var t,i: integer; // переменные для хранения длины строки,количества вхождений символа в строку begin if s[1]=' ' then k: =1 else k: =2; t: =0; for i: = 1 to length(s) do begin if s[i]< > ' ' then begin t: =t+1 end else begin if s[i+1]< > ' ' then begin a[k]: =copy(s,i-t,t); t: =0; k: =k+1; end else t: =t+1; end; end; k: =k-1; end; //поиск n-ого слова procedure second(var s: string; a: arr; num: integer); var s2,l: string; i,h: integer; // переменные для хранения длинны строки,количества вхождений символа в строку begin num: =num+1; l: =a[num]; h: = pos(a[num],s); for i: =length(l) downto 1 do s2: =s2+l[i]; delete(s,h,length(l)); insert(s2,s,h); end; var s: string; a: arr; k: integer; begin //clrscr; readln(s); first(s,a,k); writeln('количество слов равно: ',k); {блок считает и выписывает слова из строки s в массив a, количество слов равно (k-1), при этом блок программы игнорирует пробелы в строке} second(s,a,2); writeln('строка после изменения: ',s); {выводим итоговое значение строки s с перевёрнутым вторым словом} readln; end. функция uses crt; type arr = array[1..20] of string; function first(s: string; var a: arr): integer; var k,i,t: integer; begin if s[1]=' ' then k: =1 else k: =2; t: =0; for i: = 1 to length(s) do begin if s[i]< > ' ' then begin t: =t+1 end else begin if s[i+1]< > ' ' then begin a[k]: =copy(s,i-t,t); t: =0; k: =k+1; end else t: =t+1; end; end; first: =k-1; end; function second(s: string; var a: arr; num: integer): string; var l,s2: string; i,h: integer; begin num: =num+1; l: =a[num]; h: = pos(a[num],s); for i: =length(l) downto 1 do s2: =s2+l[i]; delete(s,h,length(l)); insert(s2,s,h); second: =s; end; var s: string; a: arr; i,k: integer; begin clrscr; writeln('введите предложение : '); readln(s); k: =first(s,a); writeln('количество слов равно: ',k); s: =second(s,a,2); writeln('строка после изменения: ',s); readln; end.
201
449
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
MintTea105.07.2022 00:48
-
pe4enel02.05.2023 01:44
-
Бубльгум888806.05.2021 18:44
-
Artemko3117.10.2020 18:15
-
luneix12302.02.2020 14:22
-
dashalev251002.04.2021 03:07
-
abakanilaha23.12.2020 16:34
-
arturpushkin20245317.02.2020 21:29
-
big3109.08.2020 06:43
-
isakdzhanova08.06.2020 16:30
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.