Л. № 2, 2012 -2013 уч. г. , Ионов Ю. Г. ПРОДОЛЖЕНИЕ темы АЛГОРИТМЫ И ПРОГРАММЫ на Си Примеры задач 3 -х типов: 1. Вычислить площадь поверхности цилиндра S= 2*PI*r*r ; S=S+2*PI*r*h, где r- радиус основания, h- высота цилиндра, PI-const (3. 141593). 2/17/2018 2. Определить, принадлежит ли точка при заданных значениях x и y заштрихованной области поверхности. Значения х и у - случайные числа, а также рисунок области задаются. 3. Сформированный массив произвольных значений чисел упорядочить по их возрастанию/убыванию. Программа должна состоять из главной и неглавной функций (формирование массива в неглавной функции: всем элементам присвоить значения от датчика случайных чисел). 1
// Линейный вычислительный процесс. // Вычисление площади поверхности цилиндра #include
//пример 2 //Разветвляющийся вычислительный процесс // координаты точки задаются генератором случайных чисел (ГСЧ) #include
Платформа. NET Среда разработки приложений (ПО) Каркас. NET Framework Библиотека классов каркаса (FCL) Веб-сервисы Интерфейс пользователя . NET Ennterprise Servers Классы для работы с данными и XML Базовые классы среды Общеязыковая среда выполнения (CLR) Операционная система Аппаратные средства компьютера . NET Building Block Services
Схема выполнения программы в. NET
да есть ошибки ? Переход к следующему этапу 2/17/2018 6
ФУНКЦИИ в модулях ПРОГРАММ Было дано общее определение структуры программы (см. Л. № 1). 2/17/2018 7
Функции в языке СИ • Всякая программа на языке Си представляет собой совокупность функций, выполняющих основную работу по реализации некоторого алгоритма • Функции это независимый набор описаний и операторов, заключенных между заголовком функции и ее концом • Все объекты, определенные в теле функции, ограниченном открывающей и закрывающей фигурными скобками, являются локальными для этой функции в смысле области видимости и времени существования • В составе общей программы любая функция идентифицируется своим собственным уникальным именем, которым может быть любое правильное имя в смысле грамматики языка Си • Функция, с которой начинается выполнение программы, называется главной функцией и должна иметь предопределенное имя void main() { } Все остальные функции, входящие в программу, запускаются в работу путем их прямого или опосредованного (через другие функции) вызова • из главной функции 2/17/2018 8
2/17/2018 9
2/17/2018
Обработка массивов (алгоритмы и программы) Пример: задача сортировки – упорядочивание по возрастанию элементов массива А) фрагменты блок-схемы алгоритма сортировки методом прямого выбора …… п е р е с т а н о в к а П О И С К № m I n З Н А Ч Е Н И Я ……. 1 11
/*функция поиска номера минимального по значению элемента массива, который описан в программе глобально*/ int min (int sz, int i, float a[i]) { int m, j; //m-получает номер min m=i; for(j=i+1; j
Таким образом … • Всякая программа на языке Си представляет собой совокупность функций, выполняющих основную работу по реализации некоторого алгоритма. • Функции это независимый набор описаний и операторов, заключенных между заголовком функции и ее концом. • Все объекты, определенные в теле функции, ограниченном открывающей и закрывающей фигурными скобками, являются локальными для этой функции в смысле области видимости и времени существования. • В составе общей программы любая функция идентифицируется своим собственным уникальным именем, которым может быть любое правильное имя в смысле грамматики языка Си. • Имя функции может быть использовано для передачи значения. • Определяя функцию в соответствующей программной компоненте, нужно, прежде всего, • указать ее имя и тип возвращаемого значения, • задать список формальных параметров, • определить тип каждого из них. 2/17/2018 13
• Используя функции, исходную задачу можно представить в виде последовательности более простых задач, каждая из которых реализует некоторую часть общего алгоритма. • Оперируя функциями, состоящими из сравнительно небольшого числа операторов, значительно легче удовлетворить требованиям структурного программирования и снизить трудозатраты на отладку программного обеспечения. • С другой стороны, в виде функций могут быть реализованы отдельные часто используемые алгоритмы. Включение таких функций в состав библиотек дает принципиальную возможность не перепрограммировать всякий раз наиболее ходовые методы, алгоритмы и операции. • Для организации связи между независимыми функциями в языке Си используется либо аппарат формальных/фактических параметров, либо набор глобальных или внешних переменных. • Формальными параметрами мы будем называть аргументы функции, стоящие в ее заголовке и имена которых используются для построения тела функции при ее определении. • Фактическими же параметрами являются произвольные выражения, значения которых передаются формальным параметрам при обращении к функции. Таким образом реализуется возможность передачи необходимой информации от вызывающей функции к вызываемой непосредственно в момент ее вызова. 2/17/2018 14
• Инструкция вызова функции в общем случае имеет следующий формат: void work(int n, float beta) {. . . . } void main() {. . . int n; float b; work(n, b); . . . } • Вызов функции может представлять собой выражение, которое может играть роль операнда в составе более сложного выражения 2/17/2018 15
• В заключение приведем пример программы, вычисляющей квадратный корень из числа, введенного с клавиатуры консольного терминала. Здесь основная работа по нахождению корня выполняется функцией sqrt(), реализующей итерационный метод Ньютона с фиксированным числом итераций. #include
• Дополнительные сведения о семантике и синтаксисе функций будут даны в примерах других тем. • 2/17/2018 17


