Форум сети D-Lan

Электроника => Персональный компьютер => Программирование => Тема начата: Proydoha от 22-07-2011, 17:28:47

Название: Конкурс. Программирование.
Отправлено: Proydoha от 22-07-2011, 17:28:47
Sasha:

По заявкам трудящихся проводим конкурс по программированию. В данной теме я буду выкладывать вопросы с указанием времени на их выполнение и максимального количества баллов, которые за него можно получить. Ответы принимаются в лс в формате: "Ответ #N". После объявления результатов по заданию ответы не принимаются. Разрешено присылать другой вариант решения до объявления результатов. Предыдущий ответ в таком случае проверяться не будут. После подведения итогов полученные баллы и наилучший на мой взгляд ответ будут выложены в данной теме.

На количество баллов присуждаемых за ответ влияет:
- Правильность решения
- Оптимальность выбранного алгоритма

На количество баллов присуждаемых за ответ НЕ влияет:
- Выбор языка реализации
- "Красота" кода
- Придерживание основных парадигм программирования

Однако стоит учесть, что структурированный, понятный код с наличием достаточных комментариев уменьшает вероятность моей ошибки при проверке, а соответственно и необъективной оценки. С этой же целью можно присылать мне *.exe файл. Дополнительных баллов за это даваться не будет.

Обсуждения и аппеляции разрешены.

Начнем мы с более простых вопросов, а дальше видно будет.




Задание #1
Время выполения 3 дня
Количество баллов: 5

Дано 4 вида скобок: {}, [], <>, (). Дана входная строка с комбинацией открывающих и закрывающих скобок. Необходимо проверить данную строку на правильность (закрывающая скобка должна соответствовать открывающей, количество открывающих и закрывающих скобок должны быть одинаковыми).
Пример:
{[]<()>} - правильная
({[]} - неправильная
({<}>) - неправильная


Итоги:

Участники:   Ответы:   Баллы:
Proydoha   Исходник (http://10.1.12.237/Show_Source.php?test_area/Contest_1.php)
Результат (http://10.1.12.237/test_area/Contest_1.php)
   5
Jeka   Исходник/Результат (http://upload.com.ua/get/902729460/)   3


Комментарии:
Прокомментирую первое задание.

Принцип действий такой: просматриваем строку по одному символу слева-направо. Если встречаем открывающуюся скобку запоминаем ее, если встречаем закрывающую скобку проверяем ее на соответствие последней запомненной открывающей и удаляем открывающую. Если скобки не соответствуют - ошибка. Если нет запомненных открывающих скобок - ошибка. Если мы дошли до конца строки и еще остались запомненные открывающие - ошибка.

Теперь перейдем к реализации. Буду использовать синтаксис языка Си. Для хранения открывающих скобок лучше всего использовать стек. Стек - это такая структура данных (структура или класс, см. ООП), для которой определены следующие операции:

PUSH - занести 1 элемент в стек
POP - извлечь 1 элемент из стека

При чем работает стек по принципу LIFO (last in first out), тоесть последний помещенный в стек элемент будет извлечен первым. Образно это можно представить в виде ящика с книгами, где последняя положенная в ящик книга будет извлечена первой, а чтобы добраться до книги, которая лежит на самом дне (первая попала в коробку) необходимо сначала извлечь все книги, которые лежат над ней. Стек так же можно реализовать в виде массива с счетчиком хранящихся в нем элементов. Proydoha и Jeka так и поступили. Посколько не все участники знакомы с ООП я тоже буду рассматривать такой вариант, хотя это усложнит алгоритм.

Итак нужно объявить символьный массив и счетчик элементов с начальным значением -1, так как элементы в массиве нумеруются с 0, а в начале массив пуст.

В результате, когда мы встречаем открывающую скобку мы заносим ее в позицию mas[i+1] и увеличиваем значение счетчика на 1.

Когда встречаем закрывающую скобку сравниваем ее с последней запомненой открывающей, то есть, mas, и уменьшаем счетчик на 1, то есть перемещаем вершину стека (последний запомненный элемент) вниз на 1.

Если мы встретили закрывающую скобку, а счетчик равен -1, значит у нас нет соответствующей ей открывающей.

Если строка закончилась, а счетчик не равен -1, значит в стеке остались элементы, а значит количество открывающих скобой больше, чем количество закрывающих.

Не рассмотренной осталась часть сравнения скобок на соответствие закрывающих открывающим. Для этого воспользуемся оператором switch. Это аналог оператора if, который отличается тем, что имеет не 2 ветки, а более.

Синтаксис его таков:

switch(выражение)
{
   case <значение 1>:
   {
      <операторы 1>
   }
   ...
   case <значение n>:
   {
      <операторы n>
   }
   default://попадем сюда, если не одно из значений не подходит
   {
      <операторы d>
   }
}


Теоретически, оператор switсh можно заменить оператором if таким образом:

if(выражение == значение 1)
{
   <операторы 1>
}
else
{
   ...
   if(выражение == значение 2)
   {
      <операторы n>
   }
   else
   {
       <операторы d>
   }


Допустим с - просматриваемый символ строки. Получим следующий код:

switch(c)
{
   case '(':
   {
      // заносим в стек
   }
   case '<':
   {
      // заносим в стек 
   }
   case '{':
   {
      // заносим в стек
   }
   case ')':
   {
      // последний элемент в стеке должен быть (
   }
   case '>':
   {
      // последний элемент в стеке должен быть <
   }
   case '}':
   {
      // последний элемент в стеке должен быть {
   }
}


Ну вот в принципе как-то так. А если что не так - извините, я старался!




Задание #2
Время выполения 5 дней
Количество баллов: 2

Закодить такую вот формулу:

(http://daewl.narod.ru/im_host/Contest_2.png)

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

Итоги:

Участники:   Ответы:   Баллы:
Proydoha   Исходник (http://10.1.12.237/show_source.php?test_area/Contest_2.php)
Результат (http://10.1.12.237/test_area/Contest_2.php)
   2
Jeka      2
timelimit   Исходник/Результат (http://daewl.narod.ru/f_host/timelimit_zadanie2.rar)   1

Комментарии:
Вот как я решал это задание на с++ (формула разбита на 3 части для избежания ошибок со скобками):

double chisl = pow(x-0.5,(double)1/2);
double znam = sqrt((x-x/2)*pow(x+x/2,3));
rez = pow(chisl/znam,(double)1/3);


Однако данный код является абсолютно беззащитным. Можно было бы конечно к примеру взять знаменатель в условие что он не может равняться 0, а x-0.5 не может быть меньше нуля. Ну таких проверок надо было бы сделать огромное количество, это загромождает код и недостаточно его защищает. Поэтому перехватим все возможные исключения:

double rez;
        try
        {
                double chisl = pow(x-0.5,(double)1/2);
                double znam = sqrt((x-x/2)*pow(x+x/2,3));
                rez = pow(chisl/znam,(double)1/3);

        }
        catch(...)
        {
                ShowMessage("Входные данные выходят за область допустимых значений");
                return;
        }


Стоит отметить, что блок try локализует объявленные в нем переменные, а значит переменная rez перестает быть видимой за его пределами, поэтому я объявил ее раньше. Такой код убережет нас не только от чисто математических проблем, а и к примеру переполнению значения и прочих неприятностей. Правда в данном случае я использовал библиотечные функции степени и корня, а в них уже перехватываются исключения связанные к примеру с взятием корня от отрицательного числа, а значит до нашего обработчика они не дойдут. Можно было бы конечно пытаться с этим бороться (если конечно исключения там действительно выбрасывались), но программа не падает, фейковых результатов не выдает, а значит я оставил все как есть.

Решил обратить внимание еще вот на что.

(double)1/2

Объясню почему я так написал. Компиляторы представляют литералы (числа) без плавающей запятой в виде int значения. А значит если написать просто 1/2, результатом вычисления будет 0. Потому что получив ответ 0,5 компилятор отбросит от него дробную часть (именно отбросит, а не округлит). Написав перед выражением команду (double), мы говорим компилятору о том что результат нужно явно преобразовать в значение double. Того же эффекта можно добиться написав:

1.0/2

Увидев вместо 1 - 1.0, компилятор поймет что это double значение и представит результат в том же типе.




Задание #3
Время выполения 7 дней
Количество баллов: 10

Необходимо написать программу на языке С++ для сортировки массива целых числел от 0 до 9. Числа передаются в функцию main в виде строки, разделенные пробелом. Количество чисел заранее не известно. Результат сортировки никуда выводить не нужно. Алгоритм сортировки должен быть вынесен в отдельную функцию. Баллы за решение начисляются пропорционально скорости работы алгоритма сортировки.

Итоги:

Участники:   Ответы:   Баллы:
Jeka      10
Proydoha   Исходник (http://10.1.12.237/show_source.php?test_area/Contest_3.cpp)
Исходник/Результат (http://daewl.narod.ru/f_host/Contest_3.rar)
   7




Задание #4
Время выполнения: 5 дней
Количество баллов: 10

Дан двумерный массив, заполненный нулями и единицами. Необходимо "перевернуть" этот массив на 180 градусов.

Пример
Входной массив:
0 1 0 1 1
0 0 1 0 1
1 0 0 1 1
Выходной массив:
1 1 0 0 1
1 0 1 0 0
1 1 0 1 0

Итоги:

Участники:   Ответы:   Баллы:
Proydoha   Исходник (http://10.1.12.237/show_source.php?test_area/Contest_4.php)
Результат (http://10.1.12.237/test_area/Contest_4.php)
   9
Jeka      7
timelimit      7

Комментарии:
Допустим у нас есть массив int mas [ x ][ y ]. Так как в памяти он располагается линейно, то задача сводится к реверсированию одномерного массива mas[x*y]. Тут все легко, берем следующий цикл:


int x;
k = n * m;
for(int i = 0; i < k / 2; i++)
{
   x = mas[i];
   mas[i] = mas[k - i];
   mas[k - i];
}


Теперь посмотрим как этот цикл можно было бы оптимизировать. Есть очень важная деталь: при большом размере массива, время обмена в начале цикла будет значительно превосходить время в конце. Это связано с тем, что если данные, которые мы меняем находятся на расстоянии друг от друга большем, чем размер кеша процессора, то появляются издержки на кеширование каждой переменной по отдельности. Если вы не поняли смысла написанного - ничего страшного. Это выходит далеко за разделы любительского программирования. И еще одна деталь: наш массив может принимать только 2 значения, а значит вероятность того что данные для обмена будут одинаковыми очень высока, а именно 0,5. Тоесть поставив в цикл условие, что одинаковые данные менять не нужно, теоретически мы уменьшаем количество операций обмена в 2 раза. Правда тогда появятся проблемы с предсказанием циклов (об этом было написано в статье что я кидал выше), поэтому создавая скажем драйвера, где быстродействие является критичным, необходимо исследовать конкретный случай и какие методы оптимизации его улучшат, а какие принесут только вред (сейчас кстати проведу небольшое исследование на эту тему и отпишусь о результатах).

Перепишем цикл используя условие:


int x;
k = n * m;
for(int i = 0; i < k / 2; i++)
{
   if(mas[i] != mas[k-i];
   {
      x = mas[i];
      mas[i] = mas[k - i];
      mas[k - i];
   }
}


При этом будь у нас битовый массив, можно было бы просто применить к операндам операцию отрицания и считай они поменялись местами, но в данном случае вот так...




Задание #5
Количество дней: 5
Количество баллов: 15

Написать программу принимающую адресс электронной почты и проверяющей его на соответсвие правилам формирования e-mail адресов.  Использовать регулярные выражения нельзя! Код присылать не нужно, присылайте экзешники или веб страницы для проверки. Чем больше неправильных адресов будет отсеиваться - тем больше получите баллов.

Требования к правильным адресам:

1. Адрес содержит локальную часть и домен, разделенные символом @ (RFC 2822 3.4.1 (http://tools.ietf.org/html/rfc2822#section-3.4.1)).

2. Локальная часть может содержать символы алфавита, цифры и символы !, #, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, } ~, возможно разделенные точкой внутри, но не в начале адреса, не в конце или не рядом с другой разделяющей точкой (RFC 2822 3.2.4 (http://tools.ietf.org/html/rfc2822#section-3.2.4)).

3. Локальная часть может содержать закавыченные части, несущие внутри кавычек пробелы (RFC 2822 3.2.5 (http://tools.ietf.org/html/rfc2822#section-3.2.5)).

4. Экранированные части, такие как \@ , хотя этот синтаксис и утратил значение со времени начала действия RFC 822 (RFC 2822 4.4 (http://tools.ietf.org/html/rfc2822#section-4.4)).

5. Максимальная длина локальной части - 64 символа (RFC 2821 4.5.3.1 (http://tools.ietf.org/html/rfc2821#section-4.5.3.1)).

6. Доменная часть содержит идентификаторы, разделенные точкой (RFC1035 2.3.1 (http://tools.ietf.org/html/rfc1035#section-2.3.1)).

7. Части доменного имени между точками начинаются с буквы, за которой следует нуль или более букв, цифр или символов -, заканчивающихся буквой или цифрой (RFC 1035 2.3.1 (http://tools.ietf.org/html/rfc1035#section-2.3.1)).

8. Максимальная длина части доменного имени между точками 63 символа (RFC 1035 2.3.1 (http://tools.ietf.org/html/rfc1035#section-2.3.1)).

9. Максимальная длина доменного имени - 255 символов (RFC 2821 4.5.3.1 (http://tools.ietf.org/html/rfc2821#section-4.5.3.1)).

10. Доменное имя должно быть разрешаемым с помощью А или МХ DNS-записи (RFC 2821 3.6 (http://tools.ietf.org/html/rfc2821#section-3.6)).

Стандартное соглашение имеет в виду, что символы имени должны поддерживать семибитные кодировки, то есть в реальности это ASCII-символы и никаких многобайтных кодировок.

Итоги:

Участники:   Баллы:
Proydoha   11




Задание #6
Количество дней - 5

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


Написать программу для перевода двоичных чисел в десятичные.
Количество баллов - 10


Написать программу для перевода десятичных чисел в двоичные
Количество баллов - 9


Написать программу для перевода двоичных чисел в шестнадцатиричные.
Количество баллов - 6


Написать программу для перевода шестнадцатиричных чисел в двоичные.
Количество баллов - 5

Во всех заданиях незначащие нули лучше убирать! В задании речь идет о неотрицательных, целых числах, диапазоном не более типа int (integer).

Итоги:

Участники:   Баллы:
Jeka   10
Proydoha   10
timelimit   9




Задание #7
Количество баллов - 15
Количество дней - 6

Есть бесконечная незамкнутая железная дорога. На ней стоит два поезда, на некотором расстоянии. Между ними два семафора на другом некотором растоянии. Используя заданные операторы написать одну программу, которую поставят на эти поезда и при запуске которой поезда встретятся в одной точке жд. Операторы языка:
LEFT - сдвигает поезд влево на определенную единицу меры
RIGHT - вправо
IF <оператор если поезд попал на семафор> <если не попал>
LABEL - метка
GOTO - перейти по метке

Вот вам пример.
Возьмем поезд, который стоит правее. Тоесть слева от него находится 2 семафора. Ниже программа, которая заставит его доехать до второго семафора (того что ближе к другому поезду).

label1:
IF // проверяем находится ли поезд на семафоре
<GOTO label2> // если да значит мы доехали до первого семафора, идем по метке 2
<LEFT GOTO label1>// если нет продолжаем наш путь влево на встречу приключениям семафору, и переходим по метке 1, чтобы проверить не оказались ли мы на семафоре после выполнения последнего оператора LEFT
label2://если мы попали сюда значит первый семафор уже позади, и нам просто нужно посторить те же самые процедуры, чтобы доехать до второго
IF//второй семафор?
<GOTO label3> // да? идем на конец программы - миссия выполнена
<LEFT GOTO label2>// нет? продолжаем усердно двигаться влево в поисках семафора
label3:


Итоги:

Участники:   Баллы:
Proydoha   4
Jeka   2

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


right
left
right


Ну и разумеется необходимо эти команды зациклить:

label1:
right
left
right
GOTO label1


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

label2:
right
right
right
GOTO label2


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


label1:
RIGHT
LEFT
RIGHT
IF<GOTO label2><GOTO label1>
label2:
RIGHT
RIGHT
RIGHT
GOTO label2


Как я и говорил, задача очень простая, но решить ее тяжело.




Задание #8
Количество дней - 9
Количество баллов - 20

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

Не забываем что высокосные года бывают не каждые 4 года!

Итоги:

Участники:   Баллы:
Jeka   20
Proydoha   20




Задание #9
Количество дней - ?
Количество баллов - 15

Напишите код, который находит количество подчисел числа n, на которые это число делится без остатка.

Для числа n, подчисло — это такое число, запись которого является подстрокой записи числа n. К примеру, если n равняется 1938, то его подчислами будут являться: 1, 9, 3, 8, 19, 93, 38, 193 и 938. Без остатка 1938 делится на четыре из этих подчисел: 1, 3, 19 и 38. Соответственно, результатом работы программы должно быть число 4.

Если подчисла повторяются, каждое из них считается. Например, 101 делится без остатка на 1, 1 и 01, значит, ответ — 3.




Итоги после 8 заданий:

Участники:   Баллы:
Proydoha   68
Jeka   54
timelimit   17


Архив темы со старого форума (http://daewl.narod.ru/f_host/Old_Forum_Programming_Contest.htm).
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 13:29:52
Я проверил ответы на задание №2 от Jeka и Timelimit, но пока не могу проверить решение Proydoha так как он офлайн, а решение у него на сервере (впредь буду сохранять себе). Сейчас выложу 3 задание, а потом уже когда Proydoha будет онлайн выложу результаты предыдущего задания.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 13:58:11
Задание #3
Время выполения 7 дней
Количество баллов: 10

Необходимо написать программу на языке С++ для сортировки массива целых числел от 0 до 9. Числа передаются в функцию main в виде строки, разделенные пробелом. Количество чисел может быть от 1 до 100. Результат сортировки никуда выводить не нужно. Алгоритм сортировки должен быть вынесен в отдельную функцию. Баллы за решение начисляются пропорционально скорости работы алгоритма сортировки.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 14:04:29
Теперь немного поясню. Цель этого задания написать как можно более оптимальный алгоритм. Вы можете реализовывать любой алгорим сортировки, главное любым способом сократить время его выполнения. Учитываться будет только время сортировки, тоесть время затраченное на формирование исходного массива из строки, полученой функцией main учитываться не будет. Для обеспечения равности условий, компилировать программу я буду на своем компиляторе, от вас требуется только исходный код.
Слушаю ваши вопросы.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 23-07-2011, 15:12:38
Стоило только выйти из дома, как тут же я понадобился онлайн : )

ЦитироватьСлушаю ваши вопросы.

Где взять бесплатный компилятор С++?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 15:24:06
Результаты задания #2:
Proydoha - 2 балла
Jeka - 1 балл
timelimit - 1 балл
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 15:25:15
Цитата: Proydoha от 23-07-2011, 15:12:38
Стоило только выйти из дома, как тут же я понадобился онлайн : )

ЦитироватьСлушаю ваши вопросы.

Где взять бесплатный компилятор С++?

borlandc, watcom c++, компиляторы С++ встроены во все версии Linux
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 15:27:38
Proydoha, буду благодарен если ты обновишь результаты в первой теме и как то лучше отделишь их от остальной истории. А то я немного не понял как ты собирался их оформлять.
Вот исходник Jeka: http://rghost.ru/14437361
Вот исходник timelimit:
Цитироватьhttp://public.dts.net.ua/index.php
Загрузил, называется архив zadanie2.
Пароль мой ник
C меня +.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 23-07-2011, 15:44:41
Цитата: Proydoha от 23-07-2011, 15:12:38
Стоило только выйти из дома, как тут же я понадобился онлайн : )

ЦитироватьСлушаю ваши вопросы.

Где взять бесплатный компилятор С++?

если для виндов есть visual studio и Borland C++Builder 6
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 15:49:36
По второму заданию:
Правильный результат давало только решение от Proydoha, а его возведение в степень отрицательных чисел и результат в комплексном виде поверг меня в восторг! (сдесь будет апплодирующий смайлик когда он появится).
Остальные участники не справились с заданием, однако в коде нашлись вещи, за которые можно было дать 1 балл.
Решение победителя:
http://10.1.12.237/show_source.php?test_area/Contest_2.php
http://10.1.12.237/test_area/Contest_2.php

Вот как я решал это задание на с++ (формула разбита на 3 части для избежания ошибок со скобками):

double chisl = pow(x-0.5,(double)1/2);
double znam = sqrt((x-x/2)*pow(x+x/2,3));
rez = pow(chisl/znam,(double)1/3);


Однако данный код является абсолютно беззащитным. Можно было бы конечно к примеру взять знаменатель в условие что он не может равняться 0, а x-0.5 не может быть меньше нуля. Ну таких проверок надо было бы сделать огромное количество, это загромождает код и недостаточно его защищает. Поэтому перехватим все возможные исключения:
        double rez;
        try
        {
                double chisl = pow(x-0.5,(double)1/2);
                double znam = sqrt((x-x/2)*pow(x+x/2,3));
                rez = pow(chisl/znam,(double)1/3);

        }
        catch(...)
        {
                ShowMessage("Входные данные выходят за область допустимых значений");
                return;
        }

Стоит отметить, что блок try локализует объявленные в нем переменные, а значит переменная rez перестает быть видимой за его пределами, поэтому я объявил ее раньше. Такой код убережет нас не только от чисто математических проблем, а и к примеру переполнению значения и прочих неприятностей. Правда в данном случае я использовал библиотечные функции степени и корня, а в них уже перехватываются исключения связанные к примеру с взятием корня от отрицательного числа, а значит до нашего обработчика они не дойдут. Можно было бы конечно пытаться с этим бороться (если конечно исключения там действительно выбрасывались), но программа не падает, фейковых результатов не выдает, а значит я оставил все как есть.

UPD: решил обратить внимание еще на вот чем. Кто не понимает смысла строки типа
Цитировать(double)1/2
объясню почему я так написал. Компиляторы представляют литералы (числа) без плавающей запятой в виде int значения. А значит если написать просто 1/2, результатом вычисления будет 0. Потому что получив ответ 0,5 компилятор отбросит от него дробную часть (именно отбросит, а не округлит). Написав перед выражением команду (double), мы говорим компилятору о том что результат нужно явно преобразовать в значение double. Того же эффекта можно добиться написав 1.0/2, увидев вместо 1 - 1.0, компилятор поймет что это double значение и представит результат в том же типе.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 15:50:27
Цитата: Catcatcat от 23-07-2011, 15:44:41
Цитата: Proydoha от 23-07-2011, 15:12:38
Стоило только выйти из дома, как тут же я понадобился онлайн : )

ЦитироватьСлушаю ваши вопросы.

Где взять бесплатный компилятор С++?

если для виндов есть visual studio и Borland C++Builder 6
Тссс... Никому не говори что в нашей стране они бесплатные ;)
Хотя да, я действительно забыл о существовании бесплатной версии VS. Express кажись называется. Это конечно будет удобнее чем программирование в страшных сине-желтых экранах старых компиляторов, или же компилирование в командной строке линукса. Кстати на счет командой строки можно еще воспользоваться блокнотом, или же notepad++, который подсветит синтаксис, и скомпилировать из под командной строки, дело в том что с появлением .net такая возможность для .net языков есть в Windows.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 23-07-2011, 15:52:46
Я пользуюсь исключительно бесплатными продуктами :D
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 23-07-2011, 16:11:46
ЦитироватьExpress кажись называется

Только что сказала, что мой триал с ней закончился.

Я закачал консольный борланд с++ компилер 5.5.

Попробую подружиться с ним. С подключением всякого уже не справился и загадил папку бин файлами из папок либс и инклюд. Теперь ничего подключать не надо - всё уже здесь! : )

ЦитироватьВот исходник Jeka: http://rghost.ru/14437361
ЦитироватьФайл удалён.

ЦитироватьProydoha, буду благодарен если ты обновишь результаты в первой теме и как то лучше отделишь их от остальной истории. А то я немного не понял как ты собирался их оформлять.

Не совсем понял что имеется ввиду. Оформляю первое сообщение в теме по такому шаблону:

Условия конкурса
--разделительная черта--
Текст задания
Таблица с результатами выполнения и баллами
Комментарии к выполненному заданию
--разделительная черта--
Текст следующего задания
...
...
--разделительная черта--
Таблица с суммарным количеством очков
Архив темы со старого форума
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 23-07-2011, 17:01:00
Все, спасибо больше, дальше я сам.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 24-07-2011, 07:40:23
Если я куда-то пропаду - значит у меня подох монитор.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 24-07-2011, 08:17:32
Цитата: Proydoha от 24-07-2011, 07:40:23
Если я куда-то пропаду - значит у меня подох монитор.
а что с ним? Что он говорит?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 24-07-2011, 19:44:21
Цитата: Catcatcat от 24-07-2011, 08:17:32
а что с ним? Что он говорит?

Отключается-включается n раз перед тем как начать нормально работать при включении компьютера или при выходе из спящего режима.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 24-07-2011, 19:58:41
Посоветую разобрать, посмотреть какие электролиты (в блоке питания) "вздулись" и поменять. А то запорешь монитор. Это беда всей электроники, когда в кондеры начинают от старости терять емкость.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 24-07-2011, 20:22:35
Та же беда с телеком. Правда из всех конденсаторов только у одного верх слегка выступает. Боюсь сам менять и в ремонт везти все руки не доходят.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 24-07-2011, 20:35:14
Если такая беда начинается, то чем раньше заняться, тем дешевле обойдется. У меня у самого в прошлом году, один монитор все позже и позже начал запускаться, а потом вообще надо было переключать, все лень было. Потом случайно в инете страстей начитался, взял, разобрал, "обследовал". Переписал кондеры. Самое главное габаритные размеры записать. А то кондеры могут быть по номиналу и напряжению подходить, а по габаритам не влезут. Поехал в ворон подобрал, заменил и все ок.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 25-07-2011, 13:41:25
Jeka после аппеляции получает за второе задание 2 балла.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 25-07-2011, 13:46:35
всем привет я уже дома) спасибо за оценку :)
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 25-07-2011, 14:41:44
Пообщался с одним из участников, решил ввести кое какую поправку в задание:
Количество элементов массива может варьироваться от 1 до 100. Вы можете использовать эту информацию для выбора алгоритма.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 25-07-2011, 16:28:03
Я знаю ровно один алгоритм - сортировка пузырьком : )

Цитироватьдля сортировки массива целых числел от 0 до 9.

Означает ли это, что в массиве могут быть только числа 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, а остальные должны быть отсеяны/выполнение программы должно прерываться?
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 25-07-2011, 17:51:49
Мне кажется с такими заданиями дело пойдет туго...
Честно говоря так не хочется ковыряться в математических подробностях сортировки, да и вообще углубляться в математику, забытую 20 лет назад...
Эх, че нить бы повеселей...
 
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 25-07-2011, 19:29:38
Щас, если я догадаюсь как передать массив в функцию, то сдам задание.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 25-07-2011, 19:43:00
Цитата: Proydoha от 25-07-2011, 16:28:03
Я знаю ровно один алгоритм - сортировка пузырьком : )

Цитироватьдля сортировки массива целых числел от 0 до 9.

Означает ли это, что в массиве могут быть только числа 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, а остальные должны быть отсеяны/выполнение программы должно прерываться?

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

Это означает что других чисел даже передаваться не будет, их возможное существование можно даже не рассматривать.
Помним, что функция, в которую будет вынесен алгоритм сортировки не должна содержать ничего лишнего, что могло бы замедлить ее работу.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 25-07-2011, 19:58:11
Улучшеный пузырёк это сортировка перемешиванием, по данным википедии. Там же можно найти реализации любых алгоритмов сортировки на С++ : (

___

Отправил своего пузырька.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 17:28:10
отправил решение))  :)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 26-07-2011, 17:41:14
Чёрт, я надеялся на то, что я один отправлю решение и, за неимением других, оно будет самым быстрым! : )
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 17:46:44
Цитата: Proydoha от 26-07-2011, 17:41:14
Чёрт, я надеялся на то, что я один отправлю решение и, за неимением других, оно будет самым быстрым! : )
ахаха)))) забавно)) твои надежды не оправдались) к стати почему нвоый форум так тупит при отправке сообщений?(  >:(
а ты пузырек реализовывал?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 26-07-2011, 17:53:36
Цитата: Jeka от 26-07-2011, 17:46:44
ахаха)))) забавно)) твои надежды не оправдались) к стати почему нвоый форум так тупит при отправке сообщений?(  >:(
а ты пузырек реализовывал?

Старый новый форум тоже тупил, но потом ему вставили мозги.

Да, пузырёк.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 19:33:26
Цитата: Proydoha от 26-07-2011, 17:53:36
Цитата: Jeka от 26-07-2011, 17:46:44
ахаха)))) забавно)) твои надежды не оправдались) к стати почему нвоый форум так тупит при отправке сообщений?(  >:(
а ты пузырек реализовывал?

Старый новый форум тоже тупил, но потом ему вставили мозги.

Да, пузырёк.
ну у меня сообщения минуты 2 отправляется(( слушай а какого вычислительная сложность твоего алгоритма?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 26-07-2011, 19:35:27
Я не мерял скорость.

Сообщение отправляется мгновенно. Просто страница не обновляется. Попробуй отправить сообщение и, не дожидаясь, ткнуть сверху в ссылку на раздел или тему.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 19:53:40
Цитата: Proydoha от 26-07-2011, 19:35:27
Я не мерял скорость.

Сообщение отправляется мгновенно. Просто страница не обновляется. Попробуй отправить сообщение и, не дожидаясь, ткнуть сверху в ссылку на раздел или тему.
я тоже не мерял скорость. ну теоретически какова сложность не знаешь?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 20:07:47
Та вы шо, о том как считать вычислительную сложность далеко не все программисты знают.
И кстати Пройдоха таки первый решение прислал) Ждем timelimit. Ща наверное поем я сяду писать программу для проверки.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 20:14:11
Цитата: Sasha от 26-07-2011, 20:07:47
Та вы шо, о том как считать вычислительную сложность далеко не все программисты знают.
И кстати Пройдоха таки первый решение прислал) Ждем timelimit. Ща наверное поем я сяду писать программу для проверки.
не понял, а какая разница кто первым решение прислал?
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 20:15:32
Меня не ждите, в данном задании я сразу пас... ))
Уж простите...
Да и если так будет удобнее, меня зовут Андрей. ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 20:16:55
Цитата: timelimit от 26-07-2011, 20:15:32
Меня не ждите, в данном задании я сразу пас... ))
Уж простите...
Да и если так будет удобнее, меня зовут Андрей. ))
очень приятно, Женя, но вы наверное уже догадались))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 20:18:42
Цитата: Jeka от 26-07-2011, 20:16:55
очень приятно, Женя, но вы наверное уже догадались))
Взаимно.... ))
Хотя ща по нику тяжело определить имя, но процентов 50 было за то что Вы Женя... ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 20:29:56
Цитата: timelimit от 26-07-2011, 20:18:42
Цитата: Jeka от 26-07-2011, 20:16:55
очень приятно, Женя, но вы наверное уже догадались))
Взаимно.... ))
Хотя ща по нику тяжело определить имя, но процентов 50 было за то что Вы Женя... ))
можно на ты)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 20:30:54
Цитата: timelimit от 26-07-2011, 20:15:32
Меня не ждите, в данном задании я сразу пас... ))
Уж простите...
Да и если так будет удобнее, меня зовут Андрей. ))
честно говоря, меня тоже не особо увлекают сортировки... мне их хватило в одной из лабораторных работ
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 20:35:26
Цитата: Jeka от 26-07-2011, 20:29:56
можно на ты)
ОК! ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 20:42:06
А вот я своего имени никому не скажу)) Вот в тему:
Цитата: Sasha от 05-07-2011, 00:25:33
Пользователь: Olga78   
Полное имя: Виктория
http://newzz.in.ua/user/Olga78/
Правда щас она профиль уже поправила.

Мне кажется что что, а отсортировать массив нужно уметь если ты пытаешься чтото писать. Да и вобще умение работать с массивами это очень важно, вроде и основы, но постоянно требуется.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 20:45:09
Цитата: Sasha от 26-07-2011, 20:42:06
Мне кажется что что, а отсортировать массив нужно уметь если ты пытаешься чтото писать. Да и вобще умение работать с массивами это очень важно, вроде и основы, но постоянно требуется.
Может и так, если работать программистом... ))
А если для себя, то пытаешься получить результат с наименьшими затратами... ))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 20:47:06
Цитата: Sasha от 26-07-2011, 20:42:06
А вот я своего имени никому не скажу))
Дай угадаю....
Думаю что Дима, хотя не уверен... надо сделать программку, конвертирующую ники в имена... ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 20:48:28
Цитата: timelimit от 26-07-2011, 20:47:06
Цитата: Sasha от 26-07-2011, 20:42:06
А вот я своего имени никому не скажу))
Дай угадаю....
Думаю что Дима, хотя не уверен... надо сделать программку, конвертирующую ники в имена... ))
Это кто сказал что имени не скажет своего? а на счет програмки +1000 ))) *ржу ни магу* ))))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 20:50:42
Ну про наименьшие затраты можно сказать по отношению скажем к как минимум потокам или winapi, но если не уметь работать с массивами, кроме Hello World вы ничего не напишете.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 20:56:23
Цитата: Sasha от 26-07-2011, 20:50:42
Ну про наименьшие затраты можно сказать по отношению скажем к как минимум потокам или winapi, но если не уметь работать с массивами, кроме Hello World вы ничего не напишете.
Насчет кроме Hello World Вы ошибаетесь, проверено...
Да и если надо (подчеркиваю - если надо) то тогда появляется стимул углубиться и еще разок перечитать про массивы... и написать что надо... ))
Но учитывая что не работаю программистом, то в такую жару не очень хочется разбираться с ними... так что жду более приятного задания (как для меня)... ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 21:27:10
ну что там с результатами?)))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 22:16:49
Proydoha, можешь как-то по другому исходник отдать, я задолбаюсь счетчики строк убирать?
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 26-07-2011, 22:24:00
Ну и перед сном небольшое предложение.
Может сделать кол-во дней на выполнение задания динамическим.
Пока народу мало, все сделали, кто мог, модератор проверил, и готово...
А то ждать еще кучу дней грустно...
Спасибо за выслушивание пожеланий... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 22:37:08
Уже начал писать прогу для проверки.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 22:41:08
ну вот просил же никакого вывода не делать! буду баллы снижать за невыполнение условий!
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 22:44:28
Цитата: Sasha от 26-07-2011, 22:41:08
ну вот просил же никакого вывода не делать! буду баллы снижать за невыполнение условий!
ты намекаеш на ети две строчки????? что отсортировано успешно и кол-во элементов?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 22:51:29
ну они еще ладно, а вот getch(), ты предлагаешь мне миллион итераций каждый раз вручную кнопки на клаве нажимать)?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 22:53:35
Цитата: Sasha от 26-07-2011, 22:51:29
ну они еще ладно, а вот getch(), ты предлагаешь мне миллион итераций каждый раз вручную кнопки на клаве нажимать)?
так хватит издеваться!!! зачем милион то?? не пойму? там getch() после сортировки всего массива только? я думал убирать его или нет и оставил.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 22:56:46
Цитата: Sasha от 26-07-2011, 22:41:08
ну вот просил же никакого вывода не делать! буду баллы снижать за невыполнение условий!
написанно было результат сортировки никуда выводить не надо. результат сортировки - есть отсортированный массив, который я никуда и не вывожу. поетому про снятие баллов ИМХО говорить некорректно. можно и по вежливей предупредить на будущее что писать надо так-то и так-то для удобности при проверке!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 23:05:55
Я ж тебе лично объяснял как буду проверять, что напишу программу, которая n количество раз вызовет вашу программу передаст ей случайный массив и посчитает количество тактов процессора. И вот теперь представь, как при каждом вызове моей программой твоей она будет ждать пока я руками ее завершу чтобы она могла запуститься еще раз) Не, я конечно могу написать еще одну прогу, которая будет находить окно с твоей прогой и посылать ей сообщение о нажатии клавиши, но легче было закомментить getch)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 23:06:57
Цитата: Sasha от 26-07-2011, 23:05:55
Я ж тебе лично объяснял как буду проверять, что напишу программу, которая n количество раз вызовет вашу программу передаст ей случайный массив и посчитает количество тактов процессора. И вот теперь представь, как при каждом вызове моей программой твоей она будет ждать пока я руками ее завершу чтобы она могла запуститься еще раз) Не, я конечно могу написать еще одну прогу, которая будет находить окно с твоей прогой и посылать ей сообщение о нажатии клавиши, но легче было закомментить getch)
ок я уже понял)) пиши вторую прогу))) ну закоментируй блин)) это что такая проблема что надо кричать)?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 23:08:15
Это ты еще с моими заказчиками не говорил, они у меня когда-то спрашивали сколько стоят программы способные найти все баги в другой программе)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 23:09:09
Цитата: Sasha от 26-07-2011, 23:08:15
Это ты еще с моими заказчиками не говорил, они у меня когда-то спрашивали сколько стоят программы способные найти все баги в другой программе)
твои заказчики на тебя орут?))) тебе убрать гетч и слова массив отстортирован колво елеменов - n ?? и переслать или ненадо
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 23:14:32
Та сам уже сделал.
Та разные есть и адекватные и не особо. Заказчик платит деньги и хочет максимального результата, его не особо волнует на сколько это возможно и что не существует безбажного софта.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 26-07-2011, 23:21:01
Цитироватьну вот просил же никакого вывода не делать! буду баллы снижать за невыполнение условий!

Сортировка отдельной функцией, как и было заказано.

Затупил с выводом тоже, да : /
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 23:38:05
Дай исходник без нумерации строк)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 26-07-2011, 23:41:12
Я ж прислал там по ссылке, вместе с откомпилированной версией, в архиве.

___

Паранойя заставила перепроверить что ж я отсылал. Так и есть. Два варианта: с нумерованными строками и файлы .срр вместе с .ехе в архиве.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 26-07-2011, 23:52:27
отложим все дела до завтра)) и спать))) всем пока))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-07-2011, 23:56:44
Цитироватьint i;            //Это i
int j;            //Это j

Комментарии супер)
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 26-07-2011, 23:57:40
Крутая темка... На сегоднешний день, самая популярная... Жаль только что я полный пень в таких делах. По этому приходится просто читать молча мудрствования других... :(
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 00:10:36
Ты сделай вид что участвуешь, я за тебя буду задания решать, а скидку пополам)
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 27-07-2011, 00:16:52
Цитата: Sasha от 27-07-2011, 00:10:36
Ты сделай вид что участвуешь, я за тебя буду задания решать, а скидку пополам)
Я непротив. Я уже пару книг прочитал о програмировании. Мне очень интересно, но понимаю что времени свободного очень мало для этого занятия, та и старый я уже для учёбы... ??? Так что вы меня извините...
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 00:34:30
Цитата: user4923 от 26-07-2011, 23:57:40
Крутая темка... На сегоднешний день, самая популярная... Жаль только что я полный пень в таких делах. По этому приходится просто читать молча мудрствования других... :(

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

Я всё время рассказываю, что всему, что умею в этой области, меня в школе обучили, ничего нового не узнал с тех пор, топчусь на месте, развитие остановилось. А научили меня следующему:

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

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

Потом рассказывают про то каким образом в языке объявляются переменные и какие существуют основные типы этих переменных. Если б я писал учебник для маленьких детей я бы провёл аналогию с развивающей игрушкой для ещё меньших детей: такая штука с дырками разной формы и в эти дырки засовываются соответствующих форм фигурки (в каком-то из фильмов про Резидент Ивл я такую точно видел!). Типа кубик-строку нельзя засунуть в треугольное отверстие для чисел. Как-то так.

И тут же добивают открытием знания про всякие плюсы, минусы, деления, умножения и преобразования строк в число и обратно.

БЫДЫЩЬ! Вселенские знания уже почти открылись: можно выводить всякие неприличные слова на экран или складывать числа и выводить ответ.

Но не всё так просто, потому что дальше рассказывают про самое главное номер три и четыре: про условные переходы. А их обычно два вида. Первый - если какое-то условие похоже на правду, то делай одно, если наоборот - другое. И выбор из пачки вариантов (case). И сразу после условных переходов рассказывают про циклы, которых может быть от двух до трёх разновидностей.

Самый главный тот, который выполняется определённое количество раз. Типа: написать сорок раз на экране "Миталл форевар!" Второй по старшенству - тот, который проверяет похоже ли на правду какое-то утверждение, и если похоже выполняет некие действия до тех пор, пока похожесть не испариться. И третий делает то же самое, что и второй, но он сперва выполняет действия, а потом проверяет. 

Там же рассказывают и про работу с массивами. Потому что где ещё рассказывать про массивы, если не на примерах с циклами?

Самое главное номер пять это процедуры и функции, что, кстати, везде, кроме Паскаля, походу, одно и то же. Часто, например, по ходу выполнения задачи требуется складывать два числа. Пишешь функцию под эти цели. До меня только недавно допёрло, что это одно и то же, что и написать в тетрадке ф(х,у)=х+у и подставляя икс и игрек, получать значения.

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

Всё. С этого момента можно делать всё, что угодно. Это как волшебство, только работает.

Например, если надо определить правильный ли порядок скобок в строке, то надо открыть главы учебника про работу со строками и про работу с массивами.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 00:47:37
Ну это не только в паскеле одно и то же. Но в современных языках действительно нет понятий процедур (по крайней мере в тех с которыми сталкивался я, я даже не знал что в паскале так, если мы об одном и том же говорим)).
Нас еще в школе квадратики на экране рисовать учили, но как же мне было тяжко после того как я забил на информатику в школе, ничего из этого не знал, а потом пришел в универ и мне на первой же моей ленте: "Пишем программу на с++, кто к доске?"
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 27-07-2011, 00:53:34
У меня информатика была только один год. Мы на этом предмете в тенис играли на компах. А ещЕ я на информатике узнал что CapsLock- это большая буква. ;D
Вот и все мои знания по информатике, на момент приобретения компа.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 01:01:27
Цитата: Sasha от 27-07-2011, 00:47:37
Ну это не только в паскеле одно и то же.

"НЕ" одно и то же.

Цитата: Sasha от 27-07-2011, 00:47:37Но в современных языках действительно нет понятий процедур (по крайней мере в тех с которыми сталкивался я, я даже не знал что в паскале так, если мы об одном и том же говорим)).

Я, честно говоря, сейчас даже затрудняюсь назвать отличия одного от другого в Паскале, ну, кроме того, что процедуры не могли возвращать значения, а функции могли.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 01:15:53
Опечатался.
Если мне не изменяет память, процедуры могут иметь несколько точек входа.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 01:27:02
В любом случае во всех популярных языках засилье функций и совсем нет процедур : )
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 01:49:47
Сортировка от Jeka затрачивает в 3,4 раза меньше тактов процессора, чем сортировка от Proydoha.
Чтобы было понятней набор из миллиона случайно сгенерированных массивов (условия генерации описаны выше) программа от Jeka сортирует примерно за 5,87 секунды, программа от Proydoha за ~18.18 сeкунды. При чем провел небольшое исследование, при увеличении массива время сортировки Jeka увеличивается совсем не значительно (пропорционально), а вот в случае Proydoha возрастает очень и очень значительно.
В первый раз вижу способ, которым Proydoha передавал массив в функцию. Считаю его недопустимым.

Завтра утром попытаюсь быренько написать свой пузырек, все таки интересно что получится)

Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 01:54:33
Что не понравилось, нашел в интернете код от Jeka практически слово в слово...
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 02:16:48
Написал свой пузырек, ушло 3 минуты (взял тот что использую всегда, когда нужно написать сортировку). Работает чуть быстрее чем за 13,8 секунды. Конечно если немного покопаться можно еще немного ускорить, но до результатов Jeka, как ни крути пузырек не дойдет.
Баллы и новое задание будет завтра.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 05:18:29
ЦитироватьВ первый раз вижу способ, которым Proydoha передавал массив в функцию. Считаю его недопустимым.

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

Первым делом я подумал, что приложение должно быть консольным, определённо. Я ввёл в гугле "с++ консольное приложение".

Попал вот сюда (вторая ссылка в гугле): http://www.cyberforum.ru/cpp-beginners/thread138817.html (http://www.cyberforum.ru/cpp-beginners/thread138817.html)

Затем я написал "с++ cout" и попал вот сюда (первая ссылка в гугле): http://programmersclub.ru/33/ (http://programmersclub.ru/33/)

Эти две закладки висели в броузере дня два, я их даже не читал. Затем проглядел по-диагонали, проверил компилирует ли компилятор решения по первой ссылке. Оказалось, что, да, компилирует.

Скелет для программы был, считай, уже готов. Надо было только вырезать все потроха из чужого примера. По второй ссылке я узал о том как работает ввод и вывод всякого. В частности о разделении пробелами входящих переменных и всего такого. Тут же понял, что это мне не подходит и выбрал чтение всей строки как в примере из раздела "ЧТЕНИЕ С КЛАВИАТУРЫ ЦЕЛОЙ СТРОКИ".

Меня очень волновал третий параметр этой функции, так как по второй ссылке не объяснялось, что нажатие на энтэр прекратит ввод по умолчанию. Поэтому я ввёл в гугле "c++ cin.getline". Попал сюда (первая ссылка в гугле): http://www.cplusplus.com/reference/iostream/istream/getline/ (http://www.cplusplus.com/reference/iostream/istream/getline/)

Вдумчиво прочитал условие (и всё равно дичайше натупил, как выяснилось этой ночью), особенно меня взволновали строки о том, что можно вводить только числа от ноля до девятки, через пробелы. Очевидно при этом каждый второй символ должен быть пробелом. Это очень легко проверить разделяя его надвое и глядя в остаток.

Запрос в гугл "С++ остаток от деления" (третья ссылка): http://otvet.mail.ru/question/4133351/ (http://otvet.mail.ru/question/4133351/)

Очевидная проверка: если каждый второй символ - не пробел, то вводящий где-то накосячил. Инкоррект инпут.

Инкоррект инпутов я получил целую батарею, несмотря на то, что пробелы я расставлял правильно.

Как выяснилось я заставлял цикл, проверяющий правильность ввода и записывающий числовые переменные из массива, копаться во всей сотне элементов, в том числе и в мусоре. Случайно бросив взгляд на самый конец предпоследней открытой вкладки в броузере я увидел её - функцию, которая возвращала бы количество символов, полученных при последнем вводе. Инкоррект инпуты, связанные с пробелами, прекратились.

Дальше следовало отсеять всё, что не являлось числом. Очевидно следовало прибегнуть к преобразованию типов. Преобразование типов в С++ мне не понравилось её тогда, когда я заимел первый опыт общения с С++ (я давал ссылку на старом форуме). Запрос в гугл "Преобразование строки в число" снова показал целый веер разных вариантов. Я выбрал функцию atoi. Но она, подлая, не хотела превращать один символ в число.

Текст ошибки идёт в гугл:"Could not find a match for 'atoi(char)'"
И по первой же ссылке решение проблемы: http://en.allexperts.com/q/C-1040/checking-string-consists-numbers-2.htm (http://en.allexperts.com/q/C-1040/checking-string-consists-numbers-2.htm)

Заодно я решил узнать что возвращает функция atoi, если ей передать непреобразовываемую строку. Буквы, там, или ещё что-нибудь. "С++ atoi". http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/ (http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/)

Возвращает она ноль. Окей. Значит сперва надо проверить не ноль ли там. Если ноль - записывать в несортированый массив ноль, иначе - в случае ноля при преобразовании писать "Инкоррект инпут". Русские буквы, кстати, компилятор не признавал в упор.

Заносим преобразованную строку в несортированый массив чисел. Но как в с++ объявляются массивы? "С++ массив". http://adorning.ru/2010/01/02/c-urok-4-massivyi/ (http://adorning.ru/2010/01/02/c-urok-4-massivyi/) А, так я уже объявлял такое для строки! Окей.

Заполняю массив. Сортировка должна осуществляться отдельной функцией. Отчего-то у меня именно такая формулировка въелась в голову. Окей. "С++ функции" http://valera.asf.ru/cpp/book/c07.html (http://valera.asf.ru/cpp/book/c07.html)

Нет проблем, пишу функцию, которая реализовывала бы сортировку пузырьком, так как в школе учили, тут всё чётко как в аптеке, даже проверять не нужно. Задаюсь вопросом:"А как туда передать массив чисел?"

Пишу в гугле:"с++ передача массива в функцию". Попадаю сюда: http://forum.shelek.ru/index.php/topic,15001.0.html (http://forum.shelek.ru/index.php/topic,15001.0.html)
Оттуда по ссылке перехожу сюда: http://forum.shelek.ru/index.php/topic,10178.msg167877.html#msg167877 (http://forum.shelek.ru/index.php/topic,10178.msg167877.html#msg167877)

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

Делаю вывод. Сдаюсь.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 08:15:45
Цитата: Sasha от 27-07-2011, 01:54:33
Что не понравилось, нашел в интернете код от Jeka практически слово в слово...
свою программу написал основываясь на сделанной на первом курсе лабораторной работе на паскале)) могу даже код прислать)) так что парсил я сам у себя а не с интернета) ну а когда саму лабу писал на первом курсе, то может и смотрел какие-то готовые исходники) поверь я этот способ на ЛИСТОЧКЕ преподу два раза сортировал и со второго-таки получил оценку, так что этот метод я ЗНАЮ как работает, а не спарсил его с интернета как обезьяна. переменные как называть особо не запаривался, и как ИНАЧЕ может выглядеть быстрая сортировка??? разве что сортировать, взяв опорный элемент не медиану последовательности, а скажем первый либо последний элемент. по поводу переменных, счетчики i,j нас учили на первом курсе мне что писать p,q место них? левый и правый края последовательности соответственно лефт и райт? и я не намерен их называть как-либо иначе. а сама то функция 5 строчек? что здесь может особо отличаться? пожалуйста, избавьте от подобных намекев, это не приятно!
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 08:19:44
Цитата: Sasha от 27-07-2011, 02:16:48
Написал свой пузырек, ушло 3 минуты (взял тот что использую всегда, когда нужно написать сортировку). Работает чуть быстрее чем за 13,8 секунды. Конечно если немного покопаться можно еще немного ускорить, но до результатов Jeka, как ни крути пузырек не дойдет.
Баллы и новое задание будет завтра.
ну да, пузырек имеет сложность N в квадрате. соответственно при небольшом уже увеличении числа, время потраченное на сортировку растет в квадратичной сложности, что весьма печально. алгоритм, который я использывал, "быстрая сортировка" имеет сложность N log N, что является гораздо эффективней, особенно на большом числе элементов) . Была к стати идея использовать пирамидальную сортировку, но она сложнее в реализации и даст более эффективный результат разве что на большом числе элементов
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 08:25:01
Цитата: Proydoha от 27-07-2011, 05:18:29
ЦитироватьВ первый раз вижу способ, которым Proydoha передавал массив в функцию. Считаю его недопустимым.

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

Первым делом я подумал, что приложение должно быть консольным, определённо. Я ввёл в гугле "с++ консольное приложение".

Попал вот сюда (вторая ссылка в гугле): http://www.cyberforum.ru/cpp-beginners/thread138817.html (http://www.cyberforum.ru/cpp-beginners/thread138817.html)

Затем я написал "с++ cout" и попал вот сюда (первая ссылка в гугле): http://programmersclub.ru/33/ (http://programmersclub.ru/33/)

Эти две закладки висели в броузере дня два, я их даже не читал. Затем проглядел по-диагонали, проверил компилирует ли компилятор решения по первой ссылке. Оказалось, что, да, компилирует.

Скелет для программы был, считай, уже готов. Надо было только вырезать все потроха из чужого примера. По второй ссылке я узал о том как работает ввод и вывод всякого. В частности о разделении пробелами входящих переменных и всего такого. Тут же понял, что это мне не подходит и выбрал чтение всей строки как в примере из раздела "ЧТЕНИЕ С КЛАВИАТУРЫ ЦЕЛОЙ СТРОКИ".

Меня очень волновал третий параметр этой функции, так как по второй ссылке не объяснялось, что нажатие на энтэр прекратит ввод по умолчанию. Поэтому я ввёл в гугле "c++ cin.getline". Попал сюда (первая ссылка в гугле): http://www.cplusplus.com/reference/iostream/istream/getline/ (http://www.cplusplus.com/reference/iostream/istream/getline/)

Вдумчиво прочитал условие (и всё равно дичайше натупил, как выяснилось этой ночью), особенно меня взволновали строки о том, что можно вводить только числа от ноля до девятки, через пробелы. Очевидно при этом каждый второй символ должен быть пробелом. Это очень легко проверить разделяя его надвое и глядя в остаток.

Запрос в гугл "С++ остаток от деления" (третья ссылка): http://otvet.mail.ru/question/4133351/ (http://otvet.mail.ru/question/4133351/)

Очевидная проверка: если каждый второй символ - не пробел, то вводящий где-то накосячил. Инкоррект инпут.

Инкоррект инпутов я получил целую батарею, несмотря на то, что пробелы я расставлял правильно.

Как выяснилось я заставлял цикл, проверяющий правильность ввода и записывающий числовые переменные из массива, копаться во всей сотне элементов, в том числе и в мусоре. Случайно бросив взгляд на самый конец предпоследней открытой вкладки в броузере я увидел её - функцию, которая возвращала бы количество символов, полученных при последнем вводе. Инкоррект инпуты, связанные с пробелами, прекратились.

Дальше следовало отсеять всё, что не являлось числом. Очевидно следовало прибегнуть к преобразованию типов. Преобразование типов в С++ мне не понравилось её тогда, когда я заимел первый опыт общения с С++ (я давал ссылку на старом форуме). Запрос в гугл "Преобразование строки в число" снова показал целый веер разных вариантов. Я выбрал функцию atoi. Но она, подлая, не хотела превращать один символ в число.

Текст ошибки идёт в гугл:"Could not find a match for 'atoi(char)'"
И по первой же ссылке решение проблемы: http://en.allexperts.com/q/C-1040/checking-string-consists-numbers-2.htm (http://en.allexperts.com/q/C-1040/checking-string-consists-numbers-2.htm)

Заодно я решил узнать что возвращает функция atoi, если ей передать непреобразовываемую строку. Буквы, там, или ещё что-нибудь. "С++ atoi". http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/ (http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/)

Возвращает она ноль. Окей. Значит сперва надо проверить не ноль ли там. Если ноль - записывать в несортированый массив ноль, иначе - в случае ноля при преобразовании писать "Инкоррект инпут". Русские буквы, кстати, компилятор не признавал в упор.

Заносим преобразованную строку в несортированый массив чисел. Но как в с++ объявляются массивы? "С++ массив". http://adorning.ru/2010/01/02/c-urok-4-massivyi/ (http://adorning.ru/2010/01/02/c-urok-4-massivyi/) А, так я уже объявлял такое для строки! Окей.

Заполняю массив. Сортировка должна осуществляться отдельной функцией. Отчего-то у меня именно такая формулировка въелась в голову. Окей. "С++ функции" http://valera.asf.ru/cpp/book/c07.html (http://valera.asf.ru/cpp/book/c07.html)

Нет проблем, пишу функцию, которая реализовывала бы сортировку пузырьком, так как в школе учили, тут всё чётко как в аптеке, даже проверять не нужно. Задаюсь вопросом:"А как туда передать массив чисел?"

Пишу в гугле:"с++ передача массива в функцию". Попадаю сюда: http://forum.shelek.ru/index.php/topic,15001.0.html (http://forum.shelek.ru/index.php/topic,15001.0.html)
Оттуда по ссылке перехожу сюда: http://forum.shelek.ru/index.php/topic,10178.msg167877.html#msg167877 (http://forum.shelek.ru/index.php/topic,10178.msg167877.html#msg167877)

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

Делаю вывод. Сдаюсь.
схожу с ума : МНОГО БУКААФ)) там все проще. зачем те этот getline и пробелы. в функцию main поступает массив указателей на строки. каждый элемент массива - по сути есть строка, являющаяся одним из параметров главной функции. например ты пишешь в коммандной строке
proydoha.exe 1 2 3 4
тогда в массиве argv первый элемент это "proydoha", 2ой - число 1 , третий - число 2 и т д
в цикле запустил функцию atoi и перенес эти данные в динамический массив? к стати ты использовал ДИНАМИЧЕСКИЙ массив или как?)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 10:44:58
Цитата: Jeka от 27-07-2011, 08:25:01
схожу с ума : МНОГО БУКААФ))
Многабукаф ты в цитату взял : ) Излагаю всё как есть, что бы все видели как я до такой жизни докатился : )

Цитата: Jeka от 27-07-2011, 08:25:01
там все проще. зачем те этот getline и пробелы. в функцию main поступает массив указателей на строки. каждый элемент массива - по сути есть строка, являющаяся одним из параметров главной функции. например ты пишешь в коммандной строке
proydoha.exe 1 2 3 4
тогда в массиве argv первый элемент это "proydoha", 2ой - число 1 , третий - число 2 и т д

Теперь, когда ты это сказал, твоё решение мне кажется в десятки сотен раз разумнее, но в день написания... : )

Цитата: Jeka от 27-07-2011, 08:25:01в цикле запустил функцию atoi и перенес эти данные в динамический массив? к стати ты использовал ДИНАМИЧЕСКИЙ массив или как?)

Не динамический. Парой сообщений раньше было написано, что больше сотни значений ввести нельзя, я сделал строку на 200 символов (сотня пробелов и сотня чисел). Когда будут превышены эти пределы ввод будет считаться завершенным и пойдёт выполняться всё остальное. В теории.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 10:56:19
Результаты задания #3
Jeka - 10 баллов
Proydoha - 7 баллов
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 11:03:56
Вот программа с помощью которой я проверял. Здесь quick_sort - функция от Jeka, mybuble - моя, bubble_sort - Proydoha
void quick_sort(int l,int r, int *mas)
{
int i=l;
int j=r;
int m=int((l+r)/2);
int p=mas[m];
do
{
while (mas[i]<p)
{
i++;
}
while (mas[j]>p)
{
  j--;
}
if (i<=j)
{
int tmp=mas[i];
mas[i]=mas[j];
mas[j]=tmp;
i++;
j--;
}
}
   while(i<=j);
     if (j>l)
    quick_sort(l,j,mas);
     if (i<r)
quick_sort(i,r,mas);

}

void mybubble(int *mas, int n)
{
int x;
for(int i = 0; i < n-1; i++)
for( int j = 0; j < n-i-1; j++)
if(mas[j]>mas[j+1])
{
x = mas[j];
mas[j] = mas[j+1];
mas[j+1]=x;
}
}

void bubble_sort (int (&a)[100], int j)
{
int temp;
int i;
temp = 42;
while (temp == 42)
{
  temp = 32167;
  for (i = 0; i<j; i++)
  {
   if (a[i] > a[i+1])
   {
    temp = a[i];
    a[i] = a[i+1];
    a[i+1] = temp;
    temp = 42;
   }
  }
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int *mas1;
int mas2[100];
int *mas3;
int n;
for (int i = 0; i < 1000000; i++)
{
n = rand()%100 + 1;
mas1 = new int[n];
mas3 = new int[n];
for(int j = 0; j < n; j++)
{
int x = rand()%10;
mas1[j] = x;
mas2[j] = x;
mas3[j] = x;
}
bubble_sort(mas2, n-1);
quick_sort(0, n-1, mas1);
mybumble(mas3,n);
delete []mas1;
delete []mas3;
}
}
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 12:12:55
Цитата: Sasha от 27-07-2011, 11:03:56
Вот программа с помощью которой я проверял. Здесь quick_sort - функция от Jeka, mybuble - моя, bubble_sort - Proydoha
void quick_sort(int l,int r, int *mas)
{
int i=l;
int j=r;
int m=int((l+r)/2);
int p=mas[m];
do
{
while (mas[i]<p)
{
i++;
}
while (mas[j]>p)
{
  j--;
}
if (i<=j)
{
int tmp=mas[i];
mas[i]=mas[j];
mas[j]=tmp;
i++;
j--;
}
}
   while(i<=j);
     if (j>l)
    quick_sort(l,j,mas);
     if (i<r)
quick_sort(i,r,mas);

}

void mybubble(int *mas, int n)
{
int x;
for(int i = 0; i < n-1; i++)
for( int j = 0; j < n-i-1; j++)
if(mas[j]>mas[j+1])
{
x = mas[j];
mas[j] = mas[j+1];
mas[j+1]=x;
}
}

void bubble_sort (int (&a)[100], int j)
{
int temp;
int i;
temp = 42;
while (temp == 42)
{
  temp = 32167;
  for (i = 0; i<j; i++)
  {
   if (a[i] > a[i+1])
   {
    temp = a[i];
    a[i] = a[i+1];
    a[i+1] = temp;
    temp = 42;
   }
  }
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int *mas1;
int mas2[100];
int *mas3;
int n;
for (int i = 0; i < 1000000; i++)
{
n = rand()%100 + 1;
mas1 = new int[n];
mas3 = new int[n];
for(int j = 0; j < n; j++)
{
int x = rand()%10;
mas1[j] = x;
mas2[j] = x;
mas3[j] = x;
}
bubble_sort(mas2, n-1);
quick_sort(0, n-1, mas1);
mybumble(mas3,n);
delete []mas1;
delete []mas3;
}
}

я в замешательстве! какой-то странный метод у Proydoha... напоминает обычный пузырек но тут какое то temp со значением 42, а идея вроде та же что и в обычном пузырьке... в качестве j я так понял передана размерность массива? не очень привычно этой буквой...
Саша, а что тебя смутило в способе передаче массива в функции Пройдохи?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 12:15:59
Цитата: Sasha от 27-07-2011, 11:03:56
Вот программа с помощью которой я проверял. Здесь quick_sort - функция от Jeka, mybuble - моя, bubble_sort - Proydoha
void quick_sort(int l,int r, int *mas)
{
int i=l;
int j=r;
int m=int((l+r)/2);
int p=mas[m];
do
{
while (mas[i]<p)
{
i++;
}
while (mas[j]>p)
{
  j--;
}
if (i<=j)
{
int tmp=mas[i];
mas[i]=mas[j];
mas[j]=tmp;
i++;
j--;
}
}
   while(i<=j);
     if (j>l)
    quick_sort(l,j,mas);
     if (i<r)
quick_sort(i,r,mas);

}

void mybubble(int *mas, int n)
{
int x;
for(int i = 0; i < n-1; i++)
for( int j = 0; j < n-i-1; j++)
if(mas[j]>mas[j+1])
{
x = mas[j];
mas[j] = mas[j+1];
mas[j+1]=x;
}
}

void bubble_sort (int (&a)[100], int j)
{
int temp;
int i;
temp = 42;
while (temp == 42)
{
  temp = 32167;
  for (i = 0; i<j; i++)
  {
   if (a[i] > a[i+1])
   {
    temp = a[i];
    a[i] = a[i+1];
    a[i+1] = temp;
    temp = 42;
   }
  }
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int *mas1;
int mas2[100];
int *mas3;
int n;
for (int i = 0; i < 1000000; i++)
{
n = rand()%100 + 1;
mas1 = new int[n];
mas3 = new int[n];
for(int j = 0; j < n; j++)
{
int x = rand()%10;
mas1[j] = x;
mas2[j] = x;
mas3[j] = x;
}
bubble_sort(mas2, n-1);
quick_sort(0, n-1, mas1);
mybumble(mas3,n);
delete []mas1;
delete []mas3;
}
}

не совсем понял... три массива, два из них динамические, один статический... заполняются одними и теми же значениями и прогоняются, подставляя в функции??
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 12:23:18
Да. Я по определенным соображениям отказался от идеи запускать ваши программы в отдельном процессе, передавая параметры в main, а просто скопировал ваши функции в одну программу и поочередно вызвал, замерив такты процессора.
Я никогда не видел такого способа передачи и вобще сама конструкция ввела меня немного в замешательство, не представляю как это внутри работает.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 12:34:47
Цитироватья в замешательстве! какой-то странный метод у Proydoha... напоминает обычный пузырек но тут какое то temp со значением 42

Переставить два значения в массиве, не используя промежуточной переменной, нельзя. temp нужен для этого. А ещё для того, что бы понять когда перестановок не произошло. Если temp равен сорока двум, то перестановки произошли и массив просматривается снова.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 13:42:23
Цитата: Proydoha от 27-07-2011, 12:34:47
Цитироватья в замешательстве! какой-то странный метод у Proydoha... напоминает обычный пузырек но тут какое то temp со значением 42

Переставить два значения в массиве, не используя промежуточной переменной, нельзя. temp нужен для этого. А ещё для того, что бы понять когда перестановок не произошло. Если temp равен сорока двум, то перестановки произошли и массив просматривается снова.
я знаю что 2 переменные без третьей не переставить! как по твоему я тогда писал свою программу?) почему 42?? сделал бы 0 или 1))) было бы как-то очевидней)) просто число смутило как будто с небес взято)))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 13:50:09
Цитата: Sasha от 27-07-2011, 12:23:18
Да. Я по определенным соображениям отказался от идеи запускать ваши программы в отдельном процессе, передавая параметры в main, а просто скопировал ваши функции в одну программу и поочередно вызвал, замерив такты процессора.
Я никогда не видел такого способа передачи и вобще сама конструкция ввела меня немного в замешательство, не представляю как это внутри работает.
Саш, ИМХО напрасно ты кричал на пройдоху. он сделал все верно. вот что написано в книге
Синтаксис вызова функции при этом[передаче массива в качестве параметра] может быть следующим :
FunctionName(ArrayName);
тогда прототип функции включает указание в качестве параметра типа передаваемого массива и следующих за ним прямоугольных скобок. например
void FunctionName(char[]);

ДРУГОЙ ВАРИАНТ
другой вариант синтаксиса передачи массива в функцию - когда прототипа функции содержит символ ОПЕРАЦИИ ВЗЯТИЕ АДРЕСА ПООООСЛЕ указания типа аргумента (что наверное имел в виду пройдоха)
char Functiuon(char&)
при этом синтаксис вызова функции принимает вид
FunctionName(*ArrayName);


Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 14:02:48
Цитата: Jeka от 27-07-2011, 13:42:23
я знаю что 2 переменные без третьей не переставить! как по твоему я тогда писал свою программу?) почему 42?? сделал бы 0 или 1))) было бы как-то очевидней)) просто число смутило как будто с небес взято)))

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

А 32167 - читкод на пятерых чОрных драконов в какой-то из частей героев меча и магии.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 15:04:19
Та не кричал я, понятно что если компилятор схавал и работает, то так делать можно, но я считаю это не правильный подход и опять же надо разбираться как такая передача организована в асм коде потом.

Ща вам открою большую тайну! Поменять местами 2 переменные, не используя третьей можно! Специально вчера проверил как это влияет на время, получилось что все же использовать буферную переменную все равно будет быстрее, в конкретном случае процентов на 28 тактов процессора.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 15:08:19
Цитата: Sasha от 27-07-2011, 15:04:19
Поменять местами 2 переменные, не используя третьей можно!

Сложением/вычитанием?
Написать функцию для этих целей?

Чё-то первое, что пришло в голову, выглядит не очень умным ходом.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 15:20:29
Цитата: Proydoha от 27-07-2011, 14:02:48
Цитата: Jeka от 27-07-2011, 13:42:23
я знаю что 2 переменные без третьей не переставить! как по твоему я тогда писал свою программу?) почему 42?? сделал бы 0 или 1))) было бы как-то очевидней)) просто число смутило как будто с небес взято)))

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

А 32167 - читкод на пятерых чОрных драконов в какой-то из частей героев меча и магии.
ООО БОГИ)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 15:22:01
Цитата: Proydoha от 27-07-2011, 15:08:19
Цитата: Sasha от 27-07-2011, 15:04:19
Поменять местами 2 переменные, не используя третьей можно!

Сложением/вычитанием?
Написать функцию для этих целей?

Чё-то первое, что пришло в голову, выглядит не очень умным ходом.
функция будет работать медленнее думаю. ну нам не учили каклибо по другому менять местами переменные нежели через тмп. так что доверяя своему родному университету я закрою глаза на Сашину истину жизни!
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 15:22:46
к стати, Саша,  а как ты замерял такты процессора?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 15:50:04
Ну сложением и вычитанием как вариант. Или же сложением и вычитанием адрессов переменных. Написать отдельную функцию - этого я не понял, все равно она чтото должна будет использовать для хранения. Можно при помощи исключающего или. Можно сравнивать биты переменных, если они равны - оставлять как есть, если не равны применять к ним операцию отрицания. Вот все варианты что мне известны. Женя, твой универ тебя не обманул, это вопрос из разряда, а знаете ли вы, который могут задать на собеседовании программисту, где-то с целью проверки его мышления, где-то с целью понизить его запросы, в реальной жизни это применимо разве что, если память твого железа ограничена так что каждый байт на счету)

Есть разные тулзы и библиотеки позволяющие замерить такты процессора, время выполнения итд. Все зависит от задачи. Когда-то сравнивал их работу - все давали отличающиеся результаты, так что каким верить хз. Но в целом пропорции сохранялись, такого чтобы один подход сказал что метод A лучше B, а другой наоборот не было.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 21:31:36
Задание #4
Время выполнения: 5 дней
Количество баллов: 10

Дан двумерный массив, заполненный нулями и единицами. Необходимо "перевернуть" этот массив на 180 градусов.

Пример
Входной массив:
0 1 0 1 1
0 0 1 0 1
1 0 0 1 1
Выходной массив:
1 1 0 0 1
1 0 1 0 0
1 1 0 1 0
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 21:53:53
Выглядит не очень сложным.
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 27-07-2011, 22:01:47
Тю... И че тут сложного??? Взял и переписал все цифри считывая по арабски (начиная снизу справа налево). ;D
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 22:13:37
Цитата: user4923 от 27-07-2011, 22:01:47
Тю... И че тут сложного??? Взял и переписал все цифри считывая по арабски (начиная снизу справа налево). ;D
Участвуй)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 22:36:03
я не понял что надо сделать с матрицей??? как это перевернуть
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 22:40:18
Ну вот представь себе логотип майкрософта:
красный зеленый
синий желтый
переворачиваем на 180, получаем:
(http://s54.radikal.ru/i146/1107/23/2139a8da92b4.png)
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 27-07-2011, 22:46:59
Цитата: Sasha от 27-07-2011, 22:13:37
Цитата: user4923 от 27-07-2011, 22:01:47
Тю... И че тут сложного??? Взял и переписал все цифри считывая по арабски (начиная снизу справа налево). ;D
Участвуй)
Так давай масив (как ты его назвал). Я его переверну... ;)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 22:48:12
Цитата: user4923 от 27-07-2011, 22:46:59
Цитата: Sasha от 27-07-2011, 22:13:37
Цитата: user4923 от 27-07-2011, 22:01:47
Тю... И че тут сложного??? Взял и переписал все цифри считывая по арабски (начиная снизу справа налево). ;D
Участвуй)
Так давай масив (как ты его назвал). Я его переверну... ;)
якби вона та правдонька щербата не була...
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 22:49:52
Цитата: Sasha от 27-07-2011, 22:40:18
Ну вот представь себе логотип майкрософта:
красный зеленый
синий желтый
переворачиваем на 180, получаем:
(http://s54.radikal.ru/i146/1107/23/2139a8da92b4.png)
онли завтра! засилие си# у меня в голове не дает мне мыслить трезво))) мне надо завтра прочитать главу операторы после завтра управляющие структуры и перейти к классам! не терпиться уже!
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-07-2011, 23:03:42
Цитата: Jeka от 27-07-2011, 22:36:03
я не понял что надо сделать с матрицей??? как это перевернуть

Отзеркалить по горизонтали и записать задом наперёд.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 23:05:04
Цитата: Proydoha от 27-07-2011, 23:03:42
Цитата: Jeka от 27-07-2011, 22:36:03
я не понял что надо сделать с матрицей??? как это перевернуть

Отзеркалить по горизонтали и записать задом наперёд.
перевернул листик верх ногами - дошло)))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-07-2011, 23:06:38
Сащ, а почему в книге этого Шилдта в теме переменные ни слова про массивы?(((
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-07-2011, 23:09:04
Ну дальше то есть, дочитаешь поймешь.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 28-07-2011, 19:54:50
Цитата: Proydoha от 27-07-2011, 23:03:42
Цитата: Jeka от 27-07-2011, 22:36:03
я не понял что надо сделать с матрицей??? как это перевернуть

Отзеркалить по горизонтали и записать задом наперёд.
как продвигается решение задания?))) на чем пишешь? пхп?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 28-07-2011, 20:22:35
Цитата: Jeka от 28-07-2011, 19:54:50
как продвигается решение задания?))) на чем пишешь? пхп?

Никак. Ведь есть же еще целых два дня, как минимум : )

Могу и на пхп.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 29-07-2011, 17:10:25
Все-таки не удержался, тоже попробовал сделать...
Вроде работает, в каком виде надо отправлять?
Экзешник и исходник, или что-то одно достаточно?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 29-07-2011, 17:21:12
Цитата: timelimit от 29-07-2011, 17:10:25
Экзешник и исходник, или что-то одно достаточно?

В теории достаточно и исходника, но всегда здорово, если можешь сразу тыкнуть два раза мышкой и увидеть результаты.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 29-07-2011, 17:30:32
Правда я поленился делать в делфи, поэтому просто турбо паскаль, экзешник соответственно не очень красив при выполнении... ))
Когда уже будет кнопка добавить файл в самом форуме, а не через левые сайты кидать?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 29-07-2011, 17:35:00
Цитата: timelimit от 29-07-2011, 17:30:32
Правда я поленился делать в делфи, поэтому просто турбо паскаль, экзешник соответственно не очень красив при выполнении... ))

Турбо Паскаль прекрасен!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 29-07-2011, 17:36:08
Трубо Паскаль убожен!
По поводу предыдущего задания, вот вышла неплохая статья:
http://habrahabr.ru/blogs/programming/124910/
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 29-07-2011, 17:43:46
Цитата: Sasha от 29-07-2011, 17:36:08
Трубо Паскаль убожен!
Ну не все же ездят на мерседесах...
Я думал что для конкурса не имеет значения язык написания, главное чтоб работало...
Если в задании есть спец ограничения, то надо писать в самом задании, что на "убогих" языках не писать, а только на одном, чем еще больше сократить кол-во участников...
Простите если был груб...
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 29-07-2011, 18:09:48
Это был ответ на пост Пройдохи. По языкам нет никаких ограничений, а если есть, то они оговариваются заранее.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 29-07-2011, 18:23:53
Цитата: Sasha от 29-07-2011, 17:36:08
Трубо Паскаль убожен!

Его вклад в заинтересованность меня предметом неоценим! : )
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 29-07-2011, 20:42:00
Отсылаю свой вариант решения.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 29-07-2011, 21:35:29
ну что я так понимаю все варианты есть. может подводить итоги? а Саш?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 29-07-2011, 21:36:31
Сегодня уже нет сил. Пятница все таки.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 29-07-2011, 21:38:21
ОК)) как скажешь)
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 29-07-2011, 22:51:22
Результаты задания #4
Proydoha - 9 баллов
Jeka - 7 баллов
timelimit - 7 баллов
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 29-07-2011, 23:06:50
Задание #5
Количество дней: 5
Количество баллов: 15

Написать программу принимающую адресс электронной почты и проверяющей его на соответсвие правилам формирования e-mail адресов.  Использовать регулярные выражения нельзя! Прислть необходимо код и экзешники или веб страницы для проверки.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 29-07-2011, 23:07:22
Требования к правильным адресам:

1. Адрес содержит локальную часть и домен, разделенные символом @ (RFC 2822 3.4.1).

2. Локальная часть может содержать символы алфавита, цифры и символы !, #, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, } ~, возможно разделенные точкой внутри, но не в начале адреса, не в конце или не рядом с другой разделяющей точкой (RFC 2822 3.2.4).

3. Локальная часть может содержать закавыченные части, несущие внутри кавычек пробелы (RFC 2822 3.2.5).

4. Экранированные части, такие как \@ , хотя этот синтаксис и утратил значение со времени начала действия RFC 822 (RFC 2822 4.4).

5. Максимальная длина локальной части - 64 символа (RFC 2821 4.5.3.1).

6. Доменная часть содержит идентификаторы, разделенные точкой (RFC1035 2.3.1).

7. Части доменного имени между точками начинаются с буквы, за которой следует нуль или более букв, цифр или символов -, заканчивающихся буквой или цифрой (RFC 1035 2.3.1).

8. Максимальная длина части доменного имени между точками 63 символа (RFC 1035 2.3.1).

9. Максимальная длина доменного имени - 255 символов (RFC 2821 4.5.3.1).

10. Доменное имя должно быть разрешаемым с помощью А или МХ DNS-записи (RFC 2821 3.6).

Стандартное соглашение имеет в виду, что символы имени должны поддерживать семибитные кодировки, то есть в реальности это ASCII-символы и никаких многобайтных кодировок.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 09:33:37
ну и задание...
Цитировать10. Доменное имя должно быть разрешаемым с помощью А или МХ DNS-записи (RFC 2821 3.6).
что это значит?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 11:36:07
Ну там внизу сообщение. Ну это официальные стандарты, я ж из песни слов не выкину, никто ж не говорил что надо все пункты реализовать.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 30-07-2011, 14:47:05
Прикрутил ссылки на RFC в первом сообщении.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 16:01:36
Я передумал, код тоже присылайте, а то ща наговнокодите "на миллион ифов" (c)Jeka, а я буду думать что хорошо с заданием справились)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 30-07-2011, 17:07:46
Цитата: Sasha от 30-07-2011, 16:01:36
Я передумал, код тоже присылайте, а то ща наговнокодите "на миллион ифов" (c)Jeka, а я буду думать что хорошо с заданием справились)

Да, да! Всё так и будет!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 17:42:47
Пересмотрел ответы на предыдущее задание. Знал что не надо было на ночь проверять, немного не доглядел. Дал более объективные баллы. Прошу прощения что изначально был невнимателен.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 18:12:38
Забыл написать комментарии к предыдущему заданию.
И там допустим у нас есть массив int mas [ x][y]. Так как в памяти он располагается линейно, то задача сводится к реверсированию одномерного бассива mas[x*y]. Тут все легко, берем следующий цикл:

int x;
k = n * m;
for(int i = 0; i < k / 2; i++)
{
   x = mas[i];
   mas[i] = mas[k - i -1];
   mas[k - i - 1];
}
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 19:50:53
Цитата: Sasha от 30-07-2011, 17:42:47
Пересмотрел ответы на предыдущее задание. Знал что не надо было на ночь проверять, немного не доглядел. Дал более объективные баллы. Прошу прощения что изначально был невнимателен.
ууу это что за безобразие?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 19:52:48
Цитата: Sasha от 29-07-2011, 22:51:22
Результаты задания #4
Proydoha - 9 баллов
Jeka - 7 баллов
timelimit - 7 баллов
программа рабочая. условия выполнены! требую коментариев
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 20:21:07
Пройдоха выполнил задание лучше чем остальные участники. Вчера я как-то поспешил с проверкой и много в коде не доглядел, очень уставший был. Думаю даже и с опозданием, но результаты должны быть справедливыми.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 20:27:55
Цитата: Sasha от 30-07-2011, 20:21:07
Пройдоха выполнил задание лучше чем остальные участники. Вчера я как-то поспешил с проверкой и много в коде не доглядел, очень уставший был. Думаю даже и с опозданием, но результаты должны быть справедливыми.
я конечно извиняюсь. Что значит лучше или хуже? Это относительные вещи! Есть задание! Есть условия в которых оно выполняется, и есть цель на которую оно в общем рассчитано. Можно сделать супер программу, с оптимальным алгоритмом, красивым интерфейсом, когда пользователь будет вводить число элементов в той же матрице, и результат ему будет выводится с фанфарами и цветными буквами. и что дальше? Задание мной было выполнено! Никаких дополнительных условий и призовых баллов обусловлено не было! лучше-хуже - пределу совершенства нету! В предыдущем задании - да! Там была скорость выполнения важна! В этом - нет! я тоже мог прогонять массив не весь и переставлять элементы в 1 массиве, экономя память! но учитывая маленькие размеры массива, и мощность современных машин - этого делать не стал! как и красивого интерфейса! Считаю не справедливым такие дополнительные начисления баллов! Прошу считать это апелляцией!
Извиняюсь, что остальным участникам обсуждения придется читать эти не очень приятные слова.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 20:34:19
Я нигде не выкладывал решений других участников, откуда взялись выводы о том что именно повлияло на пересмотр решения я не знаю. По поводу принципа начисления баллов  могу только предложить еще раз перечитать условия конкурса.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 30-07-2011, 20:37:37
Цитата: Sasha от 30-07-2011, 20:34:19
Я нигде не выкладывал решений других участников

Вот, кстати, зря.

Всегда интересно посмотреть.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 20:38:23
Цитата: Sasha от 30-07-2011, 20:34:19
Я нигде не выкладывал решений других участников, откуда взялись выводы о том что именно повлияло на пересмотр решения я не знаю. По поводу принципа начисления баллов  могу только предложить еще раз перечитать условия конкурса.
"лучше было выполнено" - были предположения, что может быть лучше в столь незаурядном задании! Условия конкурса я читал. не понимаю какое отношение имеют условия к пересмотренным баллам. Еще раз повторюсь, учитывая размеры массива и поставленную задачу оптимальность алгоритма оценивать нету смысла. если даже он и работает в теории быстрее, в практике это не на что не повлияет! условия задачи выполнены полностью! Я уточнял СПЕЦИАЛЬНО нужно ли, что бы пользователь указал размеры массива- тогда программа была бы более эффективной, на что напомню Вы Александр сказали что этого делать не надо! Прошу удовлетворить апелляцию. Дальше спорить не буду. я свою точку зрения изложил
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 20:50:17
У других пользователей вобще был массив захардкоден, включая победителя. Ты сейчас сам сказал что не читал условия конкурса, за что и как присуждаются баллы и пытаешься рассказать модератору как ему стоит оценивать ответы.
О причинах пересмотра расскажу после футбола. Всех работ выкладывать я не буду. Теперь не будут выкладывать и ответ победителя. Право на аппеляцию никто не отменял и не будет, но обсуждать с кем-то недостатки в чужом коде я не буду, вы можете доказать мне только что ваш ответ был недооценен. Такое уже было, напомню за одно задание уже пересматривалось и баллы Jeka были добавлены.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 20:53:51
Цитата: Sasha от 30-07-2011, 20:50:17
У других пользователей вобще был массив захардкоден, включая победителя. Ты сейчас сам сказал что не читал условия конкурса, за что и как присуждаются баллы и пытаешься рассказать модератору как ему стоит оценивать ответы.
О причинах пересмотра расскажу после футбола. Всех работ выкладывать я не буду. Теперь не будут выкладывать и ответ победителя. Право на аппеляцию никто не отменял и не будет, но обсуждать с кем-то недостатки в чужом коде я не буду, вы можете доказать мне только что ваш ответ был недооценен. Такое уже было, напомню за одно задание уже пересматривалось и баллы Jeka были добавлены.
Модератор я написал что условия конкурса я ЧИТАЛ. я не рассказываю как оценивать ответы! я прошу оценить решение согласно выполненному заданию! Не пойму какая разница модератор или нет. в данном случае вы проводите конкурс.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 20:57:33
перейдем к формальностям.
ЦитироватьЗадание #4
Время выполнения: 5 дней
Количество баллов: 10

Дан двумерный массив, заполненный нулями и единицами. Необходимо "перевернуть" этот массив на 180 градусов.

Пример
Входной массив:
0 1 0 1 1
0 0 1 0 1
1 0 0 1 1
Выходной массив:
1 1 0 0 1
1 0 1 0 0
1 1 0 1 0
я выполнил это задание. считаю, что мое решение НЕДООЦЕНЕНО!
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-07-2011, 21:04:01
Ладно, этот диалог не завершится ни чем хорошим. Так что не будем портить настроение ни себе ни людям. Я свою кандидатуру с этого конкурса снимаю. Всем удачного программирования!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-07-2011, 22:09:32
Начну с того что в условиях конкурса оговаривалось что оцениваться будет так же оптимальность, я бы даже сказал изящность решения. Поэтому как я говорил правильные результаты еще не означает максимум баллов, как и программа с ошибками тоже может получить часть баллов (прецедент тоже уже был). Иначе оценивать такие легкие задания только по наличию присланного ответа в итоге мы выйдем на то что у всех будет максимум баллов. Ранее я планировал выкладывать лучшее решение чтобы другие могли смотреть и возможно чему-то учиться. К примеру на данный момент явно самым подготовленным участником является Пройдоха, и учитывая мою слабость в PHP я сам за 3 задания уже успел многое у него почерпнуть. А говорить о том что если код работает значит он правильный, как минимум непрофессионально. К примеру этот (http://lurkmore.ru/%E8%ED%E4%F3%F1%F1%EA%E8%E9_%EA%EE%E4) и этот (http://lurkmore.ru/Быдлокод) код ведь тоже работает.
Теперь перейдем непосредственно к заданию. Описывать буду только то что Пройдоха сделал красивее других участников. В задании было сказано перевернуть массив. И Jeka и timelimit (очень интересно послушать его оценку полученым баллам) не стали ничего делать с исходным массивом, а просто переместили данные в дополнительный, что уже противоречит условию. И даже если бы они потом каким-либо образом переместили данные назад в исходный массив, на оптимальность такой алгоритм претендовать явно не может. С таким же успехом я бы мог просто вывести на экран исходный массив в обратном порядке как предлагал user и больше ничего не делать, а потом сказать что выполнил задание.
Дальнейшее обсуждение, предложения, критика приветвуются. Дальнейшие аппеляции запрещены. Если кто-то считает что я предвзято оцениваю задания, будем обсуждать систему, при которой я не буду знать кому пренадлежит ответ перед проверкой (хотя выбор языков и стиль программирования и так будут все выдавать).
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 31-07-2011, 21:29:27
Ну вы тут наговорили... ))
Чувствую что если так дальше пойдет, прощай конкурс на данную тему... ))
Честно говоря как по мне, то я участвую не из-за оценок, а просто интересно...
Поэтому последняя оценка для меня ну прям золотая медаль... ))
Насчет последнего задания, т.е. №5, то я сразу пас... настолько я еще не продвинулся, поэтому я буду ждать несложных заданий, если такие будут конечно...
Я даже знаю кто заработает высшую оценку за последующие N-цать заданий... ))
Думаю мы все это знаем, слишком нас мало...
Так что обижаться не на что...
И надо отбросить все предрассудки и сесть за стол с чаем и не ссориться...
Мое мнение... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 31-07-2011, 21:39:10
А ты все таки попробуй если есть время. Даже если ниче не получится я оценю может какие-то пару баллов получишь. Я скажу если делать только то что заранее знаешь как решать толку будет мало. Самый большой профит от решения заданий на грани того, на что способен на данный момент. И это в целом всего касается. Тем более потом я посмотрю, может чтото подскажу и помогу.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 01-08-2011, 17:45:50
Три из пяти дней прошло.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 02-08-2011, 20:56:52
Мучаюсь сомнениями:

Входит ли @ в 64 символа локальной части или он может быть 65-ым?
Заэкранировать обратным слэшем можно любой символ?
Для закавыченных частей работают те же правила, что и для не закавыченных, плюс пробелы? Закавыченная часть должна закавычиваться двойными кавычками или одинарными? Двойными.
Локальная часть может начинаться с любого из доступных символов?
Для доменной части доступен тот же набор символов, что и для локальной?
Пункт номер десять решительно неясен.

Пять дней истекают завтра в 23:06:50.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 02-08-2011, 23:01:51
Забей, официальные правила были добавлены для антуража. Оцениваться будет самое основное и простое, к мелочам я придираться не буду.
ПС. сам в шоке с пункта номер 10)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 03-08-2011, 18:57:08
Отправляю.

Буду смеяться, если наводя красоту где-то всё запорол по чёрному.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 17:44:48
Затишье перед бурей.... ))
Где новые задания, пора уже...
Мое мнение, пересмотреть саму концепцию конкурса...
Учитывая что народу мало, победитель известен заранее, очки за конкурсы мне лично не понятно какие преимущества дают, в результате падает интерес к заданиям...
Надо что-то делать...
Буду рад выслушать контраргументы...
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 18:17:34
Буду рад выслушать контрпредложения
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 04-08-2011, 18:19:00
Цитата: timelimit от 04-08-2011, 17:44:48
победитель известен заранее

Это потому что никто больше не присылает варианты ответов.

Жэка в лёгкую уделал меня на сортировке массивов, например.
Из пяти заданий таймлимит учавствовал только в двух.
КатКатКат программирует контроллеры(!) и делает вид, что не знает языка.
ЮзерСорокДевятьДвадцатьТри проявляет неясные признаки интереса, но ими всё и ограничивается.

Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 18:23:02
Я извиняюсь, забыл что уже истекло время на выполнение задания и только сейчас напомнили. Сейчас придумаю новое задание, а потом займусь проверкой предыдущего.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 18:27:54
Цитата: Proydoha от 04-08-2011, 18:19:00
Это потому что никто больше не присылает варианты ответов.
Вот и я о чем, мало людей... некому присылать...
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 18:29:27
Цитата: Sasha от 04-08-2011, 18:17:34
Буду рад выслушать контрпредложения
Так сразу не готов предложить вариант практически измененного конкурса...  тут надо подумать... ))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 18:31:51
И не по теме, когда доделают нормально форум, при отправке ответа не переходит на исходную страницу... приходится переходить на заголовок темы и т.д.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 04-08-2011, 18:33:16
Цитата: timelimit от 04-08-2011, 18:29:27
Так сразу не готов предложить вариант практически измененного конкурса...  тут надо подумать... ))

Что тут думать? : )

Задание #6
Время выполнения: n
Количество баллов: n

Оператор присваивания в С++:
а) ==
б) =
в) :=
г) !=

___

Я тут, кстати, нашел шпоры к практической части ГосЭкзамена по информатике в ДНУ на июнь 2010 года, если кому-то интересно. Вот они (http://daewl.narod.ru/f_host/shpora.rar).
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 18:47:51
Не по теме пиши в темах по теме!
Вот смотри, предыдущее задание проверить валидность имейла, первое что приходит на ум в имейле должен быть символ @. Написать программу, которая проверит есть ли в строке этот символ, у меня б заняло секунд 25. Добавить проверку чтобы этот символ не стоял в начале или конце строки еще 10 секунд. Добавить условие что после @ в строке должна присутвовать точка, но не в начале или конце еще пару минут. Ну и так добавляя по чуть чуть можно сделать сносный валидатор. Может для тебя все сразу было бы сделать сложновато, и заняло бы не 10 минут, но что мешало тебе ограничиться скажем проверкой на наличие @ отправить, и получить свои пускай 1-2, но заслуженных баллов? Невозможно научиться ходить не научившись ползать! Если делать только то что заранее знаешь как делается, никаких навыков тебе это не даст. Нужно делать то, что для тебе кажется сложным, пускай и начиная с более легкого, а потом постепенно усложняя, но только так. Написав 10 вариантов holle world ты ничему не научишься!
Уже придумал следующее название. Надеюсь эта разовая задумка вам понравится, она расчитана именно на описанное выше.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 04-08-2011, 18:50:33
Оу май гад.

ЦитироватьДобавить проверку чтобы этот символ не стоял в начале или конце строки еще 10 секунд.

Я не добавил : )

Валидный е-майл: @

: )
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 18:54:42
Тем более ты ж сам говоришь что баллы и победа тебе не важны. Напиши мне в скайп, я тебе помогу понять как решать, а если чтото не будет получаться поправлю. Когда-то для меня это тоже были очень страшные задания. Я свой курсак на 2 курсе (поддавки - выкладывал в теме наши работы) писал несколько дней. Когда я начинал писать я не представлял как это делать! Код получился ужаснейшим (как всегда когда чтото делаешь впервые), сил было потраченно огромное количество. После того как я осилил свой курсак (сам от 1 до последней строчки) я сделал еще 7 немного более простых курсаков за 9 дней, получив за это приятную сумму денег. Ни один из них мне уже не казался сложным, как когда я начинал делать свой (а точнее еще даже не начинал, а только паниковал думая что это очень тяжело). Как бы я описываю и так банальные и понятные вещи, так что продолжать повествование не буду.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 18:56:20
Цитата: Proydoha от 04-08-2011, 18:50:33
Оу май гад.

ЦитироватьДобавить проверку чтобы этот символ не стоял в начале или конце строки еще 10 секунд.

Я не добавил : )

Валидный е-майл: @

: )
:)
Ну я думаю это опыт, мой друг) Ну и не зря ж я столько проработал тестировщиком ПО)

UPD. Думаю учитывая то что написал Пройдоха, вы потеряли хороший шанс обойти его в этом задании!!!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 19:04:25
Результаты задания #6
Proydoha - 11 баллов
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 19:10:08
Ошибки найденные мною у Пройдохи (естесвенно, как я говорил, я не проверял пункты типа ввода очень длинных имейлов (хотя очень частой является ошибка, когда сайт не позволяет ввести длинный вполне валидный имейл), загадочных пунктов номер 10 итд):
Уже описанное @ - валидный имейл.
Имейл может начинаться не с буквы.
Имейл может заканчиваться точкой.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 19:12:34
Теперь участник набравший больше всего очков по итогам месяца будет получать скидку на интернет 30%
Задание #5 в августовский рейтинг включаться не будет.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 04-08-2011, 19:20:40
Цитата: Sasha от 04-08-2011, 19:10:08
Имейл может начинаться не с буквы.
Имейл может заканчиваться точкой.

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

Про начинание локальной части не с буквы вроде же не было никаких условий.

___

Википедия про домены и точку в конце:
ЦитироватьСтруктура доменного имени отражает порядок следования узлов в иерархии; доменное имя читается слева направо от младших доменов к доменам высшего уровня (в порядке повышения значимости), корневым доменом всей системы является точка ('.'), ниже идут домены первого уровня (географические или тематические), затем — домены второго уровня, третьего и т. д. (например, для адреса ru.wikipedia.org домен первого уровня — org, второго wikipedia, третьего ru). На практике точку в конце имени часто опускают, но она бывает важна в случаях разделения между относительными доменами и FQDN (англ. Fully Qualifed Domain Name, полностью определённое имя домена). (http://ru.wikipedia.org/wiki/DNS)
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 19:21:23
Согласен, что надо двигаться вперед...
Но как по мне не так скачкообразно, от одной темы в другую...
Во-вторых я уже говорил что мой уровень очень низкий, и я ищу ответы на вопросы, если мне интересна задача, которую надо выполнить...
Еще мне кажется что Жека обиделся, и пока его не будет видно на этом конкурсе, а спорить с Пройдохой мне не по плечу... ))
Предлагаю совместить приятное с полезным, а именно:
совместить обучение и конкурс!
Т.е. берем тему, на которую будет задание, всем дается ссылка или источник знаний на эту тему, время на изучение, после чего дается само задание... и так постепенно будем повышать(понижать:)) свой уровень (имею ввиду участников конкурса) и может люди захотят поизучать программирование, что тоже привлечет еще участников...
Мне кажется так будет интереснее и больше участников...
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 19:29:10
Задание #6
Количество дней - 5

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



Написать программу для перевода двоичных чисел в десятичные.
Количество баллов - 10


Написать программу для перевода десятичных чисел в двоичные
Количество баллов - 9


Написать программу для перевода двоичных чисел в шестнадцатиричные.
Количество баллов - 6


Написать программу для перевода шестнадцатиричных чисел в двоичные.
Количество баллов - 5

Во всех заданиях незначащие нули лучше убирать!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 19:33:44
Цитата: Proydoha от 04-08-2011, 19:20:40
Цитата: Sasha от 04-08-2011, 19:10:08
Имейл может начинаться не с буквы.
Имейл может заканчиваться точкой.

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

Про начинание локальной части не с буквы вроде же не было никаких условий.

___

Википедия про домены и точку в конце:
ЦитироватьСтруктура доменного имени отражает порядок следования узлов в иерархии; доменное имя читается слева направо от младших доменов к доменам высшего уровня (в порядке повышения значимости), корневым доменом всей системы является точка ('.'), ниже идут домены первого уровня (географические или тематические), затем — домены второго уровня, третьего и т. д. (например, для адреса ru.wikipedia.org домен первого уровня — org, второго wikipedia, третьего ru). На практике точку в конце имени часто опускают, но она бывает важна в случаях разделения между относительными доменами и FQDN (англ. Fully Qualifed Domain Name, полностью определённое имя домена). (http://ru.wikipedia.org/wiki/DNS)
Да, я неправильно интерпретировал один пункт. Баллы добавлю.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 19:43:10
Цитата: timelimit от 04-08-2011, 19:21:23
Согласен, что надо двигаться вперед...
Но как по мне не так скачкообразно, от одной темы в другую...
Во-вторых я уже говорил что мой уровень очень низкий, и я ищу ответы на вопросы, если мне интересна задача, которую надо выполнить...
Еще мне кажется что Жека обиделся, и пока его не будет видно на этом конкурсе, а спорить с Пройдохой мне не по плечу... ))
Предлагаю совместить приятное с полезным, а именно:
совместить обучение и конкурс!
Т.е. берем тему, на которую будет задание, всем дается ссылка или источник знаний на эту тему, время на изучение, после чего дается само задание... и так постепенно будем повышать(понижать:)) свой уровень (имею ввиду участников конкурса) и может люди захотят поизучать программирование, что тоже привлечет еще участников...
Мне кажется так будет интереснее и больше участников...
Хотелось бы послушать мнение других участников на такой вариант. Ну и есть проблема с тем что у каждого свои приоритеты в языках и какой-то общей ссылкой не обойтись. Да и для того чтобы быть справедливее мне прийдется тоже перечитывать этот материал, чтобы знать что там написано, а желания перечитывать то чего уже когда-то начитался (и так своего хватает) у меня нет)) да и вряд ли все запомню.
А вобще 5 из 6 заданий были на тему массивов, вот тебе и конкретная тема, тем более из самых простых и фундаментальных. Еще в 2 заданиях нужны были знания математики. Все. Вроде ведь никаких там WinApi, потоков итд не было! Пока все крутится вокруг массивов, а точнее строк.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 19:59:07
Цитата: Sasha от 04-08-2011, 19:43:10
Хотелось бы послушать мнение других участников на такой вариант.
Эх, было бы больше участников...
Цитата: Sasha от 04-08-2011, 19:43:10
Ну и есть проблема с тем что у каждого свои приоритеты в языках и какой-то общей ссылкой не обойтись.
Вот, предложить изучать язык, который имеет практическое применение, пригодиться... ))
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 04-08-2011, 20:11:48
Новое задание тоже на работу со строками?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 20:21:55
Ну по крайней мере 2 самых легких уровня да. Те что потяжелее, там еще математики немного есть и чуть больше программирования.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 21:17:02
Цитата: timelimit от 04-08-2011, 19:21:23
Согласен, что надо двигаться вперед...
Но как по мне не так скачкообразно, от одной темы в другую...
Во-вторых я уже говорил что мой уровень очень низкий, и я ищу ответы на вопросы, если мне интересна задача, которую надо выполнить...
Еще мне кажется что Жека обиделся, и пока его не будет видно на этом конкурсе, а спорить с Пройдохой мне не по плечу... ))
Предлагаю совместить приятное с полезным, а именно:
совместить обучение и конкурс!
Т.е. берем тему, на которую будет задание, всем дается ссылка или источник знаний на эту тему, время на изучение, после чего дается само задание... и так постепенно будем повышать(понижать:)) свой уровень (имею ввиду участников конкурса) и может люди захотят поизучать программирование, что тоже привлечет еще участников...
Мне кажется так будет интереснее и больше участников...
Что касается меня - то ты типа прав)) на этом форуме эта тема была для меня пожалуй самой интересной. сейчас я учу язык программирования С#  (си шарп). хотя синтаксис напоминает С++ в целом язык для меня новый - а именно объектно-ориентированный. учу по книжке, которую посоветовал SASHA за что ему искренне благодарен. и конечно было очень большое рвение и желание тренироваться и набирать навыки в этом языке, выполняя задания на этом форуме.. но ... почему но по-моему и так тебе понятно))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 21:23:50
Цитата: Jeka от 04-08-2011, 21:17:02
Что касается меня - то ты типа прав)) на этом форуме эта тема была для меня пожалуй самой интересной. сейчас я учу язык программирования С#  (си шарп). хотя синтаксис напоминает С++ в целом язык для меня новый - а именно объектно-ориентированный. учу по книжке, которую посоветовал SASHA за что ему искренне благодарен. и конечно было очень большое рвение и желание тренироваться и набирать навыки в этом языке, выполняя задания на этом форуме.. но ... почему но по-моему и так тебе понятно))
Единственное что я понял, что ты обиделся...
Но я думаю что из-за очков за конкурс, чужих решений, другого видения, отличного от твоего, и прочих мелочей жизни не стоит лишать себя удовольствия потренироваться в программировании, если тебе это действительно интересно...
Возвращайся к нам, мне одному Пройдоху не победить... ))
И давайте жить дружно...
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 21:33:59
Цитата: timelimit от 04-08-2011, 21:23:50
Цитата: Jeka от 04-08-2011, 21:17:02
Что касается меня - то ты типа прав)) на этом форуме эта тема была для меня пожалуй самой интересной. сейчас я учу язык программирования С#  (си шарп). хотя синтаксис напоминает С++ в целом язык для меня новый - а именно объектно-ориентированный. учу по книжке, которую посоветовал SASHA за что ему искренне благодарен. и конечно было очень большое рвение и желание тренироваться и набирать навыки в этом языке, выполняя задания на этом форуме.. но ... почему но по-моему и так тебе понятно))
Единственное что я понял, что ты обиделся...
Но я думаю что из-за очков за конкурс, чужих решений, другого видения, отличного от твоего, и прочих мелочей жизни не стоит лишать себя удовольствия потренироваться в программировании, если тебе это действительно интересно...
Возвращайся к нам, мне одному Пройдоху не победить... ))
И давайте жить дружно...
я не против жить дружно. я не люблю ни с кем ссориться. просто я сейчас сел думать над переводом чисел подумал подумал. и потом пришла мысль, что пусть даже программа будет переводить числа правильно и корректно, но мой код могут назвать "не изысканным" или проще говоря гавнокодом по сравнением с экспертом Пройдохой ) и смысл тогда париться? еще раз повторю я это говорю не кому не в обиду
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 21:38:35
претендуешь - соответствуй
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 21:48:52
Цитата: Sasha от 04-08-2011, 21:38:35
претендуешь - соответствуй
это камень в мой огород)))?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 21:50:24
timelimit, что-то у тебя анкета скудноватая))  ;) у тебя скайп есть?)) в личку напиши
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 21:53:46
Цитата: Jeka от 04-08-2011, 21:33:59
но мой код могут назвать "не изысканным" или проще говоря гавнокодом по сравнением с экспертом Пройдохой )
Ну и что?
Плюнь на эти мелочи, учись не только программировать, но и не обращать внимание на вещи, которые кажутся тебе несправедливыми например...
Если так на всех обижаться, то что, каждый раз менять работу если вдруг начальник скажет что-то обидное...
Учись прощать весь мир, и он будет твой(во загнул:))...
Все равно возвращайся... ))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 21:55:20
Цитата: Jeka от 04-08-2011, 21:50:24
timelimit, что-то у тебя анкета скудноватая))  ;) у тебя скайп есть?)) в личку напиши
Скайп есть, но я в него редко захожу... ))
azar1971
Если застанешь меня там, пиши... ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 21:57:36
Цитата: timelimit от 04-08-2011, 21:53:46
Цитата: Jeka от 04-08-2011, 21:33:59
но мой код могут назвать "не изысканным" или проще говоря гавнокодом по сравнением с экспертом Пройдохой )
Ну и что?
Плюнь на эти мелочи, учись не только программировать, но и не обращать внимание на вещи, которые кажутся тебе несправедливыми например...
Если так на всех обижаться, то что, каждый раз менять работу если вдруг начальник скажет что-то обидное...
Учись прощать весь мир, и он будет твой(во загнул:))...
Все равно возвращайся... ))
так! ты не по теме! создаем раздел ФИЛОСОФИЯ)))))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 22:04:14
после консультации с модератором конкурса Sasha было выяснено, что в задании номер 6 речь идет о неотрицательных, целых чисел диапазоном не более типа int (integer)
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 22:09:15
Достал с полки книжку по информатике буду вспоминать всю эту разницу между двоичными и прочими ичными цифрами... ))
Больше философствовать не буду (надеюсь:)).
С возвращением Жека! ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 22:12:23
Тут опять же, так как заданий по сути несколько, в каких-то из них речь идет конечно о числах, а в каких-то можно и исходными строками обойтись.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 22:13:54
Цитата: Sasha от 04-08-2011, 22:12:23
Тут опять же, так как заданий по сути несколько, в каких-то из них речь идет конечно о числах, а в каких-то можно и исходными строками обойтись.
Ээээ, немного не понял о чем речь?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 22:15:43
АХТУНГ!!!
Я понял что сразу неправильно оценил сложность заданий! Задания переоценены!!! Прошу прощения за неудобства. Думаю даже если кто-то уже начал делать другое задание, лишним оно ему не станет. Еще раз извиняюсь.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 22:18:07
Цитата: timelimit от 04-08-2011, 22:13:54
Цитата: Sasha от 04-08-2011, 22:12:23
Тут опять же, так как заданий по сути несколько, в каких-то из них речь идет конечно о числах, а в каких-то можно и исходными строками обойтись.
Ээээ, немного не понял о чем речь?
Ну там 4 разных задания, с разной сложностью и разным подходом. Все зависит от алгоритма.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 22:18:32
Цитата: timelimit от 04-08-2011, 22:09:15
Достал с полки книжку по информатике буду вспоминать всю эту разницу между двоичными и прочими ичными цифрами... ))
Больше философствовать не буду (надеюсь:)).
С возвращением Жека! ))
Спасибо))) я даже достал тетрадку по ассемблеру! ой мамочки страшные слова))))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 22:25:01
Цитата: Sasha от 04-08-2011, 22:18:07
Цитата: timelimit от 04-08-2011, 22:13:54
Цитата: Sasha от 04-08-2011, 22:12:23
Тут опять же, так как заданий по сути несколько, в каких-то из них речь идет конечно о числах, а в каких-то можно и исходными строками обойтись.
Ээээ, немного не понял о чем речь?
Ну там 4 разных задания, с разной сложностью и разным подходом. Все зависит от алгоритма.
Это я понял, но я не понял что имеется ввиду "исходные строки", про числа как-то вроде понятно... ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 22:25:43
Цитата: timelimit от 04-08-2011, 22:25:01
Цитата: Sasha от 04-08-2011, 22:18:07
Цитата: timelimit от 04-08-2011, 22:13:54
Цитата: Sasha от 04-08-2011, 22:12:23
Тут опять же, так как заданий по сути несколько, в каких-то из них речь идет конечно о числах, а в каких-то можно и исходными строками обойтись.
Ээээ, немного не понял о чем речь?
Ну там 4 разных задания, с разной сложностью и разным подходом. Все зависит от алгоритма.
Это я понял, но я не понял что
имеется ввиду "исходные строки", про числа как-то вроде понятно... ))
забей))))
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 22:26:15
Эх, счастливые вы люди, программить умеете...
Всю жизнь мечтал, но так и не осилил... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 04-08-2011, 22:30:11
Цитироватьимеется ввиду "исходные строки", про числа как-то вроде понятно... ))
Да, в некоторый вариантах входную строку даже не прийдется в число преобразовывать.

Хотел предупредить, если не убирать незначащие нули это ПЛОХО!
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 04-08-2011, 22:30:17
Цитата: Jeka от 04-08-2011, 22:25:43
забей))))
Забил ))))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 04-08-2011, 22:47:26
Цитата: timelimit от 04-08-2011, 22:26:15
Эх, счастливые вы люди, программить умеете...
Всю жизнь мечтал, но так и не осилил... ))
блин) просто думать надо! программить здесь нет ничего такого! когда мы решаем задачу то о программить по сути речь не идет)) мне нравилось как вела у нас Куценко прекрасная преподователь. так вот она говорила ИДЕМ по массиву))) Берем такой то элемент)) как будто мы идем по какой-то реальной дороге там или тропе)) просто делаешь это в ручную а потом просишь комп сделать то же самое)))
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 05-08-2011, 15:06:22
Всвязи с новым заданием я сразу вспоминаю как пытался объяснить непричастному человеку как работают системы счисления, отличные от десятичной.

Дело в том, что в субтитрах формата ssa и ass цвет букв, их обводки и тени задаётся в шестнадцатиричном виде. Только не так, как у всех людей, RGBА, а, кажется, задом напрерёд - АBGR.

В итоге пришлось взывать к тому, что в десятичной системе число слева появляется/растёт тогда, когда число справа проходит "полный круг" - досчитывает до десяти и обнуляется, а в шестнадцатиричной всё то же самое, но досчитывать надо до шестнадцати. Оказывается это не так очевидно, как кажется объясняющему.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 05-08-2011, 15:25:12
А чем отличается saa от ass?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 05-08-2011, 15:44:42
Цитата: Sasha от 05-08-2011, 15:25:12
А чем отличается saa от ass?

ССА - СабСтэйшнАльфа
АСС - АдванседСабСтейшнАльфа
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 05-08-2011, 17:00:36
Цитата: Jeka от 04-08-2011, 22:47:26
блин) просто думать надо!
Ну вот, ты на что намекаешь, что я совсем не думаю!!!! ((
А я то книжки тут штудирую... ладно ладно, придется тебе по скайпу вируса отправить... ))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 05-08-2011, 17:31:07
Цитата: timelimit от 05-08-2011, 17:00:36
Цитата: Jeka от 04-08-2011, 22:47:26
блин) просто думать надо!
Ну вот, ты на что намекаешь, что я совсем не думаю!!!! ((
А я то книжки тут штудирую... ладно ладно, придется тебе по скайпу вируса отправить... ))
ты что, я вовсе не намекаю что ты не думаешь!!! это не к тебе относилось. я имел в виду что программирование - это мышление, рассуждение итд..а не механически набор кода (хотя есть профессия кодер). ну об этом кажется уже писал Саша. я как раз считаю, что ты думаешь, потому что учишься программить, тем более читаешь книжки! ооо мой бедный скайп! он и так упал недавно - база данных скайп не доступно. еле вылечил - пришлось удалить  папку с моей записью из папки скайпа. как задание продвигается?
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 05-08-2011, 17:50:13
Цитата: Jeka от 05-08-2011, 17:31:07
[ как задание продвигается?
Медленно... ))
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 07-08-2011, 01:59:24
Ночь знакомства с Javascript. Попробую выполнить шестое задание используя его.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 07-08-2011, 05:24:52
Вот и утро. Задание почти выполнил.

___

Итц эляйв! Эляйв!

___

Это странно, но в эксплорере работает не всё, а только треть %)

___

Исправил.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 07-08-2011, 08:06:20
ЦитироватьНочь знакомства с Javascript.

Ночь неправильно используете ;D. или Javascript это щас так называется...
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 07-08-2011, 08:12:19
Цитата: Catcatcat от 07-08-2011, 08:06:20
Ночь неправильно используете ;D. или Javascript это щас так называется...

: D
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 07-08-2011, 11:50:11
Цитата: Catcatcat от 07-08-2011, 08:06:20
ЦитироватьНочь знакомства с Javascript.

Ночь неправильно используете ;D. или Javascript это щас так называется...
:D :D :D
с# рулит)))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 07-08-2011, 12:05:13
Цитата: Jeka от 07-08-2011, 11:50:11
Цитата: Catcatcat от 07-08-2011, 08:06:20
ЦитироватьНочь знакомства с Javascript.

Ночь неправильно используете ;D. или Javascript это щас так называется...
:D :D :D
с# рулит)))
:D :D :D
fortran рулит)))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 07-08-2011, 12:11:49
Цитата: Sasha от 07-08-2011, 12:05:13
Цитата: Jeka от 07-08-2011, 11:50:11
Цитата: Catcatcat от 07-08-2011, 08:06:20
ЦитироватьНочь знакомства с Javascript.

Ночь неправильно используете ;D. или Javascript это щас так называется...
:D :D :D
с# рулит)))
:D :D :D
fortran рулит)))
кобол )))))))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 07-08-2011, 12:21:39
Цитата: Jeka от 07-08-2011, 12:11:49
Цитата: Sasha от 07-08-2011, 12:05:13
Цитата: Jeka от 07-08-2011, 11:50:11
Цитата: Catcatcat от 07-08-2011, 08:06:20
ЦитироватьНочь знакомства с Javascript.

Ночь неправильно используете ;D. или Javascript это щас так называется...
:D :D :D
с# рулит)))
:D :D :D
fortran рулит)))
кобол )))))))
алгол >:(
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 07-08-2011, 21:42:12
Снова внёс изменения.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 09-08-2011, 19:29:08
Не хочу щас никого огорчать, но, кажись, время на выполнение задания за номером шесть только что истекло.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 09-08-2011, 19:40:24
Цитата: Proydoha от 09-08-2011, 19:29:08
Не хочу щас никого огорчать, но, кажись, время на выполнение задания за номером шесть только что истекло.
Выходные не считаются... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 09-08-2011, 19:59:32
Цитата: timelimit от 09-08-2011, 19:40:24
Цитата: Proydoha от 09-08-2011, 19:29:08
Не хочу щас никого огорчать, но, кажись, время на выполнение задания за номером шесть только что истекло.
Выходные не считаются... ))
Считаются. Я уже дома, можешь скидывать мне свой вариант и можно будет подводить итоги. Правда я еще не думал над следующим заданием.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 09-08-2011, 20:13:56
Цитата: timelimit от 09-08-2011, 19:40:24
Выходные не считаются... ))

Когда раньше гоняли фрпг, пытались ввести такое правило: писать сообщения хотя бы раз в сутки, кроме выходных, что б игра не простаивала.

Я не мог понять:"Почему выходные - период, когда, как раз, должно быть больше всего свободного времени - не считаются?"

Потом экспериментально выяснилось, что как раз в выходные, при разных обстоятельствах, как раз времени и не было, в то время как с вечерами будних дней всё было в порядке. Почему так получалось я затрудняюсь сказать, но вот так.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 09-08-2011, 20:59:08
Наразі уси затамували подих в очікуванні результатів конкурсу)))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 09-08-2011, 21:12:47
Кроме меня) Я устал, у меня скоро релиз мне этой фигни еа работе хватает, завтра утром засяду.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 09-08-2011, 21:16:45
Цитата: Sasha от 09-08-2011, 21:12:47
Кроме меня) Я устал, у меня скоро релиз мне этой фигни еа работе хватает, завтра утром засяду.
ясно. тож результати ми сьогодні отримаємо?))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 09-08-2011, 21:30:56
Результаты задания #6
Jeka - 10 баллов
Proydoha - 10 баллов
timelimit - 9 баллов
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 09-08-2011, 21:51:48
Цитата: Sasha от 09-08-2011, 21:30:56
Результаты задания #6
Jeka - 10 баллов
Proydoha - 10 баллов
timelimit - 9 баллов
Напрочуд гарно :) :) :)
Очікуємо наступних завдань
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 11-08-2011, 18:32:02
Кстати, насколько я понял то Жека сделал два задания, у него вроде конвертит два разных варианта, а значит ему положено больше очков, или очки не даются за отдельно выполненное задание?
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 11-08-2011, 18:54:59
Цитата: timelimit от 11-08-2011, 18:32:02
Кстати, насколько я понял то Жека сделал два задания, у него вроде конвертит два разных варианта, а значит ему положено больше очков, или очки не даются за отдельно выполненное задание?

Всё нормально. У меня тоже конвертит во все стороны. Мог бы поднять три десятка очков в сумме, если б получил максимальный балл за каждое! : )
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 11-08-2011, 19:16:35
Надо суммировать, если несколько видов конвертирования, мое такое мнение..
А то я сделал только одно задание, а очков почти столько же как и у остальных...
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 11-08-2011, 20:15:29
Цитата: timelimit от 11-08-2011, 19:16:35
Надо суммировать, если несколько видов конвертирования, мое такое мнение..
А то я сделал только одно задание, а очков почти столько же как и у остальных...
Согласно статье 63 Конституции Украины, никто не обязан свидетельствовать против себя))) :D
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 11-08-2011, 20:20:18
Цитата: Jeka от 11-08-2011, 20:15:29
Согласно статье 63 Конституции Украины, никто не обязан свидетельствовать против себя))) :D
Ради справедливости можно... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 11-08-2011, 20:45:15
Задание #7
Количество баллов - 15
Количество дней - 6

Есть бесконечная незамкнутая железная дорога. На ней стоит два поезда, на некотором расстоянии. Между ними два семафора на другом некотором растоянии. Используя заданные операторы написать одну программу, которую поставят на эти поезда и при запуске которой поезда встретятся в одной точке жд. Операторы языка:
LEFT - сдвигает поезд влево на определенную единицу меры
RIGHT - вправо
IF <оператор если поезд попал на семафор> <если не попал>
LABEL - метка
GOTO - перейти по метке
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 11-08-2011, 20:53:12
Задача легкая, но решить ее будет тяжело.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 11-08-2011, 21:19:34
Цитата: Sasha от 11-08-2011, 20:45:15
Есть бесконечная незамкнутая железная дорога. На ней стоит два поезда, на некотором расстоянии. Между ними два семафора на другом некотором растоянии. Используя заданные операторы написать одну программу, которую поставят на эти поезда и при запуске которой поезда встретятся в одной точке жд. Операторы языка:
LEFT - сдвигает поезд влево на определенную единицу меры
RIGHT - вправо
IF <оператор если поезд попал на семафор> <если не попал>
LABEL - метка
GOTO - перейти по метке
Раз 10 перечитал, но так ничего не понял... ((
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 11-08-2011, 21:22:21
Цитата: timelimit от 11-08-2011, 21:19:34
Цитата: Sasha от 11-08-2011, 20:45:15
Есть бесконечная незамкнутая железная дорога. На ней стоит два поезда, на некотором расстоянии. Между ними два семафора на другом некотором растоянии. Используя заданные операторы написать одну программу, которую поставят на эти поезда и при запуске которой поезда встретятся в одной точке жд. Операторы языка:
LEFT - сдвигает поезд влево на определенную единицу меры
RIGHT - вправо
IF <оператор если поезд попал на семафор> <если не попал>
LABEL - метка
GOTO - перейти по метке
Раз 10 перечитал, но так ничего не понял... ((
я перечитал раз 8 - эффект аналогичный. причем Саша уверен что условие он написал правильно
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 11-08-2011, 21:29:08
Используя заданые операторы языка пишем программу, которая будет управлять поездом. При этом эта программа, будучи установлена на оба поезда должна заставить их встретиться в какой-либо точке жд.
Сразу оговорю некоторые условия, которые могут вызвать недопонимание. Поезда должны встретиться, но это не значит что они при этом должны остановиться, они могут двигаться программой и дальше, главное просто сам факт встречи.
Кому условие останется непонятным дам пример.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 11-08-2011, 21:34:58
Цитата: Sasha от 11-08-2011, 21:29:08
Используя заданые операторы языка пишем программу, которая будет управлять поездом. При этом эта программа, будучи установлена на оба поезда должна заставить их встретиться в какой-либо точке жд.
Сразу оговорю некоторые условия, которые могут вызвать недопонимание. Поезда должны встретиться, но это не значит что они при этом должны остановиться, они могут двигаться программой и дальше, главное просто сам факт встречи.
Кому условие останется непонятным дам пример.
тут ЖД это одна колия? или несколько? они движутся по 1 линии получается? можно пример лучше
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 11-08-2011, 22:01:16
Ну если тебе так удобнее, то представь что колея одна, а тебе нужно сделать большой БУМ)!
Вобще ну представте себе 2 паралельные колеи на которых стоят поезда. Задача сделать так чтобы они встретились (оказались рядом друг с другом).
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 11-08-2011, 22:05:09
Цитата: Sasha от 11-08-2011, 22:01:16
Ну если тебе так удобнее, то представь что колея одна, а тебе нужно сделать большой БУМ)!
Вобще ну представте себе 2 паралельные колеи на которых стоят поезда. Задача сделать так чтобы они встретились (оказались рядом друг с другом).
так нужно нарисовать? что бы вагончики ездили? я что-то не пойму(((
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 11-08-2011, 22:12:06
Ну вот вам пример.
Возьмем поезд, который стоит правее. Тоесть слева от него находится 2 семафора. Ниже программа, которая заставит его доехать до второго семафора (того что ближе к другому поезду).
label1:
IF // проверяем находится ли поезд на семафоре
<GOTO label2> // если да значит мы доехали до первого семафора, идем по метке 2
<LEFT GOTO label1>// если нет продолжаем наш путь влево на встречу приключениям семафору, и переходим по метке 1, чтобы проверить не оказались ли мы на семафоре после выполнения последнего оператора LEFT
label2://если мы попали сюда значит первый семафор уже позади, и нам просто нужно посторить те же самые процедуры, чтобы доехать до второго
IF//второй семафор?
<GOTO label3> // да? идем на конец программы - миссия выполнена
<LEFT GOTO label2>// нет? продолжаем усердно двигаться влево в поисках семафора
label3:
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 11-08-2011, 22:15:53
ПС. задача взята с собеседования на вакансию программиста в одной из фирм Днепропетровска.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 12-08-2011, 09:33:15
Мне тоже не ясно что надо делать. Даже с примером.

Нужно сделать свой личный маленький интерпретатор?
Нужно написать программу на метаязыке, состоящем из LEFT, RIGHT, IF GOTO LABEL?

ПОЕЗД_1 рельсы  рельсы  рельсы СЕМАФОР_1 рельсы  рельсы  рельсы СЕМАФОР_2 рельсы  рельсы  рельсы ПОЕЗД_2

Самое очевидное решение, которое заставит их встретиться - послать их лоб в лоб. Первому LEFT до упора по бесконечным жд путям, второму RIGHT туда же.

Гарнтирую: они встретятся в какой-то точке. Даже если на семафоры не смотреть.


Только что хотел придраться к строке:
Цитироватьнаписать одну программу, которую поставят на эти поезда и при запуске которой поезда встретятся в одной точке жд

И самым неожиданным образом понял что от меня требуется.

Нужно написать программу на метаязыке, состоящем из LEFT RIGHT IF GOTO LABEL.

Эту программу загрузят в оба поезда одновременно. Программа должна заставить их встретиться.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 12-08-2011, 14:52:20
ЦитироватьЭту программу загрузят в оба поезда одновременно. Программа должна заставить их встретиться.

... а потом крушение, жуть!!! Я так понял урок экстремистского кружка на высоком уровне ;D
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 12-08-2011, 17:00:25
Цитата: Sasha от 11-08-2011, 22:15:53
ПС. задача взята с собеседования на вакансию программиста в одной из фирм Днепропетровска.
Ну тут уж я точно пас, до программиста очень далеко, и если честно задание немного загадочное (как для меня)...
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 12-08-2011, 17:31:58
Остаётся неясным такой момент:

В IF можно писать только (ДОСТИГ СЕМАФОРА НОМЕР N)?

Если да, то при достижении семафора одним поездом на второй идёт сигнал об этом?

То есть это одна программа, выполняющаяся на двух поездах одновременно, или это одна программа выполняющаяся на каждом из поездов по отдельности?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 12-08-2011, 17:34:41
Цитата: timelimit от 12-08-2011, 17:00:25
Цитата: Sasha от 11-08-2011, 22:15:53
ПС. задача взята с собеседования на вакансию программиста в одной из фирм Днепропетровска.
Ну тут уж я точно пас, до программиста очень далеко, и если честно задание немного загадочное (как для меня)...

для того чтобы ее решить не нужно быть программистом. это просто задачи на логику, которые там задают чтобы проверить умение соискателя мыслить.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 15-08-2011, 09:22:00
Не думаю, что у этой задачи в том виде, в котором я её понял, есть решение. Пока могу только рассказать почему их нет.
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 15-08-2011, 10:59:51
А я прочитал новое задание и... Ничего не понял.
То-ли лыжи не едут, толи я чего-то не допираю... :P
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 15-08-2011, 12:43:49
Цитата: Proydoha от 15-08-2011, 09:22:00
Не думаю, что у этой задачи в том виде, в котором я её понял, есть решение. Пока могу только рассказать почему их нет.
) все так сначала думают)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 15-08-2011, 13:32:06
Цитата: user4923 от 15-08-2011, 10:59:51
А я прочитал новое задание и... Ничего не понял.
То-ли лыжи не едут, толи я чего-то не допираю... :P
хз)))) я сам сделал кое что но опираясь на некоторые символические данные, которые соотносятся как в задаче. без данных работать нереально
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 15-08-2011, 13:51:05
Цитата: Jeka от 15-08-2011, 13:32:06
Цитата: user4923 от 15-08-2011, 10:59:51
А я прочитал новое задание и... Ничего не понял.
То-ли лыжи не едут, толи я чего-то не допираю... :P
хз)))) я сам сделал кое что но опираясь на некоторые символические данные, которые соотносятся как в задаче. без данных работать нереально
О_о
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 17-08-2011, 09:21:52
Оукей. Я придумал решение.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 17-08-2011, 13:23:42
Так кидай, а то уже срок.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 17-08-2011, 14:26:30
я тоже сегодня кину
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 17-08-2011, 14:30:57
А пока
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 17-08-2011, 14:33:35
Задание #8
Количество дней - 10
Количество баллов - 20

Написать программу, которая будет вычислять сколько дней прошло между введеными пользователем датами (формат ввода: дд.мм.гггг). Сторонними библиотеками работы со временем пользоваться запрещено!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 17-08-2011, 14:34:01
Не забываем что высокосные года бывают не каждые 4 года!
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 17-08-2011, 23:57:52
Отослал моё видение седьмого в приват, перенёс восьмое в первое сообщение.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 21-08-2011, 09:45:21
Пытался сегодня вникнуть в суть задания, наткнулся на то, что календарь-то был другим совсем недавно. Его считать или забыть и думать, что пользовались нынешним от начала времён?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 21-08-2011, 10:59:43
Цитата: Proydoha от 21-08-2011, 09:45:21
Пытался сегодня вникнуть в суть задания, наткнулся на то, что календарь-то был другим совсем недавно. Его считать или забыть и думать, что пользовались нынешним от начала времён?
ну нужно пользоваться новым календарем конечно! Мы же живем по новому
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-08-2011, 10:40:58
Делаем вид, что календарь всегда был таковым. Продлеваю срок выполнения задания еще на день, до завтра.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-08-2011, 15:51:45
Результаты задания #7
Proydoha - 4 балла
Jeka - 2 балла
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-08-2011, 15:55:05
А теперь быстро все сделали лайк темы
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 26-08-2011, 17:03:48
И снова к поездам)
Очевидно что направить поезда навстречу друг другу невозможно, так как установив одну программу на оба поезда они будут двигаться в одном направлении. Значит необходимо сделать так, чтобы один поезд догнал другой. Для этого надо заставить двигаться их с разной скоростью. Я решал эту проблему примерно так:
Допустим будем двигать поезда вправо. Соответственно для решения задачи левый поезд должен будет догнать правый. Для этого изначально будем двигать поезда к примеру следующими командами:

right
left
right

Ну и разумеется необходимо эти команды зациклить:

label1:
right
left
right
GOTO label1

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

label2:
right
right
right
GOTO label2

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

label1:
RIGHT
LEFT
RIGHT
IF<GOTO label2><GOTO label1>
label2:
RIGHT
RIGHT
RIGHT
GOTO label2

Как я и говорил, задача очень простая, но решить ее тяжело.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-08-2011, 07:32:38
ЦитироватьIF<GOTO label2><GOTO label1>
Что это?

Щас допишу решение восьмого задания. Был фатально занят в последние несколько дней.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 27-08-2011, 10:24:29
мда судя по всему я задачу та и не понял.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-08-2011, 11:54:35
Цитата: Proydoha от 27-08-2011, 07:32:38
ЦитироватьIF<GOTO label2><GOTO label1>
Что это?

Щас допишу решение восьмого задания. Был фатально занят в последние несколько дней.
если встретили семафор идемна метку 2, если нет на метку 1.
Цитата: Sasha от 11-08-2011, 20:45:15
IF <оператор если поезд попал на семафор> <если не попал>
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-08-2011, 12:11:39
А я-то, дурак, думал IF УСЛОВИЕ <ОПЕРАТОРЫ>
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 27-08-2011, 15:40:34
Отправляю. Буду надеяться, что хотя бы половину баллов смогу набрать : )
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 27-08-2011, 15:49:55
Так впадлу проверять  ;)
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 28-08-2011, 13:01:21
Скоро сентябрь. Как я понимаю свободного времени у участников станет меньше. Что делаем с конкурсом?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 28-08-2011, 14:31:33
Результаты задания #8
Jeka - 20 баллов
Proydoha - 20 баллов
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 28-08-2011, 14:41:23
Как договоривались, можно подвести итоги августа. Скидку за лучшие результаты в этом месяце получает Proydoha + активность и инициативность в других темах и неоцененные заслуги прошлых месяцев, итого от меня ему скидка 65%. Так как Jeka отныне модератор, а к сожалению активность timelimit упала, больше награждать мне некого.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 28-08-2011, 20:18:40
Да, к сожалению моя активность упала...
Учитывая мою подготовку, у меня нет шансов против таких зубров как мои оппоненты...
Вот я и не напрягаюсь... ))
Очки все равно не светят достаточные для скидок, поэтому пока сильной заинтересованности нет в выполнении всех заданий...
Насчет конкурса... если все будут заняты в связи с наступлением горячей поры, то наверно придется приостановить его, или как то видоизменить для большей заинтересованности конкурсантов...
Предлагаю голосование провести по поводу данного конкурса...
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 16:21:30
Ану кто первый скажет мне сколько байт в килобайте получит от меня +1 в карму) Тут даже не надо быть программистом. Все ответы в лс.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-08-2011, 17:19:22
1024  ;D ;D ;D
а в метре 1024 сантиметра! гони карму)))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 17:33:41
Только вот Пройдоха был первым, а ты вобще нарушил условия)
Для того кто ответил мне 1000): в данном случае прирост идет по степени двойки. 2^10 = 1024 это число наиболее приближенное к 1000 поэтому и принято называть килобайтом. Если обратить внимание многие производители этим спекулируют. К примеру на DVD дисках пишут один размер, а когда вставляешь его в компьютер реального места становится меньше. Это именно потому что в коммерческих целях они считают не по принятым в информатике правилам, а по привычным всем правилам физических приставок или как их там правильно называют. Вот так то.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 17:42:39
Вопрос немного по-сложнее, цена та же, ответы в личку.
Почему при записи на диск файла, размером 3 байта, на диске (скорее всего) станет места на 4 кб меньше?
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 30-08-2011, 17:43:03
многие производители спекулируют, что пишут килобиты, мегабиты. А когда наш образованный украинский пользователь начинает репу чесать, то ему китайские безграмотные производители растолковывают, что 8 бит = одному байту. ;D
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 30-08-2011, 17:45:14
Цитата: Sasha от 30-08-2011, 17:42:39
Вопрос немного по-сложнее, цена та же, ответы в личку.
Почему при записи на диск файла, размером 3 байта, на диске (скорее всего) станет места на 4 кб меньше?

ответ я прочитал и удалил, Sasha
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 17:47:58
Ответы пишем в лс для того чтобы даже те кто не был первым не зная этого могли немного почесать репу, подумать и ответить, надеясь на выигрыш. Иначе вопросы будут интересны только первому ответившему.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 17:49:03
И мне так никто и не ответил, кто готов продолжать учавствовать в конкурсе в его прежнем формате? (ну может буду выделять чуть больше вермени на задания, и постараюсь придумывать периодически чтото полегче, хотя и так пытаюсь).
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 30-08-2011, 17:50:37
Цитата: Sasha от 30-08-2011, 17:42:39
Вопрос немного по-сложнее, цена та же, ответы в личку.
Почему при записи на диск файла, размером 3 байта, на диске (скорее всего) станет места на 4 кб меньше?

Когда-то я знал ответ, теперь уже не помню : )

В голову приходит только определение размера файлов/папок в виндовс, где указывается реальный объем и объем, который они занимают на диске.

А, кажется я догадываюсь.

Цитата: Sasha от 30-08-2011, 17:49:03
И мне так никто и не ответил, кто готов продолжать учавствовать в конкурсе в его прежнем формате? (ну может буду выделять чуть больше вермени на задания, и постараюсь придумывать периодически чтото полегче, хотя и так пытаюсь).

Я уже не учусь, мне всё равно. Пяти дней обычно с головой хватало, что б решить задания такого типа, как были заданы. Единственное предложение: если продолжать, то открыть новую тему под это дело.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 17:59:14
Цитата: Proydoha от 30-08-2011, 17:50:37
Цитата: Sasha от 30-08-2011, 17:42:39
Вопрос немного по-сложнее, цена та же, ответы в личку.
Почему при записи на диск файла, размером 3 байта, на диске (скорее всего) станет места на 4 кб меньше?
В голову приходит только определение размера файлов/папок в виндовс, где указывается реальный объем и объем, который они занимают на диске.
Ну это уже следствие, а не причина)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 30-08-2011, 18:02:10
Кажись спорол фигню в качестве ответа.

Ненавижу личные сообщения за отсутствие кнопки редактирования!!!
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 18:13:58
Ну ответ твой действительно неправильный, но ты сам дошел до выводов очень близких к правильным.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 30-08-2011, 18:24:31
А я же ответил, что нет в лс моего сообщения?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 30-08-2011, 19:21:04
я в таком формате не буду отвечать))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 20:03:02
Даю +1 сразу 2 людям. Отмечу что неплохую смекалку показал Пройдоха и был близок к истинне.
В операционной системе Windows минимально адрисуемой областью является так называемая страница (страничная память),  в данной ОС она пока равна 4 кб. Поэтому когда кто либо просит операционную систему выделить память, она выделяется страницами. Если какие-либо данные записаны на страницу, больше туда не может быть ничего записано. Поэтому фактически любой файл будет занимать места на диске кратного 4 кб, больше или равному по размеру этим данным. Если открыть свойства любого файла можно увидеть какой его реальный размер и сколько он занимает места на диске. Это вопрос из области системного программирования. Очень сложной области я вам скажу.
Буду думать над следующим мини вопросом.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-08-2011, 21:16:10
Прошу прощения, немного перепутал с виртуальной памятью при объяснении. Конечно это зависит от конкретной файловой системы, а не от ОС. Спасибо Жеке за поправку.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
почему такая конструкция разрешена
if (p_flag)
                {
                    int n;
                    if ((i + 1) % this.group!=0)
                     n = (i + 1) / this.group + 1;
                     ..........
а такая нет
if (p_flag)
                {
                    if ((i + 1) % this.group!=0)
                    int n = (i + 1) / this.group + 1;
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 31-08-2011, 16:04:55
Цитата: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
почему такая конструкция разрешена
if (p_flag)
                {
                    int n;
                    if ((i + 1) % this.group!=0)
                     n = (i + 1) / this.group + 1;
                     ..........
а такая нет
if (p_flag)
                {
                    if ((i + 1) % this.group!=0)
                    int n = (i + 1) / this.group + 1;

Потому, что переменная должна быть с начала определена,  а потом вычисляется её значение.
во втором начинается вычисление, а потом она определяется, какая должна она быть.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 31-08-2011, 16:07:10
Цитата: Catcatcat от 31-08-2011, 16:04:55
Цитата: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
почему такая конструкция разрешена
if (p_flag)
                {
                    int n;
                    if ((i + 1) % this.group!=0)
                     n = (i + 1) / this.group + 1;
                     ..........
а такая нет
if (p_flag)
                {
                    if ((i + 1) % this.group!=0)
                    int n = (i + 1) / this.group + 1;

Потому, что переменная должна быть с начала определена,  а потом вычисляется её значение.
во втором начинается вычисление, а потом она определяется, какая должна она быть.
теоретически верно говоришь но есть одно НО. синтаксис си шарпа предполагает одновременное определение идентификатора с его начальной инициализацией. т.е синтаксис
int n=10+20; // вполне корректен
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 31-08-2011, 21:00:07
Цитата: Jeka от 31-08-2011, 15:53:53
вопрос из темы области видимости
Вопросы из области видимости, как и любые другие СЮДА (http://forum3.d-lan.dp.ua/index.php?topic=143.0)
Цитата: Catcatcat от 31-08-2011, 16:04:55
Цитата: Jeka от 31-08-2011, 15:53:53
Потому, что переменная должна быть с начала определена,  а потом вычисляется её значение.
во втором начинается вычисление, а потом она определяется, какая должна она быть.
Она и во втором сначала определяется, а потом инициализируется.

Автору уже отвечал, отвечу и сюда. В данном случае оба варианта корректны. Ошибки могут появиться если попытаться потом использовать эту n за пределами ифа.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 31-08-2011, 21:52:54
спасибо ясно. под словом "одновременно" я имел в виду - в одной инструкции а не в одно и то же время >:(
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 31-08-2011, 22:09:13
Извини, вобще не пойму к чему была последняя фраза сказана.
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 31-08-2011, 22:12:07
Цитата: Sasha от 31-08-2011, 22:09:13
Извини, вобще не пойму к чему была последняя фраза сказана.
она была сказана к следующему
ЦитироватьОна и во втором сначала определяется, а потом инициализируется.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 31-08-2011, 22:17:34
Так это было сказано Каткэткату
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 31-08-2011, 22:18:07
Цитата: Sasha от 31-08-2011, 22:17:34
Так это было сказано Каткэткату
извини  ;)
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 31-08-2011, 22:19:09
Кстати страннно, теги цитаты закрыты, а сообщение все равно в цитате.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 31-08-2011, 23:45:06
Цитата: Sasha от 31-08-2011, 22:19:09
Кстати страннно, теги цитаты закрыты, а сообщение все равно в цитате.

Не закрыт тег цитаты КатКатКата

[quote author=Jeka link=topic=113.msg1914#msg1914 date=1314795233]
[/quote]

[quote author=Catcatcat link=topic=113.msg1918#msg1918 date=1314795895]
[quote author=Jeka link=topic=113.msg1914#msg1914 date=1314795233]
[/quote]
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 20:29:44
Кто мне объяснить (подробно), почему у меня в компьютере установлено 4 Гб оперативной памяти, а использую я только 3?
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 01-09-2011, 21:20:28
у тебя W7 32 битная, адресация 2 в 32 степени = 4 294 967 296, но учитывая, что архитектура ibm pc просит 600 000 000 для железа получается 3 694 967 296 это как раз твои 3,5

ставь 64 битку и мучайся с совместимость ;D
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 21:46:37
проорите у меня на втором компе стоит 7ка 32х и использую я прекрасно все 4 гб!  ;D
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:00:51
Цитата: Jeka от 01-09-2011, 21:46:37
проорите у меня на втором компе стоит 7ка 32х и использую я прекрасно все 4 гб!  ;D
4 гб флешку?)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:02:00
Цитата: Sasha от 01-09-2011, 22:00:51
Цитата: Jeka от 01-09-2011, 21:46:37
проорите у меня на втором компе стоит 7ка 32х и использую я прекрасно все 4 гб!  ;D
4 гб флешку?)
>:( >:( >:( >:( >:( >:( >:( >:( >:( мы что говорили о флешке?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:10:21
ну больше у меня вариантов нет)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:12:15
Цитата: Sasha от 01-09-2011, 22:10:21
ну больше у меня вариантов нет)
мне печально что нет. речь шла о ОЗУ
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:13:32
мне печально что речь шла об озу)
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 01-09-2011, 22:15:42
в ibm pc адресация железа и озу в одном пространстве, поэтому такая проблема с ОЗУ.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:17:36
А кто мне скажет что такое сопроцессор?
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:17:45
Цитата: Sasha от 01-09-2011, 22:13:32
мне печально что речь шла об озу)
мне печально что тебе печально от того что ты не знаешь что 32х разрядная вин7 поддерживает и видит 4 ГБ ОЗУ
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:18:09
Цитата: Sasha от 01-09-2011, 22:17:36
А кто мне скажет что такое сопроцессор?
так и не понял правильно ли я ответил про процессор?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:19:40
Цитата: Jeka от 01-09-2011, 22:17:45
Цитата: Sasha от 01-09-2011, 22:13:32
мне печально что речь шла об озу)
мне печально что тебе печально от того что ты не знаешь что 32х разрядная вин7 поддерживает и видит 4 ГБ ОЗУ
мне печально... что сборная Украины проигрывает сборной словении(

у тебя архитектура не
Цитата: Catcatcat от 01-09-2011, 22:15:42
ibm pc
?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:21:49
Цитата: Jeka от 01-09-2011, 22:18:09
Цитата: Sasha от 01-09-2011, 22:17:36
А кто мне скажет что такое сопроцессор?
так и не понял правильно ли я ответил про процессор?
да. просто я ждал немного другого ответа.
Название: Re: Конкурс. Программирование.
Отправлено: Catcatcat от 01-09-2011, 22:22:49
Цитата: Sasha от 01-09-2011, 22:17:36
А кто мне скажет что такое сопроцессор?
это такая железяка в компе которая постоянно греется, и которую нужно постоянно охлаждать ::)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:24:22
Цитата: Catcatcat от 01-09-2011, 22:22:49
Цитата: Sasha от 01-09-2011, 22:17:36
А кто мне скажет что такое сопроцессор?
это такая железяка в компе которая постоянно греется, и которую нужно постоянно охлаждать ::)
елки палки...а я тут такую петицию настрочил)))) а все так просто)))
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:25:13
Цитата: Sasha от 01-09-2011, 22:21:49
Цитата: Jeka от 01-09-2011, 22:18:09
Цитата: Sasha от 01-09-2011, 22:17:36
А кто мне скажет что такое сопроцессор?
так и не понял правильно ли я ответил про процессор?
да. просто я ждал немного другого ответа.
ну плюсони меня - я хароший)  :big179:
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:31:20
я за этот ответ + не обещал) блин шо ж вам интересного такого задать...
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:35:35
Цитата: Sasha от 01-09-2011, 22:31:20
я за этот ответ + не обещал) блин шо ж вам интересного такого задать...
жадина говядина!  ::) плюсони
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 01-09-2011, 22:43:46
так вопрос легкий был, это ж тебе не тригонометрия)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 01-09-2011, 22:47:24
Цитата: Sasha от 01-09-2011, 22:43:46
так вопрос легкий был, это ж тебе не тригонометрия)
>:( >:( >:(
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 14-09-2011, 19:55:46
Задание #9
Количество баллов - 15

Напишите код, который находит количество подчисел числа n, на которые это число делится без остатка.

Для числа n, подчисло — это такое число, запись которого является подстрокой записи числа n. К примеру, если n равняется 1938, то его подчислами будут являться: 1, 9, 3, 8, 19, 93, 38, 193 и 938. Без остатка 1938 делится на четыре из этих подчисел: 1, 3, 19 и 38. Соответственно, результатом работы программы должно быть число 4.
Если подчисла повторяются, каждое из них считается. Например, 101 делится без остатка на 1, 1 и 01, значит, ответ — 3.
Название: Re: Конкурс. Программирование.
Отправлено: user4923 от 14-09-2011, 20:16:36
Цитата: Sasha от 14-09-2011, 19:55:46
101 делится без остатка на 1, 1 и 01, значит, ответ — 3.
Я тут oчего-то не понимаю.  :o
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 14-09-2011, 20:21:11
Цитата: user4923 от 14-09-2011, 20:16:36
Цитата: Sasha от 14-09-2011, 19:55:46
101 делится без остатка на 1, 1 и 01, значит, ответ — 3.
Я тут oчего-то не понимаю.  :o
число 101 состоит из 3 цифр: 1 0 и 1, каждую из них можно использовать для деления.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 14-09-2011, 20:29:14
Цитата: Sasha от 14-09-2011, 19:55:46
Задание #9
Количество баллов - 15

Сроки?

ЦитироватьНапример, 101 делится без остатка на 1, 1 и 01, значит, ответ — 3.

Мне это кажется несколько странным утверждением, учитывая то, что 01 и 1 это одно и то же число.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 14-09-2011, 20:31:31
Пока все участники не пришлют свои варианты или не откажутся от выполнения.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 14-09-2011, 20:35:41
Цитата: Sasha от 14-09-2011, 20:31:31
Пока все участники не пришлют свои варианты или не откажутся от выполнения.
Самое время кому-нибудь из участников бесследно исчезнуть : )
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 15-09-2011, 18:29:42
Цитата: Proydoha от 14-09-2011, 20:35:41
Самое время кому-нибудь из участников бесследно исчезнуть : )
Ты это на кого намекаешь... ))
Блин(извиняюсь за выражение) кто придумал эти дополнительные вопросы и ответы для того чтобы отправить ответ...
Вообще хотите распугать немногочисленных форумчан...
Да еще и на украинском... пока нашел перевод... капец вообщем...
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 15-09-2011, 18:39:54
Цитата: timelimit от 15-09-2011, 18:29:42
Ты это на кого намекаешь... ))

Это такой намёк на то, что я люблю задерживать выполнение заданий : )
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 15-09-2011, 18:47:39
Цитата: Proydoha от 15-09-2011, 18:39:54
Это такой намёк на то, что я люблю задерживать выполнение заданий : )
Последний раз отвечаю, задалбывает антиспам система(причем вопросы одни и теже, разве это система?)
Если еще и ты уйдешь, то можно смело закрывать эту ветку форума... ((
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 15-09-2011, 18:50:12
Цитата: timelimit от 15-09-2011, 18:47:39
Последний раз отвечаю, задалбывает антиспам система(причем вопросы одни и теже, разве это система?)

Мне никаких вопросов не задают.

Цитата: timelimit от 15-09-2011, 18:47:39
Если еще и ты уйдешь, то можно смело закрывать эту ветку форума... ((

Кто уйдёт?! Я уйду?!

Ни-за-что.
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 15-09-2011, 18:55:33
Цитата: Proydoha от 15-09-2011, 18:50:12
Мне никаких вопросов не задают.
Повезло..
А мне надо ввести буквы да и еще ответить на два вопроса на украинском языке... может это от чего-то зависит, от рейтинга форумчанина, но все равно ужасно неудобно....
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 15-09-2011, 19:01:43
У меня тоже ничего не спрашивают О_о
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 16-09-2011, 09:17:32
Как быть с нулями? На ноль всё ещё делить нельзя?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 16-09-2011, 09:57:55
Нельзя
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 16-09-2011, 21:07:29
Я сразу говорю что пас, мне математические задания не очень интересны...
К сожалению...
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 17-09-2011, 10:57:08
Сделал. Высылаю.

Если в задании нету подвоха, то за него дают сильно много баллов.

---

Но, наверное, подвох есть, как показывают мои эксперименты.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 17-09-2011, 11:52:21
Не знаю, не я вопрос придумал, а столько баллов - ну надо ж дать возможность людям догнать тебя)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 17-09-2011, 18:57:01
Цитата: Sasha от 17-09-2011, 11:52:21
ну надо ж дать возможность людям догнать тебя)

Иногда я думаю:"Ну ладно. Пропущу следующее задание."

Но каждый раз количество баллов меня останавливает! : )
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-11-2011, 20:36:56
Вобщем реанимируем потихоньку и эту тему. Где-то через недельку проверю (если найду))) ответы на последний вопрос. Кто не сдаст к этому времени извиняйте.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 30-11-2011, 23:19:53
Цитата: Sasha от 30-11-2011, 20:36:56
на последний вопрос.

Это про подчисла в числах?
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-11-2011, 23:24:55
Я не помню, но помню что ты ответ прислал)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 02-12-2011, 00:57:02
Мне, кстати, на днях рассказали как поменять местами две переменные, не используя третью.

a=5; b=3; //a==5 b==3
a=a+b; //a==8 b==3
b=a-b; //a==8 b==5
a=a-b; //a==3 b==5
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 02-12-2011, 12:53:12
Я вроде уже в этой теме гдето писал это.
Еще более эффектно это выглядит с использованием исключающего или.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 02-12-2011, 17:47:38
Цитата: Sasha от 02-12-2011, 12:53:12
Я вроде уже в этой теме гдето писал это.

Так точно, но без примера.

А я, как увидел пример, обалдел от простоты решения.
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 13-12-2011, 01:30:59
Цитата: Sasha от 30-11-2011, 20:36:56
Вобщем реанимируем потихоньку и эту тему. Где-то через недельку проверю (если найду))) ответы на последний вопрос. Кто не сдаст к этому времени извиняйте.

Чо как там, кстати? Реанимация не удалась?
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 13-12-2011, 20:30:06
Мне кажется что реанимация не удастся пока не будет больше человек участвовать, или хотя бы задания будут представлять пусть маленький но практический интерес... а не сплошная математика... т.е. не готовить из нас супер программистов, а творчески подойти к этому конкурсу...
Вот такое мое имхо... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 13-12-2011, 20:38:31
Скрестить конкурсы рисование и программирование?)
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 13-12-2011, 21:22:26
Цитата: Sasha от 13-12-2011, 20:38:31
Скрестить конкурсы рисование и программирование?)
Ну как один из вариантов.... ))
Что я имел ввиду насчет творческого подхода, т.е. програмульки имеющие не только наполнение кодом, но и выполняющие какую нибудь задачу с приятным интерфейсом... ))
А так мало стимула, тем более когда знаешь кто победит... ))
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 13-12-2011, 21:27:50
Кто тебе мешает делать программы с приятным интерфейсом?)
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 14-12-2011, 18:23:50
Цитата: Sasha от 13-12-2011, 21:27:50
Кто тебе мешает делать программы с приятным интерфейсом?)
Лень... и невостребованность этих самых програмулин... ))
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 21-04-2012, 20:00:23
Цитата: Catcatcat от 20-04-2012, 21:37:30
посещаемость форума как всегда, а сообщений ноль, народ у нас больше читать любит ;D

Цитата: Sasha от 13-12-2011, 20:38:31
Скрестить конкурсы рисование и программирование?)

У меня идея на следующий месяц. Крутится в голове давно, но я чё-та сомневаюсь в себе возможности её реализации.

Короче говоря: почему б за следующий месяц нам всем не сделать по одной(?) простой игре?


А теперь всякие остальные буквы:
Во-первых, когда я смотрел всякие мануалы к языку программирования HaXe, я наткнулся на такой (http://gm2d.com/tag/ski-game/), который открывался словами:

ЦитироватьThere was a time when writing a simple game was a matter of firing up basic, writing a few "print" statements and having something that was reasonably playable. Then things got complicated, requiring plenty of "grunt" work to even get a window on the screen. Now things have gone full circle and it is again easy to get a simple game going – and they look infinitely better than the basic print statements.

Оукей. Это правда. Дальше.

Во-вторых:
Мне одногруппник раз дал ссылку на IGF Pirate Cart - народ собрался, что б по быстрому наклепать игр. Там в FAQ был ещё такой вопрос:

ЦитироватьQ: Are these games legit?
A: Yes! "Pirate Kart" here is a reference to the unlicensed video game multicarts like Action 52 and Cassette 50 which indirectly inspired it. All games are included at the request of their creators.

Про кассету я не знаю, а от про Экшн 52 смотрел увлекательный обзор:
[spoiler=Обзор]
Часть первая:
Action 52 - Angry Video Game Nerd - Cinemassacre.com (http://www.youtube.com/watch?v=a4QBeADNM34#)
Часть вторая:
Cheetahmen - Angry Video Game Nerd - Cinemassacre.com (http://www.youtube.com/watch?v=hwmoJkHS-2E#)
[/spoiler]
А ещё по мотивам написана статья на Луркморе: http://lurkmore.to/Action_52 (http://lurkmore.to/Action_52)

С тех пор они сделали ещё один Pirate Cart. И до этого ещё три.
Ссылка на всё сразу: http://www.piratekart.com/ (http://www.piratekart.com/)
(большая зелёная кнопка Download скачает последний Пират Карт, а ссылки сверху ведут на предидущие)

Если нервы крепкие - можно ознакомиться.

Однако там есть такой пункт в FAQ:

ЦитироватьQ. I want to make a game, but can't code!

No prob! There are a lot of free tools for your game-making needs!

Klik n' Play (http://www.glorioustrainwrecks.com/node/197) is the classic. Outdated, limited, buggy and absolutely wonderful for churning masses games.
Construct 2 (http://www.scirra.com/construct2) uses HTML5 and you can create a nifty on-line game.
Official Hamster Republic RPG Construction Engine (http://hamsterrepublic.com/ohrrpgce/Main_Page.html)
Scratch (http://scratch.mit.edu/) (converter to standalone exe files: http://chirp.scratchr.org/dl/ChirpCompiler-setup.exe
Stencyl (http://www.stencyl.com/) Creates iOS and Flash games!
Oh! My! Game! (http://www.omga.me/)
BYOND (http://www.byond.com/) (simple programming language)
Novashell (http://www.rtsoft.com/novashell/) (script-based)
The Scrolling Game Development Kit (http://gamedev.sourceforge.net/)
The Scrolling Game Development Kit 2 (http://sgdk2.sourceforge.net/)
Adventure Game Studio (http://www.adventuregamestudio.co.uk/)
Game Maker Lite (http://www.yoyogames.com/gamemaker/windows)
Ray Game Designer II (http://eicart.free.fr/rgd2/us/index.htm)
ZGameEditor (http://www.zgameeditor.org/)
Processing (http://www.processing.org/)
MegaZeux (http://vault.digitalmzx.net/index.php)
ZZT (http://zzt.org/)
Unity 3D (http://unity3d.com/)

Не знаю насколько он "правомерный" в нашем разделе.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 30-04-2012, 14:52:41
(http://cs304203.userapi.com/v304203498/b4/ympJ4NthFv8.jpg)
Название: Re: Конкурс. Программирование.
Отправлено: Proydoha от 02-06-2012, 02:21:05
Цитата: Proydoha от 21-04-2012, 20:00:23
Короче говоря: почему б за следующий месяц нам всем не сделать по одной(?) простой игре?

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

Недоделка (http://91.193.128.95/test_area/Teddy.php) (Курсорные стрелки, англицкая буква "a")
И её исходный код (http://91.193.128.95/show_source.php?test_area/Teddy.js)

Идея была в том, что игрушечный мишка должен был охранять крепкий сон своего владельца, отвешивая тумаки всяким ночным монстрам, пролезающим в спальню.
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 19-06-2012, 20:29:11
Ну что, может продолжим? А точнее начнем заново?
Название: Re: Конкурс. Программирование.
Отправлено: timelimit от 19-06-2012, 21:15:52
Цитата: Sasha от 19-06-2012, 20:29:11
Ну что, может продолжим? А точнее начнем заново?
А что есть идеи?
Предположу что людей больше не стало, а значит победитель известен, нужна оригинальная идея для этого конкурса, мне так кажется...
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 19-06-2012, 21:33:59
Можем поменять ведущего, а я поучаствую)
Название: Re: Конкурс. Программирование.
Отправлено: Jeka от 19-06-2012, 21:36:32
наверное, тогда победитель будет очевиден  ;D хотя как знать
Название: Re: Конкурс. Программирование.
Отправлено: krivenko от 20-06-2012, 09:44:30
предлагаю создать программу для автоматического ведения конкурса прогнозистов по футболу
Название: Re: Конкурс. Программирование.
Отправлено: Sasha от 20-06-2012, 20:30:53
Та легко, только вот смысла нет.