- •ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С И С++
- •СОДЕРЖАНИЕ
- •ВВЕДЕНИЕ
- •1. ЛЕКСИКА ЯЗЫКА C
- •1.1. РАЗДЕЛИТЕЛИ
- •1.2. КОММЕНТАРИИ
- •2. ДАННЫЕ И ОПЕРАЦИИ
- •2.1. БАЗОВЫЕ ТИПЫ ДАННЫХ
- •Наименование
- •Диапазон
- •2.2. КОНСТАНТЫ
- •Целые константы
- •Константы с плавающей точкой
- •Символьные константы
- •2.3. ОПРЕДЕЛЕНИЕ ПЕРЕМЕННЫХ И ТИПИЗИРОВАННЫХ КОНСТАНТ
- •2.4. ОДНОМЕРНЫЙ МАССИВ
- •2.5. СТРОКИ, СТРОКОВЫЕ КОНСТАНТЫ
- •2.6. УКАЗАТЕЛИ
- •2.7. ПЕРЕИМЕНОВАНИЯ ТИПОВ
- •2.8. СТРУКТУРЫ
- •2.9. МАССИВЫ СТРУКТУР
- •2.10. МНОГОМЕРНЫЕ МАССИВЫ
- •2.11. ОБЪЕДИНЕНИЕ
- •2.12. ПЕРЕЧИСЛЕНИЕ
- •2.13. БИТОВОЕ ПОЛЕ ( ЗАПИСЬ )
- •3. ОПЕРАЦИИ И ВЫРАЖЕНИЯ
- •3.1. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
- •3.2. ОПЕРАЦИИ СРАВНЕНИЯ
- •3.3. ЛОГИЧЕСКИЕ ОПЕРАЦИИ
- •3.4. ПОБИТОВЫЕ (ПОРАЗРЯДНЫЕ) ОПЕРАЦИИ
- •3.5. ОПЕРАЦИИ ПРИСВАИВАНИЯ
- •3.6. АДРЕСНЫЕ ОПЕРАЦИИ
- •3.7. ДОСТУП К ПОЛЯМ СТРУКТУР, ОБЪЕДИНЕНИЙ И ЗАПИСЕЙ
- •3.8. ДРУГИЕ ОПЕРАЦИИ
- •3.9. ПОРЯДОК ВЫПОЛНЕНИЯ ОПЕРАЦИЙ В ВЫРАЖЕНИИ
- •4. ОПЕРАТОРЫ
- •4.1. ОПЕРАТОР-ВЫРАЖЕНИЕ
- •4.2. ПУСТОЙ ОПЕРАТОР
- •4.3. СОСТАВНОЙ ОПЕРАТОР
- •4.4. УСЛОВНЫЕ ОПЕРАТОРЫ
- •4.5. ОПЕРАТОРЫ ЦИКЛА
- •while( выражение) оператор;
- •do оператор while ( выражение );
- •for( выражение1; выражение2; выражение3 ) оператор;
- •4.6. ОПЕРАТОРЫ ПЕРЕХОДА
- •break;
- •switch
- •continue;
- •goto метка;
- •5. ФУНКЦИИ. КЛАССЫ ПАМЯТИ
- •5.1. ФУНКЦИИ
- •5.2. КЛАССЫ ПАМЯТИ
- •класс памяти
- •ключевое слово
- •существование
- •видимость
- •5.3. ВОЗВРАЩЕНИЕ ЗНАЧЕНИЙ
- •5.4. АРГУМЕНТЫ ФУНКЦИИ
- •6. ФУНКЦИИ ВВОДА С КЛАВИАТУРЫ И ВЫВОДА НА ДИСПЛЕЙ
- •6.1. ФОРМАТИРОВАННЫЙ ВЫВОД
- •6.2. ФОРМАТИРОВАННЫЙ ВВОД
- •6.3. ВВОД СТРОКИ
- •6.4. ВЫВОД СТРОКИ
- •6.5. ВВОД СИМВОЛА
- •6.6. ВЫВОД СИМВОЛА
- •7. ПРЕПРОЦЕССОР
- •7.1. ВКЛЮЧЕНИЕ ФАЙЛОВ
- •7.2. ВЫПОЛНЕНИЕ ПОДСТАНОВОК
- •7.3. УСЛОВНАЯ КОМПИЛЯЦИЯ
- •8. ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ, СПИСКИ
- •8.1. ВЫДЕЛЕНИЕ И ОСВОБОЖДЕНИЕ ДИНАМИЧЕСКОЙ ПАМЯТИ
- •8.2. СПИСКИ
- •Рис.1. Структура однонаправленного линейного списка
- •9. ФАЙЛЫ
- •9.1. ОТКРЫТИЕ И ЗАКРЫТИЕ ФАЙЛОВ
- •9.2. ЧТЕНИЕ И ЗАПИСЬ В ФАЙЛ
- •9.3. ПРОИЗВОЛЬНЫЙ ДОСТУП К ФАЙЛУ
- •10. ЛАБОРАТОРНЫЕ РАБОТЫ
- •10.1. МАССИВЫ И СИМВОЛЬНЫЕ СТРОКИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.2. ФУНКЦИИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.3. СТРУКТУРЫ И МАССИВЫ СТРУКТУР
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.4. ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ, СПИСКИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.5. РАБОТА С ФАЙЛАМИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •11. ВВЕДЕНИЕ В C++
- •12. КЛАССЫ
- •12.1. ОБЩИЕ ПОЛОЖЕНИЯ
- •12.2. КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
- •12.3. СОЗДАНИЕ И ВЫЗОВ ОБЪЕКТОВ
- •12.4. ДРУЖЕСТВЕННЫЕ ФУНКЦИИ
- •12.5. ПЕPЕГPУЖЕННЫЕ ОПЕPАЦИИ И ФУНКЦИИ
- •12.6. ПАРАМЕТРИЗИРОВАННЫЕ КЛАССЫ
- •12.7. ПРЕОБРАЗОВАНИЕ ТИПОВ
- •12.8. СТАТИЧЕСКИЕ КОМПОНЕНТЫ КЛАССА
- •13. ПРОИЗВОДНЫЕ КЛАССЫ, НАСЛЕДОВАНИЕ
- •13.1. ИЕРАРХИЯ КЛАССОВ
- •13.2. ДОСТУП К НАСЛЕДУЕМЫМ КОМПОНЕНТАМ
- •Доступ в базовом классе
- •Модификатор доступа
- •14. ВИРТУАЛЬНЫЕ ФУНКЦИИ
- •14.1. ОБЩИЕ ПОЛОЖЕНИЯ
- •14.2. ВИРТУАЛЬНЫЕ ДЕСТРУКТОРЫ
- •14.3. АБСТРАКТНЫЕ КЛАССЫ
- •15.1. ВЫВОД ДАННЫХ
- •15.2. ВВОД ДАННЫХ
- •15.3. ВВОД-ВЫВОД ДАННЫХ, ОПРЕДЕЛЕННЫХ ПОЛЬЗОВАТЕЛЕМ
- •15.4. РАБОТА С ДИСКОВЫМИ ФАЙЛАМИ
- •15.5. ОБРАБОТКА ИСКЛЮЧЕНИЙ
- •ЛИТЕРАТУРА
– 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 Калачев Д.П., Лутай В.Н.