Класс - это базовое понятие в объектно-ориентированном программировании (ООП). Классы образуют синтаксическую базу ООП. Их можно рассматривать как своего рода "контейнеры" для логически связанных данных и функций (обычно называемых методами — см. ниже). Если сказать проще, то класс - это своеобразный тип данных.
Экземпляр класса - это объект. Объект - это совокупность данных (свойств) и функций (методов) для их обработки. Свойства и методы называются членами класса. Вообще, объектом является все то, что поддерживает инкапсуляцию.
Если класс можно рассматривать как тип данных, то объект — как переменную (по аналогии). Скрипт может одновременно работать с несколькими объектами одного класса, как с несколькими переменными.
Инкапсуляция - это механизм, объединяющий данные и обрабатывающий их код как единое целое.
Многие преимущества ООП обусловлены одним из его фундаментальных принципов — инкапсуляцией. Инкапсуляцией называется включение различных мелких элементов в более крупный объект, в результате чего программист работает непосредственно с этим объектом. Это приводит к упрощению программы, поскольку из нее исключаются второстепенные детали.
Инкапсуляцию можно сравнить с работой автомобиля с точки зрения типичного водителя. Многие водители не разбираются в подробностях внутреннего устройства машины, но при этом управляют ею именно так, как было задумано. Пусть они не знают, как устроен двигатель, тормоз или рулевое управление, — существует специальный интерфейс, который автоматизирует и упрощает эти сложные операции. Сказанное также относится к инкапсуляции и ООП — многие подробности "внутреннего устройства" скрываются от пользователя, что позволяет ему сосредоточиться на решении конкретных задач. В ООП эта возможность обеспечивается классами, объектами и различными средствами выражения иерархических связей между ними.
В последнее время идея объектно-ориентированного программирования (ООП), кардинально новая идеология написания программ, все более занимает умы программистов.
Объектно-ориентированные программы более просты и мобильны, их легче модифицировать и сопровождать, чем их "традиционных" собратьев. Кроме того, похоже, сама идея объектной ориентированности при грамотном ее использовании позволяет программе быть даже более защищенной от различного рода ошибок, чем это задумывал программист в момент работы над ней. Однако ничего не дается даром: сами идеи ООП довольно трудны для восприятия "с нуля", поэтому до сих пор очень большое количество программ (различные системы Unix, Apache, Perl, да и сам PHP) все еще пишутся на старом добром "объектно-неориентированном" Си.
Трбуется разработать скрипт, создающий точечную диаграмму по следующим исходным параметрам: width, height - ширина и высота изображения data.dat - файл, содержащий данные (на каждой строке два числа, разделенные точкой с запятой: первое чило - величина, откладываемая на горизонтальной оси, второе число откладывается на вертикальной оси).
В Городе H.H маршрутные такси часто падают с моста в реку. Однако другого транспорта для перемещения граждан на работу нет. После того, как 10 маршрутка упала в реку, местное телевидение выяснило, что среди пострадавших не было ни одного пассажира, чей бы билет был счастливым. Замечание
Счастливым билет считается, если сумма первых трёх его номеров совпадает с суммой последних трёх номеров, т.е. для билета с номером XXX YYY справедливо соотношение X + X + X = Y + Y + Y. Т.е. номер 361 424 является счастливым.
Предприниматели решили предоставлять услугу по продаже счастливых билетов гражданам. Обязательным условиям бизнеса является отсутствие фальсификацией, за это лишают лицензии. Т.е. специальных допечаток счастливых билетов не производятся - они изымаются из рулона с билетами естественным путём.
Создайте два небольших Web-приложения, содержащих текстовую область и кнопку. Перевое приложение при вводе десятичного числа должно выводить его бинарное представление, например, если пользователь ввёл 482, то скрипт должен вывести 111100010. А второй скрипт должен решать обратную задачу - бинарное число переводить в десятичное.
Для решения задачи нельзя использовать никакие фукнции. Только арифметические операторы, циклы, операторы ветвления и конструкцию echo (print() является функцией и, следовательно, не допускается).
Необходимо создать небольшую динамическую страничку, которая бы показывала список пользователей, которые её посещали и сколько раз. Посетитель должен иметь возможность:
а) ввести свое имя, чтобы в этот список попасть (или повторно зайти на сайт) б) поискать другого человека, зная его точное имя. в) нажать на ссылку в списке, чтобы удалить запись из него. Общие требования.
Имена могут содержать абсолютно любые символы. Хранить имена нужно в БД, в таблице следующего формата:
CREATE TABLE guests ( id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , guestname TINYTEXT NOT NULL, visits INT(11) NOT NULL ); Отдельные требования по пунктам
Имеется некий набор строк, содержащие произвольные символы. Набор предназначен для передачи через транспортный канал, который способен транслировать только определенный алфавит.
Одним из решений такой поблемы (например в почтовых стандартах) является применение методики кодирования base64, при которой алфавитом из 64 символов передаются любые бинарные (т.е. из байтов со значениями 0..255) данные. Строки при этом, как известно вырастают на величину (log(256)/log(64)-1)*100% = 33% по стравнению с исходной длиной. Основное требование
Заказчика не устраивают накладные расходы в 33%. Он предлагает использовать алфавит из 85 символов текста, и согласен на рост в (соответственно (log(256)/log(85)-1)*100% ) 25% от исходной длины. И ни байтом больше.
Команда математиков из Калифорнийского университета в Лос-Анджелесе сумела объединить мощности 75 компьютеров и открыла новое большое простое число, которое на сегодняшний день признано самым большим. За это открытие калифорнийские ученые получили премию фонда Electronic Frontier в $100 тыс.
Исследуемые числа относятся к так называемым числам Мересенна. Они имеют вид 2^n - 1. Проверка простоты числа обычно является достаточно сложной и трудоемкой задачей, однако для чисел Мерсенна существует удобный критерий проверки - в бинарном представлении они состоят из одних единиц, т.е. число в бинарном представлении выглядит как 111 ... 11111. Найденное простое число содержит 43112609 бинарных единиц.
В элемент $_SERVER['REMOTE_ADDR'] помещается IP-адрес клиента. При тестировании на локальной машине — этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv(). Замечание
Прокси-сервера являются специальными промежуточными серверами, предоставляющими специальный вид услуг: сжатие трафика, кодирование данных, адаптация под мобильные устройства и т.п. Среди множества прокси-серверов различают так называемые анонимные прокси-сервера, которые позволяют скрывать истинный IP-адрес клиента, такие сервера не возвращают переменной окружения HTTP_X_FORWARDED_FOR. Извлечение переменной окружения HTTP_X_FORWARDED_FOR