Основные этапы решения задачи на ЭВМ

КОПИРОВАНИЕ ФОРМУЛ. ОТНОСИТЕЛЬНЫЕ И АБСОЛЮТНЫЕ ССЫЛКИ

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 Получение решения и анализ результатов
После проверки программы и устранении всех ошибок получают решение поставленной задачи, ко-

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


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

цикла разработки, так как в процессе тестирования могут быть обнаружены такие ошибки, для ис-

правления которых придется вернуться не только к кодированию или алгоритмизации, но и к про-

ектированию, а в особых случаях – пересмотреть и постановку задачи.

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