Вопросы по программированию.

Тема у розділі 'Наука і технології', створена користувачем Аятолла, 16 гру 2011.

  1. bal

    bal New Member

    Ваш код, ув.ull9, при входящей последовательности "0100110" выдаёт ответ 3, а правильный ответ всёже 1 . (Единицу на втором месте меняем с последним нулём).
     
  2. ull9

    ull9 Дуже важлива персона

    верно, надо юподумать
     
  3. ull9

    ull9 Дуже важлива персона

    Код:
    #include <stdio.h>
    
    int main()
    {
       char c;
       int ke=0,kn=0,kx=0;
       FILE *in;
       in = fopen("task.in","r");
       while ((c = fgetc(in)) != EOF)
       {
          if ((c == 48) || (c == 49))
          {
             ke = (c==49)? (ke+1):ke;
             kn = ((c==48)&&ke)? (kn+1):kn;
             kx = (c==49)? (kx+1):0;
          }
       }
       fclose(in);
       ke -= kx;
       printf("Answer is %i\n", (kn>ke)? ke:kn);
       return 0;
    }
    
     
  4. bal

    bal New Member

    Не понял нужность этой строки."Если пришла 1, то добавили один, если пришёл 0, то и переменную кх затёрли"
    0100110 мы здесь последним нулём затираем кх, соответственно ничего не меняеться. Ответ кода как был 3, так и остался.
    Какаято другая логика быть должна для решения этой задачки в принципе. Простым подсчётом нулей и единиц здесь не обойтись, т.к. есть вот такие особые случаи.
     
  5. Аятолла

    Аятолла Касым

    Мир Вам!
    :o:o Мне стыдно... :sad:
    Богоравный ull9, не сердитесь, но напомню Вам условие задания:
    а не на С++
    Идея - светлая, вообще-то. Сейчас буду разбираться...благодарствую!!:good:
     
  6. ull9

    ull9 Дуже важлива персона

    а я и пишу на С..
     
  7. Аятолла

    Аятолла Касым

    Гм...ладно...не стану спорить, тем более, что это - моя личная головная боль(разобраться с кодом). :)
     
  8. ull9

    ull9 Дуже важлива персона

    я так немного поразмышлял..
    не обойтись без буффера где будешь накапливать нолики/единицы..
    а он неопределенной длинны. т.е. вектор.

    задачка нетривиальная
     
  9. Аятолла

    Аятолла Касым

    Были мысли об двойном считывании...но это - не мои мысли. Код уже есть реализованный, но, опять-таки однокурсниками...не по понятиям у них выпрашивать...надобно бы хоть как-то самому попробовать...:scratch_one-s_head:
     
  10. ull9

    ull9 Дуже важлива персона

    правильно. или о двойном считывании.
    либо вектор либо два раза читать
     
  11. Аятолла

    Аятолла Касым

    Мир Вам!
    Фу-у-у-ух...есть таки, сАбака...победил! :rock:
    (Да, согдасен с Вами, многомудрый ull9, Вы писАли на Си...просто, у нас несколько иной синтаксис...такое ведь может быть? А я же только начинающий...не разбираюсь ещё толком...)

     
  12. Аятолла

    Аятолла Касым

    Пунктуация выдержана, просто я толком не смог вставить на форум код...:o
     
  13. Аятолла

    Аятолла Касым

    Сейчас у нас началось ООП...Аятолла находится в...э...состоянии перманентного ступора...пока ничего толком не понимаю...но это - из-за обилия новой терминологии. Да ещё к тому же и нужно реализовывать задачи на разных языках программирования...о_О Синтаксис вааще новый... :sad:
    Но такая ситуация продлится не долго...скоро выбор языков - и тогда уже более конкретно все будет... :)
     
  14. V.P.

    V.P. vegan power

    и зачем аятолле это надо?
    кодеры берут до 5 рублей (русских) за строчку.
    правда одно но.... все кодеры - ленивые, как и фотографы, впрочем....
    но плагины и прочую пошлость пишут быстро и исправляют после тестирования сразу.
     
  15. Аятолла

    Аятолла Касым

    Мир Вам!
    Веточка-то не большая, внимательнейший Свідок...я выкладывал объявления об приеме на работу...немножко не сочетается с Вашими "5 рублей"(я ж не про "индусский код" говорил...:))).
    Да я и не "агитирую за Советскую власть"...это МНЕ интересно и, смею надеятся, понадобится. Добрые люди, вот, помогают...спасибо им! :)
     
  16. duncan

    duncan батяр з личакова Команда форуму

    и слава Богу, чем более ленивый -- тем проще (оптимальнее) код напишет
     
  17. duncan

    duncan батяр з личакова Команда форуму

    а кто из многомудрых мне расскажет в чем разница (преимущества и недостатки) между базами данных постгри и мускулом?
     
  18. Аятолла

    Аятолла Касым

    Мир Вам!
    Это какой-то хитроумный тест?:o Аятолла же - новичек в энтих вопросах...хотя, может кто из многомудрых форумчан знает...:o
     
  19. Аятолла

    Аятолла Касым

    Мир Вам!
    Вновь ленивый Аятолла просит всезнающих форумчан о помощи...:o:o
    Суть такова: есть задача, решение которой реализовано мной на Си...а нужно - на РНР(для начала...потом на Java и Python, но эт я уже сам попробую):


    Условие задачи

    С помощью известных вам инструментов реализовать тип Vector (вектор на координатной плоскости) с координатами x, y типа double. Также реализовать следующие функции:

    Vector vectorSum(Vector a, Vector b)
    Vector vectorDiff(Vector a, Vector b)
    void vectorIncrement(Vector *this, Vector other)
    void vectorDecrement(Vector *this, Vector other)
    int vectorEqual(Vector a, Vector b) - cравнение векторов по координатам
    double vectorLen(Vector this) – нахождение длины вектора. Воспользоваться функцией hypot() из библиотеки math.h
    void vectorPrint(Vector this) - печать вектора в виде (x, y). Воспользоваться шаблоном %g


    Код:

    #include <math.h>
    #include <stdio.h>

    typedef struct {
    double x;
    double y;
    } Vector;

    Vector vectorSum(Vector a, Vector b) {
    Vector sum;

    sum.x = a.x + b.x;
    sum.y = a.y + b.y;

    return sum;
    }

    Vector vectorDiff(Vector a, Vector b) {
    Vector diff;

    diff.x = a.x - b.x;
    diff.y = a.y - b.y;

    return diff;
    }

    void vectorIncrement(Vector *this, Vector other) {
    this->x += other.x;
    this->y += other.y;
    }

    void vectorDecrement(Vector *this, Vector other) {
    this->x -= other.x;
    this->y -= other.y;
    }

    int vectorEqual(Vector a, Vector b) {
    if ( a.x == b.x && a.y == b.y ) {
    return 1;
    }
    return 0;
    }

    double vectorLen(Vector this) {
    double len;

    len = hypot(this.x, this.y);

    return len;
    }

    void vectorPrint(Vector this) {
    printf("(%g, %g)", this.x, this.y);
    }

    :o Не постиг я ещё синтаксис РНР... :sad:
     
  20. ull9

    ull9 Дуже важлива персона

    на мой, да и не только на мой взгляд.
    синтаксис сам по себе - это ничто. алгоритм - это все.
     
а де твій аватар? :)