Язык Си часть 1. Язык Си Часть Интегрированная среда, первая программа
Скачать 1.52 Mb.
|
Тема №4. Функции в языке Си Задание: реализуйте задачу по теме №3 с использованием функ- ций, причем требование о реализации отдельными видами циклов ос- тается в силе. Начиная с этой темы все отдельные действия, необхо- димо будет реализовывать с помощью функций. Краткая теоретическая справка и рекомендации по выполне- нию Общие сведения о функциях представлены в книге на страницах с 203 по 215. В теме №4 выделим вопросы: 1) общая структура функции в языке Си (стр. 203), которая, как и функция main и математические функции, рассмотренные в теме №1, может содержать: тип_результата имя_функции (параметры) { // начало блока функции // тело функции } // конец блока функции Параметры для функции не обязательны, но круглые скобки – должны быть. 2) прототип функции (стр. 206), который можно было бы предста- вить себе как предварительное описание функции (без реализации, то есть без тела функции): тип_результата имя_функции (параметры); 3) формальные параметры (стр. 203-205), которые задают тип па- раметров при декларировании (описании) функции, а также исполь- зуются при представлении реализации функции; 4) фактические параметры (стр. 203-205), которые задают реаль- ные данные для работы функции, другими словами, это те параметры, которые задаются при вызове функции на исполнение; 5) вызов функции на исполнение (стр. 207) возможен, если перед ее вызовом либо был указан прототип, либо дана реализация, то есть 48 функция должна быть декларирована (представлена) до момента ис- пользования. Пример решения задачи по теме №3 с использованием функ- ций. Пример решения дадим только для цикла for. Решения с другими видами циклов реализуйте самостоятельно. В нашем примере функ- ция будет универсальной для печати любой из трех частей (подстрок) по теме №3. #include #include // Описание прототипа функции void Part ( // формальные параметры unsigned char, // первый символ для печати unsigned char, // количество печатаемых символов unsigned char // шаг изменения печати ); // заметьте присутствие точки с запятой int main() { unsigned char n; // переменная задающая номер строки for (n = 1; n<=5; n++) //номер строки изменяется от 1 до 5 { // Печать первой части Part ( 'I' - (n-2)*2, n-1, 2); Вызов функции на исполнение // Печать второй части Part ( 'A', 1, 0); Вызов функции на исполнение // Печать третьей части Part ( 'C', 5-n, 2); Вызов функции на исполнение // Переход на следующую строку printf("\n"); } 49 system("pause"); return 0; } // Завершение главной функции // Описание реализации функции void Part ( // формальные параметры unsigned char Symbol, // первый символ для печати unsigned char Number, // количество печатаемых символов unsigned char Step // шаг изменения печати ) // заметьте отсутствие точки с запятой { // тело функции unsigned char Cnt; // счетчик печатаемых символов for ( Cnt=1; Cnt<=Number; Cnt++ ) { printf ("%2c", Symbol); Symbol += Step; } } Заметим еще раз, что для вывода всех трех частей строки исполь- зуется одна и та же функция, меняются только ее параметры. Пара- метры, используемые в данном примере, являются только параметра- ми-значениями. Параметры-переменные отличаются тем, что они пе- редаются в виде адреса, размещения данных в оперативной памяти. Параметры-переменные будут подробнее рассмотрены в следующих темах. Контрольные вопросы по теме №4 1. Что такое глобальные переменные? 2. Что такое локальные переменные? 3. Что такое параметры-значения? 4. Что такое формальные параметры? 5. Что такое фактические параметры? |