Форум программистов, компьютерный форум, киберфорум
Наши страницы
QBasic
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
наташка-ромашка
0 / 0 / 0
Регистрация: 22.12.2010
Сообщений: 21
#1

Удалить из текста слова с нечетными номерами и перевернуть слова с четными - QBasic

31.03.2011, 16:27. Просмотров 1151. Ответов 5
Метки нет (Все метки)

Отредактировать заданное предложение текста,удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами.


Например, HOW DO YOU DO -> OD OD
http://www.cyberforum.ru/qbasic/thread1542253.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2011, 16:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить из текста слова с нечетными номерами и перевернуть слова с четными (QBasic):

Как в массиве A(400) найти суммы элементов с четными и нечетными номерами отдельно
я набросил вариант, че-то не получается: CLS DIM A(400) FOR I = 1 TO 400...

В исходной строке а$ определить все слова, отличные от последнего слова. Вывести эти слова в столбик
Помогите решить: В исходной строке а$ определить все слова, отличные от...

Ввести с клавиатуры слово и символ. Перевернуть введенное слово. Вставить символ в середину слова
Ввести с клавиатуры слово и символ. Перевернуть введенное слово. Вставить...

Напечатать все слова, перенеся в них первую букву в конец слова
Дан текст, состоящий из слов: между словами произвольное число пробелов, после...

Требуется переставить слова местами в соответствии с увеличением длины слова
Дана произвольная фраза. Требуется переставить слова местами в соответствии с...

5
softmob
1249 / 699 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
31.03.2011, 17:51 #2
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CLS
INPUT "vvedate text"; a$
a$ = LTRIM$(RTRIM$(a$))
n = LEN(a$)
q$ = " "
k = 1
FOR i = 1 TO n
    IF MID$(a$, i, 1) = q$ THEN k = k + 1
NEXT
DIM e(k - 1), d$(k)
FOR i = 1 TO n
    IF MID$(a$, i, 1) = q$ THEN r = r + 1: e(r) = i
NEXT
FOR i = 1 TO k
    SELECT CASE i
        CASE IS = 1
            d$(1) = MID$(a$, 1, e(1) - 1)
        CASE IS = k
            d$(k) = MID$(a$, e(r) + 1, n)
        CASE 2 TO (k - 1)
            d$(i) = MID$(a$, e(i - 1) + 1, e(i) - e(i - 1) - 1)
    END SELECT
NEXT
FOR i = 2 TO k STEP 2
    w$ = ""
    FOR j = 1 TO LEN(d$(i))
        w$ = MID$(d$(i), j, 1) + w$
    NEXT
    z$ = z$ + w$ + " "
NEXT
PRINT z$
2
кот Бегемот
Платежеспособный зверь
8447 / 3886 / 1511
Регистрация: 28.10.2009
Сообщений: 10,062
31.03.2011, 20:13 #3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

А так, по-моему, гораздо проще:

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
INPUT a$
a$ = LTRIM$(a$)
a$ = a$ + " "
FOR i = 1 TO LEN(a$)
IF MID$(a$, i, 1) <> " " THEN
b$ = MID$(a$, i, 1) + b$
ELSE
k = k + 1
IF k MOD 2 = 0 THEN c$ = c$ + b$ + " "
b$ = ""
END IF
NEXT
PRINT c$
2
softmob
1249 / 699 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
31.03.2011, 20:30 #4
да проще. но программу не с нуля писал, только добавил к имеющийся на компе проге еще пару строк(времени не много было)
1
кот Бегемот
Платежеспособный зверь
8447 / 3886 / 1511
Регистрация: 28.10.2009
Сообщений: 10,062
31.03.2011, 20:39 #5
никаких претензий, просто другой вариант
1
Quiet Snow
4398 / 1282 / 374
Регистрация: 25.04.2010
Сообщений: 3,272
01.04.2011, 05:58 #6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Без контроля ввода. Контроль ввода для данного типа задач, должен обеспечивать правильное выполнение алгоритма. Т.е. это отсечение нескольких разделителей между словами и устранение разделителей по краям строки. Надо будет напишу.
PureBasic
1
2
3
4
5
6
7
8
9
  CLS
     INPUT "Vvedite predlogenye : "; P$
DO: k = INSTR(P$, " ")
     IF k = 0 THEN S$ = P$ ELSE S$ = LEFT$(P$, k - 1): P$ = MID$(P$, k + 1)
     IF S THEN FOR i = LEN(S$) TO 1 STEP -1: N$ = N$ + MID$(S$, i, 1): NEXT
     N$ = N$ + SPACE$(S * SGN(k))
     S = 1 - S      '(триггер)
LOOP UNTIL k = 0
  PRINT "Novoe predlogenye : "; N$
1
01.04.2011, 05:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2011, 05:58
Привет! Вот еще темы с решениями:

Вывести слова, перед которыми стоят меньше по длине слова
Большая просьба: помогите решить задачу!!! Она в прикреплённом файле! Заранее...

Сформировать и вывести слова, буквы, в которых являются всевозможными перестановками букв исходного слова
По заданному слову а$ сформировать и вывести слова, буквы, в которых являются...

В исходной строке а$ определить и вывести слова, перед которыми стоят младшие по алфавиту слова
Задача 1. В исходной строке а$ определить и вывести слова, перед которыми...

Составьте программу подсчета гласных букв слова x, что используются при написании слова z
Помогите решить задачку) 2. Составьте программу подсчета гласных букв слова x,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru