Основные этапы решения задачи на ЭВМ
КОПИРОВАНИЕ ФОРМУЛ. ОТНОСИТЕЛЬНЫЕ И АБСОЛЮТНЫЕ ССЫЛКИ
DG . ' =.tjJ-Uo.l/UJ | |||
А | В | С | D | |||
Статистика преступлений | |||
2DD2 г. | 2003 г. % роста | ||
I квартал | 10111 1.29%} | ||
II квартал | В32 | 753 10,49% | |
III квартал 750 | 811 -7,52% | ||
б | IV квартал | 891 5,05% | |
ВСЕГО | 3436 2,19% | ||
, |
Часто приходится повторять формулы для нескольких ячеек или заполнять диапазоны ячеек сход-ными формулами. В этом случае для упрощения ввода можно использовать копирование формул. На-пример, рассмотрим статистику преступлений, приведенную на рис. 5.2.6, а. В ячейке B7 введена фор-мула для расчета общего числа преступлений за 2003 г. =СУММ(B3:B6). Скопируем из этой ячейки формулу в соседнюю ячейку C7, где должна быть рассчитана итоговая сумма за 2002 г. При копирова-нии Excel не делает точной копии формулы, вместо этого он полагает, что скопированная формула бу-дет относиться к ячейкам с тем же относительным расположением. То есть он рассматривает формулу в B7 как инструкцию сложить содержимое четырех ячеек сверху. При копировании в C7 новая формула складывает четыре ячейки над C7, превращаясь в СУММ (C3:C6). Формула в ячейке D3 для расчета процента роста преступности за I квартал имеет вид =(B3-C3)/C3 (рис. 5.6.2, б). Ее можно скопировать на лежащие ниже ячейки, чтобы получить проценты роста для других кварталов. Для этого активизи-руем ячейку D3 с копируемой формулой, выполним команду Правка>Копировать, выделим диапа-зон ячеек D4:D7,
=СУММ(ВЗ:В6) | ||||
А | В | С | 0 | |||
Статистика преступлений | ||||
2 3 4 | 2DD2 г. | 2DD3 г. | % роста | |
I квартал | 1D24 | |||
II квартал | В32 | |||
S | III квартал | |||
IV квартал | 93S | |||
7 в | ВСЕГО | |||
а) б)
Рис. 5.6.2 Копирование формул:
а – исходные данные примера; б – расчет итоговых сумм и процента роста
в которые необходимо скопировать формулу и выполним команду Правка>Вставить (см. раздел 5.2.6 Опе-рации копирования и перемещения). В результате в ячейке D4 появится формула =(B4-C4)/C4, в D5- =(B5-C5)/C5 и т.д. Далее для всех ячеек диапазона D3:D7 установим процентный формат одноименной кнопкой в панели инструментов Форматирование (рис. 5.6.2).
При копировании формулы в другую ячейку все ссылки на ячейки автоматически меняются так, чтобы они относились к ячейкам с такими же относительными позициями; они называются относи-тельными ссылками.
Часто требуется, чтобы формула всегда относилась к одной ячейке, независимо от места, куда ее скопируют. Тогда перед каждой частью ссылки на ячейку (т.е. буквой столбца и номером строки) ставят знак $. Например, формула, ссылающаяся на $B$12, всегда будет использовать значение из ячейки B12 независимо от того, куда она скопирована. Это называется абсолютной ссылкой.
В качестве примера использования в формулах абсолютных ссылок на ячейки рассмотрим обработ-ку результатов голосования (рис. 5.6.3).
Рис. 5.6.3 Абсолютные ссылки
Для подсчета общего числа голосующих введем в ячейке B7 формулу =СУММ(B3:B6), в результате получим 450 человек. Формула в ячейке C3, по которой рассчитывается процент проголосовавших "За", имеет вид =B3/$B$7. Скопировав ее на ячейки C4:C7 и применив процентный формат к диапазону C3:C7, получим в ячейке C4 процент проголосовавших "Против" – формулу =B4/$B$7, в C5 – =B5/$B$7 и т.д.
То есть в рассмотренном примере была использована абсолютная ссылка на ячейку B7.
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ. МОДЕЛИ РЕШЕНИЯ ЗАДАЧ
В настоящее время на ЭВМ решают самые разнообразные задачи. В каждом случае ЭВМ выполняет какую-то программу, обычно довольно сложную. Некоторые из программ требуют от пользователя спе-циальных знаний и высокой квалификации. Несмотря на бесконечное разнообразие программ, в самом процессе их изготовления можно усмотреть нечто общее и выделить несколько этапов решения задачи на ЭВМ.
1 Постановка задачи
Под постановкой задачи понимают математическую или иную строгую формулировку решаемой
задачи. Этот этап включает определение целей создаваемой программы и определение ограничений, на-лагаемых на программу. При постановке задачи должны быть определены требования:
• ко времени решения поставленной задачи;
• объему необходимых ресурсов, например, оперативной памяти;
• точности достигаемого результата.
2 Проектирование программы
Если задача вычислительная, то на этом этапе следует выбрать метод расчета, если разрабатывается
компьютерная игра, должен быть определен ее сценарий. В любом случае следует выбрать или создать некую формальную модель, которая, в конечном счете, реализуется в будущей программе. На этапе проектирования определяют вид данных, с которыми будет работать программа, основные части, из ко-торых программа будет состоять и характер связей между этими частями.
3 Разработка алгоритма
На этом этапе следует разработать детали проекта программы. Детализацию необходимо довести до
той степени, когда кодирование деталей программы (перевод их на алгоритмический язык) станет три-виальным. Возможно, детализация потребует нескольких стадий, от крупных блоков ко все более мел-ким, и в результате должно получиться то, что называется алгоритмом решения задачи.
4 Написание программы на языке программирования (кодирование)
После того как алгоритм разработан, его записывают на алгоритмическом языке, и этот процесс на-
зывают кодированием алгоритма. Для выполнения данного этапа необходимо знать хотя бы один из многих существующих языков программирования, а лучше знать несколько, чтобы выбрать наиболее подходящий для решаемой задачи.
Хотя этап кодирования считается менее творческим, чем предыдущие, для его успешного выполне-ния требуется хорошее знание как самого языка, так и средств разработки программ: транслятора, компоновщика, программных библиотек и многого другого.
5 Отладка и тестирование программы
Целью данного этапа является поиск и устранение ошибок в программе. Ошибки бывают синтакси-
ческие (нарушение грамматики алгоритмического языка) и смысловые (искажение самого алгоритма решения задачи). О первых мы не говорим, их обычно обнаруживают и исправляют на этапе кодирова-ния, совершая пробную трансляцию программы. Вторые же можно выявить только в процессе проверки программы на специально подобранных входных данных или в ходе опытной эксплуатации программы.
6 Получение решения и анализ результатов
После проверки программы и устранении всех ошибок получают решение поставленной задачи, ко-
торое необходимо проанализировать. Если речь идет о моделировании какого-то природного процесса, то следует сравнить полученные с помощью компьютера результаты и результаты наблюдений. Они могут отличаться. В этом случае может потребоваться возврат на один из предыдущих этапов для уст-ранения причин несоответствия результатов.
Разделение процесса разработки программ на шесть этапов носит весьма условный характер. В слу-чае простых программ, некоторые этапы сливаются, например, проектирование с разработкой алгоритма или кодирование с отладкой. В случае сложных программ могут добавиться новые фазы разработки, на-пример, проектирование базы данных. Более важным является то, что работа над сложной программой состоит в многократном прохождении
цикла разработки, так как в процессе тестирования могут быть обнаружены такие ошибки, для ис-
правления которых придется вернуться не только к кодированию или алгоритмизации, но и к про-
ектированию, а в особых случаях – пересмотреть и постановку задачи.
Если же удалось разработать полезную программу, то работа над ней не заканчивается этапом тес-тирования, а переходит в фазу сопровождения. Программа живет, приобретает новые функции, совер-шенствует старые, избавляется от последних ошибок и, наконец, умирает, уступив натиску более новых и совершенных программ.