- •Содержание
- •Лабораторная работа №1 Линейные и разветвляющиеся вычислительные процессы
- •Краткие теоретические сведения
- •Алфавит языка с
- •Классификация данных
- •Декларирование объектов
- •Структура программы
- •Функции вывода информации
- •Функции ввода информации
- •Стандартные математические функции
- •Операция присваивания
- •Операторы перехода
- •If (условие ) оператор1;
- •Оператор выбора switch
- •Пример линейного алгоритма
- •Пример использования оператора if
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Циклы типа while и do–while
- •Вложенные циклы
- •Контрольные вопросы
- •Строки, как одномерные массивы символов
- •Примеры использования стандартных функций работы со строками
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа №4 Многомерные массивы, указатели, динамическое распределение памяти
- •Указатели и операции над адресами
- •Операции над указателями (адресная арифметика)
- •Указатели на указатели
- •Таким образом, указатели на указатели – это имена многомерных массивов.
- •Массивы указателей
- •Динамическое размещенея данных
- •Контрольные вопросы
- •Лабораторная работа №5 Функции пользователя
- •Краткие теоретические сведения
- •Область действия переменных
- •Пример работы с функциями Ввести массив NxN (не больше 50) целых чисел и в функции посчитать сумму его положительных значений.
- •Контрольные вопросы
- •Лабораторная работа № 6 Программирование алгоритмов с использованием структур
- •Краткие теоретические сведения
- •Пример на использование структур
- •Контрольные вопросы
- •Лабораторная работа №7 Файлы в языке с.
- •Контрольные вопросы
- •Лабораторная работа №8 Графический режим работы в языке с.
- •Функции для подготовки графической системы
- •Основные функции для получения изображения
- •Контрольные вопросы
- •Команды работы с блоками:
- •Задание опций интегрированной среды.
- •Набор текста программы.
- •Компиляция, редактирование связей, запуск программы на выполнение.
- •Многофайловая компиляция
- •Отладка программы.
- •Использование глобальных переменных, объявленных вне файла.
- •Литература
- •Лабораторный практикум
- •Редактор
- •Белорусский государственный университет
- •Отпечатано на ротапринте бгуир, 22000, Минск, п.Бровки, 6
Функции ввода информации
Функция getch ()используется для ввода одиночных символов.
Функия gets ()обеспечивает ввод строки символов до нажатия клавиши ENTER.
Функция scanfпредназначена для форматированного ввода информации любого вида. Общий вид функции:
scanf (<управляющая строка>, < список адресов>);
Для нее, как и для функции printf (), указывается управляющая строка. Однако функция scanf(), в отличие от функции printf (), использует в списке адресов указатели на переменные, т.е. их адреса. Для обозначения указателя перед именем переменной записывается символ &, обозначающий адрес переменной. Для ввода значений строковых переменных символ & не используется. При использовании формата %s строка вводится до первого пробела. Вводить данные можно как в одной строке через пробел, так и в разных строках.
Данную особенность иллюстрирует следующий участок программы:
int course;
float grant;
char name[20];
printf ( "Укажите ваш курс, стипендию, имя \n");
scanf ( "%d%f", &course, &grant);
scanf ( "%s", name); /* & отсутствует при указании массива символов */
Стандартные математические функции
Декларации математических функций языка С содержатся в файле <math.h>. В последующих записях аргументыxиyимеют типdouble, параметрnимеет типint. Аргументы тригонометрических функций задаются в радианах (2π радиан = 360). Все приведенные математические функции возвращают значение (результат) типаdouble.
Таблица 3
-
Математическая функция
Имя функции в языке С
1
2
sqrt(x)
|x|
fabs(x)
ex
exp(x)
xy
pow(x,y)
ln(x)
log(x)
lg10(x)
log10(x)
sin(x)
sin(x)
cos(x)
cos(x)
tg(x)
tan(x)
arcsin(x)
asin(x)
arccos(x)
acos(x)
arctg(x)
atan(x)
arctg(x/y)
atan2(x,y)
sh(x)=1/2 (ex-e-x)
sinh(x)
ch(x)=1/2 (ex+e-x)
cosh(x)
tgh(x)
tanh(x)
Остаток от деления x на y
fmod(x,y)
Наименьшее целое, которое >=x
ceil(x)
Наибольшее целое, которое <=x
floor(x)
Операция присваивания
Операция присваивания имеет две формы записи:
Полная форма:
имя_переменной =выражение;
Сначала вычисляется выражение, а затем результат присваивается имени_переменной. Например: y=(x+2)/(3*x)-5;
С помощью одного оператора можнo присвоить одно значение нескольким переменным, например: x=y=z=0; /* x, y, z=0 */
или z=(x=y)*5; - сначала переменной x присваивается значение переменной y, далее вычисляется выражение x*5 , и результат присваивается переменной z.
Сокращенная форма:
имя_переменной операция=выражениe;
где операция – одна из арифметических операций (+ , -, *, /, %);
Например: x*=5; /* x=x*5; */
s+=7; /* s=s+7; */
y/=x+3; /* y=y/(x+3); */
Сокращенная форма операции присваивания применяется тогда, когда переменная используется в обеих частях полной формы данного оператора.
В языке С существует операции уменьшения (--) и увеличения (++) значения переменной на 1. Операции могут быть префиксные (++i и --i) и постфиксные (i++ и i--). При использовании данной операции в выражении, в случае префиксной операции сначала выполняется сама операция (изменяется значение i), и только потом вычисляется выражение. В случае постфиксной операции – операция применяется после вычисления выражения.
Например: b=7;
n=1;
1. c=b*++n; /* n=n+1; c=b*n; т.е. c=14 */
2. c=b*n++; /* c=b*n; n=n+1; т.е. c=7 */