Модераторы: Alx, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP, Задачки 
:(
    Опции темы
WildField
Дата 24.2.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



 Задача про шифрофку:
P.S. подскажите как сгенерировать сам алфавит функцией

Код

<?php
   $GLOBALS["alphabet"] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYZ";
   $GLOBALS["pass"] = "jVOFkp29sZq14zR5Bhor7mxvw3dnMYb6JtuyKi0EceSXHCPNTGQUaIf8LADgl";

//function createPass () {
    //return str_shuffle($GLOBALS["alphabet"]);
//}

function encode($text) {
    $length = strlen($text);
    $result = "";
    for ($i = 0; $i < $length; $i++) {
     $tempStr = $text{$i};
     $pos = strpos($GLOBALS["alphabet"], $tempStr);
     $result = $GLOBALS["pass"]{$pos}.$result;
    }
    return $result;
}

function decode($text) {
    $length = strlen($text);
    $result = "";
    for ($i = 0; $i < $length; $i++) {
     $tempStr = $text{$i};
     $pos = strpos($GLOBALS["pass"], $tempStr);
     $result = $GLOBALS["alphabet"]{$pos}.$result;
    }
    return $result;
}
?>

PM MAIL   Вверх
linuxoid
Дата 20.12.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 17.4.2005

Репутация: нет
Всего: нет



Задача
Цитата

Число прописью. Советую сделать, если вы с этим не сталкивались. И не смотрите предварительно на аналогичные коды, чтобы было интересней. Попробуйте сами smile После того, как все заработает постарайтесь максимально оптимизировать код. Думаю при подробном рассмотрении появится такая возможность. К тому же надо продумать момент, что бывает одна копейка, но и 1 сантим или 1 рубль или 1 йена. Ну и разный язык. Т.е. код должен быть максимально гибким и оптимальным.

PM MAIL   Вверх
linuxoid
Дата 26.9.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 17.4.2005

Репутация: нет
Всего: нет



Еще интересная задача (которая сгодится для решения на любом языке): Пересекаются ли 2 линии? Вы задаете 2 точки, которые определяют линию на плоскости и 2 точки, которые определяют 2-ую линию. Нужно вывести на экран "Линии пересекаются", если они пересекаются. Я делал это на Java (т.к. можно наглядно нарисовать линию + там есть встроенная функция, чтобы узнать о пересечении линий, т.е. я сравнивал показания встроенной со своими - все сходится при различных вариантах расположения линий). В общем не знаю на сколько быстро вы эту задачу решите, но я мучился с ней целый день (хотя с самого начала написал на бумаге правильный алгоритм, в котором всего около 3-х шагов, но на деле - код не так уж очевиден). Так что друзья советую вам размять мозг и написать такую прогу. При этом, разумеется, не подсматривая в готовые решения. По идее все что вам нужно - знать все координаты, а рисовать линии не обязательно.

Это сообщение отредактировал(а) linuxoid - 26.9.2010, 17:57
PM MAIL   Вверх
Elerond
Дата 20.10.2010, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 18.6.2007

Репутация: нет
Всего: 3



linuxoid, думаю задача решается очень просто. Две первые точки определяют вектор a{xa, ya} вторая пара точек вектор b{xb, yb} ... векторы параллельны если a=cb или a=-cb где c - вещественное число.

Значит просто достаточно найти с: c=xb/xa и посмотреть равенство c=yb/ya или -с=yb/ya

PS: решение заняло 5 минут
--------------------
Мой блог
PM MAIL WWW   Вверх
awerny
Дата 15.2.2012, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.2.2012

Репутация: нет
Всего: нет



Еще одна задачка (сам придумал, публикуеться впервые):

Условие:
Кондуктор в начале смены на пачке с талончиками отметила порядковый номер текущего билета как 219007
К концу смены, номер билета в пачке был 219625.

Задача:
1. Создать инструмент для кондукторов  smile   для подсчета количества счастливых билетиков проданых во время смены
в виде файла с формой из 2-х полей и кнопкой. 

2. Циклом должны выводиться все номера билетов проданых кондуктором, красным цветом подсветить счастливые билеты.

3. Принимать диапазон чисел по маске хххххх с разницой между числами в 5000.

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




Задачка простенькая, но очень занимательная для тех, кто только начал учить РНР.
Как то давно сам делал, билетов счастливых получаеться около 4%, у кого есть желание попробуйте.



ЗЫ: Анекдот в догонку: В больницу был доставлен кондуктор с острым отравлением счасливыми билетиками!  smile 

Это сообщение отредактировал(а) awerny - 15.2.2012, 02:37
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.1545 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.