:сформировать по строке a$ новую строку по правилу: если слово имеет нечётную длину, удалить в нём среднюю букву. qbasic набросок: dim a$ as string, back$ as string, b() as string, i as long, poz as long, n as long print "vvedite stroku"; input a$ back$ = a$: i = 1: n = 1 do poz = instr(i, a$, " ") if poz > 0 then n = n + 1 else exit do i = poz + 1 loop redim b(n) n = 1 do poz = instr(1, a$, " ") if poz > 0 then b(n) = left(a$, poz - 1) a$ = mid(a$, poz + 1) else exit do end if loop a$ = "" for i = 1 to n if len(b(i)) mod 2 = 1 then b(i) = left(b(i), (len(b(i)) - 1)/2) & mid(b(i), (len(b(i)) + 3)/2) a$ = a$ & b(i) & " " next i a$ = trim(a$) print "staraya stroka: " & back$ & chr(13) & chr(10) $ "novaya stroka: " & a$ end подскажите) и если можно исправленный вариант, премного .
157
342
Ответы на вопрос:
Принятые в программе дополнительные к условию соглашения: 1. разделителями между словами считаются любые символы, включенные к константу delim 2. все символы, не входящие в delim, образуют алфавит (т.е. "буквы"), из которого может быть составлено каждое слово 3. количество разделителей, окружающих каждое слово, ограничено только здравым смыслом. все разделители будут переданы в строку результата без изменения. 4. если слово содержит только один символ, оно не изменяется, несмотря на то, что единица - нечетное число. в противном случае такое слово было бы исключено. к тому же, слово длиной в один символ не имеет "средней буквы" const delim = " .,; : " dim s as string, s1 as string, word as string, wd as string dim i as integer, n as integer, k as integer input "введите строку: ", s 'обеспечить наличие пробела за последним словом if instr(delim, right$(s, 1)) = 0 then s = s + " " 'начальные присваивания n = len(s): s1 = "": i = 1 do while i < = n 'просматриваем входную строку символ за символом 'ищем первый непробельный символ wd = "" 'qq do while (instr(delim, mid$(s, i, 1)) < > 0) and (i < = n) wd = wd + mid$(s, i, 1) i = i + 1 loop 'выделяем очередное слово, за которым следует пробельный символ word = "" do while (instr(delim, mid$(s, i, 1)) = 0) and (i < = n) word = word + mid$(s, i, 1) i = i + 1 loop 'найдено ли слово? k = len(word) if k > 0 then 'если слово найдено ' вырезается средний символ при нечетной длине if (k > 1) and (k mod 2 < > 0) then k = (k - 1) \ 2 word = left$(word, k) + right$(word, k) end if ' 'добавляем найденное слово через wd к выходной строке s1 = s1 + wd + word end if loop print "результат: " + s1 end примеры работы программы: 1. обычный текст: слова через один пробел введите строку: а роза упала на лапу азора результат: а роза упла на лапу азра 2. использовано больше одного пробела и разделители : и ! введите строку: пример №2: ура! мы ломим: гнутся шведы! результат: пример №2: уа! мы лоим: гнутся швды! 3. использовано несколько непробельных разделителей подряд введите строку: пример --№3--: какое небо результат: пример --№3--: каое небо
1. вот так для чего-то решают в // pascalabc.net 3.2, сборка 1356 от 04.12.2016 var i,j,s: integer; begin // 1 s: =0; for i: =1 to 10 do s: =s+i*i; writeln(s); // 2 j: =0; for i: =1 to 50 do if i mod 2=0 then j: =j+1; writeln(j) end. результат 385 25 а вот так можно это решить по-нормальному за минуту. // pascalabc.net 3.2, сборка 1356 от 04.12.2016 // внимание! если программа не работает, обновите версию! begin writeln(1.to(10).select(i-> i*i).sum); // 1 writeln(range(2,50,2).count) // 2 end. результат 385 25
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Chirtulova22813.09.2020 07:31
-
sandershvnz03.12.2022 17:33
-
klimov20029301.11.2022 12:48
-
abdrahmanovamir12324.04.2023 14:45
-
123GEV21.04.2023 05:38
-
kirushka101015.11.2021 19:31
-
dashutadashuta200716.06.2021 14:24
-
Mider12316.08.2022 05:22
-
Groyve111.05.2022 18:25
-
nastushkaplushka14.12.2021 07:38
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.