На Горох
Информатика, 10 класс

§ 17. Программирование

"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.

Объяснение темы В оглавлении: § 17. Программирование

Кратко о теме

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

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

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

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

Язык программирования — система правил записи команд и определения их смысла. Эти правила помогают программисту точно выразить действия, а транслятору — обработать исходный код. Язык нужен для однозначного описания решения: компьютер не должен угадывать, что имелось в виду.

Транслятор — программа, которая переводит текст программы в форму, пригодную для выполнения компьютером. Он обрабатывает исходный код, написанный на языке программирования. Без такой обработки компьютер не сможет непосредственно выполнить команды, записанные человеком.

Как это устроено

Сначала задачу разбирают: выделяют входные данные и определяют, какой результат требуется получить. Это нужно, чтобы не смешать условия задачи с деталями будущей записи программы. Затем выбирают способ решения и описывают порядок действий — так становится понятно, какие команды понадобятся.

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

Записанный текст программы называют исходным кодом. Транслятор обрабатывает его и переводит команды в форму, которую может выполнить компьютер. После этого компьютер выполняет их с данными и получает результат; именно поэтому между замыслом программиста и ответом задачи есть этап перевода.

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

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

Сравнение способов перевода программы

ХарактеристикаКомпиляцияИнтерпретация
Как обрабатывается исходный кодПереводится заранее, обычно целикомКоманды переводятся по мере выполнения
Когда обнаруживаются ошибкиОшибки, найденные при переводе, выявляются до запуска полученной программыОшибки выявляются при обработке соответствующих команд
Что происходит перед запускомСоздаётся исполняемая программа или другой подготовленный результат переводаОтдельный исполняемый файл обычно не готовится заранее
Как выполняется программаЗапускается результат предварительного переводаИнтерпретатор переводит команду и выполняет её по ходу работы

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

Разбор задач

Сумма двух чисел

Условие. Составить программу, которая выводит сумму двух заданных чисел. Нужно использовать значения, поступающие на вход, поэтому ответ нельзя просто заранее записать в код. Ход решения состоит из чтения данных, сложения и вывода результата.

  1. Обозначим введённые числа как a и b, а сумму — как s.
  2. Запишем команду вычисления: s = a + b.
  3. Выведем s и проверим программу на примере a = 3, b = 5.

Ответ. Программа должна прочитать два числа, сложить их и вывести полученную сумму. Для выбранного примера результат равен 8. Такой тест проверяет обычный случай, но для полной проверки стоит взять и другие значения.

Проверка чётности числа

Условие. Составить программу, которая по введённому числу определяет, является ли оно чётным. Одного вычисления недостаточно: ответ зависит от того, какое значение введено. Поэтому алгоритм должен проверить условие и предусмотреть оба возможных результата.

  1. Считаем входное целое число и обозначим его n.
  2. Проверим остаток от деления n на 2: если n mod 2 = 0, число чётное.
  3. Иначе выведем, что число нечётное, затем проверим примеры 8 и 7.

Ответ. Программа выводит «чётное» при нулевом остатке и «нечётное» в остальных случаях. На числе 8 срабатывает первая ветвь, а на числе 7 — вторая. Проверка обоих результатов помогает убедиться, что ни один вариант не забыт.

Сумма чисел от 1 до n

Условие. Составить программу, которая находит сумму целых чисел от 1 до n. Здесь нужно учесть не только входное значение, но и повторяющееся действие — добавление очередного числа. Границы повторения важны, иначе программа может пропустить n или прибавить лишнее число.

  1. Считаем n и зададим начальную сумму s = 0.
  2. Последовательно переберём числа от 1 до n и на каждом шаге прибавим текущее число к s.
  3. После завершения повторения выведем s; для n = 4 вручную проверим: 1 + 2 + 3 + 4 = 10.

Ответ. Цикл должен начинаться с 1 и включать n, а накопленная сумма после завершения равна искомому результату. Для n = 4 программа должна вывести 10. Сравнение с ручным вычислением помогает заметить ошибку в границах цикла.

Типичные ошибки

  • Считать, что программа — только исходный текст. Так думают, потому что код виден человеку, но для выполнения его команды должны быть обработаны по правилам языка. Проверьте себя: определите, какой транслятор будет обрабатывать код и какая форма потребуется компьютеру.
  • Путать синтаксическую ошибку с ошибкой способа решения. Первую допускают, когда не различают неверную запись и неверный замысел алгоритма. Спросите себя, нарушено ли правило языка; если запись допустима, но ответ не тот, проверьте логику.
  • Проверять программу только на одном наборе данных. Обычный пример может не затронуть границу допустимых значений или другую ветвь решения. Подберите несколько тестов, включая граничные значения и такие, при которых меняется ход программы.
  • Исправлять код, не выяснив причину неправильного результата. Случайная правка иногда меняет ответ на одном тесте, но оставляет исходную проблему. Сначала проследите выполнение команд и найдите шаг, где результат расходится с ожидаемым, затем проверьте исправление на других данных.

Связь с другими темами

Для программирования нужны знания об алгоритме, входных данных и результате решения задачи. Алгоритм задаёт способ действий, а программа выражает его командами языка; понимание входа и результата помогает правильно поставить задачу. Без этого трудно определить, что именно должна делать программа и как проверить ответ.

Навыки программирования пригодятся при изучении алгоритмов и структур данных — способов организовать решение и хранение информации. Они также позволяют автоматизировать вычисления: поручить компьютеру повторять однотипные действия, работать с разными данными и быстрее получать результат. Поэтому программирование связывает теоретическое решение задачи с его выполнением.

Что запомнить

  • Программа задаёт компьютеру команды для решения задачи.
  • Код программы записывают на языке программирования.
  • У языка программирования есть правила записи и смысл команд.
  • Перед выполнением исходный код обрабатывается транслятором.
  • Ошибки могут быть связаны с записью кода или с логикой решения.
  • Проверять программу нужно на нескольких наборах данных.

Частые вопросы по теме

Чем программа отличается от алгоритма?

Алгоритм — это описание способа решения задачи: шаги и правила их выполнения. Программа записывает этот способ командами конкретного языка, чтобы компьютер мог его выполнить.

Почему компьютер не может выполнить обычный текст?

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

Что делает транслятор?

Транслятор преобразует исходный код в форму, пригодную для выполнения компьютером. В зависимости от способа перевода он может заранее обработать программу целиком или переводить команды по мере выполнения.

Чем ошибка в записи программы отличается от ошибки в алгоритме?

Ошибка в записи нарушает правила языка: например, пропущен знак или неверно оформлена команда. При ошибке в алгоритме программа может быть записана правильно, но выполнять неверный способ решения.

Зачем проверять программу на разных данных?

Разные данные помогают проверить обычные случаи, границы допустимых значений и разные ветви решения. Один удачный запуск не доказывает, что программа верно работает во всех ситуациях.

Спросить по теме параграфа

§ 17. Программирование

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.