Загрузка...

⚠⚠⚠⚠Уроки по C++ для начинающих (1 часть) ⚠⚠⚠⚠

Тема в разделе C/C++ создана пользователем lunaticc 30 апр 2018. 1007 просмотров

Загрузка...
  1. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
    Урок 1


    Компьютеры понимают только очень ограниченный набор инструкций и чтобы заставить их что-то делать, нужно четко сформулировать задание, используя эти же инструкции. Программа (также «приложение» или «программное обеспечение», «софт») — это набор инструкций, которые указывают компьютеру, что ему нужно делать. Физическая часть компьютера, которая выполняет эти инструкции, называется «железом» или аппаратной частью (например: процессор, материнская плата).

    Машинный язык
    Процессор компьютера не способен понимать напрямую языки программирования, такие как C++, Java, Python и другие. Очень ограниченный набор инструкций, которые изначально понимает процессор, называется машинным кодом (или «машинным языком»). То, как эти инструкции организованы, выходит за рамки этого введения, но стоит отметить две вещи.

    Во-первых, каждая команда (инструкция) состоит только из двух цифр — 0 или 1 (это двоичный код). Эти числа называются битами (сокращенно от англ. «binary digi). Например, машинный код архитектуры MIPS имеет все инструкции длиной 32 бита. Другие архитектуры (например, x86, которую вы, вероятнее всего, используете) используют инструкции, длина которых может быть указана как переменная.

    Например, одна команда машинного кода архитектуры x86 выглядит следующим образом:

    10110000 01100001.

    Во-вторых, каждый набор битов переводится процессором в инструкции для выполнения какого-то определенного задания, например: сравнить два числа или переместить вот это число в вот эту ячейку памяти. Разные типы процессоров обычно имеют разные наборы инструкций, поэтому инструкции, которые будут работать на процессорах Intel вполне вероятно, что не будут работать на процессорах Xenon (используются в xBox). Раньше, когда компьютеры только начинали массово распостраняться, программисты должны были писать программы непосредственно на машинном языке, что было очень трудно и требовало намного больше времени, нежели сейчас.

    Язык Ассемблера
    Так как программировать машинным языком очень трудно, то программисты изобрели язык ассемблера. В этом языке каждая команда идентифицируется коротким именем (а не набором единиц с нулями), и переменными можно уже управлять через их имена. Таким образом, писать и читать код стало гораздо легче. Тем не менее, процессор всё равно не понимает язык ассемблера напрямую. Его также нужно переводить, с помощью ассемблера, в машинный код. Ассемблер – это транслятор (переводчик), который переводит код, написанный на языке ассемблера, в машинный язык. В Интернете этот язык называют просто — Ассемблер.

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

    Вот та же команда выше, только написана на языке ассемблера:

    mov al, 061h

    Высокоуровневые языки программирования
    Для решения проблем читабельности и чрезмерной сложности были разработаны высокоуровневые языки программирования. C, C++, Pascal, Java, JavaScript и Perl — это всё языки высокого уровня. Они позволяют писать программы без необходимости переживать о совместимости кода с разными процессорами компьютеров. Программы, написанные на языках высокого уровня, также должны быть переведены в машинный код перед выполнением. Есть два пути решения этой задачи:

    компиляция, которая выполняется компилятором;

    интерпретация, которая выполняется интерпретатором.

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

    Если по-простому, то процесс компиляции выглядит следующим образом:

    [IMG]

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

    Процесс интерпретации:

    Любой язык может быть компилируемым или интерпретируемым, однако, такие языки, как C, C++ и Pascal, как правило, компилируются, в то время как «скриптовые» языки, такие, как Perl и JavaScript, интерпретируются. Некоторые языки, как Java, являются смешанными (компилируются и интерпретируются).

    Преимущества высокоуровневых языков
    1. Легче писать/читать код. Вот та же команда выше, но на языке C/C++:

    а = 97;

    2. Требуется меньше инструкций для выполнения определенной задачи по сравнению с низкоуровневыми языками. В C++ вы можете сделать что-то вроде этого: а = Ь * 2 + 5; в одной строке. В языке ассемблера вам пришлось бы использовать 5 или 6 инструкций.

    3. Вы не должны заботиться о таких деталях, как загрузка переменных в регистры процессора. Компилятор или интерпретатор берет это на себя.

    4. Более портативные под различные архитектуры, но с одним нюансом.[IMG]Нюанс заключается в том, что многие платформы, такие как Microsoft Windows, имеют свои собственные функции, с помощью которых писать код становится намного легче. Но тогда придется пожертвовать портативностью, так как функции одной платформы вполне вероятно, что не будут работать на другой платформе. Обо всем этом более детально мы поговорим в следующих уроках.

    Информация взята с учебника.
     
  2. Silence_
    Silence_ 30 апр 2018 -_- 4 29 апр 2018
    Годнота
     
  3. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
    Пасяба
     
  4. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
    Сейчас напишу 2 часть
     
  5. nosleepneeded
    nosleepneeded 30 апр 2018 Заблокирован(а) 100 15 авг 2017
    Ctrl + C, Ctrl + V
     
  6. Lifancand
    Lifancand 30 апр 2018 Заблокирован(а) 1298 3 фев 2018
    Ctrl + C, Ctrl + V
     
  7. Lifancand
    Lifancand 30 апр 2018 Заблокирован(а) 1298 3 фев 2018
    АХАХА БЛЯ НЕ УСПЕЛ
     
  8. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
    nosleepneeded, Там написано с низу (но спс что написал).
     
  9. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
  10. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
  11. nosleepneeded
    nosleepneeded 30 апр 2018 Заблокирован(а) 100 15 авг 2017
    Не с учебника даже.
     
  12. Lifancand
    Lifancand 30 апр 2018 Заблокирован(а) 1298 3 фев 2018
    Сосать+лежать)).
     
  13. swmf
    swmf 30 апр 2018 101 8 дек 2017
    Лучше б сразу учебник скинул, нахуя нам отрывки из него
     
  14. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
    swmf, Там по частям
     
  15. lunaticc
    lunaticc Автор темы 30 апр 2018 Заблокирован(а) 60 30 апр 2018
    Там 2 часть вышла
     
  16. swmf
    swmf 30 апр 2018 101 8 дек 2017
    правила читай
     
  17. lunaticc
    lunaticc Автор темы 6 май 2018 Заблокирован(а) 60 30 апр 2018
    Скоро новый урок
     
  18. Енот272_inactive171964
    Енот272_inactive171964 11 май 2018 Ушел на покой 372 6 сен 2017
    Нормально автор получается, не бросай.
     
  19. ЧВАРПЩШЗАГРОАВГ
    ЧВАРПЩШЗАГРОАВГ 12 май 2018 Заблокирован(а) 184 30 апр 2018
    lunaticc, делал бы видео уроки,цены бы тебе не было
     
Top