- •Предисловие
- •Знакомство с языком C
- •Структура программы
- •Пример простой программы
- •Более сложный пример
- •Контрольные вопросы
- •Основные понятия, объявление переменных, типы данных
- •Объявление переменных
- •Примеры описаний переменных:
- •Основные типы данных
- •Производные типы.
- •Контрольные вопросы
- •Ввод/вывод с помощью функций printf() и scanf().
- •Модификаторы спецификаций преобразования используемые в функции printf()
- •Применение функции scanf()
- •Контрольные вопросы
- •Операции
- •Простейшие арифметические операции
- •Операция присваивания
- •Использование в выражениях операндов разных типов
- •Операции преобразования типов
- •Дополнительные арифметические операции
- •Дополнительные операции присваивания
- •Операции отношения
- •Логические операции
- •Приоритеты операций
- •Таблица 3. Таблица приоритетов рассмотренных выше операций
- •Контрольные вопросы
- •Операторы
- •Оператор-выражение
- •Ветвление
- •Условный оператор
- •Оператор switch
- •Оператор break
- •Циклы
- •Цикл while
- •Цикл do…while
- •Цикл for
- •Другие операторы
- •Оператор continue
- •Оператор goto
- •Оператор вызова функции
- •Контрольные вопросы
- •Обработка числовых последовательностей
- •Последовательная обработка
- •Обработка числовых последовательностей
- •Примеры
- •Контрольные вопросы
- •Последовательная обработка символьных данных
- •Символьные данные
- •Последовательная обработка символов
- •Функции getchar( ) и putchar( )
- •Контрольные вопросы
- •Обработка массивов
- •Массивы
- •Объявление массива
- •Использование и обработка массивов
- •Примеры
- •Контрольные вопросы
- •Указатели и динамические массивы
- •Указатели
- •Динамическое выделение памяти
- •Статические и динамические массивы
- •Контрольные вопросы
- •Подпрограммы
- •Описание подпрограмм
- •Параметры подпрограмм
- •Область действия переменных
- •Примеры
- •Контрольные вопросы
- •Рекурсивные функции
- •Понятие рекурсивной функции
- •Контрольные вопросы
- •Символьные строки и функции обработки строк
- •Посимвольная обработка строк
- •Пример программы
- •Контрольные вопросы
- •Структуры
- •Тип данных структура
- •Контрольные вопросы
- •Работа с файлами
- •Примеры
- •Контрольные вопросы
- •Массивы и функции как параметры
- •Указатели на функции
- •Массивы и указатели
- •Указатели и двумерные массивы
- •Пример
- •Технологии программирования
- •Структурное программирование
- •Модульное программирование
- •Объектно-ориентированное программирование
- •Компонентное программирование
- •Структурная декомпозиция задачи и разработка алгоритмов и программ методами сверху вниз и снизу вверх
- •Контрольные вопросы
- •Модульное программирование
- •Работа с графикой на языке C и модуль graphics.h
- •Типы видео мониторов и их режимы
- •Инициализация графики
- •Система координат
- •Основные графические функции
- •Функции рисования
- •Функции изменения параметров рисования
- •Шаблоны линий
- •Шаблоны закраски
- •Задание на расчетно-графическую работу
- •Порядок выполнения работы
- •Задание
- •Задание для вариантов 1-11
- •Задание для вариантов 12-20
- •Задание для вариантов 21-40
- •Пример исходных данных для вариантов 12-16
- •Задание для вариантов 41-60
- •Варианты индивидуальных заданий
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Вариант 21
- •Вариант 22
- •Вариант 23
- •Вариант 24
- •Вариант 25
- •Вариант 26
- •Вариант 27
- •Вариант 28
- •Вариант 29
- •Вариант 30
- •Вариант 31
- •Вариант 32
- •Вариант33
- •Вариант 34
- •Вариант 35
- •Вариант 36
- •Вариант 37
- •Вариант 38
- •Вариант 39
- •Вариант 40
- •Вариант 41
- •Вариант 42
- •Вариант 43
- •Вариант 44
- •Вариант 45
- •Вариант 46
- •Вариант 47
- •Вариант 48
- •Вариант 49
- •Вариант 50
- •Вариант 51
- •Вариант 52
- •Вариант 53
- •Вариант 54
- •Вариант 55
- •Вариант 56
- •Вариант 57
- •Вариант 58
- •Вариант 59
- •Вариант 60
- •Задания на курсовую работу
- •Требования к курсовой работе
- •Этапы разработки программ
- •Содержание отчета по курсовой работе
- •Задания к курсовой работе
- •Литература
- •Функции консольного ввода/вывода
- •Функции обработки строк
- •Функции преобразования данных
Задание для вариантов 21-40
Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика (сделать для одного из приведенных графиков). Параметр R вводится с клавиатуры. График изменяется в зависимости от введенного значения таким образом, что начальная точка графика остаётся фиксированной, размер и угол наклона отрезков не изменяются, участки графика остаются соединёнными.
Пример исходных данных для вариантов 12-16
Таблица 1. Лидеры мирового рынка ПК
Рейтинг |
Поставщик |
Объем |
Доля |
Объем |
Доля |
Рост |
|
1996г. |
|
продаж |
рынка |
продаж |
рынка |
95/96,% |
|
|
|
1996г., |
1996г.,% |
1995г.,тыс.шт. |
1995г.,% |
|
|
|
|
тыс.шт. |
|
|
|
|
|
1 |
Compaq |
7036 |
10,3 |
5757 |
9,8 |
22 |
|
2 |
IBM |
6081 |
8,9 |
4785 |
8,1 |
27 |
|
|
Packard, |
4247 |
6,2 |
4392 |
7,5 |
-3 |
|
3 |
Bell,NEC |
||||||
|
|
|
|
|
|||
4 |
Apple |
3587 |
5,2 |
4627 |
7,9 |
22 |
|
5 |
HP |
2995 |
4,4 |
2023 |
3,4 |
48 |
|
6 |
Другие |
44459 |
65 |
37221 |
63,3 |
19 |
Задание для вариантов 41-60
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом. Вывести на экран рисунок с точкой в указанных координатах и текстовое сообщение о результате.
Варианты индивидуальных заданий
Вариант 1
∞ |
1 |
|
|
1 |
|
1 |
|
|
1 |
|
|
,| x |>1; |
y(x) = 2∑ |
|
= 2 |
+ |
|
+ |
|
+... |
|||||
(2n +1)x |
2n+1 |
3x |
3 |
5x |
5 |
|||||||
n=0 |
|
|
x |
|
|
|
|
|
|
z(x) = ln xx +−11 +b.
147
Вариант 2
∞ |
(−1) |
n |
x |
n |
|
x |
2 |
|
x |
3 |
|
x |
4 |
|
y(x) = ∑ |
|
|
=1− x + |
|
− |
|
+ |
|
−...,| x |< ∞ |
|||||
n! |
|
|
|
|
|
|
|
|
||||||
n=0 |
|
|
2! |
3! |
4! |
|
z(x) = e−x +b.
Вариант 3
∞ |
(−1) |
n |
|
x |
2n |
|
|
|
|
|
|
|
x |
2 |
|
|
|
|
|
x |
4 |
|
|
|
|
x |
6 |
|
|
|
|
|
|
|
x |
8 |
|
|
|
|
|
|
|
|
||||||||||||||||
y(x) = ∑ |
|
|
|
|
|
=1− |
|
|
|
+ |
|
|
|
|
− |
|
|
|
+ |
|
|
|
|
−...,| x |<∞ |
||||||||||||||||||||||||||||||||||||
|
(2n)! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||
n=0 |
|
|
|
|
|
|
|
|
2! |
|
|
|
4! |
|
6! |
|
|
|
|
|
|
|
|
4! |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
z(x) = cos x +b. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
z(x) = ex +b. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Вариант 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
y(x) = π +∑ |
|
|
(−1) |
n+1 |
|
|
|
|
= π − 1 + |
|
|
|
1 |
3 |
|
− |
1 |
5 ..., x >1; |
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
2n+1 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
∞ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
2 |
|
(2n +1)x |
|
|
|
|
|
|
|
|
|
|
|
3x |
|
|
|
|
|
|
5x |
|
|
|
|
|
||||||||||||||||||||||||||||||||||
z(x) = arctg(x) +b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Вариант 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
∞ |
(−1) |
n |
|
x |
2n |
+1 |
|
|
|
|
|
|
|
|
x |
3 |
|
|
|
|
|
x |
5 |
|
|
|
|
|
|
x |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
y(x) = ∑ |
|
|
|
|
|
|
= x − |
|
|
+ |
|
|
− |
|
|
|
|
+...,| x |<=1; |
||||||||||||||||||||||||||||||||||||||||||
|
(2n +1) |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
n=0 |
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
5 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
z(x) = arctg(x) +b. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Вариант 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
∞ |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
y(x) = ∑ |
|
|
|
|
|
|
= |
|
|
|
+ |
|
+ |
|
|
|
|
+...,| x |>1 |
||||||||||||||||||||||||||||||||||||||||||
(2n +1)x |
2n+1 |
|
|
x |
3 |
5x |
5 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
n=0 |
|
|
|
|
|
|
|
|
|
|
3x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
z(x) = Arth(x) +b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Вариант 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
y(x) = −π |
+∑ |
|
|
|
(−1) |
n+1 |
|
|
|
|
|
|
= −π − 1 + |
|
|
|
|
1 |
3 − 1 |
5 +..., x < −1 |
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
2n+1 |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
∞ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
2 n=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 x |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
(2n +1)x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3x |
|
|
|
5x |
|
|
||||||||||||||||||||||||||||||||||||||
z(x) = arctg(x) +b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Вариант 8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
∞ |
(−1) |
n |
|
x |
2n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
4 |
|
|
|
|
|
x |
6 |
|
|
|
|
|
|
|
x |
8 |
|
|
|
|
|
|
|
|
|
||||||||||||
y(x) = ∑ |
|
|
|
|
=1− x2 |
+ |
|
|
|
|
− |
|
|
|
|
+ |
|
|
|
|
−...,| x |<∞ |
|||||||||||||||||||||||||||||||||||||||
n! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||
n=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2! |
|
|
3! |
|
|
|
|
4! |
|
|
|
|
|
|
|
|
|
z(x) = e−x2 +b.
148
Вариант 9
∞ |
(−1) |
n |
x |
2n |
|
|
|
x |
2 |
|
|
|
|
|
x |
4 |
|
|
|
|
x |
6 |
|
|
|
|
|
|
|
|
|
|
|
||||||||
y(x) = ∑ |
|
|
=1− |
|
|
|
|
+ |
|
|
|
− |
|
|
−...,| x |< ∞ |
|
|
|
|
|
|||||||||||||||||||||
|
(2n)! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
n=0 |
|
|
|
|
2! |
|
4! |
6! |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
z(x) = cos x +b. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Вариант 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
∞ |
( |
−1) |
n |
x |
2n |
|
|
x |
2 |
|
|
|
|
|
x |
4 |
|
|
|
|
|
x |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
y(x) = ∑ |
|
|
|
=1− |
|
|
|
+ |
|
|
|
− |
|
−...,| x |<∞ |
|
|
|
|
|
|
|
||||||||||||||||||||
(2n +1)! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
n=0 |
|
3! 5! 7! |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
z(x) = sin x +b. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вариант 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
∞ |
|
|
(x −1) |
2n+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(x −1) |
3 |
|
|
|
(x −1) |
5 |
|
|||||||||||
|
∑ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x −1 |
|
|
|
|
|
|
|||||||||||||||||
y(x) = 2 |
|
|
|
|
|
|
|
|
|
|
= 2 |
|
+ |
|
|
|
+ |
|
|
+... , x > 0; |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
(2n +1)(x +1) |
2n+1 |
|
|
|
|
|
|
|
|
+1 |
|
3(x +1) |
3 |
|
|
5(x +1) |
5 |
|
||||||||||||||||||||||
|
n=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
z(x) = ln x +b.
Вариант 12
Написать программу, которая выводит на экран секторную диаграмму. Диаграмму снабдить заголовком и наименованием для каждого сектора. Исходные данные сформировать в текстовом файле. Количество секторов задавать в программе в виде именованной константы.
Построение секторной диаграммы оформить в виде процедуры. Параметры процедуры: координаты центра диаграммы; радиус; количество секторов; массив процентов; массив наименований.
Вариант 13
Написать программу, которая выводит на экран две секторные диаграммы, расположив их рядом. Диаграмму снабдить заголовком и наименованием для каждого сектора. Исходные данные сформировать в текстовом файле. Количество секторов задавать в программе в виде именованной константы.
Построение секторной диаграммы оформить в виде процедуры. Параметры процедуры: координаты центра диаграммы; радиус; количество секторов; массив процентов; массив наименований.
Вариант 14
Написать программу, которая выводит на экран две столбиковые диаграммы. На экране диаграммы расположить рядом, каждую в своих координатных осях. Каждую диаграмму снабдить заголовком и наименованием единиц измерения по осям Х и Y. Исходные данные сформировать в текстовом файле. Количество столбцов задавать в программе в виде именованной константы.
149
Построение диаграммы оформить в виде процедуры.
Вариант 15
Написать программу, которая выводит на экран две столбиковые диаграммы в одной координатной плоскости. Диаграмму снабдить градацией осей и заголовком. Исходные данные сформировать в текстовом файле. Количество столбцов задавать в программе в виде именованной константы.
Построение диаграммы оформить в виде процедуры.
Вариант 16
Написать программу, которая выводит на экран трехмерную столбиковую диаграмму. Диаграмму снабдить градацией осей и заголовком. Исходные данные сформировать в текстовом файле. Количество столбцов задавать в программе в виде именованной константы.
Построение диаграммы оформить в виде процедуры.
Вариант 17
Написать программу, которая выводит на экран столбиковую диаграмму, представляющую оптовые и розничные цены на различные наименования кофе. Исходные данные сформировать в текстовом файле.
Построение диаграммы оформить в виде процедуры. Параметра процедуры: количество наименований; массив значений оптовых цен; массив значений розничных цен; массив наименований. Наименования товаров разместить вертикальной под осью абсцисс.
Вариант 18
Написать программу, которая выводит на экран столбиковую диаграмму, представляющую максимальную и среднюю норму прибыли при реализации различных сортов шоколада. Исходные данные сформировать в текстовом файле самостоятельно.
Построение диаграммы оформить в виде процедуры. Параметры процедуры: количество наименований; массив значений оптовых цен; массив значений розничных цен; массив наименований. Наименования товаров разместить вертикально под осью абсцисс.
Вариант 19
Написать программу, которая выводит на экран трехмерную столбиковую диаграмму максимального, минимального и среднего курса доллара за заданное количество дней. Исходные данные сформировать в текстовом файле самостоятельно.
150