вторник, 27 марта 2012 г.

Задача про расписание: решение Ани

Как всегда, Аня решила))), как всегда, Аня извиняется, что сделала только 5(!) пунктов из 8-ми, как всегда, блог делает проблемы с выкладкой длинного кода.
Как всегда -- Аня молодец, как всегда, мне трудно понять, за что ты извиняешься)))), ну, а коды я попробую выложить по частям. Если по частям не получится, то все пусть знают, что Аня задачу решила!

воскресенье, 25 марта 2012 г.

Совместный проект


Незаметно подходит к концу второй год нашего проекта "Компьютерные науки: Израиль-Россия". Мы решили собрать сюда несколько ссылок на материалы в Сети о том, как все начиналось и делалось. К сожалению, мы так и не собрались сделать видеоматериалы о наших интернет-уроках, с Салаватом и Пензой -- но "все еще впереди")))
Практически по каждой ссылке есть видеоролики.

вторник, 20 марта 2012 г.

Вот как надо сортировку в массивах объяснять!


Две задачи из госэкзамена 2010-го года

Сегодня эти задачи мы разбирали с салаватавцами и пензенцами (правда, Скайп работал неважно, увы...)
Я эти две задачи выкладываю в блог, чтобы желающие могли порешать -- задачки хорошие и, на мой взгляд, не самые вот уж какие сложные. Но требуют быть очень внимательными)))
----------------------


Задача №9

Дан двумерный массив размером m×n, содержащий целые числа.
Определим правую диагональную тройку массива, которая начинается в позиции [i][j] следующим образом:
три элемента массива:
    первый элемент – в позиции [i][j],
    второй элемент – на одну строку вниз и на один столбец вправо от первого элемента,
    третий элемент - на одну строку вниз и на один столбец вправо от второго элемента
Например, в приведенном ниже массиве размером 5×6 обозначена правая диагональная тройка, которая начинается в позиции [1][3].

0
3
6
7
1
0
17
1
1
2
5
1
23
8
9
6
7
1
1
1
85
9
1
12
0
43
1
31
4
1


Дан двумерный массив размером m×n, содержащий только числа 0 и 1.
Определим единичную правую диагональную тройку массива, которая начинается в позиции [i][j] следующим образом: существует правая диагональная тройка, начинающаяся в позиции [i][j], и значения всех элементов этой тройки равны 1.
Например, в приведенном ниже массиве размером 5×6 обозначена единичная правая диагональная тройка, которая начинается в позиции [1][2].

0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0

А.     Напишите метод, который получит:
    двумерный массив, содержащий только числа 0 и 1.
    два целых числа, обозначающие позицию элемента массива (первое число обозначает строку, второе число обозначает столбец).

Метод проверит, существует ли правая диагональная тройка, начинающаяся в этой позиции. Если да, метод вернет значение
true, иначе – вернет значение false.

Б.      Напишите метод, который получит:
    двумерный массив, содержащий только числа 0 и 1.
    два целых числа, обозначающие позицию элемента массива (первое число обозначает строку, второе число обозначает столбец).

Метод проверит, существует ли единичная правая диагональная тройка, начинающаяся в этой позиции. Если да, метод вернет значение 1, иначе – вернет значение 0.
Вы должны использовать метод, написанный в пункте А.

В.      Дан двумерный массив размером 36×52, содержащий только числа 0 и 1.

Напишите программу, которая подсчитает и выведет на экран количество единичных правых диагональных троек в данном массиве.
Вы должны использовать метод, написанный в пункте Б.

Замечание:
Нет необходимости вводить данные в массив.
Нет необходимости проверять корректность данных в массиве.

Задача №10.
В бассейне есть три разных аттракциона: трамплин, джакузи и сауна.
Прыгать с трамплина можно  начиная с 12 лет.
Пользоваться джакузи можно начиная с 16 лет.
Пользоваться сауной можно начиная с 18 лет.

А.     Напишите метод, который получит возраст посетителя бассейна. Метод вернет одномерный массив из 3 целых чисел, каждое из которых соответствует одному из аттракционов бассейна. В массиве будет содержаться число 1 для тех аттракционов, которые разрешены данному посетителю, и число 0 для запрещенных ему аттракционов.
Б.      Напишите программу, которая для определенного дня примет с клавиатуры возраст каждого из посетителей бассейна. Программа подсчитает число посетителей, которые имели право пользоваться каждым из аттракционов, и выведет полученные числа на экран.
Ввод данных завершится, когда будут введены данные о посетителе, которому нельзя пользоваться ни одним из аттракционов.
Вы должны использовать метод, написанный Вами в пункте А.

Примечание:  нет необходимости проверять корректность вводимых данных



Задача на 2D-массив с разным количеством ячеек в каждой "строке"

Задача эта умышленно сформулирована в общем виде -- чтобы оставить свободу реализации ее в Java. При этом к сформулированным вопросам можно добавить еще много-много хитроумных вариантов -- милости прошу делиться в этот раз не только решениями, но и дополнительными вопросами!


Задание №1
На компьютерных курсах занятия проводятся 6 дней в неделю, каждый день – не менее 4-х и не более 10 уроков. Преподаются на курсах 6 предметов (Java, C#, Access, Networks, Android, OS), но бывают и свободные уроки ("окна").
Напишите класс, который составляет расписание занятий курса на неделю, а затем определяет и выводит на экран следующую статистическую информацию:
1.      Общее количество часов (не считая "окон")
2.      Общее количество "окон"
3.      Количество дней (и какие это дни), в которые нет окон
4.      Предмет, который преподается чаще других
5.      В какие дни, когда, сколько и по какому предмету есть сдвоенные уроки
6.      Есть ли предмет, которые в смежные дни преподается в одно и то же время ­ в какие дни, сколько и какие это предметы
7.      Среднее количество занятий в день
8.      В какие дни число уроков больше средненедельного
И прочая, и прочая, и прочая…