- •Основы программирования
- •Содержание
- •Лабораторная работа №1 Линейные и разветвляющиеся вычислительные процессы
- •Краткие теоретические сведения
- •Классификация данных
- •Декларирование объектов
- •Структура программы
- •Константы
- •Операции Операции выражения
- •Арифметические операции
- •Операция присваивания
- •Сокращенная запись операции присваивания
- •X##; - постфиксную.
- •Преобразование типов операндов арифметических операций
- •Операция приведения типа
- •Операции сравнения
- •Логические операции
- •Побитовые логические операции, операции над битами
- •Операция «,» (запятая)
- •Функции вывода информации
- •Функции ввода информации
- •Ввод - вывод потоками
- •Стандартные математические функции
- •Синтаксис операторов языка Си
- •Операция присваивания
- •Условные операторы
- •If (условие ) оператор1;
- •If (условие1) оператор1;
- •Условная операция "? :"
- •Оператор выбора switch
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Циклические операторы while и do–while
- •Вложенные циклы
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Строки, как одномерные массивы символов
- •Указатели и операции над адресами
- •Операции над указателями (адресная арифметика)
- •Связь указателей и массивов
- •Пример 1: Упорядочить по алфавиту массив строк (не более 20) длиной не более 10 символов в каждой:
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа №4 Многомерные массивы, динамическое распределение памяти
- •Краткие теоретические сведения
- •Массивы указателей
- •Указатели на указатели
- •Динамическое размещение данных
- •Проверить, является ли введенная строка полиндромом (справа-налево читается также как и слева-направо).
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Вызов функции.
- •Изменение значений параметров.
- •Область действия переменных
- •Классы памяти.
- •Рекурсивные функции.
- •Операция typedef
- •Указатели на функции
- •Примеры работы с функциями
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Декларация структурного типа данных
- •Создание структурных переменных
- •Обращение к полям структур
- •Вложенные структуры
- •Использование typedef
- •Массивы структур
- •Размещение структурных переменных в памяти
- •Пример на использование структур
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 7 Файлы в языке с
- •Краткие теоретические сведения
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Лабораторная работа № 8 Графический режим работы
- •Kраткие теоретические сведения
- •Варианты индивидуальных заданий
- •Контрольные вопросы
- •Команды вставки и удаления (под блоком понимается выделенное подсветкой подмножество символов)
- •Команды работы с блоками
- •Набор текста программы
- •Компиляция, редактирование связей, запуск программы на выполнение
- •Многофайловая компиляция
- •Отладка программы
- •Использование глобальных переменных, объявленных вне файла
- •Литература
Функции ввода информации
Функция 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); /* & отсутствует при указании массива символов */
Ввод - вывод потоками
Поток - это абстрактное понятие расширенной версии языка Си, которое относится к любому переносу данных от источника к приемнику. Для ввода-вывода используются две переопределенные операции побитового сдвига <<, >>.
Формат записи:
cout<<IDпеременной;
cin >> IDпеременной;
Стандартный поток вывода cout - по умолчанию подключен к монитору, ввода cin - к клавиатуре.
Для их работы необходимо подключить файл iostream.h.
Примерпрограммы демонстрирующий работу потоков ввода-вывода:
#include<iostream.h>
#include<conio.h>
void main (void)
{
int i, j, k;
cout«" Hello!"« endl; // end line - переход на новую строку
cout«" Input i, j";
cin >> i >>j;
k = i+j;
cout << " Sum i, j = " << k << endl;
}
Манипуляторы потоков:
setprecision(n) // установка числа разрядов справа от десятичной точки выводимого значения,
// где n число разрядов.
setw(k) // установка числа позиций в которое выводится значение, где к число позиций.
Для их работы необходимо подключить файл iomanip.h.
Пример
#include <iostream.h>
#include <iomanip.h>
void main()
{
float e=56.4;
float g=1.456789;
int f=215;
cout<<setprecision(10)<<"e="<<e<<endl;
cout<<setprecision(10)<<"e="<<setw(20)<<e<<endl;
cout<<setprecision(0)<<"g="<<setw(20)<<g<<endl;
cout<<setprecision(4)<<"g="<<g<<endl;
cout<<setprecision(8)<<"g="<<setw(20)<<g<<endl;
cout<<"f="<<setw(20)<<f<<endl;
cout<<setw(20)<<"f="<<f<<endl;
}
результат выполнения программы:
e=56.4000015259
e=_ _ _ _ _ _ _ 56.4000015259
g=_ _ _ _ _ _ _ _ _ _ _ _ 1.456789
g=1.4568
g=_ _ _ _ _ _ _ _ _ _ 1.45678902
f=_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 215
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ f=215
Стандартные математические функции
Декларации математических функций языка С содержатся в файле <math.h>. В последующих записях аргументы x и y имеют тип double, параметр n имеет тип int. Аргументы тригонометрических функций задаются в радианах (2π радиан = 360). Все приведенные математические функции возвращают значение (результат) типа double.
Таблица 3
Математическая функция |
Имя функции в языке С |
Математическая функция |
Имя функции в языке С |
sqrt(x) |
arcsin(x) |
asin(x) | |
|x| (для целых) |
abs(x) |
arccos(x) |
acos(x) |
|x| (для вещественных) |
fabs(x) |
arctg(x) |
atan(x) |
ex |
exp(x) |
arctg(x/y) |
atan2(x,y) |
xy |
pow(x,y) |
sh(x)=1/2 (ex-e-x) |
sinh(x) |
ln(x) |
log(x) |
ch(x)=1/2 (ex+e-x) |
cosh(x) |
lg10(x) |
log10(x) |
tgh(x) |
tanh(x) |
sin(x) |
sin(x) |
Остаток от деления x на y |
fmod(x,y) |
cos(x) |
cos(x) |
Наименьшее целое >=x |
ceil(x) |
tg(x) |
tan(x) |
Наибольшее целое <=x |
floor(x) |