русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции без результатов. Передача параметров по значению

1.1. Примеры. Правила оформления и вызова функций

П р и м е р 1. Пусть необходимо дважды вывести горизонтальную линию, состоящую из 40 символов псевдографики “-” с кодом 196.

// 1-й вариант (без функции)

int main()

{ cout<<"Testing of function: \n the first line ";

cout<<endl;

for (int i=1; i<=40; i++)

cout<<'-';

cout<<endl;

cout<<" The second line";

cout<<endl;

for (int i=1; i<=40; i++)

cout<<'-';

cout<<endl;

getch(); return 0;

}

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

// 2-й вариант (с функцией)

#include <iostream.h>

#include <conio.h>

void LINE1(); // Прототип (объявление) функции.

int main()

{ // Начало функции main()

cout<<"Testing of function: \n the first line ";

LINE1(); // Вызов функции.

cout<<" The second line";

LINE1(); // Вызов функции.

getch(); return 0;

} // Конец функции main()

// Повторяем заголовок функции без символа “;” в конце

void LINE1()

// Описание (определение) функции, т. е. её текст.

{ int i;

cout<<endl;

for (i=1; i<=40; i++)

cout<<'-';

cout<<endl;

}

Перед функцией main() записываем прототип (объявление, заголовок) функции. Ключевое слово voidв данном случае означает, что функция не возвращает результаты. Далее следует имя функции по обычным правилам записи идентификаторов (см. 1.5). Пустые круглые скобки означают, что функция не имеет никаких параметров, ни входных, ни выходных (результатов). Слово void при этом в круглых скобках (но не в начале ! ) можно не писать, как это было в “старом” языке С. Заметим, что после прототипа обязательно записывается символ “;” (точка с запятой), а при описании функции этот символ не пишем.

Описание функции размещаем после текста функции main(). Повторяем заголовок, но без “;” в конце, и затем записываем её текст. При необходимости внутри функции объявляются так называемые локальные переменные (переменная i для счётчика). Они не являются ни входными, ни выходными переменными, а предназначены для хранения промежуточных величин. Такие переменные можно использовать только внутри данной функции. Здесь, как и раньше, переменную i можно было объявить в заголовке оператора for.

П р и м е р 2. Усложним задачу. Пусть надо первый раз вывести, например, 20 символов “*” в 5-й, а не в текущей строке, а второй — линию из 40 символов “–” в 10-й строке. Поэтому функция будет иметь три входных параметра: Len для длины линии, y для номера строки экрана, в которой будем выводить линию, и ch для выводимого символа.

void LINE2(int Len, int y, char ch);

int main()

{ cout<<"Testing of function: \n The first call of function";

LINE2 ( 20 , 5 , '*');

int LEN, Y, C=196;

cout<<" The second call of function";

cin>>LEN>>Y;

LINE2(LEN, Y, C);

getch(); return 0;

}

void LINE2(int Len, int y, char ch)

{ gotoxy(1,y);

for (int i=1; i<=Len; i++)

cout<<ch;

cout<<endl;

}

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

void LINE2(int Len, y, char ch) // ошибка,

как при объявлении переменных. Имена параметров обязательны только в заголовке описания, а в прототипе можно указать только их типы: void LINE2(int , int , char ).

Вызов функции типа void выполняется, как и на Pascal, без использования дополнительного оператора, как это имеет место в некоторых других языках. Достаточно записать имя функции и в скобках, если есть, параметры. Если параметры отсутствуют, то и в прототипе, и в описании, и при вызове функции необходимо обязательно записать пустые круглые скобки.

Просмотров: 426


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.