Страница 3 из 13 Первая 12345 ... Последняя
Показано с 41 по 60 из 258

Тема: Помогите с программированием C/C++

  1. #41
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от alexcryke Посмотреть сообщение
    В тех книгах что смотрел, подход к обучению начинается с примеров и последующего подбрасывания новых терминов, а в голове образуется каша потому что не получается сформировать какого-то общего и целого преставления о структуре ЯП.
    Как я лично понимаю, что перед изучением практического написания, надо освоить ЯП теоретически, что бы понимать вообще логику написания. Например, что такое аргумент? что такое переменная? что еще за классы? ввод-вывод?, потоки?, блоки? точки входа? и тп. И что вообще от чего зависит и что с чем связано?

    Посоветуйте какие книги поискать по теории программирования на Си?
    Может быть существуют какие-то учебники общих принципов программирования?
    Первые главы в Thinking in C++

  2. #42
    Завсегдатай Аватар для _Summit_
    Регистрация
    21.04.2010
    Адрес
    Россия
    Возраст
    42
    Сообщений
    2,848

    По умолчанию Re: Помогите с программированием C/C++

    Ой, какая интересная тема. А я только заметил.
    Если нет вообще никаких знаний (ну бывает такое - из школы не донесли), то надо начинать с алгоритмов и структурных схем. У меня дома валяется книжка - уч. для вузов про программированию (общее). Я бы с такой лит-ры начал (вечером посмотрю как называется). Как по мне, так достаточно разобраться с типами данных и что с ними можно делать, дальше дело техники.

  3. #43
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    49
    Сообщений
    3,129

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от _Summit_ Посмотреть сообщение
    Я бы с такой лит-ры начал
    Выше писал, трехтомник Кнута.
    https://ru.wikipedia.org/wiki/%D0%98...BD%D0%B8%D1%8F
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  4. #44
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,999

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Толпы современных говнокодеров как раз и пришли из паскаля.
    Ммм, а чем Дельфи от Билдера отличается, кроме как синтаксисом?

    Я когда-то перешел с ТР на ТС, там конечно разхница была большая, а когда переходил с Дельфи на Билдер. так практически этого и и не заметил.
    Цитата Сообщение от E.Sokol Посмотреть сообщение
    , а в том, что паскаль развращает.
    А меня например Си бесит, например тем, что можно написать:
    Код:
    u32 a;
    u16 b;
    
      b = a;

    вот "галимый паскаль" такого бы не пропустил, сразу ошибку бы выдал.

    Или вот пример, который один из моих сотворил. Ну он начинаюший, ему еще можно, но все-таки.
    Он написал сначала:
    Код:
    static u32 Div;
    static u64 Flow;
    
    
    void DecCalc(void){
    u64 tmp;
    
    ...
      if(Scale==MAX_SCALE) 
           tmp=(U64)((Flow* 0x00000000FFFFFFFF)/1000);
      else tmp=(U64)((Flow* 0x00000000FFFFFFFF)/10);
    
      Decrement=(u32)(tmp/Div);
    Все было классно, пока он не решил что переменной Flow не надо быть u64 а достаточно u32.
    Ну и поменял. Естественно, все работать перестало.
    (да, я в курсе что надо поменять в этой функции, чтобы оно и с 32-х битным Flow все работало, так и сделали. но потом.)
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  5. #45
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    39
    Сообщений
    2,598

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Alex Посмотреть сообщение
    А меня например Си бесит, например тем, что можно написать:
    Код:
    u32 a;
    u16 b;

    b = a;
    на это можно настроить ахтунги, а где то попадалось что и ерроры можно на это настроить
    _________________
    Евгений

  6. #46
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    49
    Сообщений
    3,129

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Alex Посмотреть сообщение
    вот "галимый паскаль" такого бы не пропустил, сразу ошибку бы выдал.
    черный пояс по си - статический и динамический анализ - например lint.
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  7. #47
    Завсегдатай
    Автор темы
    Аватар для alexcryke
    Регистрация
    28.12.2012
    Адрес
    Москва
    Сообщений
    4,089

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от CAH91 Посмотреть сообщение
    Во первых для чего изучать?
    Цитата Сообщение от alexandermas Посмотреть сообщение
    Чаще всего проблема начинающего программиста состоит не в том на чем писать, а что писать.
    что писать? тут у меня разные цели.
    Во-первых, хотел бы писать простейшие программы для настройки и управления windows. например, сделать простое окошко в котором бы выводились значения ключей из реестра. например, что бы быстро на клиентской машине узнать IP и тут же параметры политик входа в домен. Ну в общем цели у меня простые.
    Во-вторых хочу научится писать драйвера, точнее даже не писать а грамотно уметь портировать их. тут сейчас такие дела что в дистрибе Линух исходников драйверов есть больше чем под винду.
    Ну заодно еще ядро Линукс по-изучать с нуля. создавать тонкие клиенты на разных машинах.

  8. #48
    Завсегдатай Аватар для Сухоруков Сергей
    Регистрация
    18.02.2011
    Адрес
    Петербург
    Сообщений
    4,730

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от alexcryke Посмотреть сообщение
    вообще у меня есть желание именно на "низком" уровне научится разбираться в ОС.
    Это достаточно сложно. Но охота пуще неволи. (С) Обычно в теперешних реалиях на ассемблере пишут небольшие фрагменты кода, которые должны исполняться предельно быстро, и встраивают эти фрагменты во что-то, написанное на языке высокого уровня, например, на С++. Или используют ассемблер для программирования систем с небольшим ОЗУ, например, микроконтроллеров. Но имейте в виду, что ассемблер аппаратно-ориентирован, поэтому нужно сразу понимать, какую платформу планируется использовать.

  9. #49
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    49
    Сообщений
    3,129

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от alexcryke Посмотреть сообщение
    Во-первых, хотел бы писать простейшие программы для настройки и управления windows. например, сделать простое окошко в котором бы выводились значения ключей из реестра. например, что бы быстро на клиентской машине узнать IP и тут же параметры политик входа в домен.
    Для этого си избыточен. Достаточно скриптовых (интерпретируемых) языков, на них получится раз в дцать быстрей.


    Цитата Сообщение от alexcryke Посмотреть сообщение
    Во-вторых хочу научится писать драйвера, точнее даже не писать а грамотно уметь портировать их.
    Год-другой придется на обучение потратить, это минимум. Если надо получить работоспособные и стабильные драйвера, а не поделки.
    Для начала взять все книги Таненбаума и переписать наизусть, потом брать документацию под целевую платформу и ее переписать наизусть.

    Цитата Сообщение от alexcryke Посмотреть сообщение
    Ну заодно еще ядро Линукс по-изучать с нуля. создавать тонкие клиенты на разных машинах.
    И до кучи, победить на конкурсе Чайковского, получить 6ой разряд токаря



    Цитата Сообщение от Сухоруков Сергей Посмотреть сообщение
    Обычно в теперешних реалиях на ассемблере пишут небольшие фрагменты кода, которые должны исполняться предельно быстро,
    Скорость зачастую решается грамотной оптимизацией на си, дальнейшая перепись на асме дает совсем низкий прирост. Обычно на асме пишут такое, от чего мозги у си взрываются и чего он совсем не может. Под 23 бит микроконтроллеры за последние 6 лет мне оно потребовалось только раз - финал бутлоадера, надо передать управление на пользовательское приложение и при этом переопределяется стек. Средствами голого си этого не сделать.

    ---------- Сообщение добавлено 16:37 ---------- Предыдущее сообщение было 16:10 ----------

    Как выучить си за 21 день. Не совсем юмор.
    Нажмите на изображение для увеличения. 

Название:	1356251055_1061087425.jpeg 
Просмотров:	275 
Размер:	156.4 Кб 
ID:	344199
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  10. #50
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,358

    По умолчанию Re: Помогите с программированием C/C++

    Написание драйверов для ОС, это, процентов на 70, если не больше, изучение документации ОС. Проблема языка программирования там на втором месте. Ну и если драйвер Линукс - то только C, если Windows, то C или C++. Никаких ассемблеров там, за очень редким исключением, не надо.
    А вообще задача озвученная ТС практически не реальная, научится языку для достижения поставленных целей далеко не самое важное. Ну и портирование драйверов одной ОС на другую - это написание драйвера с нуля, по мотивам исходного.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  11. #51
    Частый гость Аватар для CAH91
    Регистрация
    14.03.2016
    Возраст
    39
    Сообщений
    249

    По умолчанию Re: Помогите с программированием C/C++

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

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

    Я говорю что нужно изучать по порядку а не в вуз поступать.
    И в любом случае это нужно и полезно хоть с чего начинай.
    Главное чтобы желание было. Иогда всего добьешься. ;)

    Для простых виндовых приложений Delphi самое то наверное, это тот же pascal только с обьектами.
    Поэтому pascal для начала в самый раз. Если идти по порядку. Хотя некоторые и с Си начинают.
    А в линуксе копаться, там на Си, и драйвера и ядро.


    Offтопик:
    Недавно, на днях слыхали выложили наш линукс "Эльбрус". Он для наших процов и для не наших.
    Мне кажется это очень интересным, попробовать и железо и ОС.
    http://www.mcst.ru/programmnoe-obespechenie-elbrus

    Последний раз редактировалось CAH91; 08.04.2019 в 17:41.
    САНЯ, Пролетарии всех стран соединяйтесь!

  12. #52
    Завсегдатай Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,290

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Alex Посмотреть сообщение
    А меня например Си бесит
    А я и не говорил, что Си лучше

  13. #53
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    35,999

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Openreel Посмотреть сообщение
    только раз - финал бутлоадера, надо передать управление на пользовательское приложение и при этом переопределяется стек. Средствами голого си этого не сделать.
    Код:
    #define APP_START   (0x8003000U)
    
    typedef  void (*pFunction)(void);
    //-------------------
    pFunction Jump_To_Application;
    uint32_t JumpAddress;
    
    //-----------------------------------------------------------------------------------
    static void StartApplication(void){
         
          JumpAddress = *(vu*) (APP_START + 4);   
          Jump_To_Application = (pFunction) JumpAddress;
          __set_MSP(*(vu*) APP_START);   // Initialize user application*s Stack Pointer 
          Jump_To_Application();
    }
    Тут конечно можно поспорить, является ли __set_MSP не сишным кодом - с одной стороны нет, т.к. :

    Код:
    __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack)
    {
      register uint32_t __regMainStackPointer     __ASM("msp");
      __regMainStackPointer = topOfMainStack;
    }
    с другой стороны, с точки зрения написания самой программы - это сишный макрос, причем библиотечный, а что там они в библиотеке написали, дело десятое.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  14. #54
    Завсегдатай
    Автор темы
    Аватар для alexcryke
    Регистрация
    28.12.2012
    Адрес
    Москва
    Сообщений
    4,089

    По умолчанию Re: Помогите с программированием C/C++

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

    Суть вот какая - старые винды не хотят работать на новом железе из-за отсутствия поддержки новой версии ACPI и моста PCI.... а новые версии драйверов из новых ОС не хотят дружить со старым ядром и HAL ядра. мне подумалось а ведь в новых дистрибах линукс же есть их исходники и для acpi и для pci и даже для usb3.0.... почему бы не портировать их под ядро ВинХП (Виста)?
    Есть такой пакет Microsoft DDK (Driver Development Kit) для разработки драйверов, как я понял он может наверное проверять исходник на ошибки и компилить в машинный код адаптируя его под конкретное ядро ОС MS (?).

    Цитата Сообщение от Openreel Посмотреть сообщение
    Для этого си избыточен. Достаточно скриптовых (интерпретируемых) языков, на них получится раз в дцать быстрей.
    Возможно, но какие?
    Научиться писать сложные *.БАТники тоже не плохо.

    а еще я вот подумал, а нет ли таких программ в которых можно программы собирать из конструктора?

  15. #55
    Завсегдатай Аватар для Meta|_
    Регистрация
    08.03.2005
    Адрес
    Северная Голландия
    Возраст
    40
    Сообщений
    1,986

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Alex Посмотреть сообщение
    А потом уже к товарищу Страуструпу
    Был у нас разработчик, который с него начал изучение С++. В общем так делать не надо
    Цитата Сообщение от alexcryke Посмотреть сообщение
    А если попробовать начать не с Бэйсика, а я языка Ассемблера ?
    Так тоже можно, но тогда для начала изучить работу процессора вроде i8086 или 80286, это даст понимание "изнанки" всего этого... Но я бы не советовал такой путь.
    Цитата Сообщение от Dmitry2006 Посмотреть сообщение
    сейчас вместо бейсика идет питон.
    Кстати, для начала неплохо. Но есть опасность так на нём и застрять. Расслабляет
    Цитата Сообщение от CAH91 Посмотреть сообщение
    Если для себя, то возможно лучше и проще начать с pascal/delphi
    Неее, не надо мёртвых языков. Если для начала хочется лёгкой жизни - можно начать с C#.
    Цитата Сообщение от Alex Посмотреть сообщение
    Имеет вообще смысл поставить эмабаркадероо вместо билдера?
    Так у них там сейчас вроде только дельфи, то бишь паскаль...
    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Толпы современных говнокодеров как раз и пришли из паскаля.
    Это говнокодеры за 40. А говнокодеры до 25 как-то получаются и без паскаля, так что проблема не в нём ;)
    Цитата Сообщение от Dillar Посмотреть сообщение
    Начинать нужно с процедурного уровня.
    Во, кстати, в 2019 году можно начать с go.
    Цитата Сообщение от _Summit_ Посмотреть сообщение
    надо начинать с алгоритмов и структурных схем
    Про алгоритмы - однозначно плюсую. Наговнокодить самому сортировку пузырьком, обход каких-нить графов и т. д. и т. п. Потом можно браться за реальную задачу.
    Но это трудный этап, т. к. практической ценности эти программы не будут иметь.
    Цитата Сообщение от alexcryke Посмотреть сообщение
    например, сделать простое окошко в котором бы выводились значения ключей из реестра
    О! Хорошая учебная задачка. Найдите опенсорсную програмку на с/с++ (раз уж вы этот язык учите), которая делает что-нибудь с реестром. Разберитесь, как она работает, переделайте под свои нужды. Stackoverflow вам в помощь.
    Цитата Сообщение от alexcryke Посмотреть сообщение
    писать драйвера, точнее даже не писать а грамотно уметь портировать их
    Это через несколько лет, если не надоест. Увы...
    Цитата Сообщение от CAH91 Посмотреть сообщение
    Для простых виндовых приложений Delphi самое то наверное
    А потом забыть этот язык как страшный сон... Для простых ГУЙ-приложений сейчас есть C# и QT. Delphi не нужен. Совсем.
    Только если тащить какой-нить старый проект с сотнями мегабайт исходников...
    Цитата Сообщение от alexcryke Посмотреть сообщение
    Возможно, но какие?
    Питон, powershell.
    Цитата Сообщение от alexcryke Посмотреть сообщение
    Научиться писать сложные *.БАТники тоже не плохо.
    Лучше не надо. Там куча ограничений, на обход которых обидно тратить время...
    Цитата Сообщение от alexcryke Посмотреть сообщение
    а еще я вот подумал, а нет ли таких программ в которых можно программы собирать из конструктора?
    Есть в той или иной степени - это прямой путь потратить время, наделать невнятных поделок, но так и не научиться программировать
    ∇·D = ρ
    ∇·B = 0
    ∇xE = – ∂B/∂t
    ∇xH = j + ∂D/∂t
    © J. C. Maxwell, O. Heaviside

  16. #56
    Завсегдатай Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,290

    По умолчанию Re: Помогите с программированием C/C++

    Во всём согласен с Meta|_, кроме Go.

    ---------- Сообщение добавлено 09.04.2019 в 00:03 ---------- Предыдущее сообщение было 08.04.2019 в 23:59 ----------

    Про Джаву не упоминали ещё? Пригодится, чтобы на смартфончик мегакрутой софт писать. И продавать на гугл-сторе

    ---------- Сообщение добавлено 00:06 ---------- Предыдущее сообщение было 00:03 ----------

    Цитата Сообщение от Meta|_ Посмотреть сообщение
    Это говнокодеры за 40. А говнокодеры до 25 как-то получаются и без паскаля, так что проблема не в нём ;)
    Да, проблема в пхп

  17. #57
    Завсегдатай Аватар для Arena
    Регистрация
    18.09.2008
    Адрес
    г.Минск
    Возраст
    41
    Сообщений
    1,092

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Openreel Посмотреть сообщение
    Как выучить си за 21 день. Не совсем юмор.
    Нажмите на изображение для увеличения. 

