Вопрос:

4. Составьте программу для замены в данном слове всюду: а) одной буквы на другую букву (ЭВМ должна запросить обе буквы); б части ДОМ на часть РОД; в) части ДЕТЕКТИВ на часть РОМАН. Например, текст ДЕТЕКТИВ БЕЗ ПОГОНИ - ЭТО НЕ ДЕТЕКТИВ должен стать таким: РОМАН БЕЗ ПОГОНИ — ЭТО НЕ РОМАН,

Смотреть решения всех заданий с листа

Ответ:

Программы на Бейсике:

а) Замена одной буквы на другую:

10 INPUT "Введите слово: ", S$$
20 INPUT "Введите букву, которую нужно заменить: ", OLDL$$
30 INPUT "Введите букву, на которую нужно заменить: ", NEWL$$
40 NEW_S$$ = ""
50 FOR I = 1 TO LEN(S$$)
60   IF MID$$(S$$, I, 1) = OLDL$$ THEN
70     NEW_S$$ = NEW_S$$ + NEWL$$
80   ELSE
90     NEW_S$$ = NEW_S$$ + MID$$(S$$, I, 1)
100  END IF
110 NEXT I
120 PRINT "Измененное слово: "; NEW_S$$
130 END
  • Объяснение:
  • Программа проходит по каждой букве исходного слова (S$$).
  • Если текущая буква совпадает с OLDL$$, то к новой строке NEW_S$$ добавляется NEWL$$.
  • Иначе, добавляется исходная буква.

б) Замена части "ДОМ" на "РОД":

10 INPUT "Введите слово: ", S$$
20 OLD_SUB$$ = "ДОМ"
30 NEW_SUB$$ = "РОД"
40 POS = INSTR(S$$, OLD_SUB$$)
50 IF POS = 0 THEN GOTO 90
60 LEFT_PART$$ = LEFT$$(S$$, POS - 1)
70 RIGHT_PART$$ = RIGHT$$(S$$, LEN(S$$) - POS - LEN(OLD_SUB$$) + 1)
80 S$$ = LEFT_PART$$ + NEW_SUB$$ + RIGHT_PART$$
90 PRINT "Измененное слово: "; S$$
100 END
  • Объяснение:
  • INSTR находит позицию подстроки "ДОМ".
  • Если найдена, слово разбивается на три части: до подстроки, сама подстрока и после подстроки.
  • Затем эти части собираются заново, но с заменой "ДОМ" на "РОД".
  • Эта программа заменяет только первое вхождение. Для замены всех вхождений, как в пункте (в), нужна другая логика.

в) Замена части "ДЕТЕКТИВ" на "РОМАН" (все вхождения):

10 INPUT "Введите текст: ", TEXT$$
20 OLD_SUB$$ = "ДЕТЕКТИВ"
30 NEW_SUB$$ = "РОМАН"
40 REPLACED_TEXT$$ = ""
50 START_POS = 1
60 WHILE START_POS <= LEN(TEXT$$)
70   POS = INSTR(START_POS, TEXT$$, OLD_SUB$$)
80   IF POS = 0 THEN
90     REPLACED_TEXT$$ = REPLACED_TEXT$$ + MID$$(TEXT$$, START_POS)
100    START_POS = LEN(TEXT$$) + 1 ' Выход из цикла
110  ELSE
120    REPLACED_TEXT$$ = REPLACED_TEXT$$ + MID$$(TEXT$$, START_POS, POS - START_POS)
130    REPLACED_TEXT$$ = REPLACED_TEXT$$ + NEW_SUB$$
140    START_POS = POS + LEN(OLD_SUB$$)
150  END IF
160 WEND
170 PRINT "Измененный текст: " + REPLACED_TEXT$$
180 END
  • Объяснение:
  • Программа ищет подстроку OLD_SUB$$ ("ДЕТЕКТИВ") в тексте TEXT$$, начиная с позиции START_POS.
  • Если подстрока найдена (POS > 0):
    • К результату REPLACED_TEXT$$ добавляется часть текста до найденной подстроки.
    • Затем добавляется новая подстрока NEW_SUB$$ ("РОМАН").
    • START_POS обновляется, чтобы поиск продолжился после найденной подстроки.
  • Если подстрока не найдена (POS = 0):
    • Вся оставшаяся часть исходного текста добавляется к результату, и цикл завершается.
  • В итоге REPLACED_TEXT$$ содержит весь текст с заменами.
ГДЗ по фото 📸
Подать жалобу Правообладателю

Похожие