Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram, группа в ВКонтакте

Авторский курс программирования на yabasic от @Terrazocultor

Подробный курс по программированию для начинающих программистов и просто любопытных людей

История разработки, новости релизов и документация
Аватара пользователя
Anton
Site Admin
Сообщения: 179
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Авторский курс программирования на yabasic от @Terrazocultor

Сообщение Anton »

Авторский курс программирования на yabasic от @Terrazocultor
Канал YouTube @Terrazocultor

Глава 1. ВВОДНАЯ ИНФОРМАЦИЯ, ПЕРВЫЕ ШАГИ
Показать
  1. Представление курса
  2. Скачивание и установка YaBasic
  3. Интерпретируемые и компилируемые языки
  4. Термины и концепции ИТ, которые полезно знать
  5. Ограничения памяти. Проверяем доступные объемы
  6. Контроверсийные номера строк (уже устарели)
  7. Скорость вычислений. Сколько времени займёт расчёт одного миллиона квадратных корней?
  8. Бонус: Программа игры «Четыре в ряд», против компьютера, создана мной в течение двух месяцев. Содержит более 3000 строк кода.
  9. Видеоматериал
Глава 2. ТЕКСТОВЫЙ РЕЖИМ. Print, Chr$,…
Показать
Глава 3. ГРАФИЧЕСКИЙ РЕЖИМ
Показать
  1. Графический режим. Пиксель
  2. Вход в графический режим. Open window
  3. Системные переменные WinWidth и WinHeight (ширина и высота в пикселях)
  4. Рисование отдельных пикселей. Команда Dot
  5. Установка цвета рисования и фона: Color и Backcolor
  6. Проведение прямой линии между двумя точками. Команда Line
  7. Рисование окружности. Circle
  8. Рисование прямоугольника. Rectangle
  9. Рисование треугольника. Triangle
  10. Вывод текста в графическое окно. Команда Text
  11. Очистка содержимого графического экрана. Clear window
  12. Вернуть всё как было: закрыть графическое окно. Close window
  13. Уголок ТЕОРИИ: Важность документирования программы. Оператор REM
  14. Видео
Аватара пользователя
Anton
Site Admin
Сообщения: 179
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Re: Авторский курс yabasic от @Terrazocultor

Сообщение Anton »

10. Вывод текста в графическое окно. Команда Text

Нельзя использовать Print для вывода текста в графическое окно. Если применить Print, вывод произойдёт в текстовом окне, которое, напомню, остаётся открытым (если только мы его не закроем, но тогда закроется и графическое окно, и программа завершится). Возможно, текстовое окно спрятано за графическим, но оно существует.

Чтобы вывести текст в графическое окно, используется инструкция Text:

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

Text x,y,"Введите вариант"
Эта команда размещает строку «Введите вариант» в координатах x,y.

Есть и дополнительные необязательные параметры.

Можно указать шрифт (то же самое, что и в инструкции Open window), но я пробовал несколько известных названий шрифтов и не смог его изменить. Возможно, это стоит исследовать. Ясно одно: шрифт по умолчанию, по крайней мере на моём ПК, — swiss.

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

Text x,y,"Привет","Arial"
Эта команда выводит слово «Привет» в точке x,y и теоретически должна активировать шрифт Arial, но, как я уже сказал, это не так. Возникает ошибка: этот широко известный шрифт не распознаётся.

Я отправил письмо команде Yabasic, чтобы узнать, является ли это ошибкой или, по крайней мере, недостатком документации. А пока продолжим использовать шрифт swiss.

Ещё один параметр, который можно указать в команде Text, — комбинация из двух букв для выравнивания текста:
  • Горизонтальное выравнивание: слева, по центру, справа: l, c, r (left, center, right)
  • Вертикальное выравнивание: сверху, по центру, снизу: t, c, b (top, center, bottom)
Пример: "lt" (left, top) — выравнивание по левому краю, сверху.

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

Clear Screen
Open window 300,300
Text 20,50,"Hola, Esto es un comentario"
Text 70,80,"Y esto es otro comentario"
Magenta$="255,0,255"
Color Magenta$
Text 70,110,"He cambiado el color a Magenta"
Inkey$
Close window
End
На следующем скриншоте видны три строки, размещённые в графическом окне; у последней изменён цвет на пурпурный. Слева — код программы.
text.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Anton
Site Admin
Сообщения: 179
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Re: Авторский курс yabasic от @Terrazocultor

Сообщение Anton »

11. Очистка содержимого графического экрана. Clear window

Подобно тому как существует команда очистки текстового экрана, есть команда и для очистки графического экрана:

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

Clear window
У неё нет параметров или аргументов, используется как есть. Эта команда стирает любой текст или графику. Если ранее был задан другой цвет фона (с помощью BackColor), графический экран теперь будет окрашен этим цветом.
Аватара пользователя
Anton
Site Admin
Сообщения: 179
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Re: Авторский курс yabasic от @Terrazocultor

Сообщение Anton »

12. Вернуть всё как было: закрыть графическое окно. Close window

Когда сеанс работы с графическим окном завершён, оно больше не нужно и, вероятно, мешает. Лучше всего его закрыть — независимо от того, собираемся ли мы продолжить работу с программой в текстовом режиме или завершить программу.

Эта команда не имеет параметров:

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

Close window
Исчезнет не только содержимое графического окна, но и само окно закроется. Это нисколько не мешает сразу же после этого снова открыть другое графическое окно с теми же или другими размерами.
Аватара пользователя
Anton
Site Admin
Сообщения: 179
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Re: Авторский курс yabasic от @Terrazocultor

Сообщение Anton »

13. УГОЛОК ТЕОРИИ. Важность документирования программы. Оператор REM

Нет языка программирования, в котором не было бы возможности вставлять комментарии в код, и Basic — не исключение. Этот последний пункт главы не имеет отношения к графическому режиму; это средство, которое можно использовать в любом месте программы, работаем ли мы в текстовом и/или графическом режиме.

Речь идёт о команде Rem — сокращение от Remark, что означает «комментарий».

Часто (слишком часто) не придаётся значения усилиям, направленным на повышение читаемости программ, причём не только для самого программиста, но, прежде всего, для других программистов. Есть несколько инструментов и привычек, повышающих читаемость, и один из них — команда Rem, позволяющая вставлять комментарии в программу.

Когда в программе встречается Rem, при выполнении программа игнорирует всё, что написано в этой строке: это не исполняемый код, а комментарии, предназначенные для документирования программы для тех, кто её читает. Из этого следуют некоторые выводы:
  • Строка с Rem никогда не вызовет ошибку: в ней можно писать что угодно.
  • Строк с Rem может быть сколько угодно, ограничений нет.
Пример небольшой программы с несколькими блоками комментариев:

Первые две строки — комментарии с Rem, поясняющие, что делает программа и кто её автор. Можно было бы прокомментировать и другое: дату создания и т. д.

У оператора Rem есть синонимы, например строки 3–7 начинаются с // — это ещё один допустимый способ вставить комментарий, очень похожий на язык C, где для комментариев используется тот же символ //.

Ниже мы видим строку, начинающуюся с одинарной кавычки ' — это ещё один допустимый способ сделать комментарий, но с ограничением: её можно ставить только в первой колонке строки, то есть в начале. Если поставить этот апостроф в любом другом месте, возникнет ошибка. Этот апостроф использовался в Pascal для комментариев, причём в любой позиции, даже в одной строке с кодом.
rem.jpg
Наконец, знак решётки # также служит для начала комментария, и, как и ', его можно использовать только в начале строки.

Итак, есть четыре варианта Rem:
  • Сам Rem
  • Двойной «слэш» //
  • Одинарная кавычка '
  • Решётка #
Последние два — только в начале строки.

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

Тот же самый код, но с двумя пустыми строками-разделителями. Эта программа очень мала, и, возможно, пустые строки не были необходимы, но это для примера.

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

Rem Programa para simular un dado
Rem Autor: Perico de los palotes
// Inicializamos Tecla$ a carácter nulo ""
// para que el bucle Repeat-Until se cumpla
// al menos una vez. Sería una casualidad,
// pero podría ocurrir que Tecla$ tuviese de
// partida el calor "esc" por no haberla
// inicializado.
Tecla$=""

Clear Screen
' Repite el siguiente ciclo hasta que pulsemos tecla Escape
Repeat
   Numero = Int(Ran(6)) + 1
   Print "El numero es: ",Numero
   Print "Pulsa una tecla para otro numero"
   Tecla$ = Inkey$
Until Tecla$ = "esc"

# Hemos salido del bucle Repeat-Until porque se ha pulsado Esc
Print
Print "Hasta luego!"
Wait(3)
Clear Screen
End
rem2.jpg
Первая пустая строка отделяет верхнюю часть программы (инициализацию) от основной части. Вторая пустая строка отделяет основную часть от завершающей части — окончания программы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Anton
Site Admin
Сообщения: 179
Зарегистрирован: Чт фев 08, 2024 7:03 pm
Откуда: Москва

Re: Авторский курс yabasic от @Terrazocultor

Сообщение Anton »