Название:	прог за день.jpg 
Просмотров:	237 
Размер:	59.0 Кб 
ID:	344253

    Главное - это мотивация.
    "Мистер Андерсон, зачем, зачем Вы каждый день ходите на работу ?"(с) матрица

  18. #58
    Старший pioneerовожатый Аватар для Vinni
    Регистрация
    24.07.2012
    Сообщений
    2,451

    По умолчанию Re: Помогите с программированием C/C++


  19. #59
    Завсегдатай Аватар для Teoretic
    Регистрация
    03.08.2012
    Адрес
    г. Армавир Краснодарского края
    Возраст
    64
    Сообщений
    881

    По умолчанию Re: Помогите с программированием C/C++

    Как выясняется из обсужения, уровень ТС в программировании нулевой. Но цели заявлены наполеоновские: ядро ОС, драйверы...
    Лет тридцать назад действительно совет дать было бы нетрудно. Взять тот же qbasic, и вперед! Рисовать на экране, вначале простые фигуры, потом выводить графики функций, потом написать "змейку" или косилку. Это все весело и совсем не скучно.Помню, мы с другом всю ночь делали нарды, именно на qbasic*е, рассвет наступил неожиданно.
    Только не надо вначале "осваивать ЯП теоретически", это будет напрасно потраченное время. Надо сразу, с первых строк получать результат. Честное слово, написать программу "угадай число" или "быки и коровы" (где не нужна графика, а только текст) намного полезнее изучения классов, наследования и полиморфизма. Там уже при обдумывании или усложнении алгоритма станет понятно, для чего нужны и переменные, и массивы, и функции, и циклы...

    Сейчас таких языков, как qbasic, которые позволили бы в несколько строк вывести на экран, скажем, куб, я не знаю. Ни под Винды, ни под Линукс.
    Имея в виду конечную цель, начинать надо с С. Не самый лучший выбор для
    первого языка, но в общем-то, и не самый плохой. Главное, не зацикливаться на
    нем, а после появления понимания, убежать во что-то более высокоуровневое (с
    драйверами вряд ли выйдет).

    Я сам рисую окошки, кнопочки и графику на TCL-TK.
    Нажмите на изображение для увеличения. 

Название:	Снимок экрана_2019-04-08_22-11-13.png 
Просмотров:	246 
Размер:	385.2 Кб 
ID:	344255
    Эта связка, по-моему, единственная в своем роде, действительно
    позволяет в несколько строк получить на экране окошко с графикой. Но, к великому сожалению,
    начинающему такое нельзя. Синтаксис у нее наркоманский.
    А быстрые функции пишу к такому интерфейсу на С.

    Здесь более опытные товарищи наверняка смогут посоветовать систему
    программирования (как сейчас говорят, IDE) для С с графикой. Чтобы сразу
    рисовать. Но просто - не будет. Компьютеры давно повернулись к пользователю жопой.
    Но все равно, практика и только практика. А теория - параллельно. При
    возникновении проблем, идей и т.д. все понятия жадно хватаются, тут же
    применяются и усваиваются навсегда.

  20. #60
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    39
    Сообщений
    2,598

    По умолчанию Re: Помогите с программированием C/C++

    Цитата Сообщение от Teoretic Посмотреть сообщение
    Сейчас таких языков, как qbasic, которые позволили бы в несколько строк вывести на экран, скажем, куб, я не знаю. Ни под Винды, ни под Линукс.
    https://www.myrobot.ru/logo/aboutlogo.php
    _________________
    Евгений

Страница 3 из 13 Первая 12345 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •