Функция ввод с клавиатуры - Scanf
Функция включена в библиотеку stdio.h и используется в С и в консольных приложениях С++и обычно имеет вид:
int scanf («<управляющая строка>«,<список адресов переменных ввода>);
Каждой вводимой переменной в строке функции scanf должна соответствовать спецификация ввода. Перед именами переменных следует поставить символ &.(«взятие адреса»).
Спецификация начинается с символа % и имеет вид:
% [*] [<ширина>] [h|l|L] <символ формата>
‑ пропустить вводимое значение.
<ширина> ‑ максимально вводимое число символов (ширина поля ввода).
h|l|L ‑ тип модификации символа формата по умолчанию: h (short int), l (long int или double), L (long double).
<символ формата> - задает тип вводимого данного: d, i (int); D, I (long); e, E, f,g, G (float); u (unsigned int); U (unsigned long); s (строка); c (char); n, p (указатели).
Пример:
float weight; /* вес */ int height; /* рост */
printf ( «Введите ваш вес и рост « ); scanf («%f %d «, &weight, &height);
Функция Main в консольных приложениях
Каждый исполняемый файл консольного приложения должен содержать функцию main(главная). Если функция main имеет параметры, то эти параметры выбираются из строки вызова, и их значениями являются строки символов. В этом случае заголовок main и вся функция имеет вид: int main (int argc, char **argv) { /* тело функции */ }
В заголовке функции указываются два аргумента:
аrgc - число передаваемых в командной строке вызова аргументов + 1;
argv - массив строк со значениями аргументов в командной строке. Строка, определяемая argv[0], содержит имя самой программы. Все значения передаются в виде символьных строк. Если значение аргумента в командной строке содержит пробелы, то оно заключается в кавычки. Количество аргументов может быть выражено переменным числом.
Функции
Процесс разработки приложения предполагает расчленение сложной задачи на функции. Обычно функции задаются после основной функции. Функции могут иметь несколько параметров и возвращают значение скалярного типа, типа void(отсутствие возвращаемого значения) или указатель. Возвращаемое значение формируется оператором return(п.6.2.10.2). При вызове функции значения аргументов, задаваемые на входе, должны соответствовать числу и типу параметров в описании функции. С++ поддерживает прототипы (объявления) функций.
Примерфункции cube, вычисляющей куб числа:
Int main(int argc,char **argv) // основная функция
{double cube(double x); // объявление функции cube
printf(«\n2 в кубе=%.0f «,cube(2.0));/*вывод куба числа 2*/getch();return 0;}
double cube( double x ) { return x * x * x ; } // тело функции cube
Изменение значения аргумента в функции производится путем передачи его адреса (например, в виде &<имя переменной> (п. 6.3)).
Примерпередачи адреса аргумента:
int main(int argc, char **argv) // основная функция
{void vvod(char *s, int *v); // объявление функции адресом аргумента int *v
int vozrast; vvod(«Введите возраст сотрудника»,&vozrast);// вызов функции
printf(«\n %d»,vozrast); getch();}// конец основной функции
void vvod(char *s, int *v) {printf («\n %s»,s); scanf(«%d»,v);}// функция ввода
Перегруженные функции задают семейство одноименных функций с различными типами параметров. Компилятор автоматически выберет нужную функцию по типам аргументов.
Пример функций add сложения вещественных и целых чисел:
void __fastcall TForm1::Button1Click(TObject *Sender) // основная функция
{float add(float x,float y);Label1->Caption=add(1.2,2.4);//вещественные числа
int add (int x, int y); Label2->Caption=add(1,5); // целые числа
}
float add (float x, float y) {return x+y;} // функция сложения вешественных int add (int x, int y) {return x+y;} // функция сложения целых чисел
Для таких функций лучше использовать шаблоны функций (п. 6.6.4).
Классы памяти
Каждая переменная и функция, описанная в программе, принадлежат к какому-либо классу памяти. Класс памяти переменной определяет время ее существования и область видимости. Класс памяти для переменной задается либо по расположению ее описания, либо при помощи специального спецификатора класса памяти, помещаемого перед обычным описанием. Класс памяти для функции всегда external, если только перед описанием функции не стоит спецификатор static. Все переменные можно отнести к одному из следующих классов памяти: automatic(автоматическая, локальная), register(регистровая), extern (внешняя), static (статическая).
Дата добавления: 2016-03-22; просмотров: 677;