Компьютерная программа: различия между версиями

м
нет описания правки
(Объясните простыми словами, пожалуйста. Начало)
мНет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 4: Строка 4:
Компьютерная программа — это что-то вроде  <code>01100011</code> <code>01101111</code> <code>01101101</code> <code>01110000</code> <code>01110101</code> <code>01110100</code> <code>01100101</code> <code>01110010</code> <code>00100000</code> <code>01110000</code> <code>01110010</code> <code>01101111</code> <code>01100111</code> <code>01110010</code> <code>01100001</code> <code>01101101</code>...
Компьютерная программа — это что-то вроде  <code>01100011</code> <code>01101111</code> <code>01101101</code> <code>01110000</code> <code>01110101</code> <code>01110100</code> <code>01100101</code> <code>01110010</code> <code>00100000</code> <code>01110000</code> <code>01110010</code> <code>01101111</code> <code>01100111</code> <code>01110010</code> <code>01100001</code> <code>01101101</code>...


Ничего не понятно? Всё ок, вы и не должны понимать компьютерные программы, они предназначены для компьютеров. Это как пытаться посмотреть фильм, рассматривая кинопленку.
Ничего не понятно? Всё верно, вы и не должны понимать компьютерные программы, так как они предназначены для компьютеров. Это как пытаться посмотреть фильм, рассматривая кинопленку. Компьютерная программа — это «кинопленка», для компьютера.


Но как создавать то, что нельзя понять? С помощью вспомогательных инструментов. Давайте разберем на примере кинофильма.
Но как создавать программы, если их нельзя понять? С помощью вспомогательных инструментов и специально обученных людей. Давайте разберем на примере.
 
{| class="wikitable"
TBD
|+
!Кинофильм
!Компьютерная программа
|-
|🏆 Допустим, вы кинопродюсер и хотите создать уникальный и самый лучший фильм
|💰 Допустим, вы предприниматель и хотите создать очередной посредственный стартап
|-
|💡 Вы находите сценариста и подробно описывайте ему свои идеи
|🤨 Вы находите программиста и формируете ему подробное техническое задание
|-
|✍️ Сценарист написал подробный и точный сценарий фильма
|🧑‍💻 Программист написал исходный код программы
|-
|'''В сценарии описаны:'''
|'''В исходном коде описаны:'''
|-
|🔹Эпизоды — большие части фильма, состоящие из ряда сцен
|🔸Классы — большие части программы, состоящие из набора функций
|-
|🔹Сцены — это группы кадров, объединенные единством места, времени и действия
|🔸Функции — группа инструкций, для выполнения действия с определенными условиями
|-
|🔹Кадры — неделимый элемент фильма
|🔸Инструкции — самые простые уже неделимые операции
|-
|🔹Актеры — не очень постоянные люди, постоянно меняющие роли
|🔸Переменные — контейнеры для хранения изменяющихся значений
|-
|🔹Роли — бывают отрицательные и положительные
|🔸Значения переменных — бывают отрицательные и положительные (для чисел)
|-
|🔹Статисты — недоактеры, обычно с одной небольшой ролью
|🔸Константы — недопеременные, с постоянным одним значением
|-
|'''Сценарий готов и проверен, начинаем процесс съемки:'''
|'''Исходный код готов и проверен, начинаем сборку программы:'''
|-
|🎥 Кинокамера, превращает сценарий в кинопленку
|🤖 Компилятор — специальная программа, превращающая исходный код в машинный
|-
|🎬 Некоторые кадры снимаются несколькими дублями
|🔁 Некоторые инструкции выполняются многократно раз в циклах
|-
|📣 Режиссер следит чтобы актеры играли роли хорошо
|🆘 Отладчик следит чтобы переменные содержали верные значения
|-
|✂️ Монтаж — финальная сборка проигрываемой кинопленки
|🖇 Компоновка — финальная сборка исполняемой программы
|-
|🎞 Получившаяся кинопленка ▣▣▣▣▣▣▣▣
|💯 Машинный код <code>10011002(упс)01…</code>
|-
|🔘 Катушки с кинопленкой — '''<u>''Кинофильм''</u>'''
|⚙️ Файлы с машинным кодом — '''''<u>Компьютерная программа</u>'''''
|-
|'''Кинофильм готов, теперь нужно доставить его зрителям:'''
|'''Программа готова, теперь нужно доставить её пользователям:'''
|-
|🎦 Кинотеатр — большой зал, вмещающий много зрителей
|🖥️ Сервер — большой мощный компьютер, вмещает много пользователей
|-
|🗄️ Склад кинопленки в катушках в кинотеатре
|💽 Жесткий диск с установленными программами на сервере
|-
|📽 Кинопроектор — умеет проигрывать кинопленку
|🚀 Центральный процессор компьютера — умеет исполнять программы
|-
|👨‍🔧 Киномеханик загружает катушку в кинопроектор и запускает его
|🦥 Системный администратор устанавливает и запускает программу
|-
|🧐 Кинокритик посмотрел фильм первым и написал рецензию
|😨 Тестировщик протестировал программу и написал отчет о багах
|-
|🍿 Зрители смотрят фильм
|😱 Пользователи работают с программой
|-
|😍 Зрители в восторге, ваш фильм великолепен
|🤦 Пользователи «в восторге», ваша программа «великолепна»
|}


== Зачем нужны программы ==
== Зачем нужны программы ==
Программы решают простые задачи:
Программы решают простые задачи:


* Логические операции
* Математические вычисления.
* Математические вычисления.
* Обработка текстов.
* Обработка текстов.
Строка 35: Строка 114:
Такой текст с описанием понятных для человека инструкций назвали программным кодом. А правила его написания — языком программирования.
Такой текст с описанием понятных для человека инструкций назвали программным кодом. А правила его написания — языком программирования.


Важно не путать программу и её программный код. Пример для аналогии:
Важно не путать программу и её программный код. Чтобы не было путаницы, рекомендуется называть программный код — исходным кодом программы.
 
* Инженер-программист — сценарист, придумавший сценарий фильма
* Кодер — секретарь сценариста, набивающий текст на печатной машинке
* '''Программный код''' — это сценарий фильма на бумаге.
* Язык программирования — человеческий язык, на котором написан сценарий
* Компиляция процесс съемки фильма на камеру.
* Машинный код — получившаяся кинопленка
* '''Программа''' —  катушка с кинопленкой
* Процессор компьютера — кинопроектор
* Компьютер с процессором и памятью — кинотеатр, с кинопроектором и складом кинопленки в катушках
* Системный администратор — киномеханик
* Пользователь — зритель
* Тестировщик — кинокритик


Чтобы не было путаницы, рекомендуется называть программный код — исходным кодом программы.
[[Категория:Информационные технологии]]