Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 3

Нарисовать точку, которая движется и отскакивает от границ экрана

17.03.2013, 21:39. Показов 1909. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста доделать задачку. На экране появляется точка, которая движется и отскакивает от границ экрана. А так же отскакивает от границ прямоугольника, предварительно нарисованного. Вроде всё верно пишу, а не выходит, точка выше середины не поднимается.

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SCREEN 12
LINE (100, 180)-(300, 230), 14, BF
x = 300: y = 240
dx = 1: dy = 1
1: PSET (x, y), 14
FOR I = 1 TO 200000: NEXT I
PSET (x, y), 0
IF x = 0 OR x = 640 THEN dx = -dx
IF y = 0 OR y = 480 THEN dy = -dy
IF y = 180 AND 100 < x < 300 THEN dy = -dy
IF x = 300 AND 180 < y < 230 THEN dy = -dy
 
IF x = 100 AND 180 < y < 230 THEN dy = -dy
IF y = 230 AND 100 < x < 300 THEN dy = -dy
x = x + dx: y = y + dy
GOTO 1
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2013, 21:39
Ответы с готовыми решениями:

Программа, которая рисует изменение шара (рост от центра до границ экрана или уменьшение от границ экрана до центра)
Написать программу, которая спрашивает у пользователя, как должен вести себя шар: 1 –расти из центра до границ экрана или 2 – уменьшаться...

Нарисовать прямоугольник, который движется по синусоиде вдоль экрана
Нарисовать прямоугольник, который, вращаясь вокруг своего центра, движется по синусоиде вдоль экрана.

Нарисовать на экране круг красного цвета, который движется по периметру экрана
Нарисовать на экране круг красного цвета, который движется по периметру экрана, не проходя нижнюю часть экрана, в прямом и обратном...

5
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
17.03.2013, 21:50
Лучший ответ Сообщение было отмечено как решение

Решение

Очень распространённая ошибка.
100 < x < 300
Так нельзя писать. Это выражение заменяется выражением x > 100 AND x < 300 и далее по тексту

Строчки 11 и 13 после THEN dx = -dx
2
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 3
17.03.2013, 22:56  [ТС]
Спасибо большое) Всё исправила, работает. Главное в учебнике было именно так написано, в примере...а оказывается нельзя так писать.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SCREEN 12
LINE (100, 180)-(300, 230), 14, BF
x = 300: y = 240
dx = 1: dy = 1
1: PSET (x, y), 14
FOR I = 1 TO 200000: NEXT I
PSET (x, y), 0
IF x = 0 OR x = 640 THEN dx = -dx
IF y = 0 OR y = 480 THEN dy = -dy
IF y = 180 AND x > 100 AND x < 300 THEN dy = -dy
IF x = 300 AND y > 180 AND y < 230 THEN dx = -dx
IF x = 100 AND y > 180 AND y < 230 THEN dx = -dx
IF y = 230 AND x > 100 AND x < 300 THEN dy = -dy
x = x + dx: y = y + dy
GOTO 1
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
17.03.2013, 23:12
Главное в учебнике было именно так написано
Я конечно не шибкий знаток бейсика в целом, но ещё ни в одном диалекте языка, который
юзал, не видел такой формы записи. Не исключено, что где-то такое и есть, но даже в таком
случае, не стал бы так писать код, дабы сделать его более портабельным.
0
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 3
17.03.2013, 23:15  [ТС]
Вот фрагмент из учебника
Миниатюры
Нарисовать точку, которая движется и отскакивает от границ экрана  
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
18.03.2013, 00:18
Nastassja, полистайте учебник и посмотрите какой компилятор используется.
В QBasic сначала идут операции отношения, а далее уже логические(причём в строгом порядке).
Поэтому двойное сравнение сработает несколько по иному, сначала произведётся сравнение
первых двух значений, результатом чего станет логическое значение(-1 если истина и 0 если ложь),
размещённое в целочисленном типе, а далее произойдёт сравнение этого значения с третьим.
Это естественно работает не так, как двойное сравнение, поэтому соотв. и получаем косяк.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2013, 00:18
Помогаю со студенческими работами здесь

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

Нарисовать точку по центру экрана
Здравствуй, уважаемый народ! Мне нужна ваша помощь, причем как можно быстрее. Тут программа которая пишет поверх ВСЕХ ОКОН текст. НО В...

Нарисовать точку в центре экрана поверх всех окон
Здравствуйте, уважаемые знатоки! ;) У меня есть просьба, а именно: нужно написать программу которая будет по верх всех окон(программ) в...

Изобразить теннисный мячик (белый круг), движущийся в поле экрана и отскакивающий от “стенок” – границ экрана
Изобразить теннисный мячик (белый круг), движущийся в поле экрана и отскакивающий от “стенок” – границ экрана. Первоначальное направление...

Нарисовать автомобиль, который движется по экрану
Здравствуйте! Нужна помощь в программировании в среде ABC PASCAL! А именно нужно: Нарисовать автомобиль, который движется по экрану,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru