9/02/2022
подпрограмма и макрос ЧПУ
8/22/2022
Типы сверления АРХИВ
Цикл сверления с шагом G83 выполняет операцию сверления за несколько шагов, этот метод делает глубокое сверление простым и экономичным.
Подача при резании выполняется прерывисто до дна отверстия, пока удаляется стружка.
Поскольку сверление выполняется до дна отверстия с подачей в несколько небольших шагов, каждый раз
Примеры G коды Архив
Примеры учебных пособий по программированию ЧПУ Коды G и M для станков с ЧПУ от начального до продвинутого уровня.
8/20/2022
Типы сверления с использованием G кода.
Подача при резании выполняется прерывисто до дна отверстия, пока удаляется стружка.
Поскольку сверление выполняется до дна отверстия с подачей в несколько небольших шагов, каждый раз
Полный список G-кодов (Complete G Code List)
Программирование на ЧПУ (CNC) Коды G и M
Примеры учебных пособий по программированию ЧПУ Коды G и M для станков с ЧПУ от начального до продвинутого уровня.
8/12/2022
Котлин. Торт и свечи
Всего вы создадите три функции для рисования слоеного пирога со свечами.
Вы будете использовать a repeat()внутри другого repeat(), создавая так называемый «вложенный цикл».
То, как вы создадите этот код, — это то, как вы можете создать любую программу, начиная с общей картины и добавляя детали. Это называется «развитие сверху вниз».
Инструкции для этой практики не такие подробные, и вы можете обратиться к готовому коду, если застряли.
Котлин. Открытка "С днем рождения"
Создайте свое первое приложение для Android на Kotlin
8/11/2022
Открытка "С днем рожения" аргументы, функции
fun main() {
printBorder()
println("Happy Birthday, Jhansi!")
printBorder()
}
fun printBorder() {
repeat(23) {
print("=")
}
println()
}
- Запустите свой код. Вывод должен быть таким же, как и раньше, но на этот раз вы смогли создать границу, указав символ «=» только один раз!
======================= Happy Birthday, Jhansi! =======================
Используйте аргументы, чтобы изменить границу
Что, если вы хотите создать границы, которые используют разные символы, такие как приведенные ниже?
%%%%%%%%%%%%%%%%%%%%%%%%%%
:::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::
Вы можете определить отдельную функцию для каждого из этих различных символов. Однако есть более эффективный способ сделать это. Вы можете повторно использовать уже написанную функцию и сделать ее более гибкой, чтобы она работала для разных типов символов.
Отличительной чертой функций является то, что вы можете вводить в них данные, используя аргументы. Вы кратко столкнулись с этим в предыдущей кодовой лаборатории, когда знакомились с main()
. На этом шаге вы добавите аргумент в printBorder()
функцию, чтобы она могла печатать любой шаблон границы, который вы указали.
- В
main()
верхней части создайте переменную с именемborder
для шаблона границы. Это будет содержать текст, который будет повторяться для границы.
val border = "%"
- Теперь передайте эту
border
переменную в оба вызоваprintBorder()
функции в качестве аргумента. Вы делаете это, помещаяborder
в круглые скобки()
, как если бы вы вводили текст дляprintln()
печати.
Ваша main()
функция должна выглядеть как код ниже.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
Функция printBorder()
возьмет это значение border
в качестве входных данных и выяснит, как распечатать всю границу.
- Запустите свой код. Ваш код не выполняется, и вместо этого вы видите значки ошибок рядом с вашим кодом.
- Посмотрите на панель вывода, и там сообщение об ошибке.
Как и раньше, в сообщении указывается, где находится ошибка, и дается подсказка, что это может быть. Важная часть: Too many arguments for public fun printBorder()
. Вы вызываете printBorder()
функцию и передаете границу в качестве входных данных. Однако printBorder()
в данный момент определение функции не принимает никаких входных данных.
- Исправьте эту ошибку, добавив аргумент границы в
printBorder()
определение функции. См. первую строку кода, как показано ниже.
fun printBorder(border: String) {
repeat(23) {
print("=")
}
println()
}
- Обратите внимание, что имя аргумента
border
. - После имени ставится двоеточие
:
- и слово
String
, которое является описанием того, какого рода или типа аргумент это.
A String
— это фрагмент текста, состоящий из символов, заключенных в кавычки. Вы можете думать об этом как о бусинах, выстроенных в линию, чтобы сформировать ожерелье, как символы, выстроенные в линию, чтобы сформировать слова и текст. Указание того, что аргумент должен быть a, String
помогает системе обеспечить, чтобы ваш аргумент был текстом, а не, например, числом.
- Запустите свой код. Функция
printBorder()
теперь принимает границуString
в качестве входных данных. И код вmain()
вызовахprintBorder(border)
сborder
аргументом. Ваш код должен работать без ошибок. - Посмотрите на вывод вашей программы в консоли , и она все еще показывает ту же границу, что и раньше?
======================= Happy Birthday, Jhansi! =======================
Это не предполагаемое поведение! Вы попытались сделать рамку с символом "%", но программа все еще печатает рамку с символом "=". На следующих шагах вы узнаете, почему это происходит.
- В редакторе обратите внимание на серый восклицательный знак. Этот значок указывает на предупреждение. Предупреждения — это проблемы с вашим кодом, на которые вам нужно обратить внимание, но они не мешают вашему коду работать.
- Наведите указатель мыши на восклицательный знак, и появится сообщение. В нем говорится, что
"Parameter 'border' is never used."
это предупреждение объясняет проблему с выходом. Вы передаете в функцию новую строку для границы, но не используете ее для печати. - Измените
printBorder()
функцию, чтобы использовать переданныйborder
вместо печати "=". Это работает точно так же, как если быborder
это была переменная, которую вы определили внутри функции!
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
- Запустите свой код еще раз. Вывод должен выглядеть так, как показано ниже.
%%%%%%%%%%%%%%%%%%%%%%% Happy Birthday, Jhansi! %%%%%%%%%%%%%%%%%%%%%%%
Отличная работа, вы решили проблему! Вот ваш готовый код.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
Вы сделали printBorder()
функцию намного более гибкой, не добавляя много кода. Теперь вы можете напечатать рамку из разных символов с небольшим изменением.
- [Необязательно] Изменив всего одну строку кода в
main()
функции, как вы будете печатать такие баннеры ко дню рождения?
*********************** Happy Birthday, Jhansi! ***********************
::::::::::::::::::::::: Happy Birthday, Jhansi! :::::::::::::::::::::::
Измените функцию, чтобы она имела два аргумента
Что делать, если вы хотите использовать другой шаблон длиной более 1 символа, скажем, "'-._,-'"
. Вы не стали бы повторять этот шаблон 23 раза, так как это было бы слишком долго. Вы могли бы повторить это, может быть, 4 раза. Для этого вы можете изменить количество повторений в repeat()
операторе printBorder()
. Тем не менее, вы можете сделать что-то лучше!
Вы можете определить более красивую границу на основе двух вещей:
- Шаблон для повторения (который вы уже сделали)
- Количество раз, которое вы хотите повторить шаблон
Вы можете создать переменные для каждого шаблона и количества повторений, а затем передать обе части информации в printBorder()
функцию.
- В
main()
измените границу, чтобы она была"'-._,-'"
узором.
val border = "`-._,-'"
- Запустите свой код и обратите внимание, что шаблон стал слишком длинным.
- В
main()
, под определениемborder
, создайте новую переменную с именемtimesToRepeat
количества повторений. Установите его значение на 4.
val timesToRepeat = 4
- В
main()
, при вызовеprintBorder()
добавьте количество повторений в качестве второго аргумента. Разделите два аргумента запятой.
printBorder(border, timesToRepeat)
Теперь main()
функция должна выглядеть так:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println("Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
Как и прежде, этот код выдает ошибку, потому что у вас вызывается больше аргументов, printBorder()
чем в определении printBorder()
.
- Исправьте
printBorder()
, чтобы также принимать количество повторений в качестве входных данных. Добавьте запятую после аргумента, а затем дополнительный аргумент:timesToRepeat: Int.
Первая строка определения вашей функции теперь выглядит так, как показано ниже.
fun printBorder(border: String, timesToRepeat: Int) {
Уведомление:
- Запятая разделяет два аргумента.
timesToRepeat
имя аргумента,- с последующим двоеточием: символ,
- а тип:
Int. timesToRepeat
является числом, поэтому вместо того, чтобы делать его типаString
, вам нужно сделать его типаInt
, что является сокращением от целого числа, целого числа.
- Внутри
printBorder()
измените,repeat
чтобы использоватьtimesToRepeat
аргумент (вместо числа 23). ВашprintBorder()
код должен выглядеть так.
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
- Запустите свой код. И вывод выглядит так, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
- Чтобы сделать вывод идеальным, вставьте два пробела в начале сообщения «С днем рождения». Тогда ваш вывод будет таким, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
Вот окончательный код для вашего баннера:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println(" Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
Поздравляем! С функциями, аргументами, переменными и повторяющимся циклом вы изучили основные строительные блоки, которые используются почти во всех программах.
Сделайте перерыв, а затем приступайте к следующей задаче ниже, где вы создадите больше функций и циклов, и вы получите возможность построить гигантский торт с нужным количеством свечей всего за несколько строк программирования.
fun main() {
printBorder()
println("Happy Birthday, Jhansi!")
printBorder()
}
fun printBorder() {
repeat(23) {
print("=")
}
println()
}
- Запустите свой код. Вывод должен быть таким же, как и раньше, но на этот раз вы смогли создать границу, указав символ «=» только один раз!
======================= Happy Birthday, Jhansi! =======================
Используйте аргументы, чтобы изменить границу
Что, если вы хотите создать границы, которые используют разные символы, такие как приведенные ниже?
%%%%%%%%%%%%%%%%%%%%%%%%%%
:::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::
Вы можете определить отдельную функцию для каждого из этих различных символов. Однако есть более эффективный способ сделать это. Вы можете повторно использовать уже написанную функцию и сделать ее более гибкой, чтобы она работала для разных типов символов.
Отличительной чертой функций является то, что вы можете вводить в них данные, используя аргументы. Вы кратко столкнулись с этим в предыдущей кодовой лаборатории, когда знакомились с main()
. На этом шаге вы добавите аргумент в printBorder()
функцию, чтобы она могла печатать любой шаблон границы, который вы указали.
- В
main()
верхней части создайте переменную с именемborder
для шаблона границы. Это будет содержать текст, который будет повторяться для границы.
val border = "%"
- Теперь передайте эту
border
переменную в оба вызоваprintBorder()
функции в качестве аргумента. Вы делаете это, помещаяborder
в круглые скобки()
, как если бы вы вводили текст дляprintln()
печати.
Ваша main()
функция должна выглядеть как код ниже.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
Функция printBorder()
возьмет это значение border
в качестве входных данных и выяснит, как распечатать всю границу.
- Запустите свой код. Ваш код не выполняется, и вместо этого вы видите значки ошибок рядом с вашим кодом.
- Посмотрите на панель вывода, и там сообщение об ошибке.
Как и раньше, в сообщении указывается, где находится ошибка, и дается подсказка, что это может быть. Важная часть: Too many arguments for public fun printBorder()
. Вы вызываете printBorder()
функцию и передаете границу в качестве входных данных. Однако printBorder()
в данный момент определение функции не принимает никаких входных данных.
- Исправьте эту ошибку, добавив аргумент границы в
printBorder()
определение функции. См. первую строку кода, как показано ниже.
fun printBorder(border: String) {
repeat(23) {
print("=")
}
println()
}
- Обратите внимание, что имя аргумента
border
. - После имени ставится двоеточие
:
- и слово
String
, которое является описанием того, какого рода или типа аргумент это.
A String
— это фрагмент текста, состоящий из символов, заключенных в кавычки. Вы можете думать об этом как о бусинах, выстроенных в линию, чтобы сформировать ожерелье, как символы, выстроенные в линию, чтобы сформировать слова и текст. Указание того, что аргумент должен быть a, String
помогает системе обеспечить, чтобы ваш аргумент был текстом, а не, например, числом.
- Запустите свой код. Функция
printBorder()
теперь принимает границуString
в качестве входных данных. И код вmain()
вызовахprintBorder(border)
сborder
аргументом. Ваш код должен работать без ошибок. - Посмотрите на вывод вашей программы в консоли , и она все еще показывает ту же границу, что и раньше?
======================= Happy Birthday, Jhansi! =======================
Это не предполагаемое поведение! Вы попытались сделать рамку с символом "%", но программа все еще печатает рамку с символом "=". На следующих шагах вы узнаете, почему это происходит.
- В редакторе обратите внимание на серый восклицательный знак. Этот значок указывает на предупреждение. Предупреждения — это проблемы с вашим кодом, на которые вам нужно обратить внимание, но они не мешают вашему коду работать.
- Наведите указатель мыши на восклицательный знак, и появится сообщение. В нем говорится, что
"Parameter 'border' is never used."
это предупреждение объясняет проблему с выходом. Вы передаете в функцию новую строку для границы, но не используете ее для печати. - Измените
printBorder()
функцию, чтобы использовать переданныйborder
вместо печати "=". Это работает точно так же, как если быborder
это была переменная, которую вы определили внутри функции!
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
- Запустите свой код еще раз. Вывод должен выглядеть так, как показано ниже.
%%%%%%%%%%%%%%%%%%%%%%% Happy Birthday, Jhansi! %%%%%%%%%%%%%%%%%%%%%%%
Отличная работа, вы решили проблему! Вот ваш готовый код.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
Вы сделали printBorder()
функцию намного более гибкой, не добавляя много кода. Теперь вы можете напечатать рамку из разных символов с небольшим изменением.
- [Необязательно] Изменив всего одну строку кода в
main()
функции, как вы будете печатать такие баннеры ко дню рождения?
*********************** Happy Birthday, Jhansi! ***********************
::::::::::::::::::::::: Happy Birthday, Jhansi! :::::::::::::::::::::::
Измените функцию, чтобы она имела два аргумента
Что делать, если вы хотите использовать другой шаблон длиной более 1 символа, скажем, "'-._,-'"
. Вы не стали бы повторять этот шаблон 23 раза, так как это было бы слишком долго. Вы могли бы повторить это, может быть, 4 раза. Для этого вы можете изменить количество повторений в repeat()
операторе printBorder()
. Тем не менее, вы можете сделать что-то лучше!
Вы можете определить более красивую границу на основе двух вещей:
- Шаблон для повторения (который вы уже сделали)
- Количество раз, которое вы хотите повторить шаблон
Вы можете создать переменные для каждого шаблона и количества повторений, а затем передать обе части информации в printBorder()
функцию.
- В
main()
измените границу, чтобы она была"'-._,-'"
узором.
val border = "`-._,-'"
- Запустите свой код и обратите внимание, что шаблон стал слишком длинным.
- В
main()
, под определениемborder
, создайте новую переменную с именемtimesToRepeat
количества повторений. Установите его значение на 4.
val timesToRepeat = 4
- В
main()
, при вызовеprintBorder()
добавьте количество повторений в качестве второго аргумента. Разделите два аргумента запятой.
printBorder(border, timesToRepeat)
Теперь main()
функция должна выглядеть так:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println("Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
Как и прежде, этот код выдает ошибку, потому что у вас вызывается больше аргументов, printBorder()
чем в определении printBorder()
.
- Исправьте
printBorder()
, чтобы также принимать количество повторений в качестве входных данных. Добавьте запятую после аргумента, а затем дополнительный аргумент:timesToRepeat: Int.
Первая строка определения вашей функции теперь выглядит так, как показано ниже.
fun printBorder(border: String, timesToRepeat: Int) {
Уведомление:
- Запятая разделяет два аргумента.
timesToRepeat
имя аргумента,- с последующим двоеточием: символ,
- а тип:
Int. timesToRepeat
является числом, поэтому вместо того, чтобы делать его типаString
, вам нужно сделать его типаInt
, что является сокращением от целого числа, целого числа.
- Внутри
printBorder()
измените,repeat
чтобы использоватьtimesToRepeat
аргумент (вместо числа 23). ВашprintBorder()
код должен выглядеть так.
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
- Запустите свой код. И вывод выглядит так, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
- Чтобы сделать вывод идеальным, вставьте два пробела в начале сообщения «С днем рождения». Тогда ваш вывод будет таким, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
Вот окончательный код для вашего баннера:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println(" Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
Поздравляем! С функциями, аргументами, переменными и повторяющимся циклом вы изучили основные строительные блоки, которые используются почти во всех программах.
Сделайте перерыв, а затем приступайте к следующей задаче ниже, где вы создадите больше функций и циклов, и вы получите возможность построить гигантский торт с нужным количеством свечей всего за несколько строк программирования.
-
Цикл сверления с шагом G83 выполняет операцию сверления за несколько шагов, этот метод делает глубокое сверление простым и экономичным. Пода...
-
Распечатайте баннер на день рождения с рамкой fun main() { println("=======================") println("Happy Birthday...
-
G-коды, также называемые подготовительными кодами, представляют собой слово в программе ЧПУ, начинающееся с буквы G. Как правило, это код, с...