Урок №23. Язык программирования. Система программирования.
В курсе информатики 7 класса вы уже познакомились с понятием алгоритма и составляли программы для исполнителей Робот и Рисователь. В этом году мы продолжим заниматься программированием, используя уже два языка — алгоритмический язык системы КуМир и язык программирования Паскаль. Вместе с учителем вы выберете для работы один из них, но у вас всегда будет возможность «подсмотреть» в учебнике, как то же самое можно сделать на другом языке.
Сначала вспомним основные сведения из курса 7 класса, которые нам понадобятся.
Алгоритм — это точное описание последовательности действий для исполнителя.
Исполнителем называют человека, животное или машину, способных понимать и выполнять некоторые команды.
Формальный исполнитель любую команду всегда выполняет одинаково, не обдумывая её.
Любой алгоритм можно составить с помощью трёх базовых конструкций: следования (последовательного выполнения команд), ветвления (выбора одного из двух вариантов действий) и цикла (повторения одинаковой группы действий).
Алгоритмы можно записывать на естественном языке (например, русском), в виде блок-схем или на языке программирования. Запись алгоритма на языке программирования называется программой.
Программирование — это создание программ для компьютеров. Людей, которые этим занимаются, называют программистами.
Программист должен уметь:
- анализировать поставленную задачу: определять входные данные и результаты, устанавливать связь между ними, выделять этапы решения задачи и т. д.;
- разрабатывать алгоритм решения;
- писать тексты программ на различных языках программирования;
- отлаживать и тестировать программы;
- готовить описания программ и инструкции для пользователей (документацию);
- дорабатывать и сопровождать программы после сдачи заказчику.
В небольших фирмах все эти задачи часто решает один человек.
В крупных компаниях есть разделение труда: анализом задачи занимаются системные аналитики, разработкой алгоритма — алгоритмисты (специалисты в предметной области, математики), написанием и отладкой программ — кодировщики, тестированием — тестировщики, а составлением документации — технические писатели.
У каждого программиста есть своя специализация — область, в которой он работает:
- системный программист разрабатывает операционные системы, драйверы устройств, утилиты; эта работа требует самых глубоких знаний и способностей к самообразованию, она высоко ценится и оплачивается;
- прикладной программист создаёт прикладные программы, с которыми работают пользователи, в том числе программы для мобильных устройств;
- веб-программисты занимаются программированием веб-сайтов;
- программисты баз данных разрабатывают программы, которые управляют базами данных.
Программа — это набор инструкций, записанных на языке, понятном компьютеру. Компьютер (точнее, его процессор) понимает только один язык — язык машинных кодов, которые записываются в виде цепочек нулей и единиц. Писать программы на таком языке (как делали программисты вычислительных машин первого поколения) очень сложно и долго. Особенно тяжело отлаживать их, т. е. находить и исправлять ошибки в таких программах.
Для решения этой проблемы были созданы языки программирования высокого уровня, в которых в командах используются слова естественного языка (чаще всего английского). Однако в отличие от естественных языков эти языки — формальные, т. е. в них каждое слово или предложение имеет один точно определённый смысл, и нет никаких исключений.
Но всё дело в том, что компьютер не понимает программы, написанные на языках высокого уровня. Чтобы подготовить программы к выполнению, используется специальная программа — транслятор.
Транслятор может, например, перевести программу в машинные коды конкретного процессора — такие трансляторы называются компиляторами.
Возможен и другой вариант: транслятор сам выполняет программу или переводит её в байт-код — на язык, в котором код каждой команды занимает один байт (это число в диапазоне от 0 до 255). Такой транслятор называется интерпретатором. Байт-код выполняется другой программой — виртуальной машиной (так, например, работают программы, написанные на языке Java).
Один из самых популярных современных языков программирования называется Python. Его придумал в 1991 году нидерландский программист Гвидо ван Россум. Язык Python непрерывно совершенствуется, и сейчас большинство программистов используют его третью версию — Python 3. Предыдущая версия — Python 2 — устарела, и мы не будем её рассматривать.
Несмотря на то что язык Python очень прост, он обладает огромными возможностями, которые могут применяться в самых разных областях. На Python можно программировать игры и веб-сайты, обрабатывать большие данные, решать задачи искусственного интеллекта.
Транслятор Python — это интерпретатор. Он создаёт байт-код, а затем сам его выполняет. Поэтому для того, чтобы запустить программу на Python, нужно установить на компьютер интерпретатор Python. Во многих операционных системах, например в macOS и Linux, этот интерпретатор входит в стандартную поставку и устанавливается вместе с операционной системой.
В этой главе мы начнём знакомиться с языком Python и писать на нём программы для решения различных задач.
Интерпретатор Python может работать в двух режимах:
- через командную строку (в интерактивном режиме), когда каждая введённая команда сразу выполняется;
- в программном режиме, когда программа сначала записывается в файл (обычно имеющий расширение .ру) и при запуске выполняется целиком; такая программа на Python называется скриптом (от англ, script — сценарий).
Мы будем работать в программном режиме.
Сначала мы научимся писать программы, в которых команды выполняются последовательно, одна за другой. Как вы знаете, такие алгоритмы (и программы) называются линейными.
Давайте посмотрим, что представляет собой пустая программа. Это такая программа, которая не содержит никаких команд, но удовлетворяет всем требованиям языка программирования. Компьютер может выполнить её, но делать она, разумеется, ничего не будет.
Python — один из тех языков программирования, в которых пустая программа — действительно пустая, она не содержит ни одной строки. Мы можем создать пустой файл с расширением .ру, а затем выполнить его с помощью интерпретатора.
Попробуем добавить в программу такую строку:
# пустая программСимвол # обозначает начало комментария — пояснительного текста, который не обрабатывается транслятором. Комментарии служат для того, чтобы автору (и другому программисту) было легче разобраться в программе. При запуске такой программы также ничего не происходит. В программах на Python, в которых используются русские буквы, часто добавляют специальный комментарий:
# coding: utf-8
Он говорит о том, что текст программы набран в кодировке UTF-8.
Теперь научим программу делать что-то полезное, например выводить текст на экран. Пусть она при запуске приветствует вас:
Привет!Вот как выглядит такая программа:
print("Привет!")Чтобы вывести что-то на экран, используется встроенная функция (команда) print. В кавычках записывается текст для вывода — символьная строка, т. е. последовательность символов.
В начале строки (слева от команды print) не должно быть пробелов — таково требование языка Python.
Вместо кавычек можно использовать апострофы («одиночные кавычки»):
print('Привет!')Это полезно, например, когда необходимо вывести строку с кавычками:
print ( 'Смотрите фильм "Салют-7"!' )За один раз можно выводить несколько символьных строк: они перечисляются через запятую внутри круглых скобок. Например, по команде
print( "Привет,", "Вася!" ) на экран выводится фраза Привет, Вася!
Пробел между строками (элементами списка вывода) вставляется автоматически, Если он не нужен, при вызове функции нужно добавить ещё один аргумент с именем sep (от англ, separator — разделитель), равный пустой строке «». Команда
print( "2", "+", "2", "=", "4", sep="" )выведет все символы без пробелов:
2+2=4Теперь попробуем вывести второе приветствие:
print( "Привет, Вася!" )
print( "Привет, Петя!" )
Такая программа выведет каждую фразу в отдельной строке:
Привет, Вася!
Привет, Петя!
Это значит, что после вывода всех данных функция print выполняет переход на новую строку — следующий вызов print будет выводить данные в новой строке.
Если нужно, чтобы несколько вызовов функции print выводили информацию в одной строке, можно отменить переход на новую строку, указав аргумент с именем end (по-английски end — конец), равный пустой строке
print( "1", end="" )
print( "23", end="" )
print( "456" )
Такая программа выведет:
123456