Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 8
1

В текст из 3 слов нужно вставить ещё одно после первого

07.12.2010, 21:39. Показов 1215. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я не как не могу разобраться со след задачей.В текст из 3 слов нужно вставить ещё одно после первого!ПОМОГИТЕ.Я думаю примерно должно быть так.Находим пробел после первого слова запоминаем номер и после него вставляем слово! и ЕЩЁ как мне правильно вывести двумерный массив в в виде матрицы чтобы он не "уплывал".Как я понимаю через Print using??Но как точно не пойму спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2010, 21:39
Ответы с готовыми решениями:

Одно число вставить после первого отрицательного элемента массива, второе – после последнего положительного
Вот условие - Дан одномерный массив. Надо одно число вставить после первого отрицательного элемента...

В массиве после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число
Задача из раздела - Регулярные типы данных. В массиве целых положительных чисел после каждого...

В массиве после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число
В массиве целых положительных чисел после каждого числа, состоящего из одинаковых цифр, вставить...

Вставить в файл №1 весь текст из файла №2 после первого абзаца
не могу довести до ума прогу. Задачу перед собой поставил такую: вставить в файл №1 весь текст из...

14
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
07.12.2010, 21:53 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

2)
например так
PureBasic
1
2
3
4
5
6
7
FOR y = 1 TO n
    FOR x = 1 TO n
        LOCATE y + 1, x * 4
        PRINT a(y, x);
    NEXT
    PRINT
NEXT
Добавлено через 4 минуты
1)
PureBasic
1
2
3
4
5
6
7
8
9
CLS
INPUT "vvedite text"; a$
INPUT "vvedite slovo"; b$
DO
    i = i + 1
    IF MID$(a$, i, 1) = " " THEN k = i
LOOP UNTIL k > 0 OR i = LEN(a$)
c$ = MID$(a$, 1, k) + b$ + " " + MID$(a$, k + 1, LEN(a$))
PRINT c$
0
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,623
Записей в блоге: 2
07.12.2010, 21:54 3
в в виде матрицы чтобы он не "уплывал"
Смотря как надо выводить, есть действительные матрицы, там уже придётся писать достаточно сложный алгоритм по отсеканию куска дробной части. А так только через LOCATE естественно.
0
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 8
07.12.2010, 23:00  [ТС] 4
Или я плохо обьяснил. Или я не правильно вбиваю.Локейт это по идеи с какого места распологать?Так но таблица всё равн будет уплывать например если ввести так:
12 123 11
111 2133 1233
1233 2 23

РАЗВЕ ЧЕРЕЗ ПРИНТ ЮЗИНГ НЕЛЬЗЯ (ПРОСТО Я ТОЧНО НЕ ЗНАЮ)

Добавлено через 11 минут
А по 2му.Могли бы вы пояснить в кратце конечно что такое DO...LOOP я знаю но конкретно в данной прогремм.забуксовал.Сделать своеобразные REMы.Или тодельно коментарием.Так как он у меня вставляет слово не после первого слова текта а преде ним
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
08.12.2010, 07:03 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

условие было в тексте из 3 слов, а не одного.
PureBasic
1
2
3
4
5
6
7
8
9
CLS
INPUT "vvedite text"; a$
INPUT "vvedite slovo"; b$
FOR i = LEN(a$) TO 1 STEP -1
    IF MID$(a$, i, 1) = " " THEN k = i ' ищем первый пробел
NEXT
' если есть пробел вставляем слово после первого, если нет пробелов склеиваем слова
IF k > 0 THEN c$ = MID$(a$, 1, k) + b$ + MID$(a$, k, LEN(a$)) ELSE c$ = a$ + " " + b$
PRINT c$
Добавлено через 8 минут
Цитата Сообщение от Rusakovich Посмотреть сообщение
Локейт это по идеи с какого места распологать?Так но таблица всё равн будет уплывать например если ввести так:
12 123 11
111 2133 1233
1233 2 23
сначала хотя бы проверил
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CLS
n = 3
DIM a(n, n)
DATA 12,123,11
DATA 111,2133,1233
DATA 1233,2,23
FOR y = 1 TO n
    FOR x = 1 TO n
        READ a(y, x)
    NEXT
NEXT
FOR y = 1 TO n
    FOR x = 1 TO n
        LOCATE y * 1.5, x * 6
        PRINT a(y, x);
    NEXT
    PRINT
NEXT
и где тут расплывается?

Добавлено через 1 минуту
можешь и через print using если так охота
0
Оранжевый портфель.
60 / 58 / 47
Регистрация: 13.11.2010
Сообщений: 459
08.12.2010, 11:34 6
Цитата Сообщение от Rusakovich Посмотреть сообщение
Или я плохо обьяснил. Или я не правильно вбиваю.Локейт это по идеи с какого места распологать?Так но таблица всё равн будет уплывать например если ввести так:
12 123 11
111 2133 1233
1233 2 23

