Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 19.12.2020
Сообщений: 5

Построить семейство N горизонтально расположенных квадратов заданного размера случайных цветов.

29.05.2021, 22:51. Показов 1464. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1) Построить семейство N горизонтально расположенных квадратов заданного
размера случайных цветов.
2) По исходным строкам A и B вывести слова, входящие в строку A, но не
входящие в строку B. Вывести их.
Я ничего не понимаю, но задание нужно сдать очень срочно. Помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2021, 22:51
Ответы с готовыми решениями:

Построить совокупность п занумерованных горизонтально расположенных квадратов заданного размера (номера внутри
Кто разбирается, помогите пожалуйста, нужно сдать срочно лабораторную работу! Сам вообще не понимаю с чего даже начать.... ...

Построить окружность, состоящую из заданного числа дуг случайных цветов
Построить окружность, состоящую из заданного числа дуг случайных цветов. В языке явный новичок, пытался всё седлать через функцию if...

Построить окружность, состоящую из заданного числа дуг случайных цветов
Дорого времени суток! Очень прошу помочь с решением задачки. Построить окружность, состоящую из заданного числа дуг случайных цветов.

15
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
29.05.2021, 23:01
Если срочно, то к фрилансерам.
Цитата Сообщение от kuku123 Посмотреть сообщение
Построить семейство N горизонтально расположенных квадратов заданного
размера случайных цветов.
"N" и размер квадратов Ввести с клавиатуры?
На форме горизонтально может разместиться количество квадратов, не превышающих размер формы. Как поступить?
0
0 / 0 / 0
Регистрация: 19.12.2020
Сообщений: 5
29.05.2021, 23:21  [ТС]
Цитата Сообщение от Argus19 Посмотреть сообщение
Если срочно, то к фрилансерам.

"N" и размер квадратов Ввести с клавиатуры?
На форме горизонтально может разместиться количество квадратов, не превышающих размер формы. Как поступить?
Да, с клаиватуры

Добавлено через 15 секунд
с клавиатуры*
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
30.05.2021, 01:09
Пурвую задачу решил.
Цитата Сообщение от kuku123 Посмотреть сообщение
2)............ Вывести их.
Кого и куда?

Добавлено через 42 минуты
Функция InStr ищет вхождение слова-шаблона. Например, шаблон "мыла" будет найден в слове "помыла". Так пойдёт или надо организовать поиск один в один?
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
30.05.2021, 10:49
Ну. Раз ответа нет, сделал, как сделал. Прикольно будет, если проект не откроется
Вложения
Тип файла: zip Квадраты и строки.zip (2.8 Кб, 18 просмотров)
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
30.05.2021, 13:19
Для тренировки сделал более продвинутую версию рисования квадратов. Теперь квадраты рисуются не на форме, а на экране монитора с использованием функций библиотеки GDI.
Вложения
Тип файла: zip Продвинутые квадраты.zip (2.6 Кб, 13 просмотров)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
30.05.2021, 13:45
и как их увидеть?
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
30.05.2021, 14:13
Цитата Сообщение от Alex77755 Посмотреть сообщение
и как их увидеть?
Вы к кому и о чём?

Добавлено через 9 минут
На Win7 работает без проблем и из-под IDE и скомпилированная.
Запустил .exe на Win10. Квадраты появляются и пропадают перед появлением сообщения. Надо подумать, почему не остаются.
0
0 / 0 / 0
Регистрация: 19.12.2020
Сообщений: 5
30.05.2021, 15:06  [ТС]
Извините пожалуйста, но никак не получается открыть файл
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
30.05.2021, 15:49
Цитата Сообщение от Argus19 Посмотреть сообщение
Квадраты появляются и пропадают перед появлением сообщения
Значит я не успеваю их увидеть
проверял на семёрке
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
30.05.2021, 17:47
Цитата Сообщение от kuku123 Посмотреть сообщение
Извините пожалуйста, но никак не получается открыть файл
Основной файл проекта VB 6.0, которому посвящена данная ветка форума, имеет расширение .vbp. Если не открывается, то у вас более поздняя версия, называемая VB.Net, входящая в Visual Studio 2002. Это обсуждается тут:
https://www.cyberforum.ru/vb-net/

Добавлено через 38 минут
Цитата Сообщение от Alex77755 Посмотреть сообщение
Значит я не успеваю их увидеть
Модифицировал. По прежнему нормально на Win7 и моргает на Win10. В связи с отсутвием на форму "тяжёлой артиллерии", задал вопрос на иноземном форуме. Если помогут, отпишусь
Visual Basic
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Option Explicit
Public Declare Function RoundRect Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, _
            ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Public Declare Function SelectObject Lib "gdi32" (ByVal _
            hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
            (ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
            (ByVal hwnd As Long, ByVal hDC As Long) As Long
Public storona As Integer, N As Long
Public WidthF As Integer, Nreal As Integer
Public rv As Long
Public i As Integer, j As Integer, X1 As Long, Y1 As Long
Public retval As Long
Public hbrush As Long  ' new brush handle
Public holdbrush As Long  ' default brush handle
Private Const HORZRES = 8
Private Const VERTRES = 10
 
Sub main()
Dim Deskhwnd As Long
Dim DeskDc As Long
Dim Widthm As Long
Dim Heightm As Long
' Get the desktop descriptor
Deskhwnd = GetDesktopWindow
' Retrieving the Desktop Device Context
DeskDc = GetDC(Deskhwnd)
' Get the screen width
Widthm = GetDeviceCaps(DeskDc, HORZRES)
' Get the screen height
Heightm = GetDeviceCaps(DeskDc, VERTRES)
 
 
N = Int(InputBox("Number of squares "))
    storona = Int(InputBox("Square side size  (pixel)"))
    Nreal = Widthm \ storona
        If N * storona < Widthm Then GoTo Prd
        rv = MsgBox(N & " squares will not fit on the screen." & vbCrLf & " I can place  " _
            & Nreal & " Squares . " & "Place? ", vbCritical + vbYesNo, _
                "Error!")
                N = Nreal
        If rv = vbNo Then Exit Sub
Prd:
X1 = 0
Y1 = storona
j = 1
For i = 1 To N
    If j >= 15 Then j = 0
 
hbrush = CreateSolidBrush(QBColor(j))                   'create a solid brush
' Save the old brush to restore it after the end of the program
holdbrush = SelectObject(DeskDc, hbrush)
' Draw a rectangle filled with the set color
    retval = RoundRect(DeskDc, X1, 0, Y1, storona, 10, 5)
        X1 = X1 + storona
        Y1 = Y1 + storona
    j = j + 1
' Recovering an old brush
retval = SelectObject(DeskDc, holdbrush)
retval = DeleteObject(hbrush)  ' Destroying the brush
Next i
    MsgBox "The squares are drawn! ", vbOKOnly + vbInformation
' Freeing up resources
ReleaseDC GetDesktopWindow(), DeskDc
    End
End Sub
0
0 / 0 / 0
Регистрация: 19.12.2020
Сообщений: 5
30.05.2021, 18:09  [ТС]
А вы текст программы здесь можете написать, пожалуйста?
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
30.05.2021, 19:03
Две формы. На одной три кнопки, на второй - текстовое поле.
Visual Basic
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Option Explicit
 
Private Sub Command1_Click()
    End
End Sub
 
Private Sub Command2_Click()
Dim storona As Integer, N As Long
Dim WidthF As Integer, Nreal As Integer
Dim rv As Long
Dim i As Integer, j As Integer, X As Long, Y As Long
 
N = Int(InputBox("Количество квадратов"))
    storona = Int(InputBox("Размер стороны квадрата (pixel)"))
    Nreal = ScaleWidth \ storona
        If N * storona < ScaleWidth Then GoTo Prd
        rv = MsgBox(N & "квадратов не поместится на форме." & vbCrLf & " Могу разместить " _
            & Nreal & " Квадратов. " & "Разместить?", vbCritical + vbYesNo, _
                "Ошибка!")
                N = Nreal
        If rv = vbNo Then Exit Sub
Prd:
X = 0
Y = storona
j = 1
For i = 1 To N
    If j >= 15 Then j = 0
        Line (X, 0)-(Y, storona), QBColor(j), BF
        X = X + storona
        Y = Y + storona
    j = j + 1
Next i
End Sub
 
Private Sub Command3_Click()
Dim A() As String, StrA As String, StrB As String, Strsear As String
Dim i As Integer, retval As Long
Form2.Show
Form2.Text1.Text = ""
StrA = InputBox("Введите строку 'A'")
StrB = InputBox("Введите строку 'B'")
    A = Split(StrA, " ")                                      'Разбиваем строку
        For i = 0 To UBound(A)
            Strsear = A(i)
            retval = InStr(1, StrB, Strsear)
            If retval > 0 Then
            Form2.Text1.Text = Form2.Text1.Text & Strsear & vbCrLf
            End If
            Next i
            
End Sub
 
Private Sub Form_Load()
Command1.Caption = "Выход"
Command2.Caption = "Квадраты"
Command3.Caption = "Строки"
    Form1.ScaleMode = 3
End Sub
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
04.06.2021, 19:28
Alex77755, иностранцы кое-что потестили. У них работают две версии и в 7 и в 10. У меня только в 7-ке. И они всё время спрашивают. Посоветовали только использовать функцию Sleep. Я решил, что это глупо и сделал иначе
Visual Basic
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Option Explicit
Public Declare Function RoundRect Lib "gdi32" (ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, _
            ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Public Declare Function SelectObject Lib "gdi32" (ByVal _
            hDC As Long, ByVal hObject As Long) As Long
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" _
            (ByVal hDC As Long, ByVal nIndex As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" _
            (ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As Msg, _
            ByVal hwnd As Long, ByVal wMsgFilterMin As Long, _
            ByVal wMsgFilterMax As Long) As Long
             
Public Type POINTAPI
    x As Long
    y As Long
End Type
            
 Public Type Msg
    hwnd As Long
    message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type
 
Private Const WM_RBUTTONDOWN = &H204
            
Public N1 As String, storona1 As String
Public storona As Integer, N As Long
Public WidthF As Integer, Nreal As Integer
Public rv As Long
Public i As Integer, j As Integer, X1 As Long, Y1 As Long
Public retval As Long
Public hbrush As Long  ' new brush handle
Public holdbrush As Long  ' default brush handle
Private Const HORZRES = 8
Private Const VERTRES = 10
 
Sub main()
Dim Deskhwnd As Long
Dim DeskDc As Long
Dim Widthm As Long
Dim Heightm As Long
Dim wMsg As Msg
' Get the desktop descriptor
Deskhwnd = GetDesktopWindow
' Retrieving the Desktop Device Context
DeskDc = GetDC(Deskhwnd)
' Get the screen width
Widthm = GetDeviceCaps(DeskDc, HORZRES)
' Get the screen height
Heightm = GetDeviceCaps(DeskDc, VERTRES)
 
Do Until IsNumeric(N1)
N1 = InputBox("Number of squares ")
Loop
    N = Int(N1)
Do Until IsNumeric(storona1)
    storona1 = InputBox("Square side size  (pixel)")
Loop
    storona = Int(storona1)
    Nreal = Widthm \ storona
        If N * storona < Widthm Then GoTo Prd
        rv = MsgBox(N & " squares will not fit on the screen." & vbCrLf & " I can place  " _
            & Nreal & " Squares . " & "Place? ", vbCritical + vbYesNo, _
                "Error!")
                N = Nreal
        If rv = vbNo Then GoTo Eitpr
Prd:
X1 = 0
Y1 = storona
j = 1
For i = 1 To N
    If j >= 15 Then j = 0
 
hbrush = CreateSolidBrush(QBColor(j))                   'create a solid brush
' Save the old brush to restore it after the end of the program
holdbrush = SelectObject(DeskDc, hbrush)
' Draw a rectangle filled with the set color
    retval = RoundRect(DeskDc, X1, 0, Y1, storona, 10, 5)
        X1 = X1 + storona
        Y1 = Y1 + storona
    j = j + 1
' Recovering an old brush
retval = SelectObject(DeskDc, holdbrush)
retval = DeleteObject(hbrush)  ' Destroying the brush
Next i
 
         Do While GetMessage(wMsg, 0&, 0&, 0&) <> -1
    If wMsg.message = WM_RBUTTONDOWN Then
    MsgBox "The square are drawn! ", vbOKOnly + vbInformation
    Exit Do
    End If
         Loop
 
Eitpr:
' Freeing up resources
ReleaseDC GetDesktopWindow(), DeskDc
End Sub
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
04.06.2021, 21:42
Цитата Сообщение от Argus19 Посмотреть сообщение
У них работают
Работает, но как то неуверенно. Если нет перерисовки экрана, то видно, но стоит только мышкой пройтись по квадратам или окно открыть, то сразу все квадраты пропадают.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
05.06.2021, 15:05
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Работает, но как то неуверенно
Если я правильно понял, GetMessage без указания hWnd, извлекает все сообщения из очереди. Или всё-таки правильнее вызывать так?
Visual Basic
1
GetMessage(wMsg, Deskhwnd, 0&, 0&) <> -1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2021, 15:05
Помогаю со студенческими работами здесь

Построить семейство разноцветных прямоугольников расположенных по горизонтали
1)построить семейство разноцветных прямоугольников расположенных по горизонтали в каждом из которых стоит знак вопроса ...

Создать поле из квадратов случайных цветов
задача: сделать поле из квадратов случайных цветов (10 х 10) (как в игре Quadratum ) проблема: при...

Построить семейство разноцветных случайным образом расположенных линий
Помогите пожалуйста решить задачу Построить семейство разноцветных случайным образом расположенных линий. Добавлено через 23 часа...

Построить семейство разноцветных случайным образом расположенных линий в 4 координатной четверти
Разделить экран на 4 части двумя линиями. Построить семейство разноцветных случайным образом расположенных линий в 4 координатной четверти....

Построить семь случайных квадратов с общим центром
CLS RANDOMIZE TIMER SCREEN 11 WINDOW (-4, 3)-(4, -3) FOR i = 1 TO 7 x = 2 * RND y = 2 * RND PSET (x, y) LINE...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru