Перейти к содержимому

Реферальная программа Мегаплана


Задачки по программированию

#1 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0
0

Отправлено 28 Май 2009 - 20:37

Иногда бывает нечего делать, и я решаю всякие задачки по программированию. Давайте в этой теме будем выкладывать интересные задачки. Надеюсь меня поддержат программеры форума :)
Из последних задачек, что я решал, зацепила вот эта:

Множество символов I-ричной системы счисления (2 <= I <= 36) образуют символы 0, ..., 9, A, B, ..., Z. Если I < 36, то соответствующее количество последних букв латинского алфавита в качестве цифр не используются. Если I < 10, то не используются соответствующие цифры. Необходимо написть программу, которая по двум текстовым строкам, означающим одно и то же число в I-ричной и J-ричной системе счисления, определяет минимальные значения I и J.
Пример входных данных:
10
2
Пример выходных данных:
2 3

Задачка интересная, есть у кого идеи? ;)

 

 

  • 0

#2 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 28 Май 2009 - 23:14

Задачка интересная, есть у кого идеи? ;)


Нет никаких идей вообще ;)
Мне вот другая задачка попалась. Условие:

Сделать серверную програму, которая будет ломать все капчи и спамить всё что возможно

Есть идеи? :)
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#3 v1ex

v1ex
    Topic Starter
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 29 Май 2009 - 04:22

Есть идеи?

Есть :) Нужно написать ИИ, который сам будет учиться ломать капчи ;)
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 30 Май 2009 - 02:12

v1ex, что-то какая-то дурь написана...

Если I < 36, то соответствующее количество последних букв латинского алфавита в качестве цифр не используются. Если I < 10, то не используются соответствующие цифры.

Если СС < 10, то там как раз и используются цифры а не буквы... Что-то какая-то несумятица написана.
2 CC - 0,1
3 CC - 0,1,2
4 CC - 0,1,2,3
5 CC - 0,1,2,3,4
6 CC - 0,1,2,3,4,5
............
10 CC - 0,1,2,3,4,5,6,7,8,9
11 CC - 0,1,2,3,4,5,6,7,8,9,A
............
16 CC - 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
............
36 CC - 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,...,X,Y,Z
что-то на подобии

Мне очень не нравится то , что может быть строка и с буквами и без букв, и не поймешь до какой системы счисления вообще можно число считать...


А теперь моя задача(по C++):

Разработать класс для представления понятия "Элемент интерьера". Примем, что состояния объектов этого класса определяется совокупностью следующих параметров: название, размеры(включая высоту), координаты местоположения в комнате. Требуется реализовать следующие операции с объектами этого класса:

  • изменить местоположение указанием нового.
  • проверить отсутствие пересечения местоположения с указанным объектом.
  • сместить на указанные величины по каждой из координат.
  • повернуть на плоскости на заданный угол по часовой стрелке.


Данная задача была реализована.

А вот уже на основе этой задаче надо было сделать такую:

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


Задача решается не так сложно, но вот проблема в том, что у нас есть два определённых типа объектов которые привязаны к комнате, это: напольный элемент(который может находиться только на полу) и настенный интерьер(который может находиться только на стенах комнаты).
Так вот... Объект добавляется в комнату указанием точки местоположения относительно комнаты. Проверку правильности задания координаты должна проверять комната, но проблема в том, что в комнате хранится список указателей на базовый класс "элемент интерьера", поэтому комната сама не может определить каким является объект, напольным или настенным.
Как лучше всего осуществить взаимосвязь комнаты и объектов? Может легче всего сделать виртуальную функцию и из каждого объекта возвращать к примеру число, типа: 1 - напольный, 2 - настенный, а в функции добавления элемента уже от этого плясать? Или может есть другие варианты?
  • 0

#5 v1ex

v1ex
    Topic Starter
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 30 Май 2009 - 04:41

Если СС < 10, то там как раз и используются цифры а не буквы... Что-то какая-то несумятица написана.

Все правильно. Допустим, если I=8, то не используются "соответствующее количество цифр", т.е. 9 и 8. С буквами так же.

Мне очень не нравится то , что может быть строка и с буквами и без букв, и не поймешь до какой системы счисления вообще можно число считать...

Не зря же минимальные системы счисления найти нужно :) Эту задачу можно решить тупым перебором, переводя два входных числа в цикле в десятичную систему счисления из системы счисления от 2 до 36, и переводить до тех пор, пока числа не станут равны. Вот так!

Как лучше всего осуществить взаимосвязь комнаты и объектов? Может легче всего сделать виртуальную функцию и из каждого объекта возвращать к примеру число, типа: 1 - напольный, 2 - настенный, а в функции добавления элемента уже от этого плясать? Или может есть другие варианты?

И так, если я правильно понял, у нас есть базовый класс "Элемент интерьера", от него два производных "Напольный интерьер" и "Настенный интерьер". Есть класс "Комната", которая хранит массив указателей на экземпляры базового класса "Элемент интерьера", и сложность заключается в определении, каким является один из экземпляров в массиве (напольным или настенным).
C С++ не знаком и не знаю, возможностей ООП в этом ЯП. Поэтому я бы добавил в базовый класс одну открытую только для чтения логическую переменную, которой бы в конструкторе (и конструкторах производных классов) класса присваивалось бы значение по которой можно было бы определить, является ли объект напольным или настенным (например false - напольный, true - настенный). Хотя можно воспользоваться и виртуальным методом, переопределяя его в каждом производном классе, но мне кажется это неудобным...
Надеюсь, что я тебя правильно понял ;)
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 01 Июнь 2009 - 11:13

v1ex, правильно, я так и думал сделать :)
Проверять расположение объекта должна всё же комната
  • 0

#7 v1ex

v1ex
    Topic Starter
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 01 Июнь 2009 - 12:14

v1ex, правильно, я так и думал сделать ;)
Проверять расположение объекта должна всё же комната

:) Если не секрет, что разрабатываешь? Или лабу пишешь?

Есть еще какие нибудь задачки на ООП? Потренироваться охото ;)
  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 01 Июнь 2009 - 19:03

v1ex, лабу пишу :). Потренероваться могу дать задачки. Есть они только по C++

Напишу парочку, хотя они не сложные. Тебе может на использование стандартной библиотеки STL+ использование стандартных алгоритмов и функций-объектов нужно?

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

Задача 1

1) Разработать класс для представления понятия "Концелярский предмет". Примем, что состояние объектов этого класса определяется совокупностью следующих параметров: название, категория, количество экземпляров. Требуется реализовать следующие операции с объектами этого класса:

  • добавить / изъять указанное число экземпляров;
  • проверить совпадение категорий двух предметов;
  • проверить возможность объединения информации двух предметов в один(совпадение названия и категории);
  • объединить информацию об указанных предметах в первом из них.

2) Рассматриваются канцелярские предметы различных категорий: "пишущий предмет", "носитель информации", "режущий предмет", "скрепляющий предмет". Решить задачу проверки в канцелярском наборе наличия всех категорий из заданного перечня.


Задача 2

1) Разработать класс для представления понятия "Книга". Примем, что состояние объектов этого класса определяется совокупностью следующих параметров: название, автор, доступное количество экземпляров, год издания, издательство, имя файла с текстом книги. Требуется реализовать следующие операции с объектами этого класса:

  • изъять / добавить экземпляр книги;
  • печать экземпляра книги;
  • поиск заданной фразы в тексте книги.

2) Рассмотреть иерархию понятий: "Книга", "Журнал" и "Печатная продукция" в качестве абстрактного базового. Предполагается, что у журнала есть номер и отсутствует автор. Пусть имеется библиотека печатной продукции. Рассмотреть задачу поиска печатного издания по названию(есть ли такое издание вообще и доступны ли его экземпляры).


Задача 3

1) Разработать класс для представления понятия "Элемент интерьера". Примем, что состояния объектов этого класса определяется совокупностью следующих параметров: название, размеры(включая высоту), координаты местоположения в комнате. Требуется реализовать следующие операции с объектами этого класса:

  • изменить местоположение указанием нового;
  • проверить отсутствие пересечения местоположения с указанным объектом;
  • сместить на указанные величины по каждой из координат;
  • повернуть на плоскости на заданный угол по часовой стрелке.

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


Я думаю пока достаточно ;)
Надеюсь преподаватель не зайдет на эту страницу, и не обнаружит своих задач xD

P.s. про предметы интерьера, лучше сделать всё же виртуальную функцию которая будет возвращать к примеру 1, 2, ...
Зачем нам забивать память ненужными состояниями объекта, если можно обойтись однострочным методом, который вызывается и не грузит память.
  • 0

#9 v1ex

v1ex
    Topic Starter
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 01 Июнь 2009 - 21:25

v1ex, лабу пишу :). Потренероваться могу дать задачки. Есть они только по C++

Напишу парочку, хотя они не сложные. Тебе может на использование стандартной библиотеки STL+ использование стандартных алгоритмов и функций-объектов нужно?

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

Задача 1


Задача 2


Задача 3


Я думаю пока достаточно ;)
Надеюсь преподаватель не зайдет на эту страницу, и не обнаружит своих задач xD

P.s. про предметы интерьера, лучше сделать всё же виртуальную функцию которая будет возвращать к примеру 1, 2, ...
Зачем нам забивать память ненужными состояниями объекта, если можно обойтись однострочным методом, который вызывается и не грузит память.

Спасибо, завтра порешаю ;)

Тебе может на использование стандартной библиотеки STL+ использование стандартных алгоритмов и функций-объектов нужно?

И это можно ;)
  • 0

#10 Гость_Карточка_*

Гость_Карточка_*
  • Гости

Отправлено 19 Февраль 2014 - 12:21

может кто нибудь выложит задачки по jQuery, а то нигде не могу найти их :(
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru