Информатика. функция val и inc С4 - Форум


Корейская косметика

Информатика. функция val и inc С4
  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    Народ, не зарежут ли за эти функции? просто нигде в решениях в книжках нигде не видел, а частенько приходится переводить из текста в интеджер. а на счет inc , в разы сокращает запись, особенно когда переменные пишешь основательно. Можно ли ей пользоваться? Или лучше по дефолту?
  • kvakva13kvakva13
    May 2011 +1 -1
    Сообщений: 266
    можно.
  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    источник: свое мнение?
  • kvakva13kvakva13
    May 2011 +1 -1
    Сообщений: 266
    собственно, почему нет?
  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    просто странно, почему нигде эти функции не используются, в частности инк, ведь намного удобнее. может не во всех компиляторах работает:?
  • kvakva13kvakva13
    May 2011 +1 -1
    Сообщений: 266
    главное, чтобы код был написан верно и эффективно
  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    на счет эффективности...это конечно очень сложно. на 3 балла реально накатать код, главное, чтобы в этом году кардинально ничего не изменили
  • april15alina
    May 2011 +1 -1
    Сообщений: 3
    Главное не спутать inc и int :-)
  • v_vv_v
    May 2011 +1 -1
    Сообщений: 930
    strtoint и я использую pasabc
  • rmzor
    May 2011 +1 -1
    Сообщений: 88

    v_v strtoint и я использую pasabc

  • v_vv_v
    May 2011 +1 -1
    Сообщений: 930

    rmzor

  • v_vv_v
    May 2011 +1 -1
    Сообщений: 930
    а inc конечно можно. вообще, можно использовать всё, что компилируется. главное, чтобы тратило меньше либо равно памяти, чем та, которую тратит идеальное решение. тобеж то, которое в критериях.

    я как-то рационализацией занимался, брал прогу из критериев, рационализировал есчо и оптимизировал затраты памяти в 1/3 - 1/4 раза) так что у них не идеальное)
  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    простите, великий кодер, но я паскаль изучаю 2 месяц только и мало что знаю из синтаксиса. не надо смеяться, ага. каждый рулит в своей сфере и незнание-не повод смеяться. я просто бейсик изучал 1.5 года до этого..so
  • aklag
    May 2011 +1 -1
    Сообщений: 152

    rmzor я просто бейсик изучал 1.5 года

  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    у меня учительница заболела, я уже полностью на паскаль ушел, уже проще на нем кодить, просто все языки похожи, главное алгоритмы понять. просто v_v предложил такие функции, с которыми я с реп никогда не сталкивался да и негде было их применять
  • aklag
    May 2011 +1 -1
    Сообщений: 152
    тогда определяйся. а то смешаешь языки...
  • rmzor
    May 2011 +1 -1
    Сообщений: 88
    по началу путал)сейчас быстро улетучилась привычка)
  • ordinaryordinary
    May 2011 +1 -1
    Сообщений: 76
    я читал на ucheba.pro , что в С4 за использование сортировки методом обмена снимается 1 балл за эффективность решения.
    сегодня спросил у репета, сказал, что всё норм, не снимают.
    кто что думает?
  • RieRie
    May 2011 +1 -1
    Сообщений: 203

    ordinary кто что думает?

  • Osnik
    May 2011 +1 -1
    Сообщений: 54

    ordinary я читал на ucheba.pro , что в С4 за использование сортировки методом обмена снимается 1 балл за эффективность решения.
    сегодня спросил у репета, сказал, что всё норм, не снимают.
    кто что думает?

  • IceBabyIceIceBabyIce
    May 2011 +1 -1
    Сообщений: 87
    а мне репетитор сказал, что лучше использовать "пузырьковую" сортировку......
  • v_vv_v
    May 2011 +1 -1
    Сообщений: 930
    ни разу не видел С4 чтобы нужна была сортировка
  • VIVArVIVAr
    May 2011 +1 -1
    Сообщений: 28
    а вообще объяснить с4 кто нибудь может (остальное делаю минут за 120)
  • v_vv_v
    May 2011 +1 -1
    Сообщений: 930

    VIVAr

    а вообще объяснить с4 кто нибудь может (остальное делаю минут за 120)

  • IceBabyIceIceBabyIce
    May 2011 +1 -1
    Сообщений: 87
    v_v, такие задания встречаются=)
    например
    http://i053.radikal.ru/1105/32/6eda30e9c7d1.jpg
  • Osnik
    May 2011 +1 -1
    Сообщений: 54
    IceBabyIce
    Ну составители заданий не дали пример входных данных(Это неправильно), но да ладно. Я не знаю, с помощью какого языка, Вы будете писать поэтому напишу алгоритм.
    Сначала определим, какие у нас будут входные данные.
    1. Количество человек в очереди.
    --Следующая строка. Далее идут N строк.
    2. Фамилия человека(20 символов)
    --Пробел
    3. Число. Время в минутах.

    Составляем пример таких данных.
    ----------
    6
    Петров 4
    Сидоров 12
    Макаров 5
    Синицын 4
    Мрачнов 8
    Косыгин 15
    ----------

    Окей. Выходных данных нам тоже не дали(Что опять же неправильно), поэтому мы придумаем свои основанные на том, что надо показать.
    1. Общее время затраченное на покупку билетов. Тут я не совсем понял, что им надо. Либо:
    1) Сумма времени всех людей в очередях.
    2) Самая долгая очередь(Наибольшая сумма времени в очереди).
    Мы будем выводить второе.
    2. Сформированные очереди. Опять же не понятно, что выводить. Выводить фамилии или часы? Очередность имеет значение? В строчку или каждую фамилию на новой строке? Как отделять людей из разных очередей? Поэтому мы снова за авторов задачи, придумаем условия.

    Давайте сделаем так:
    Каждая строчка это очередь. Первая строчка, это первая очередь. Вторая строчка - вторая очередь и т.д. Фамилии будем выводить через пробел.
    Пример выходных данных:
    ---------------
    3
    Петров Косыгин
    Сидоров Синицын
    Мрачнов Макаров
    ---------------
    Окей. Теперь самое сложное. Алгоритм. Начнем с простого считаем данные.
    1. Считываем первое число в переменную N. Это удобно, так как он на отдельной строчке.
    2. Делаем цикл, который выполняется N раз. Он считывает данные в массив структур, состоящий из двух переменных, одна 20 символьная, другая int.

    Читаем условие задачи. Нам нужно ОБЩЕЕ МИНИМАЛЬНОЕ время. Т.е, распределить людей так, чтобы общее время обслуживания людей было минимальным.
    Это время явно больше(Либо равно) сумме времен всех людей деленном на три. Складываем время всех людей делим на три, записываем это в переменную SUM. Если число дробное, то округляем его в большую сторону.

    Теперь нам надо составить из времени людей это число. В моем примере это 16. Для этого лучше написать отдельную функцию и назвать ее например research(). Можно сделать простой перебор, т.е сначала мы ищем одно число равное 16, потом сумму из двух, потом из трех и т.д. Там правда при больших N будет много комбинаций. Но сходу лучший алгоритм, я не придумал.
    Далее если число 16 не нашлось(Функция research() вернула 0 ), то мы ищем большее число, которое можно составить из времени людей. 17,18,19,20...Если такое число нашлось, то мы пытаемся заполнить другие две очереди суммой чисел которая будет МЕНЬШЕ, чем это. Точно также, как ищем число для первой очереди, только сумма в этот раз уменьшается 16,15,14,13....Если заполнить другие две очереди не получается, берем другое число и т.д до победного.

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

    У меня на написание этой программы на Си ушло 40 минут с проверкой. На егэ я бы наверно не успел. Но задача для ЕГЭ не типичная. Во первых она сложнее, во вторых в ней много не досказанного. А вообще это задача о трех грузовиках, которые надо заполнить камнями.
  • aklag
    May 2011 +1 -1 (+2 / -0 )
    Сообщений: 152
    эта задача олимпиадная, а не ЕГЭ. а там другие требования и другие условия проведения

    вот если введут компьютерную форму экзамена - тогда будут такие задачки
  • Osnik
    May 2011 +1 -1
    Сообщений: 54
    В егэ вполне олимпиадные задачи. Просто очень низкого уровня, очень они идут в качестве разминки.
  • TimTheRipperTimTheRipper
    May 2011 +1 -1
    Сообщений: 14
    ordinary said:

    я читал на ucheba.pro , что в С4 за использование сортировки методом обмена снимается 1 балл за эффективность решения.
    сегодня спросил у репета, сказал, что всё норм, не снимают.
    кто что думает?

    бывают ситуации, когда сортировка будет намного выгодней, ибо тем же "методом "пузырька" в ситуации, когда массив данных будет ровно наоборот идти (надо 1,2,3,4.... а будет 3000,2999,2998,2997.... и т.п) МАКСИМУМ операций будет n*(n-1), где n -- размерность массива. Так что, если будет время на ЕГЭ, то, думаю, можно оба способа расписать. Но лучше, конечно, не пользоваться сортировкой, её экспеты крайне не любят. Хотя, если ты не сможешь сделать без сортировки вообще никак, то лучше на ней 1 балл потерять, чем за всё С4 нуль получить.

  • NeveruNeveru
    May 2011 +1 -1
    Сообщений: 70
    Не заостряйте внимание на сортировках. если необходимо ее провести, то и пузырька достаточно (О(n^2)). Если же хотите выделиться, можете сделать более эффективным методом, например, алгоритмом Шелла (О(n log^2 n)), но вряд ли проверяющие это оценят
  • IceBabyIceIceBabyIce
    May 2011 +1 -1
    Сообщений: 87
    Osnik, огромное спасибо!=) наконец-то поняла=)
    (кстати,я тоже не оч поняла условие) вот указание к решению:

    http://i057.radikal.ru/1105/1f/f2c373a32814.jpg
    и =)) http://s011.radikal.ru/i317/1105/f4/1d8c7183d4c4.jpg
  • FreeFire
    May 2011 +1 -1
    Сообщений: 67
    Neveru в ЕГЭ четко прописанно, что алгоритм сложностью не больше чем O(N), плюс там действительно приводяться задачи, которые все можно решить с алгоритмом O(N). Так уж забудь про пузырьковыйметод, а тем более про алгоритм Шелла
  • Osnik
    May 2011 +1 -1
    Сообщений: 54
    IceBabyIce
    Такой задачи в любом случае не будет. В егэ они легче. Бери задачи из сборника ФИПИ или хотя бы те, где даны все условия.

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

    FreeFire said:

    Neveru в ЕГЭ четко прописанно, что алгоритм сложностью не больше чем O(N)

    Где это прописано?
  • FreeFire
    May 2011 +1 -1
    Сообщений: 67
    у того же полякова. Да и ответы на С4 посмотри. Там вообще как прописано, что снимают баллы за не эффективное решение. Поэтому если вдруг ты вставил пузырьковый метод, а в этой задаче можно было обойтись без него, то все бал тютю!
  • Osnik
    May 2011 +1 -1
    Сообщений: 54
    FreeFire said:

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


    В книжке ЕГЭ ФИПИ(другой у меня просто нет), сказано, что снижают баллы только за неэффективность программы по использованию памяти или процессорного времени. Пузырьковый метод в этом смысле, лучше тупого перебора.
  • NeveruNeveru
    May 2011 +1 -1
    Сообщений: 70
    FreeFire, чем Вы собираетесь сортировать за O(n) ? уж очень интересно :D
    быстрая сортировка работает за О(n log n), если на то пошло
    замечание неуместно и необоснованно