Skip to main content

Введение

В этом курсе изучаются основные алгоритмы. Курс разделён на три раздела: для 9, 10 и 11 классов соответственно.

Важно

Учебник находится в разработке. Поэтому часть заданий не связаны с тестами или вообще неполные. У таких заданий либо нет ссылки на соответствующий контест в системе тестирования, либо в конце названия через пробел добавлена вертикальная черта |

Задания

Все задания выполняются с помощью языка Java. Хотя этот язык разработан в первую очередь для работы с объектно-ориентированными решениями, тем не менее здесь будет рассмотрена только работа с базовыми переменными, например, целыми числами, логическими типами данных.

Инструкции, как зарегистрироваться в системе тестирования, находятся здесь.

Исключение составляют строки и массивы, но об этом будет рассказано в соответствующих разделах.

Курс по объектно-ориентированному программированию находится в разделе ООП.

Каждый курс состоит из набора заданий. Каждое задание состоит из 7 задач и выдаётся на 1 урок. На выполнение заданий даётся неограниченное число попыток.

Задачи упорядоченны по сложности:

  • первая и вторая задачи – абсолютно тривиальные,
  • над третьей нужно немного подумать
  • четвёртая - обычная школьная задача
  • пятая и шестая - просто хорошие задачи
  • седьмая задача - действительно сложная

Оценки ставятся по количеству решённых задач. Соответствие между количеством решённых задач и оценкой представлено в следующей таблице:

Кол-во решённых задачОценка
0, 1, 21
32
43
5, 64
75

Задания, помеченные звёздочкой являются дополнительными. Оценки за них ставятся только по желанию учащихся.

Рейтинг

Прогресс выполнения можно посмотреть на сайте sch.buran.center.

Код регистрации: qwerty123

Java

Чтобы писать и запускать java программы, нужна среда разработки. Я советую Intellij IDEA. Инструкции по установке и запуску программ в ней лежат здесь

Любая программа представляет из себя текст, который нужно открыть редактором среды разработки и запустить копиляцию. IDEA запускает программу после компиляции автоматически.

Здесь и дальше будут приводиться либо полные программы, либо их фрагменты.

idea-start

Чтобы запустить программу, нажмите на зелёную стрелочку.

Программа запустит, но пока что ничего не выведет, кроме служебной информации.

idea-start

Красными скобками выделена область вывода, по традиции она называется консолью

Исходный код программы пока что такой:

package com.company;

public class Main {

public static void main(String[] args) {
// write your code here
}
}

Первая строчка package com.company; может у вас отсутствовать. Это нормально. В ней указывается название папки проекта(пакет), в которой лежит исходный файл(исходники). Исходным файлом называют файл, в котором записан текст программы.

Первое слово - это специальная команда установки пакета, второе - название пакета. Практически все команды в java заканчивается точкой с запятой ;. Исключение составляют специальные команды компиляции, которые напрямую не относятся к исполняемым командам, а скорее говорят, как среда разработки должна компилировать исходники в исполняемый код.

Что означают остальные строчки в рамках данного курса разбираться не будет. Для выполнения любого из заданий все команды нужно писать между public static void main(String[] args) { и }. Эта конструкция называется главный метод.

Сейчас внутри главного метода всего одна команда:

    // write your code here

Это команда комментария. Она ничего не делает. Если в начале команды стоит две косых черты //, то всё, что написано после них до конца строки при компиляции не учитывается. Комментарии очень полезны в больших программах, чтобы было проще разбираться в исходниках.

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

Вывод текста

Чтобы вывести на экран текст, используется команда System.out.print(). Она выводит на экран все символы, которые указаны внутри скобок. Правда, эти символы следует обернуть ещё и двойными кавычками. Зачем это нужно, дует рассмотрено позже.

package com.company;

public class Main {

public static void main(String[] args) {
System.out.print("Тест");
}
}

Эта команда выведет слово текст Тест на консоль.

idea-start

Если мы напишем ещё две команды с текстами Тест2 и Тест3:

package com.company;

public class Main {

public static void main(String[] args) {
System.out.print("Тест");
System.out.print("Тест2");
System.out.print("Тест3");
}
}

На консоль будет выведено:

ТестТест2Тест3

Это связано с тем, что вывод не переносится автоматически на следующую строку. Для этого необходимо вывести специальный символ, означающий этот перенос. Все специальные символы, чтобы не путать их с текстом, обозначаются двумя символами: первый - это обратный слэш \, второй - символ-команда. В нашем случае команда - это перенос курсора (места, где будет выведен следующий символ) на следующую строку. Ей соответствует последовательность символов "\n".

package com.company;

public class Main {

public static void main(String[] args) {
System.out.print("Тест\n");
System.out.print("Тест2");
System.out.print("Тест3");
}
}

На консоль будет выведено:

Тест
Тест2Тест3

После первого слова курсор перешёл на следующую строку, а после второго - нет. Это неудивительно, ведь мы добавили команду переноса строки только первый раз, а второй так и оставляет курсор на той же строке, что и был.

Это легко исправить. Просто допишем \n во вторую команду вывода:

package com.company;

public class Main {

public static void main(String[] args) {
System.out.print("Тест\n");
System.out.print("Тест2\n");
System.out.print("Тест3");
}
}

На консоль будет выведено:

Тест
Тест2
Тест3

Каждый раз писать в конце команды вывода \n довольно утомительно, поэтому в Java добавлена вторая команда вывода с автоматическим переносом: System.out.println(). Она автоматически добавляет к тексту, который мы укажем в кавычках команду \n:

package com.company;

public class Main {

public static void main(String[] args) {
System.out.println("Тест");
System.out.println("Тест2");
System.out.print("Тест3");
}
}

Вывод не изменился:

Тест
Тест2
Тест3