РАЗВЕ ЧЕРЕЗ ПРИНТ ЮЗИНГ НЕЛЬЗЯ (ПРОСТО Я ТОЧНО НЕ ЗНАЮ)
помойму print using "###########" (ч)"что печатать"
ч - помойму нужен какойто знак мб";"
тогда для "что печатать" будет выведено места равное коичеству # если # больше чем надо то там будут пробелы, хотя тут надо точно знать что будет печататься, хотя и в locate тоже, чтобы определить сколько нужно # (просто 5 пробелов на мой взгляд как то странно)

Добавлено через 2 минуты
вот еще что если будешь исползовать ? USING выводимая информация будет выравнена по правому краю, а при locate по правому
0
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,623
Записей в блоге: 2
08.12.2010, 11:46 7
Shkap, не стоит упрощать неупрощаемое, USING это опупенно многофункциональный оператор, открывайте help Qbasic и смотрите.

Что вы привязались к USING? Он для других вещей подходит больше.
0
Оранжевый портфель.
60 / 58 / 47
Регистрация: 13.11.2010
Сообщений: 459
08.12.2010, 12:26 8
Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
Shkap, не стоит упрощать неупрощаемое, USING это опупенно многофункциональный оператор, открывайте help Qbasic и смотрите.

Что вы привязались к USING? Он для других вещей подходит больше.
ну просили using получите
0
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,623
Записей в блоге: 2
08.12.2010, 13:06 9
Точно, )))
0
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 8
08.12.2010, 22:25  [ТС] 10
Спасибо всем за ответы!Но всё таки я сделал через using ну не в этом дело.Просто через Locate был illegal function call.НО по 2й вопросы так и остались теперь он в конец слово вставляет!
А я не как не могу сделать так!Ввожу изначально например:

Mama kupila sobacu - Это текст
Bolchuiu - Это слово
ПОЛУЧАЮ- Mama Bolchuiu kupila sobacu
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
09.12.2010, 06:45 11
Цитата Сообщение от Rusakovich Посмотреть сообщение
Ввожу изначально например:
Mama kupila sobacu - Это текст
Bolchuiu - Это слово
ПОЛУЧАЮ- Mama Bolchuiu kupila sobacu
так вы же это и хотели
Цитата Сообщение от Rusakovich Посмотреть сообщение
текст из 3 слов нужно вставить ещё одно после первого
что просили, то и получили.
0
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 8
09.12.2010, 08:57  [ТС] 12
Ну если бы это так получалось я бы не спрашивал ещё раз.Получается так Mama kupila sobacuBolchuiu
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
09.12.2010, 13:34 13
Rusakovich, проверь как следует, всё правильно в посте №2 от softmob
Изображения
 
2
5001 / 1673 / 409
Регистрация: 25.04.2010
Сообщений: 4,623
Записей в блоге: 2
09.12.2010, 13:59 14
>Просто через Locate был illegal function call.
Ясен пень, границы текстовой области от 1 до 80 по горизонлали и от 1 до 25 по вертикали, при этом на 24 строке включается механизм пролистывания(при печати) вверх всей страницы на 1 строку. Это можно обойти если писать через память, но вам об этом рано думать.
Выложите кстати вашу программу с USING, наверняка она использует его так:
PureBasic
1
2
3
FOR i% = 1 TO 9
PRINT USING "##"; i%;
NEXT
На мой взгляд это не самый грамотный вариант.
0
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 8
09.12.2010, 18:25  [ТС] 15
Спасибо всем огромное!Все мои вопросы исчерпаны!
А по поводу 2й программы не получалось потому, что я вместо " " писал без пробела ""

По поводу принт Юзинг: Вводиться изначально с клавы любой массив и сам вывод так
For i=1 to m
For j=1 to m
Print using "####";a(i,J);
next
print
ne[t Может вам и виднее но выравниванеи по правой стороне есть а чтобы через локейт я буксую
0
09.12.2010, 18:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2010, 18:25
Помогаю со студенческими работами здесь

Дан массив после первого отрицательного элемента нужно вставить число
Дан массив после первого отрицательного элемента нужно вставить число.

Вставить еще одно действие MySQL
помогите с кодом if (IsRegistered(textBox1.Text)) return; вот само действие private bool...

Можно ли в файле в последовательность чисел вставить как-нибудь еще одно число?
вопрос: можно ли в файле в последовательность чисел вставить как-нибудь еще одно число стандартными...

Нужно регулярное выражение(еще одно)
В регулярках ноль, пытался учить но не пошло, думаю что для этого не особо трудное Имеется в html...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru