logo
Лекции по информатике

6. Знакомство с языком программирования. Этапы решения задач с помощью персональных компьютеров

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

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

1. ПОСТАНОВКА ЗАДАЧИ. Решение задачи начинается с ее постановки, которая раскрывает содержание задачи и определяет конечную цель. Задача формулируется на уровне профессиональных понятий и выбирается общий подход к ее решению. Исходные положения и описания задачи должны быть корректны и понятны, так как ошибка в постановке задачи, обнаруженная на последующих этапах, приведет к необходимости начать решение задачи с самого начала.

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

Для иллюстрации изложенного предположим, что перед нами стоит задача создать модель для оценки деятельности высшего учебного заведения (ВУЗ). На этапе постановки задачи в первую очередь нам будет необходимо определить конечную цель. Например, выберем в качестве критерия оценки работы ВУЗа профессиональный уровень получаемого студентами образования. Как правило, подобного рода критерии носят интегральный характер и зависят от огромного количества факторов. Нам нужно будет определить и описать все параметры и зависимости, влияющие на конечный результат. Например, своевременное получение учебных материалов, уровень подготовки преподавателей, оборудование аудиторий и многое другое по нашему усмотрению вплоть до расстояния от учебного корпуса ВУЗа до ближайшей станции метро. При этом необходимо определить не только различные факторы и параметры, но и их вес, то есть степень влияния на конечный результат. В итоге мы можем получить исходный материал для решения нашей задачи, состоящий из математических и логических формул и дополнительных описаний.

2. ПОСТРОЕНИЕ АЛГОРИТМА. Как правило, даже имея математическую модель задачи, не удается получить решение в явном виде, например, в виде формулы, связывающей исходные данные и результаты. В этом случае устанавливается необходимая логическая последовательность математических операций и других действий, с помощью которых будут получены результаты, то есть создается алгоритм решения задачи.

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

В нашем примере по созданию модели ВУЗа нам будет необходимо связать сформулированные на первом этапе зависимости между собой. В итоге мы должны будем получить подробную запись решения задачи, как правило, расписанную в виде отдельных процедур, соединенных между собой логическими связями. Предположим, что в наш алгоритм мы включили процедуру оценки влияния отмен и переносов занятий на качество подготовки студентов, которая должна влиять с какого-то определенного количества отмены занятий. Для этого в структуру алгоритма нам нужно будет включить блок, проверяющий выполнение следующего условия: «Количество переносов занятий больше N?” (N – задаваемое нами число). Если это условие не выполняется, осуществляется переход к очередной процедуре. Если это условие выполняется, сначала вносятся изменения в конечный критерий, а потом осуществляется переход к очередной процедуре. Таким образом, в итоге мы должны получить алгоритм решения нашей задачи в виде отдельных, но связанных между собой процедур, выполнение которых завершается расчетом критерия оценки качества подготовки студентов.

3. РАЗРАБОТКА ПРОГРАММЫ. Программа – это последовательность предложений, написанных на каком либо языке программирования, допускаю­щая однозначность толкования и реализующая конкретный алгоритм. Иными словами, программа представляет собой запись алгоритма для решения задачи на компьютере. Процесс разработки программы состоит в том, что алгоритм записывается на каком-либо алгоритмическом языке программиро­вания. Как правило, всю программу стараются разбить на подпрограммы, которые могут быть оформлены как самостоятельные процедуры. Конечным продуктом является текст программы, но программу компьютер еще не может исполнить, так как «не понимает» ее текст. Для запуска программы на компьютере ее нужно перевести на машинный язык, то есть на язык, понятный компьютеру.

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

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

4. ТРАНСЛЯЦИЯ ПРОГРАММЫ. Перевод программы на машинный язык осуществляется с помощью специальной программы, называемой транслятором. Для каждого языка высокого уровня существуют свои трансляторы. Исходными данными для транслятора является текст программы на соответствующем языке программирования, а результатом работы – текст программы на машинном языке.

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

В нашем примере мы при помощи какого-либо текстового редактора должны набрать текст программы в компьютере. а потом запустить программу-транслятор, которая «переведет» его на машинный язык и запишет результат в отдельном файле. Казалось бы, осталось только запустить программу на компьютере и заняться анализом полученных результатов. Однако не все проблемы еще решены.

5. ОТЛАДКА ПРОГРАММЫ. Любая программа до ее практического использования должна пройти этап отладки. Цель отладки состоит в том, чтобы выявить и устранить ошибки, допущенные на предыдущих этапах, и получить программу, к результатам работы которой можно относиться с доверием.

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

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

6. ЭКСПЛУАТАЦИЯ ПРОГРАММЫ. Для программы, прошедшей отладку, разрабатывается эксплуатационная документация, после чего она готова для практического использования на компьютере. Разработанная программа и ее сопроводительная документация передается заказчику, который начинает ее эксплуатацию. Очень часто процесс решения задачи или создания программы на этом не завершается. В процессе эксплуатации не редко у пользователей возникают предложения по усовершенствованию и улучшению работы программы, о которых они сообщают разработчику программы для внедрения.

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