• Поможете вспомнить язык программирования по логотипу?

    tsarevfs
    @tsarevfs
    C++ developer
    Написал скрипт на python скачивающий картинки по запросу "<имя языка> logo" из гугла.
    import os
    import sys
    import time
    from urllib import FancyURLopener
    import urllib2
    import urllib
    import simplejson
    
    
    # Start FancyURLopener with defined version 
    class MyOpener(FancyURLopener): 
        version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
    myopener = MyOpener()
    
    
    def request(searchTerm, max_count):
      # Set count to 0
      count= 0
      searchTermQuote = urllib.quote(searchTerm + ' language logo', '')
      for i in range(0, 10):
          # Notice that the start changes for each iteration in order to request a new set of images for each loop
          url = ('https://ajax.googleapis.com/ajax/services/search/images?' + 'v=1.0&q=' + searchTermQuote + '&start=' + str(i*4) + '&userip=MyIP')
          print url
          request = urllib2.Request(url, None, {'Referer': 'testing'})
          response = urllib2.urlopen(request)
    
          # Get results using JSON
          results = simplejson.load(response)
          data = results['responseData']
          dataInfo = data['results']
    
          # Iterate for each result and get unescaped url
          for myUrl in dataInfo:
              count = count + 1
              print myUrl['unescapedUrl']
    
              searchTermSafe = ''.join([c for c in searchTerm if c.isalnum() or c == '.'])
    
              name = os.path.join('imgs', searchTermSafe + str(count) + '.jpg')
              myopener.retrieve(myUrl['unescapedUrl'], name)
              if count >= max_count:
                return
    
    
    def main():
      languages_list = open('list.txt', 'r').readlines()
      for language in languages_list:
        try:
          request(language, 1)
        except:
          print "error with request" + language
        time.sleep(1)
    
    
    if __name__ == '__main__':
      main()

    Сейчас он трудится над списком из 256 языков.

    UPD:
    Единственное, хоть как-то подходящее под описание Rexx language:
    rexxla.gif
    Ответ написан
  • Почему выводится ошибка "необработанное исключение по адресу"?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    matrix[m][n] вместо matrix[i][j] в поиске элемента это выход за границу массива.

    for (int i = m; i < m; i--) //хм
    Ответ написан
    Комментировать
  • Assembler'ные вставки кода в C++, как правильно реализовать ?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    1 правило ассемблерных вставок - "лучше бы вы не делали ассемблерные вставки".
    Вы уверены что оно вам нужно? Например работа с SSE вполне возможна с помощью библиотек C++.
    Некоторым аналогом push pop можно считать функцию _allcoa выделяющую память на стеке. Работать с объектами через ассемблер конечно возможно. Читайте про call conventions, name mangling, выравнивание. Если вы хотите работать с объектами использующими наследование и виртуальные функции, то вам нужно разобраться со структурой таблици виртуальных функций.
    Ответ написан
    1 комментарий
  • Выбор языка программирования для моделирования физических процессов?

    tsarevfs
    @tsarevfs
    C++ developer
    Зависит от сложности моделей. Если вы хотите демонстрировать задачи школьного уровня, то pyhon + numpy + pygame позволит очень быстро создать такое приложение. Создание приложения не требующего установки python и библиотек для него вполне возможно. Однако скорее всего это придется делать под каждую ОС отдельно (сам код. конечно, будет кроссплатформенным).
    Ответ написан
    Комментировать
  • Что лучше изучать для программирования игр - C# или C++?

    tsarevfs
    @tsarevfs
    C++ developer
    Возможно, проще будет изучить C# и начать работать с Unity. Изучение С++ гораздо более сложный путь, но именно на нем пишут серьезные движки для игр.
    Unity это очень мощный, но все же конструктор для игр. Если если вы хотите написать игру самостоятельно или небольшой командой, это отличный выбор. Если ваша цель работа в крупной GameDev фирме, то C++ будет более востребован.
    Учтите, что переход на другой язык намного проще изучения первого. Так что выбирайте исходя из ваших планов на ближайшие 2-3 года.
    Ответ написан
    Комментировать
  • Chromium не видит установленный adobe flash player?

    tsarevfs
    @tsarevfs
    C++ developer
    Я не стал разбираться и установил хром. В нем все работает.
    Ответ написан
  • Почему уже задавленное условие попадает в else?

    tsarevfs
    @tsarevfs
    C++ developer
    У первого if нет else. Все следующие проверки выполняются при a=1 обычным образом. В таких случаях удобно использовать сокращенную запись else if — elif
    a = int(input())
    b = a % 10
    c = a % 100
    if a == 1:
        print(a, 'программист')
    elif (b == 1 and not c == 11 and not a == 1):
        print(a, 'программист')
    elif((b == 2 or b == 3 or b == 4) and not(c == 12 or c == 13 or c == 14)):
        print(a, 'программиста')
    else:
        print(a, 'программистов')
    Ответ написан
    Комментировать
  • Подключить SDL2 в Cmake?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Вы взяли скрипт, который умеет находить sdl. А сам SDL вы установили?
    Ответ написан
  • Как узнать тип видеоадаптера на компьютере при помощи C++?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    гугли get video adapter winapi
    Ответ написан
    Комментировать
  • Почему не работает return?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Используйте отступы для выделения блоков, ничего же не понятно!
    void add_animal(){
      int i;
      for (i = 0; i < SIZE; ++i){
        if (!anim[i].animal) break; //WAT??? Для массивов char это не сработает как
                //проверка на пустоту строки, тем более неинициализированные массивы забиты мусором.
                //Удобнее использовать std::string и проверять (!animal.empty())
        if (i == SIZE){ cout << "Its full"; return; }  //никогда не выполнится по условию цикла
        
        
      }
      anim[i].input(); //Это вы хотели сделать в цикле, с отступами бы вы это заметили!
      return;
    }

    Ну и все в manager нужно запихнуть в while(true) и сделать return в case 3 например.
    Ответ написан
    Комментировать
  • В каком направлении двигаться?

    tsarevfs
    @tsarevfs
    C++ developer
    Если можешь выигрывать олимпиады, делай ставку на это. Имея диплом, легко поступить в хороший вуз на бюджет.
    Ответ написан
  • Как в postgresql искать по совокупности двух значений?

    tsarevfs
    @tsarevfs
    C++ developer
    Ответ написан
    Комментировать
  • Где найти ментора по С++ или Java?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Школьник, студент? Уже что-то знаете по C++ или Java? Готовы платить за время консультаций?
    Ответ написан
  • Какие языки помогут лучше всего понять указатели и рекурсии?

    tsarevfs
    @tsarevfs
    C++ developer
    Самые сложные это, конечно, громко сказано. Языки, как уже говорили С++, С, Pascal.
    Чтобы разобраться с указателями, посмотрите (а лучше напишите сами) как работают списки: односвязный и двусвязный.
    Для рекурсии стандартная задача - числа фиббоначи. Чуть более сложная - обход графа в глубину.
    Вам задано n - количество городов и k - количество дорог. Далее записаны k пар чисел - (a_i, b_i), которые означают что из города a_i есть дорога в город b_i. Найдите все города в которые можно добраться из города с номером 1. Например для 6 городов и 4 дорог входные данные:
    6 4
    1 3
    3 5
    6 4
    2 6
    ответ:
    1 3 5
    Ответ написан
    Комментировать
  • Как правильно написать на Python?

    tsarevfs
    @tsarevfs
    C++ developer
    python file.py "start id1" "cmd 01" не подойдет?
    Ответ написан
    Комментировать
  • Примеры классов в программировании?

    tsarevfs
    @tsarevfs
    C++ developer
    Когда программы становятся большими, очень хочется, чтобы при изменении одного куска не ломалось все остальное. Для этого программы разбиваются на части, взаимодействующие через некоторые интерфейсы. Чем этих связей меньше, тем проще поддерживать такой код.
    Переменная(private) в классе лучше глобальной тем, что доступ к ней имеет только сам класс. В таком случае я могу при написании класса рассчитывать, что свои данные меняю только я, поэтому в каждый момент времени они непротиворечивы. Например класс Square описывает квадрат, у которого мы хотим задавать длину стороны и спрашивать его площадь.
    class Square
    {
      void setSide(double side)
      {
        side_ = side;
        area_ = side * side;
      }
      double getSide()
      {
        return side_;
      }
      double getArea()
      {
        return area_;
      }
    private:
      double side_;
      double area_;
    }


    В процедурном варианте кто-то может изменить длину стороны и забыть (сам дурак, но если параметров не два а несколько десятков, помнить о всех закономерностях затруднительно) изменить площадь, в таком случае, он начнет получать неправильные результаты.
    Еще прочитайте про наследование, оно используется очень часто.
    Про enum можно не забивать голову пока.
    Ответ написан
    2 комментария
  • Нужно ли знать математику, чтобы программировать на haskell?

    tsarevfs
    @tsarevfs
    C++ developer
    Да не обязательно. Посмотрите на книгу Learn You a Haskell for Great Good. Опыт в математике может помочь воспринимать некоторые формальные вещи. Но из знаний для старта достаточно арифметики и элементарной логики.
    Ответ написан
    Комментировать
  • Как связать 2 клиента, подключенных к серверу на Python, между собой?

    tsarevfs
    @tsarevfs
    C++ developer
    Как вариант можно воспользоваться очередью сообщений. Клиент должен иметь интерфейс:
    *написать в очередь с именем X
    *забрать сообщение если оно есть
    *подписаться на обновления очереди X

    Создаем очередь для поиска игры. Подписываемся на нее и добавляем в нее себя. Когда нам приходит уведомление что некий Вася написал в эту очередь пытаемся с ним связаться напрямую или через персональную очередь Васи. Если Вася все еще свободен он отвечает ОК и вы начинаете игру, иначе ждем следующего подходящего игрока.
    В таком варианте "комната" это либо прямое TCP соединение либо пара личных очередей сообщений Васи и Пети которые играют между собой.
    Ответ написан
  • Микроконтроллеры?

    tsarevfs
    @tsarevfs
    C++ developer
    Самый простой способ купить какой-нибудь набор с
    для arduino. Ну и почитайте easyelectronics.ru.
    Ответ написан
    Комментировать