56.59K
AI

Tomorrow_School_Go_Piscine_Quest_1-9_Mini_Presentation

1.

GO PISCINE
Мини-презентация для подготовки
к квестам 1–9 Tomorrow School
Краткая карта тем • синтаксис • алгоритмы • экзаменационная практика
Главный принцип: понять задачу → написать код по памяти → проверить крайние
случаи.
1

2.

Как пользоваться этой шпаргалкой
Повторяй блоки по очереди и обязательно пиши код самостоятельно.
1. Вспомни
2. Напиши
3. Проверь
Назови тему и объясни её
своими словами.
Создай функцию с нуля.
Проверь обычный пример,
пустой ввод, ноль,
отрицательное число и
границы.
Не смотри сразу готовое
решение.
Следи за типами, скобками,
циклами и return.
Не заучивай только ответ: учись восстанавливать ход решения.
2

3.

Quest 1 — терминал и Git
Базовая навигация и работа с файлами.
Команды, которые нужно узнать
Порядок работы
pwd — где я нахожусь
ls — показать файлы
cd — перейти в каталог
mkdir — создать каталог
touch — создать файл
cat — прочитать файл
git status — состояние репозитория
git add / git commit — сохранить изменения
1. Открой терминал.
2. Перейди в нужную папку.
3. Проверь файлы командой ls.
4. Создай или отредактируй файл.
5. Проверь изменения через git status.
6. Сохраняй работу осмысленными
коммитами.
3

4.

Quest 2 — основы Go
Переменные, условия, циклы, вывод символов.
package main
Запомни
import "fmt"
var x int = 5 — объявление
x := 5 — короткое объявление внутри функции
if / else — ветвление
for — цикл
z01.PrintRune(r) — вывести руну
'\n' — переход на новую строку
func main() {
n := 3
if n > 0 {
fmt.Println("positive")
}
}
Практика: алфавит, цифры, знак числа, комбинации цифр, вывод числа.
4

5.

Quest 3 — строки и указатели
Функции, руны, деление, изменение значений.
Синтаксис
Типичные упражнения
func Sum(a int, b int) int { return a + b }
PrintStr / StrLen
Swap / DivMod / UltimateDivMod
PointOne / UltimatePointOne
StrRev / Atoi / сортировка чисел
for _, r := range s { /* обработать r */ }
&x — адрес переменной
*p — значение по адресу p
% — остаток от деления
Помни: строка — байты UTF-8; range
перебирает руны.
5

6.

Quest 4 — алгоритмы и рекурсия
Повторение, базовый случай и вычисления.
Итерация и рекурсия
Алгоритмы для тренировки
Итерация: повторение через цикл.
Рекурсия: функция вызывает саму себя.
Факториал
Степень
Фибоначчи
Квадратный корень
Проверка простого числа
Поиск следующего простого
Задача восьми ферзей
В рекурсии обязательны:
1. Базовый случай — остановка.
2. Шаг — приближение к базовому случаю.
6

7.

Quest 5 — строки, байты и руны
Обработка символов и преобразование текста.
Разница
Темы заданий
len(s) считает байты строки.
len([]rune(s)) считает руны.
FirstRune / LastRune / NRune
Index / Compare
ToUpper / ToLower / Capitalize
IsAlpha / IsNumeric
Concat / Join
PrintNbrBase / AtoiBase
for _, r := range s { ... }
перебирает Unicode-руны.
Для кириллицы это особенно важно.
7

8.

Quest 6 — аргументы командной строки
Работа с os.Args.
package main
Главное
import "os"
os.Args содержит аргументы запуска.
os.Args[0] обычно — имя программы.
Пользовательские аргументы начинаются с
os.Args[1].
func main() {
args := os.Args
for i, arg := range args {
_ = i
_ = arg
}
}
Задания: имя программы, печать параметров,
обратный порядок, сортировка параметров.
Проверяй длину os.Args перед обращением к индексу.
8

9.

Quest 7 — срезы и память
make, append, разбиение и объединение.
nums := make([]int, 0)
nums = append(nums, 10)
nums = append(nums, 20)
fmt.Println(nums) // [10 20]
Ключевые идеи
make создаёт срез заданной длины/ёмкости.
append добавляет элементы и возвращает
срез.
Учитывай, что append может создать новый
массив.
Упражнения: AppendRange, MakeRange, ConcatParams, SplitWhitespaces, PrintWordsTables,
ConvertBase, Split.
9

10.

Quest 8 — структуры и файлы
Поля структур и чтение содержимого.
type Point struct {
X int
Y int
}
Файлы
Открыть файл → проверить ошибку.
Прочитать данные → обработать.
Закрыть файл → не забыть Close.
p := Point{X: 2, Y: 3}
Задания: Boolean, Point, DisplayFile, Cat, Ztail.
Ошибки проверяй сразу: if err != nil { ... }
10

11.

Quest 9 — функции как аргументы
Передаём функцию внутрь другой функции.
func ForEach(a []int, f func(int)) {
for _, n := range a {
f(n)
}
}
Восемь упражнений
ForEach — действие для каждого
Map — преобразование элементов
Any — есть ли подходящий
CountIf — сколько подходит
IsSorted — проверка порядка
Doop — арифметические операции
SortWordArr — сортировка слов
AdvancedSortWordArr — заданное сравнение
11

12.

Синтаксис Go: 10 быстрых опор
Повторяй перед тем, как писать решение.
Пакет
Импорт
package piscine / package main
import "github.com/01-edu/z01"
Функция
Переменная
func Name(x int) int { ... }
var x int = 0 • x := 10
Условие
Цикл
if condition { ... } else { ... }
for i := 0; i < n; i++ { ... }
Перебор
Срез
for i, v := range slice { ... }
[]int{1, 2} • append(slice, x)
Возврат
Проверка
return result
go test ./... • проверь крайние случаи
12

13.

Алгоритм решения экзаменационной задачи
Один и тот же порядок действий помогает не теряться.
1. Прочитай условие
2. Разбери примеры
3. Напиши сигнатуру
Что функция получает и что
должна вернуть?
Определи поведение на простых
данных.
Имя, параметры, тип результата.
4. Реши по шагам
5. Проверь границы
6. Сверь формат
Сначала простой корректный
алгоритм.
Пустая строка, 0, отрицательное,
один элемент.
Имя пакета, импорт, вывод,
ограничения задания.
Не копируй решение вслепую: напиши его заново по памяти.
13

14.

План повторения
Короткие занятия лучше, чем одно длинное заучивание.
Раунд 1
Раунд 2
Раунд 3
Quest 1–3
Терминал, синтаксис, циклы,
строки, указатели.
Quest 4–7
Рекурсия, руны, аргументы,
срезы.
Quest 8–9
Структуры, файлы, функции
как аргументы.
Цель: написать базовые
функции без подсказки.
Цель: объяснить алгоритм и
проверить границы.
Цель: решить 1 задачу на
время.
Повторяй ошибки отдельно — это самый полезный список перед экзаменом.
14

15.

Материалы и важное уточнение
Презентация — обзорная шпаргалка по темам Quest 1–9, а не дословная копия всех условий.
Репозиторий с папками QUEST-01–QUEST-09:
https://github.com/altyn-bulmers/piscine-go
Альтернативный Tomorrow School Training Repository:
https://github.com/Lmao0655/piscinego
Перед экзаменом сверяй названия функций, сигнатуры и ограничения с точным условием на
платформе Tomorrow School.
15
English     Русский Правила