Во всех задачах входные данные вводятся c экрана, выходные данные выводятся на экран.


Все задачи ниже относятся к последней теме в этом году: функции. Отнеситесь к этому внимательно, т.е. фактически следующие 10 задач будут определять вашу оценку в году. Если вас не было на уроке или вы ничего не поняли, то советую почитать про функции: html . Внимательный читетель заметит, что информация выложена на 4 страницах, ориентироваться в которых можно через table of contents в левом столбике.

Задача А (Счастливые билетики)

Билетик на советский автобус имеет шестизначный номер,
от 000000 до 999999. Будем называть билетик счастливым, если 
сумма цифр, стоящих на чётных местах равна сумме цифр на 
нечётных местах. Например, 123456 не являеся счастливым, а
112233 является.

Ваша задача вычислить количество счастливых билетиков.

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

Требования: в программе должна быть явным образом реализована 
функция проверки на счастливость билетика.

function isLucky(ticketNumber : integer) : boolean;

Пример ввода:

Пример вывода:
 55252

пример решения задачи


Задача B (Плюшка)

 
Дана последовательность натуральных чисел  длинны N ( N ≤ 1000). 
K-ой плюшкой назовём сумму K-1, K, K + 1 элементов. Посчитайте все плюшки.

Формат входных данных:
Сначала идёт число N, затем N натуральных чисел.
Форматы выходных данных:
Выведите все плюшки.

Прмер ввода:
10
96 95 6 9 84 74 67 31 61 61
Пример вывода:
197 110 99 167 225 172 159 153

требование: 
function getPlushka(k : integer) : integer;
функция должна возвращать k-ю плюшку.

Задача C (простота -- залог успеха)

Дано число 2 ≤ N ≤ 10000. Требуется посчитать, сколько существует
простых чисел, не превосходящих N.

Требование: реализуйте функцию проверки на простоту
function isPrime(number : integer) : boolean;

Пример ввода:
7
Пример вывода:
4

Задача D (Урожай)

 
На поле вырос урожай. Помогите колхозникам посчитать сколько его.

Поле представляет из себя прямоугольник размером N строк по М клеток.
Про каждую клетку известно, сколько единиц урожая на ней присутствует.

Формат входных данных:
  Сначала идут 2 числа N, M, не превосходящие 100. Затем идёт N строк 
по M  чисел, определяющих поле.

Формат выходных данных:
  Выведите одно число, урожай, который будет собран со всего поля. 

Пример входных данных:
2 3
1 2 3
0 0 0
Пример выходных данных:
6

Требование:
реализуйте функцию
function flatSum(lowX, lowY, highX, highY : integer) : integer;


Задача E (Тревога)

 
Тревога! На поле с урожаем нападают Чебурашки. Весь урожай будет уничтожен!
Колхозники высчитали K прямоугольных площадок, которые они могут успеть собрать. Помогите посчитать
колхозникам, сколько урожая они соберут с каждой из площадок.

Формат входных данных:
  Сначала идут 2 числа N, M, не превосходящие 100. Затем идёт N строк 
по M  чисел, определяющих поле.
  Затем идёт число 0 ≤ K ≤ N * M.  Далее идёт K четвёрок чисел lx, ly, hx, hy, описывающих участки,
которые колхозники успеют убрать. Пара lx, ly задаёт левый нижний угол участка, hx, hy --- правый верхний.

Формат выходных данных:
  Для каждой из четвёрок, задающих участок поля выведите одно число --- урожай, который 
будет получен с этого участка.

Пример ввода:
7 5
 6 2 8 9 7
 1 5 3 2 10
 10 0 9 6 4
 3 7 5 7 7
 1 8 10 10 6
 0 0 1 10 3
 4 9 3 6 4
3
5 1 6 2
1 3 3 5
4 1 5 5

Пример вывода:
9
58
64

//Используйте функцию flatSum из прошлой задачи.


Задача F (Уникальность)

 
Девочка Маша рисует на длинной полоске бумаги уникальных зайчиков. (Зайчики располагаются в ряд) 
Однажды, вредный мальчик Гоша скопировал часть зайчиков Маши, после 
чего часть зайчиков Маши оказались не уникальными! Маше известно, что
если на полоске есть несколько одинаковых зайчиков, то аутентичным являеся только первый.
Помогите Маше найти своих зайчиков. 

// т.е. нужно выкинуть все повторы, оставив только первый.

Формат входных данных:
Сначала идёт неотрицательное число N (N ≤ 100)  задающее число зайчиков.
Далее идёт N натуральных чисел, описывающих зайчиков (Да, зайчик задаётся числом).

Формат выходных данных:
Выведите аутентичных зайчиков.

Пример ввода:
6
1 2 3 2 3 3

Пример вывода:
1 2 3

//требование: реализуйте процедуру 
procedure dropDuplicates(N : integer);
Выкидывающую все повторы из массива зайчиков и принимающую в качестве параметра количество элементов
в массиве.


Задача G (пирожки)

 
Жил был мальчик Вася, который очень любил пирожки и очень не 
любил информатику. И попал однажды Вася в лабиринт, наполненный 
вкусными пирожками. Т.к. Вася не любил информатику, то придумать
как собрать побольше пирожков он не смог и решил поступить следующим образом:
идти вправо, собирая пирожки, пока не встретит стенку или конец лабиринта,
затем аналогично идти вниз, задем влево, затем вверх. Ваша задача посчитать, 
ведь вы любите информатику, сколько пирожков соберёт Вася. (а как собрать максиммум 
пирожков, мы обсудим в 9 классе).

Формат входных данных:
  Сначала идут натуральные числа N и M ≤ 100, задающие размеры лабиринта. Затем идёт 
N строчек по M столбцов, описывающих лабиринт. Клетка лабиринта задаётся одним числом ---
-1, если клетка является стенкой (непроходимая клетка), 0 если клетка проходимая и положительным 
 k ≤ 100 весом пирожка в данной клетке.
  Затем идут 2 числа X и Y задающих начальное положение Васи.
Формат выходных данных: 
  Выведите одно число, сколько пирожков соберёт Вася.

Пример входных данных
3 4
 0  3  4  0
 1  0  1 -1
-1  2  0  0
2 2

Пример ввода:
6
Требование: 
реализуйте 4 функции вида
function moveRight(var x,y:integer) : integer
function moveLeft(var x,y:integer) : integer
function moveUp(var x,y:integer) : integer
function moveDown(var x,y:integer) : integer

или одну функцию
function move(var x, y : integer; dx, dy : integer) : integer;

функции возвращают вес собранных пирожков.
dx, dy в функции move задают изменение координат при 1 шаге.





Задача H ()

 

Задача I ()

 

Задача J ()