Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Puts("Сколько байтов в одном килобайте?"); puts("Для получения ответа нажмите Enter");

¶a++ae æepcue u+uru æɵuyye+a sneuwpo++ɵu usgawenacwæou "Books-shop".

Pacupocwpa+e+ue, upogaua, uepesauuca ga++on u+uru unu ee ¬acwen 3AMPE[EHª.

O æcex +apyue+uex upoca6a coo6yawa uo agpecy piracy@books-shop.com

pause = getchar(); answer();

puts("В одном килобайте 1024 байта."); return(0);

return(0);

Функцию можно вызвать из любого места программы, в том числе, из другой функции. Инструкция return(0); в теле функции всегда передает управление инструкции, следующей за вызовом функции. В Листинге 7.1 приведен текст программы с двумя не библиотечными функциями. Первая из них называется

question() и вызывается из main(). Вторая значится под именем answer() и вызывается из функции question(). Инструкция return(0) в answer() возвращает управление назад в question(), из которой позже происходит возврат в main(). Ниже приведен результат работы этой программы, причем для каждого со- общения указана функция, выводящая его на экран.

Добро пожаловать в наш Опросник. main() Скажите название графического интерфейса фирмы Microsoft. question() Для получения правильного ответа нажмите Enter. question() Правильный ответ - Windows. answer()

Благодарим за участие. main()

Листинг 7.1. Программа, в которой осуществляется вызов двух функций.

/*quiz2.c*/ main()

question()

{

puts("Добро пожаловать в наш Опросник.\n"); question();

puts("Благодарим за участие.\n"); return(0);

}

{

int move_on;

puts("Скажите название графического \

интерфейса фирмы Microsoft.\n");

puts("Для получения правильного ответа \

нажмите Enter.\n");

move_on = getchar(); answer(); return(0);

}

answer()

{

puts("Правильный ответ - Windows.\n"); return(0);

}

Лучший способ использования функций— это разбивка программы на отдельные блоки. Функция main() выполняет при этом обязанности «мажордома», определяя начало программы и обеспечивая вызов других функций. Это хорошо продемонстрировано в Листинге7.2, являющемся вариантом программы Опросника. Здесь main() содержит только инструкции вызова функций. Настоящая «работа» программы обеспечива- ется в функциях, вызываемых main().

Листинг 7.2. Программа, использующая main() для вызова других функций.

/*quiz3.c*/ main()

welcome()

question()

answer()

the_end()

{

welcome(); question(); answer(); the_end(); return(0);

}

{

puts("Добро пожаловать в наш Опросник.\n"); return(0);

}

{

int move_on;

puts("Скажите название графического интерфейса фирмы Microsoft.\n"); puts("Для получения правильного ответа нажмите Enter.\n");

move_on = getchar(); return(0);

}

{

puts("Правильный ответ - Windows.\n"); return(0);

}

{

puts("Благодарим за участие.\n"); return(0);

}

Подобная структура упрощает процесс поиска ошибок. Например, если обнаружились проблемы с выво- дом на экран правильного ответа, ошибку следует искать в инструкциях функции answer().

Функции выполняются в порядке вызова независимо от их местоположения в тексте программы. Мы мо- жем поместить функции в Листинге7.2, например, в таком порядке:

main()

answer() welcome() the_end() question()

Результат работы программы от этого не изменится, так как не изменился порядок вызова функций в

main().