Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабник по C.pdf
Скачиваний:
74
Добавлен:
01.06.2015
Размер:
876.9 Кб
Скачать

– 24 –

// Описание тела функции return sin(x);

}

double Integral(double (*fx)(double), double a, double b) { double sum = 0;

double step = (b - a) / M; int i;

for(i=0; i<M; i++)

sum += step * (*fx)(a + i*step/2); return sum;

}

void main() { double a, b;

printf("\nВведите нижний и верхний пределы интегрирования : "); scanf("%f%f",&a,&b);

printf("Значение интеграла = %f",Integral( &Sinus, a, b ));

}

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

Возможна передача аргументов в функцию main. Аргументы вводятся из командной строки запуска программы. Общий вид параметров следующий:

main( int argc, char *argv[] )

где значением argc является количество параметров, записанных в командной строке (параметры должны разделяться пробелами); *argv[] – двумерный массив, в который заносятся значения параметров; arg[0] всегда содержит имя исполняемого файла, arg[1] – первый параметр, arg[2] – второй и т.д. Как правило, в качестве параметров используются имена файлов, содержимое которых используется в программе.

Пример программы, печатающей список своих аргументов:

#include <stdio.h>

void main(int argc, char *argv){ int i;

printf (”Значения argc=%d”, argc); for( i=0; i<argc; i++ )

printf(”\n Параметры командной строки %d=%s \n”, i, argv[i]);

}

6. ФУНКЦИИ ВВОДА С КЛАВИАТУРЫ И ВЫВОДА НА ДИСПЛЕЙ

6.1. ФОРМАТИРОВАННЫЙ ВЫВОД

printf(управляющая строка, аргумент 1, аргумент 2, ...);

В качестве аргумента может быть использована переменная, константа, выражение. В управляющую строку входят текст, который будет выведен помимо значений аргументов, и форматы представления значений аргументов на экране. Форматы начинаются со знака %. В управляющую строку может входить символ '\n', который означает, что вывод будет начинаться с новой строки. (Далее курсивом приводятся данные, выведенные на экран)

int x=3: int y=2;

printf("Значения переменных: x=%d y=%d\n",x,y);

Значения переменных: x=3 y=2.

© 1998 Калачев Д.П., Лутай В.Н.

– 25 –

Далее следует перечень часто используемых форматов.

%d для целого числа;

%c для одиночного символа;

%s для строки;

%u для целого без знака;

%f для вывода числа с фиксированной точкой;

%e для вывода числа в экспоненциальной форме.

При выводе в форматах f и e можно управлять количеством символов всего числа (w) и дробной его части (d), записывая выражение w.d сразу после символа %.

double x=140.456; printf("%10.5d\n",x);

Здесь для числа выделено 10 позиций на экране, из них 5 для дробной части.

Функция printf не проверяет соответствия элементов формата и типов выводимых переменных. Например, можно таким образом вывести символ и его десятичный код:

char c ='a';

printf( "Символ: %c, код: %d\n", c, c );

6.2. ФОРМАТИРОВАННЫЙ ВВОД

scanf( управляющая строка, аргумент1, аргумент2, ... );

В управляющую строку входят те же форматы данных, что и в функции printf. Аргумент должен быть адресом переменной, в которую вводятся значения. Если переменная имеет простой тип (символ или число), то соответствующим аргументом является &имя_переменной; если переменная – массив, то в качестве аргумента указывается его имя.

int pit;

char matr[10]; scanf("%d",&pit); scanf("%s",matr);

Так как функция scanf использует ввод данных через буфер, то после набора литер на клавиатуре необходимо нажать клавишу «Enter».

char name[10], surname[15]; scanf ("%s %s", name, surname);

6.3. ВВОД СТРОКИ

gets( имя_строки );

Вводимая строка считается законченной при нажатии клавиши «Enter». Функция gets помещает набор символов в память, а затем добавляет символ конца строки ’\0’.

char string[50]; gets( string );

6.4. ВЫВОД СТРОКИ

© 1998 Калачев Д.П., Лутай В.Н.