ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования СА...
5 downloads
208 Views
189KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ В ПРИБОРОСТРОЕНИИ ОСНОВЫ ПРОГРАММИРОВАНИЯ НА С/С++
Методические указания к выполнению лабораторных работ
Санкт-Петербург 2005 1
Составитель канд. техн. наук Е. М. Анодина-Андриевская Рецензент канд. техн. наук С. Д. Субочев Содержат теоретический материал и методические указания к выполнению лабораторных работ по дисциплине «Компьютерные технологии в приборостроении». Предназначены для студентов очной и заочной форм обучения специальностей 1910, 1903, 1902, 5515, изучающих дисциплину «Компьютерные технологии в приборостроении». Подготовлены к публикации кафедрой компьютерных систем автоматизации и рекомендованы к изданию редакционно-издательским советом Санкт-Петербургского государственного университета аэрокосмического приборостроения.
Редактор А. М. Картухина Компьютерная верстка О. И. Бурдиной Подписано к печати 09.11.05. Формат 60´84 1/16. Бумага офсетная. Печать офсетная. Усл. печ. л. 1,74. Уч.-изд. л. 1,93. Тираж 100 экз. Заказ № Редакционно-издательский отдел Отдел электронных публикаций и библиографии библиотеки Отдел оперативной полиграфии ГУАП 190000, Санкт-Петербург, ул. Б. Морская, 67
© ГОУ ВПО «СПбГУАП», 2005 2
ПРЕДИСЛОВИЕ В результате изучения дисциплины «Компьютерные технологии в приборостроении» студенты д о л ж н ы : – получить представление об аппаратных и программных средствах ЭВМ, программных средствах автоматизации математических расчетов; – усвоить основные принципы математического моделирования, алгоритмизации и программирования на языках С/С++; – освоить практические приемы использования систем автоматизации математических расчетов для решения инженерных задач. Дисциплина «Компьютерные технологии в приборостроении» предполагает проведение ряда лабораторных работ. Цель работ: освоение технологии разработки программ с использованием языков программирования С/С++. Методические указания предназначены для выработки у студентов навыков программирования на языках С/С++. В издании рассмотрены основные понятия программирования: – построение программы; – описание типов данных; – организация ввода и вывода данных; – конструкции основных операторов; – организация работы с массивами, структурами и файлами; – особенности работы с функциями; – организация графического вывода данных. 1. ОСНОВЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ С/С++ 1.1. Описание языков программирования С/С++ В системы программирования на языках С/С++ входят: – интегрированная среда программирования (программа, содержащая встроенный редактор текстов, подсистему работы с файлами, систему помощи, встроенный отладчик и т. д.); – компилятор исходного текста программы; – редактор связей; – библиотеки заголовочных файлов; – библиотеки функций; – программы-утилиты. Текст программы на языках С/С++ содержит базовые символы, которые можно разделить на следующие группы: – буквы латинского алфавита; 3
– десятичные цифры; – знаки операций; – скобки; – знаки пунктуации; – специальные символы. Комбинации базовых символов без пробелов образуют составные символы. Символы пробела, табуляции, перевода строки, возврата каретки относятся к пробельным символам. Совокупность букв, цифр и знаков подчеркивания, задающая имя переменной, название функции или ключевое слово в программе, называется идентификатором. Ключевые слова – это предопределенные идентификаторы, используемые для составления текста программы. Синтаксически неделимая единица текста программы, имеющая определенный смысл для компилятора, от 1 до нескольких символов алфавита, в том числе знаки пунктуации, скобки, ключевые слова, константы и идентификаторы переменных и функций, называется лексемой. Границами лексем служат пробельные символы или другие лексемы. 1.2. Структура программы на С/С++ Программа на языке высокого уровня содержит формализованный текст, включающий описательные предложения для представления объектов программы и исполняемые предложения (операторы), реализующие алгоритм задачи. Программа на языках С/С++ представляет собой набор функций, т. е. вспомогательных программных единиц. Одна из них является обязательной, за которой закреплено имя main(). Для выделения части кода используются фигурные скобки «{}», конец инструкции отмечается точкой с запятой «;». Комментарии отмечаются знаками «/* */». В С++ возможно также использование знаков «// ». Структура программы: тип main (параметры) /*имя функции, указывающей точку входа*/ { /*блок инструкций*/ инструкция 1; ... инструкция N; return (значение); } “Тип” – это ключевое слово типа для взвращаемого функцией значения или при отсутствии типа ключевое слово void (отсутствие типа). 4
“Параметры” – это необязательный список формальных параметров с их типами. Программа обычно содержит директивы препроцессора – указания для предварительной обработки текста исходного файла перед его компиляцией. Директивой является строка, начинающаяся с символа “#”. Директивы включения файлов позволяют подключить общие файлы заголовков с расширением “.h”, через которые осуществляется доступ к стандартным библиотекам. Формат директивы имеет следующий вид: # include < имя_файла >. Директивы подстановки имен позволяют программисту создавать собственные символические константы и макроопределения для фрагментов исходного текста программы по формату: # define идентификатор текст. 1.3. Представление данных в С/С++ Данные, используемые в вычислительном процессе – это константы и переменные. Константы – это неизменяемые величины в программе, определяемые их типом и формой представления. Определение констант: # define имя_константы значение main() { } В С++ возможен следующий вариант определения констант: main() { const тип1 имя_константы1 = значение1; ... const тип N имя_константыN = значениеN; } Переменные – это данные, значения которых могут меняться в ходе работы программы. Определение переменных: main() { тип1 имя_переменной1_1, ..., имя_переменной1_M; ... тип N имя_переменной N_1, ..., имя_переменной N_M; } 5
В С/С++ типы данных разбиваются на четыре типа: – “пустой” (void), – скалярный (арифметические типы, перечисления, указатели и в С++ – ссылочный тип), – “функция”, – агрегированный (массивы, структуры, объединения и в С++ – классы). Типы подразделяются на основные и производные. К основным относятся void, char, int, float совместно с вариантами short, long, signed, unsigned. Производные – это указатели и ссылки на другие типы, массивы, функции, классы, структуры и объединения. Наиболее распространенные типы констант и переменных в С/C++ приведены в табл. 1. Таблица 1 Oбозначение
Название
Kоличество байт
Примеры использования константы
переменные
символьные данные –128...127
1
#define C 'A' char c const char f = 'A'
unsigned символьные данные char 0...255
1
#define C 'A'
unsigned char c
int
–32768...32767
2
#define I 7
int n
short int
–32768...32767
2
short int k
2
unsigned int i
–2147483648... 2147483647
4
long int j
unsigned 0...4294967295 long
4
unsigned long l
char
unsigned 0...65535 int long int
float
3.4*Е–38... 3.4*Е+38
4
double
1.7*Е–308... 1.7*Е+308
8
double b,d,f
long double
3.4*E–4932... 3.4*Е+4932
10
long double g
6
#define PI 3.14 float a,b
1.4. Ввод и вывод в С/С++ Для реализации функций ввода-вывода необходимо включить в текст программы файлы заголовков stdio.h (подключение функций стандартного ввода-вывода) и conio.h (подключение функций консольного ввода-вывода) с помощью директивы # include: # include <stdio.h>, # include . Стандартный ввод-вывод может быть двух видов: форматированный и неформатированный. Функции ввода и вывода приведены в табл. 2. Таблица 2 ВЫВОД
Функция
Назначение
ВВОД
Примеры Функция использования
Назначение
Примеры использования
Форматированный ввод и вывод (файл заголовков stdio.h) printf("n= %d, scanf printf для ввода scanf("%f", для вывода v= %f",n,v) (формат, (формат, данных &a) данных данные) данные) Строка формата заключается в кавычки и может содержать любой текст и метки, называемые указателями формата. Kаждый указатель формата начинается с символа "%", после которого стоит буква, указывающая тип данных: – %d – целое число – %o – целое число в восьмеричной системе – %u – целое число – %x – целое число в шестнадцатеричной системе – %f – вещественное число типа float или double без знака – %e – вещественное число в экспоненциальной форме – %c – символ – %g – вещественное число в наиболее короткой форме – %s – строка Неформатированный ввод и вывод (файл заголовков stdio.h) для вывода # define C'A' main() на экран char s ='ABC' { для ввода строковых main() char s[15]; gets() строки в литералов, puts() {puts('ABC'); переменную gets(s); констант и puts(C); } переменputs(s);} ных # define C 'A' main() для вывода main() { для ввода с единичного {char l; клавиатуры char с; putchar() getchar() символа на putchar('A'); int i; единичного putchar(C); экран c = getchar(); символа i = getchar();} putchar(l);}
7
Окончание табл. 2 ВЫВОД
Функция
Назначение
ВВОД
Примеры Функция использования
Назначение
Примеры использования
Kонсольный ввод и вывод (файл заголовков conio.h) код нажатой c=getch(); getch() клавиши без для вывода getch(); отображениея единичного putch(C); putch() символа на код нажатой экран getche () клавиши с c=getche(); отображением вывод cputs() строк с указанием вывод соcputs('ABC') цвета текста общений и cprintf("ABC\n\r") и фона cprintf() значений переменных В С++ вводвывод данных любых типов (файл заголовков iostream.h)
}
cout
вывод данных
coutp
Перемещением курсора на экране можно управлять с помощью escape-последовательностей: \a – «звуковой сигнал»; \b – «возврат на шаг»; \f – «перевод страницы»; \n – «новая строка»; \r – «возврат каретки»; \t – «горизонтальная табуляция»; \v – «вертикальная табуляция». Escape-последовательности также можно использовать для вывода на экран специальных символов: \’ – одинарная кавычка; \” – двойная кавычка; \\ – обратная косая черта; \? – знак вопроса. Цвет текста задается функцией textcolor (цвет). В качестве параметра “цвет” используются данные табл. 3.
8
Таблица 3 Цвет
Kонстанта
Значение константы
Черный
BLACK
0
Синий
BLUE
1
Зеленый
GREEN
2
Бирюзовый
CYAN
3
Kрасный
RED
4
Сиреневый
MAGNETA
5
Kоричневый
BROWN
6
Светло-серый
LIGHTGRAY
7
Серый
DARKGRAY
8
Голубой
LIGHTBLUE
9
Светло-зеленый
LIGHTGREEN
10
Светло-бирюзовый
LIGHTCYAN
11
Алый
LIGHTRED
12
Светло-сиреневый
LIGHTMAGNETA
13
Желтый
YELLOW
14
Белый
WHITE
15
Цвет фона задается функцией textbackground (цвет). В качестве параметра “цвет” используются данные табл. 4: Таблица 4 Цвет
Kонстанта
Значение константы
Черный
BLACK
0
Синий
BLUE
1
Зеленый
GREEN
2
Бирюзовый
CYAN
3
Kрасный
RED
4
Сиреневый
MAGNETA
5
Kоричневый
BROWN
6
Светло-серый
LIGHTGRAY
7
9
Команда gotoxy(x,y) переводит курсор в позицию с указанными координатами. Координата x задает номер колонки, координата y – номер строки, на пересечении которых находится знакоместо, куда переводится курсор. Команда clrscr() очищает экран и закрашивает его цветом, заданным функцией textbackground (цвет). Команда window(x1, y1, x2, y2) определяет окно – прямоугольная область экрана. Параметры x1, y1 задают координаты левого верхнего угла относительно экрана, параметры x2, y2 – координаты правого нижнего угла. 1.5. Операции в С/С++ Операции в С/С++ можно условно разделить на виды (табл. 5). Таблица 5 Название
Арифметические операции
Действие
+
сложение
–
вычитание
*
умножение
/
деление
Пример
A%(B*((C–D)+(G–F))/P–Q) % остаток от деления нацело ()
Инкремент и декремент
изменение приоритетов
++ увеличение значения --
уменьшение значения
== равно
Операции отношения
Логические операторы
j=--i; j=i--; A==B
>
больше
A>B
=B
1;
1.6. Операторы ветвления Операторы ветвления (табл. 6) служат для выбора продолжения вычислительного процесса из группы альтернатив. Таблица 6 Kонструкция
Пример
1. if (a>b) a=b; if (условие) 2. if (i>1 && i