Основы языка С++. Викентьева О.Л. - 21 стр.

UptoLike

Составители: 

5. Примеры решения задач с использованием основных операторов Си++
«Начинающие программисты, особенно студенты, часто пишут программы так: по-
лучив задание, тут же садятся за компьютер и начинают кодировать те фрагменты алго-
ритма, которые им удается придумать сразу. Переменным дают первые попавшиеся имена
типа х и у. Когда компьютер зависает, делается перерыв, после которого все написанное
стирается, и все повторяется заново. Периодически высказываются сомнения в правильно-
сти работы компилятора, компьютера и операционной системы. Когда программа доходит
до стадии выполнения, в нее вводятся произвольные значения, после чего экран становит-
ся объектом пристального удивленного изучения. «Работает» такая программа обычно
только в бережных руках хозяина на одном наборе данных, а внесение в нее изменений
может привести автора к потере веры в себя и ненависти к процессу программирования.
Ваша задача состоит в том, чтобы научиться подходить к программированию про-
фессионально. В конце концов, профессионал отличается тем, что может достаточно точ-
но оценить, сколько времени у него займет написание программы, которая будет работать
в полном соответствии с поставленной задачей. Кроме «ума, вкуса и терпения», для этого
требуется опыт, а также знание основных принципов, выработанных программистами в
течение более, чем полувека развития этой дисциплины. Даже к написанию самых про-
стых программ нужно подходить последовательно, соблюдая определенную дисциплину.»
(Павловская Т. А., стр.109)
Решение задач по программированию предполагает ряд этапов:
1)Разработка математической модели. На этом этапе определяются исходные данные и
результаты решения задачи, а также математические формулы, с помощью которых мож-
но перейти от исходных данных к конечному результату.
2)Разработка алгоритма. Определяются действия, выполняя которые можно будет от ис-
ходных данных придти к требуемому результату.
3)Запись программы на некотором языке программирования. На этом этапе каждому
шагу алгоритма ставится в соответствие конструкция выбранного алгоритмического язы-
ка.
4)Выполнение программы (исходный модуль ->компилятор ->объектный модуль ->
компоновщик -> исполняемый модуль)
5)Тестирование и отладка программы. При выполнении программы могут возникнуть
ошибки 3 типов:
a. синтаксические – исправляются на этапе компиляции;
b. ошибки исполнения программы (деление на 0, логарифм от отрицательного числа
и т. п.) – исправляются при выполнении программы;
c. семантические (логические) ошибкипоявляются из-за неправильно понятой зада-
чи, неправильно составленного алгоритма.
Чтобы устранить эти ошибки программа должна быть выполнена на некотором на-
боре тестов. Цель процесса тестирования определение наличия ошибки, нахождение ме-
ста ошибки, ее причины и соответствующие изменения программы исправление. Тест
это набор исходных данных, для которых заранее известен результат. Тест выявивший
ошибку считается успешным. Отладка программы заканчивается, когда достаточное коли-
чество тестов выполнилось неуспешно, т. е. программа на них выдала правильные ре-
зультаты.
Для определения достаточного количества тестов существует два подхода. При
первом подходе программа рассматривается как «черный ящик», в который передают ис-
ходные данные и получают результаты. Устройство самого ящика неизвестно. При этом
подходе, чтобы осуществить полное тестирование, надо проверить программу на всех
входных данных, что практически невозможно. Поэтому вводят специальные критерии,
которые должны показать, какое конечное множество тестов является достаточным для
программы. При первом подходе чаще всего используются следующие критерии:
1)тестирование классов входных данных, т. е. набор тестов должен содержать по
одному представителю каждого класса данных:
           5. Примеры решения задач с использованием основных операторов Си++
        «Начинающие программисты, особенно студенты, часто пишут программы так: по-
лучив задание, тут же садятся за компьютер и начинают кодировать те фрагменты алго-
ритма, которые им удается придумать сразу. Переменным дают первые попавшиеся имена
типа х и у. Когда компьютер зависает, делается перерыв, после которого все написанное
стирается, и все повторяется заново. Периодически высказываются сомнения в правильно-
сти работы компилятора, компьютера и операционной системы. Когда программа доходит
до стадии выполнения, в нее вводятся произвольные значения, после чего экран становит-
ся объектом пристального удивленного изучения. «Работает» такая программа обычно
только в бережных руках хозяина на одном наборе данных, а внесение в нее изменений
может привести автора к потере веры в себя и ненависти к процессу программирования.
        Ваша задача состоит в том, чтобы научиться подходить к программированию про-
фессионально. В конце концов, профессионал отличается тем, что может достаточно точ-
но оценить, сколько времени у него займет написание программы, которая будет работать
в полном соответствии с поставленной задачей. Кроме «ума, вкуса и терпения», для этого
требуется опыт, а также знание основных принципов, выработанных программистами в
течение более, чем полувека развития этой дисциплины. Даже к написанию самых про-
стых программ нужно подходить последовательно, соблюдая определенную дисциплину.»
(Павловская Т. А., стр.109)
        Решение задач по программированию предполагает ряд этапов:
 1)Разработка математической модели. На этом этапе определяются исходные данные и
 результаты решения задачи, а также математические формулы, с помощью которых мож-
 но перейти от исходных данных к конечному результату.
 2)Разработка алгоритма. Определяются действия, выполняя которые можно будет от ис-
 ходных данных придти к требуемому результату.
 3)Запись программы на некотором языке программирования. На этом этапе каждому
 шагу алгоритма ставится в соответствие конструкция выбранного алгоритмического язы-
 ка.
 4)Выполнение программы (исходный модуль ->компилятор ->объектный модуль ->
 компоновщик -> исполняемый модуль)
 5)Тестирование и отладка программы. При выполнении программы могут возникнуть
 ошибки 3 типов:
     a. синтаксические – исправляются на этапе компиляции;
     b. ошибки исполнения программы (деление на 0, логарифм от отрицательного числа
        и т. п.) – исправляются при выполнении программы;
     c. семантические (логические) ошибки – появляются из-за неправильно понятой зада-
        чи, неправильно составленного алгоритма.
        Чтобы устранить эти ошибки программа должна быть выполнена на некотором на-
боре тестов. Цель процесса тестирования – определение наличия ошибки, нахождение ме-
ста ошибки, ее причины и соответствующие изменения программы – исправление. Тест –
это набор исходных данных, для которых заранее известен результат. Тест выявивший
ошибку считается успешным. Отладка программы заканчивается, когда достаточное коли-
чество тестов выполнилось неуспешно, т. е. программа на них выдала правильные ре-
зультаты.
        Для определения достаточного количества тестов существует два подхода. При
первом подходе программа рассматривается как «черный ящик», в который передают ис-
ходные данные и получают результаты. Устройство самого ящика неизвестно. При этом
подходе, чтобы осуществить полное тестирование, надо проверить программу на всех
входных данных, что практически невозможно. Поэтому вводят специальные критерии,
которые должны показать, какое конечное множество тестов является достаточным для
программы. При первом подходе чаще всего используются следующие критерии:
        1)тестирование классов входных данных, т. е. набор тестов должен содержать по
        одному представителю каждого класса данных: