Помогите с задачками по VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
МиХаН[MAFIA]
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 19.12.2005 (Пн) 1:54
Откуда: Москва

Помогите с задачками по VB

Сообщение МиХаН[MAFIA] » 19.12.2005 (Пн) 2:04

Помогите с задачками по VB. Их 4 штуки. Нужно очень ко вторнику. Если даже не получится ко вторнику, можно в любой срок, буду жадать. Помогите пожалуйста! Всем откликнувшимся заранее огромное спасибо!!!

Задача №1
Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.


Задача №2
Дана строка и некоторое слово. Напечатать те предложения строки, которые содержат данное слово.


Задача №3
Двумерный массив n ? m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.
Вложения
67.JPG
Задача №4
67.JPG (10.42 Кб) Просмотров: 398

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.12.2005 (Пн) 17:09

Задача №2
Примерно так:

Код: Выделить всё
Dim Instring1 as String, Instring2 as String 'ето входные данные
' Заполнишь сам
Dim n as long, tmpmas() as string
tmpmas=split(string1,".") ' Разбиваем на предложения.
for n =0 to ubound(tmpmas)
if instr(1,tmpmas(n),Instring2) <>0 then msgbox tmpmas(n)
next
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.12.2005 (Пн) 17:15

keks-n писал(а):tmpmas=split(string1,".") ' Разбиваем на предложения.

А думать не пробовал?
Что этот код сделает с текстом, в котором есть вопросительные или восклицательные предложения? Или в котором есть многоточия?
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.12.2005 (Пн) 18:00

Ой...
Ну тогда надо ручками писать, или прогонять Split'ом еще 2 раза(на случай "?" и "!").
Изображение

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 19.12.2005 (Пн) 18:14

А первую пребором не прёт?
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.12.2005 (Пн) 18:16

Задача #3

Код: Выделить всё

Dim InString as string,  CharMas (n,m) as string 'Твои данные

dim i as long, i2 as long, CharInStr(255) as long ' таблица встречаемости
for i=0 to n
for i2= 0 to n2
CharInStr(Asc(CharMas(i, i2))) = CharInStr(Asc(CharMas(i, i2))) + 1
next
next
'Заполнили таблицу, теперь для каждого символа указано, сколько его
for i=1 to len(InString)
charinstr(asc(mid(InString,i,1)))=charinstr(asc(mid(InString,i,1)))-1
next
'Все значения должны быть >0
for i =0 to 255
if charinstr(i)<0 then msgbox "Низя!"
next
Изображение

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 19.12.2005 (Пн) 19:16

Zer писал(а):А первую пребором не прёт?

Думаю прет ) Просто рекурсия с отсечениями.
Можно конечно циклами, но если ячеек будет не 10, а например k...

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 19.12.2005 (Пн) 19:48

GAGArin писал(а):
Zer писал(а):А первую пребором не прёт?

Думаю прет ) Просто рекурсия с отсечениями.
Можно конечно циклами, но если ячеек будет не 10, а например k...


это точно. n ячеек еще ничего, m тоже может работать будет нормально. Но k ячеек это действительно слишком много...
ХЎ

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 19.12.2005 (Пн) 19:58

d3drm писал(а):это точно. n ячеек еще ничего, m тоже может работать будет нормально. Но k ячеек это действительно слишком много...

Неверная аналогия, но думаю кому надо тот меня понял.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 20.12.2005 (Вт) 14:18

на 1 вопрос не такое и сложное решение просто надо подумать.

какие ключи подходят?
Например

2262262262
1361361361
1451451451

Заметна периодичность ;о)
1)Дана комбинашка
..2...5...
исходя из периодичности
5.25.25.25

10-(5+2)=3

5325325325

2) Дана другая комбинашка
...34.....

34.34.34.3
=> Ключ = 3433433433
Так что все просто....


ЗЫ А код пишите сами... :о))
Пора уже всем хорошим людям собраться и убить всех плохих людей.

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 21.12.2005 (Ср) 15:23

Перебирать надо только одну ячейку, соседнюю с введённой. А остальные высчитывать и проверять, чтобы они были больше 1 и меньше 7.
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Zizy
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 03.11.2005 (Чт) 11:46

Сообщение Zizy » 21.12.2005 (Ср) 18:00

это точно. n ячеек еще ничего, m тоже может работать будет нормально. Но k ячеек это действительно слишком много...


Вспомнил тут как-то слова препода одного...

Допустим летит n самолетов. Нет, n это мало. k самолетов.
И оба реактивные...

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 21.12.2005 (Ср) 18:11

Zer писал(а):Перебирать надо только одну ячейку, соседнюю с введённой. А остальные высчитывать и проверять, чтобы они были больше 1 и меньше 7.

Блин, GB826 вроде дал уже хорошее и правильное решение. Все что нужно рассмотреть это что решение есть, и что дано два неодинаковых кубика (иначе решений больше одного) А перебор как выяснилось и не нужен :oops:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 87

    TopList