j
Название книги | Я учусь кодить: основы программирования для детей |
Автор | Кабиров |
Год публикации | 2021 |
Издательство | Феникс |
Раздел каталога | Познавательная литература для школьников по общественным, естественнонаучным и техническим знаниям (ID = 174) |
Серия книги | Гений программирования |
ISBN | 978-5-222-34088-2 |
EAN13 | 9785222340882 |
Артикул | 978-5-222-34088-2 |
Количество страниц | 87 |
Тип переплета | матовая+лакировка |
Формат | 210*210 |
Вес, г | 319 |
Посмотрите, пожалуйста, возможно, уже вышло следующее издание этой книги и оно здесь представлено:
Данная книга является факультативным учебным пособием по программированию для детей. Особенность книги состоит в том, что она учит основам программирования, без привязки к определённому языку программирования, а все примеры и базовый синтаксис языка показаны на современном языке Apple Swift. Освоив эту книгу, при желании ребёнок сможет с лёгкостью использовать любой другой язык программирования, вооружившись лишь справочником по выбранному языку. Он будет понимать базовые концепции и принципы алгоритмизации и построения программ. Информация в книге подаётся в лёгком игровом стиле, после каждого блока теории приведены серии увлекательных задач для закрепления материала и развития мышления.
К сожалению, посмотреть онлайн и прочитать отрывки из этого издания на нашем сайте сейчас невозможно, а также недоступно скачивание и распечка PDF-файл.
Серия «Гений программирования»Роман Кабиров, Екатерина Кабировая учуськодитьосновы программирования для детейРостов-на-Дону Феникс 2021УДК087.5:004.41ББК 32.973.26-018КТК746К12Кабиров, Роман.К12Ростов н/Д : Феникс, 2021. — 87, [1] с.: ил. — (Гений программирования).ISBN 978-5-222-34088-2Данная книга является факультативным учебным пособием по программированию для деApple Swift. Освоив эту книгу, при желании ребёнок сможет с лёгкостью использовать любой другой язык программирования, вооружившись лишь справочником по выУДК 087.5:004.41ББК 32.973.26-018ISBN 978-5-222-34088-2© Кабиров Р., Кабирова Е., текст, 2021© ООО «Феникс», оформление, 2021© shutterstock.com, ил., 2021ОглавлениеГлава 3. Логика и алгоритмыГлава 4. ПсевдокодГлава 5. Обзор языков программированияГлава 6. Пишем программы на языке Swift33Глава 6.1. Константы, переменные и массивыГлава 6.2. ОператорыГлава 6.3. ЦиклыГлава 6.4. ФункцииГлава 6.5. Классы и объектыЗаключениеЗдравствуй, дорогой друг!Как здорово, что ты держишь в руках эту книгу! Ведь в ней тебя ждёт столько всего нового, неизведанного и очень интересного! Эта книга станет твоим проводником во вселенную программирования, раскроет перед тобой мир логики и алгоритмов, научит новому образу мышления и восприятия реальности, позволит по-новому взглянуть на окружающий мир. Ты узнаешь, какие бывают языки программиПосле прочтения этой книги ты сможешь выбрать свой путь в мире программирования, который тебе ближе, — от создания игр для моДля тренировки практических навыков программирования мы будем использовать онлайн-компилятор, который не требует установки на компьютер, поэтому в процессе чтения книги тебе потребуется комЭта книга будет максимально близка тебе, если твой возраст от 7 до 12 лет.Мир компьютерных устройств-> Компьютер и электронные устройства-> Что такое информация?-> Области применения-> Польза для человека-> Программирование как процесс со стороны человека и машины-> Синхронность эволюции машин и человекаЖивя в современном обществе, мы каждую минуту взаимодейА как же электронные устройства получают информацию от нас? Через нажатие кнопок на клавиатуре, через касание экрана, через миЛюбое взаимодействие с электронными устройствами — это обмен информацией, и, чтобы устройство понимало, чего мы от него хотим, оно должно уметь получать и «обдумывать» информацию от нас. Таким образом, любое электронное устройство следует научить принимать и обрабатывать информацию, это и называется программирование. В результате программирования «рождается» программа. Програм-ма — это разум электронного устройства. Все электронные устройства вокруг содержат проБолее того, программы есть у всех жиА какой алгоритм у будильника? Первое — запомнить время утреннего подъёма, которое ты ему указал. Второе — ждать наступления этого времени. Третье — зазвонить и разбуПомнишь старый механический будильник своей бабушки? Ты не поверишь, но он раЦифровые устройства вокруг нас развиваГлава 2Данные и двоичный кодCODE-> Обработка и хранение данных-> Двоичный код-> Структуры данных-> Уровни абстракцииВ этой главе рассмотрим более подробно такое известное всем элекНачнём с самого главного: какой «орган» в компьютере занимается обработкой информации, мышлением? Этим занимается процессор, или «центральный процессор». Он получает информацию и выполняет с ней определённые действия, заложенные программой.Сама информация хранится в запоминающем устройстве компьюДля вывода информации на экран компьютеру нужна видеокарта, а для отображения нужен монитор (или экран мобильного телефона, например). Также устройством вывода информации является принДля ввода информации в компьютер нужны мышь и клавиатура. Для ввода звука потребуется микрофон, а для ввода видео — видеокамера.Также существует ещё множество специфичеМатеринская плата является связующим звеном для всех компонентов компьютера. НаКак же «думает» центральный процессор компьютера? Процессор мыслит двоичныВ самом начале эпохи компьютеров для ввода программы человеку приходилось общаться с компьютером практически поВот мы и подошли вплотную к самому процессу программирования. Наши первые программы будут совсем простые, причём написаны они будут на понятном тебе языке — русском. В основном программы пишут на языках программирования, которые используют английский язык, и мы обязательно напишем настоящие, работающие программы на реальных языках программирования в следующих главах. А пока что будем писать программы, понятные человеку.1:2:3:4:5:6:7:8:Не ожидал, что сейчас увидишь нечто подобное? Это программа на псевдокоде — так называется условная программа, которую не поймёт компьютер, но поймёт человек. Наша программа написана на псевдокоде на русском языке. Правила написания таких программ ограничены только твоей фантазией.Давай теперь разберём, что делает эта маленькая программа на псевдокоде из восьми строк. Эта программа находит максимальное число из двух введённых пользователем.Строка 1 — начало выполнения программы, мы обозначили начало выполнения словом «НАЧАЛО», но ты можешь использовать любое другое, которое тебе нравится и будет понятно другим, например «СТАРТ».Строки 2 и 3 — мы объявили переменные «Число1» и «Число2», тип у этих переменСтрока 4 — переменная «Максимум», тип тоже «Целое число», в этой переменной мы будем хранить максимальное значение.Строка 5 — функция ВВОД (Число 1, Чис- ло2) — это функция ввода чисел пользоваСтрока 6 — собственно, это и есть поиск максимального числа. В этой строке выполСтрока 7 — выводим найденное максиСтрока 8 — завершение выполнения про- граммы.Что будет, если при запросе двух чисел ты введёшь числа «10» и «20»? Какое число выдаст программа при выполнении? Праname[4] = "Petr" name[2] = "Fedor"Пройтись по такому массиву-словарю очень просто:for a in ages { print(a.key) print(a.value) }Ключевое слово key после элемента словаря выведет название ключа. Ключевое слово value выведет значение этого элемента. Например, для элемента ages[«Ivan»] = 10 ключ key — это «Ivan», а значение value — это 10.Обрати внимание, как выглядит конструктор словаря: [:]. Две квадратные скобки, а между ними двоеточие. Это упрощённая запись, ты всегда можешь вызвать конструктор типа вот так: [String: Int](). Вот как выглядит конструктор в коде: var ages: [String: Int] = [String: Int]()ФункцииТы уже умеешь писать код, работать с циклами, выполнять проверки условий. Давай теперь разберёмся с функциями.Функция — это самостоятельная часть кода. Для описания функции используется ключевое слово feme, это сокращение от function (функfunc следует имя функции, затем в круглых скобках следуют параметры функции, затем — возвращаемый результат и само тело функции. Звучит непросто? Зато очень просто выглядит:func printName(name: String) -> Bool { print("Name: \(name)") return true}Мы объявили функцию printName, придумали такое название поprint и затем возвращаем результат true после ключевого слова return (вернуть). Если у функции в описании указан тип, то функция обязательно должна вернуть результат, иначе программа даже не скомпилируется.func sayHello(){print("Привет")}Вот пример объявления ещё одной функции, называется функция sayHello, в переводе с английского это будет «скажи привет». Мы придумали такое имя для функции потому, что она просто выведетJS W IEна экран слово «Привет». У функции нет параметров, и функция не возвращает результат.Очень важно придумывать хорошие и говорящие имена для функprintResult() (вывести результат), нежели doSomethingO (сделать что-то). Когда названия функций говорящие, исходный код легко читается и понятен не только тебе, но и другим программистам.Вот пример хорошо объявленной функции:func printNameAndAge(name: String, age: Int){ print("Name: \(name), age: \(age)")}Название функции говорящее — printNameAndAge — printNameAndAge, с английского переводится как «распечатать имя и возраст». Эта функция выведет на экран имя и возраст, которые передали ей в параметрах. Вывод на экран будет осуществлён функциprint. Обрати внимание, что внутри строки, которую мы выводим, мы обращаемся к значениям параметров по их именам (name и age). Но для того, чтобы в строке вывести значение переменной, нужно использовать такую запись: “\(имя_переменной)”.Как ты уже понял, вызвать функцию очень легко, достаточно написать имя функции и её параметры в круглых скобках. Обрати внимание, что в языке Swift имена функций и переменных чувствительны к регистру, имеет значение — маленькая буква или большая. Например, функция sayHello и функция SayHello — это две разные функции, потому что у одной первая буква в названии — маленькая s, а у другой — большая S. Точно так же и с именами переменных — в программе нужно испольlet или var.Давай попробуем объявить и вызвать пару функций:// опишем наши функции func sayHello(){1010 1 0 1 0 0 0i 00 0 0 100 (ill 01001 0 0 0 1 010 10 1 0 0 ]1011'llii 00010100 1 11 0 00 ]0 11 ill <0 000 :111 0 00011(10010101100010000100111110110000 1]110 0 00 00 11(0 0 0 00110J1000]11(10i01001 01001100001 111L 0 0 0 i 0 01L 1 105 0 115 1 i J 01) i 0 1 1L 0 1 010L 0 01 1 1 L 00 1 i0MIL1050001L13 0 0■1L101L051L 0)0I00101L)Lз0)L 0 1 110J i i 1 1 0 0 10 1100 00010 0 110110« 110 1000 11100 010 0 100 0 1 010 10 0 0 0 0 1 1110 0e1 1 0i 0 101 1 10 10 10 110 10 1110 0 10 0 1 1 i 111 00 0 0 0 10 10 11 1 0 00 0 10 110 0ii0 0 0 0 1 0 110 0 1 0 0i 1100 0 0 00 0iprint("Hello ! ") }func sayHelloToUser(name: String) { print("Hello, \(name)")}// вызовем эти функцииsayHello()sayHelloToUser(name: "Ivan")Результатом выполнения программы будет вывод двух строк в конHello!Hello, IvanПервая функция не принимает никакие параметры и просто выводит на экран слово «Hello!». Вторая функция принимает параметр с именем name и типом String, строка. Обрати внимание, что при вызове функции в скобках мы указали имя параметра, а внутри функции к значению этого параметра обратились по имени. Вторая функция вывела строку «Hello, Ivan», потому что в параметре функции мы передали имя «Ivan».А давай напишем функцию, которая вернёт нам какой-нибудь ре// функция вернёт число 2 func getTwoO -> Int { return 2}// а эта функция вернёт строку "Ivan" func getNameQ -> String {return "Ivan"}// эта функция вернёт сумму двух чисел, переданных в параметрахfunc getSum(a: Int, b: Int) -> Int {Практические задачи и заданияТеперь у тебя есть фундаментальные знания в программировании, и, чтобы лучше усвоить процесс программирования, почувствовать себя программистом, мы будем писать программы. Потому что практика и только практика ведёт к совершенству!Начнём с простых программ, мы будем давать тебе задание, а ты пиши программы. Ниже будет расположен ответ (готовая программа) с подробными комментариями, но не подглядывай в ответ, пока не наРекомендуем писать программы сразу в среде онлайн-компиляSwift, мы используем вот этот онлайн-компилятор: http://online. swiftplayground.run. Для запуска программы нажми синюю кнопку Run наверху слева.Задача 1. Поиск максимума в массивеВ зоопарке решили устроить гонки животных. Для этого выбрали четырёх зверей: зайца, страуса, лисицу и волка. Скорость каждого животного известна:Заяц: 10 км/чСтраус: 13 км/чЛисица: 8 км/чВолк: 17 км/чКакое животное победит?РешениеОчевидно, что победит животное, которое быстрее всего бегает. По условию задачи видИ как же будет выглядеть наша программа?Т. к. у нас четыре зверя, то нам потребуется массив, в котором мы будем хранить значения скоростей животных. Затем нам нужно будет найти максимум в этом массиве. И затем вывести животное, которое бегает быстрее всех. Для простоты решения договоримся, что животные в массиве следуют в таком порядке: заяц, страус, лисица и волк. Мы написали код, и программа в онлайн-компиляторе выглядит вот так:let animalsSpeed = [10, 13, 8, 17]var maxSpeed = 0 var maxindex = 0for i in 0..maxSpeed { maxSpeed = animalsSpeed[i] maxindex = i } } if maxindex == 0 { print("Победил заяц") } else if maxindex == 1 { print("Победил страус") } elseif maxindex == 2 { print("Победила лисица") } else if maxindex == 3 { print("Победил волк") }Давай подробно разберём нашу программу, чтобы уж совсем было понятно, что происходит:// описали массив с ключевым словом let и инициализировали его // значениями скорости животных в том порядке, о котором // договорились выше: заяц, страус, лисица, волк let animalsSpeed = [10, 13, 8, 17]// описали переменную maxSpeed — в ней будем хранить максимальное // найденное значение, это нужно для того, чтобы найти максимальное // значение в массиве var maxSpeed = 0// в переменной maxlndex будем хранить порядковый номер (индекс) // элемента с максимальным значением, это нам потребуется, чтобы // определить, какое же животное самое быстрое var maxindex = 0// цикл с параметром i от нуля до количества элементов в массиве // animalsSpeedfor i in 0.. // проверяем — если текущая скорость больше максимальной, то// обновляем максимальную скорость в переменной maxSpeed// и сохраняем индекс массива в переменную maxindex if animalsSpeed[i] > maxSpeed {maxSpeed = animalsSpeed[i] maxindex = i } }// проверяем по индексу, какое же животное самое быстрое if maxindex == 0 { print("Победил заяц") } elseПопулярное изданиеРоман Кабиров, Екатерина КабироваЯ учусь кодитьОтветственный редактор: М. Басовская Технический редактор: Г. ЛогвиноваФормат 84x108/32. Тираж 3 000 экз.Зак. №Импортер на территории ЕАЭС: ООО «Феникс»344011, Россия, Ростовская обл., г. Ростов-на-Дону, ул. Варфоломеева, 150 Телефакс: (863) 261-89-50, 261-89-59Изготовлено в Украине. Дата изготовления: 04.2021.Срок годности не ограничен. Изготовитель: ООО «БЭТ».61024, Украина, г. Харьков, ул. Максимилиановская, 17ЕН[®ФЗ от 29.122010 1Р436-ФЗ