Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 1
1

Если слово имеет нечётную длину, удалить в нём среднюю букву

30.04.2015, 15:46. Показов 793. Ответов 1
Метки нет (Все метки)

Сформировать по строке a$ новую строку по правилу: если слово имеет нечётную длину, удалить в нём среднюю букву.
Ps. Заранее благодарю

Добавлено через 1 час 6 минут
QBasic/QuickBASIC
1
2
3
4
5
6
7
INPUT "Vvedi stroku: ", s$
n = LEN(s$)
IF n MOD 2 <> 0 THEN
   s$ = LEFT$(s$, (n - 1) / 2) + RIGHT$(s$, (n - 1) / 2)
END IF
PRINT s$
END
Ps. На одно слово быстро набросал, а вот если ввести предложение, чтобы он с каждом словом провел операцию ума не приложу...

Добавлено через 14 часов 22 минуты
Написал, если кому нибудь понадобится:
QBasic/QuickBASIC
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
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 "Vvedite stroku: ", s
IF INSTR(delim, RIGHT$(s, 1)) = 0 THEN s = s + " "
n = LEN(s): s1 = "": i = 1
DO WHILE i <= n 
wd = ""
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
s1 = s1 + wd + word
END IF
LOOP
PRINT " rezultat: " + s1
END
Тему можно закрывать
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2015, 15:46
Ответы с готовыми решениями:

Если слово имеет четную длину, удалить в нем вторую букву
Сформировать по строке а новую строку по правилу:если слово имеет четную длину,удалить в нем вторую...

Если слову имеет нечетную длину, удалить в нем все буквы "а"
сформировать по строке А новую строку по правилу:если слову имеет нечетную длину,удалить в нем все...

В словах заданной строки, имеющих нечетную длину, удалить среднюю букву
Ввести несколько строк, каждая из которых содержит некоторое количество слов. В словах заданной...

Дано слово если длина слова нечетная то удалить среднюю букву а если четное то удалить две средне
Дано слово если длина слова нечетная то удалить среднюю букву а если четное то удалить две...

1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.11.2015, 18:12 2
Задача оказалась очень интересной
Предполагается, что слова разделены одним пробелом

QBasic/QuickBASIC
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
32
33
DECLARE SUB DEL (s AS STRING, n%)
 
CLS
DIM SHARED s AS STRING
DIM n AS INTEGER
INPUT "STROKA ="; s
s = " " + s + " "
n1 = 1
 
DO
   n2 = INSTR(n1 + 1, s, " ")
   n = n2 - n1 - 1
   IF (n MOD 2 = 1) AND n <> 1 THEN
      n = (n1 + n2) / 2
      DEL s, n
      n1 = n2 - 1
   ELSE
      n1 = n2
   END IF
LOOP UNTIL n2 >= LEN(s)
 
PRINT LTRIM$(RTRIM$(s))
 
END
 
SUB DEL (s AS STRING, n AS INTEGER)
   DIM s1 AS STRING
   DIM s2 AS STRING
 
   s1 = LEFT$(s, n - 1)
   s2 = RIGHT$(s, LEN(s) - n)
   s = s1 + s2
END SUB
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2015, 18:12

Преобразовать каждое слово в тексте: если слово нечётной длины, то удалить его среднюю букву
Задан текст. Между словами - пробел, за последним символом точка. Вывести текст, предварительно...

Если слово нечетной длины, то удалить его среднюю букву
Если слово нечетной длины, то удалить его среднюю букву.

Если слово нечетной длины то удалить его среднюю букву
Var s : string; Begin ReadLn(s); if Length(s) mod 2 = 1 then delete(s , 1 +...

Строка: Если слово нечетной длины, то удалить его среднюю букву
30. Дано слово. Если оно нечетной длины, то удалить его среднюю букву.


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

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

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