Директивы препроцессора
Методические указания
По выполнению контрольной работы по курсу
«Основы алгоритмизации и программирования» (ОАиП)
для студентов заочного отделения ИИТ
Минск 2007
Рукопись
Авторы:
А. Г. Корбит, Т. М. Кривоносова
Методические указания по выполнению контрольной работыпо курсу «Основы алгоритмизации и программирования» для студентов заочного отделения ИИТ. / Корбит А.Г., Кривоносова Т.М. – Минск: БГУИР, 2007.
В практикуме изложены краткие теоретические сведения по основам алгоритмического языка С/С++. Содержатся примеры, реализованные в консольном приложении, приведены 6 лабораторных работ и индивидуальные задания к ним.
© УО «Белорусский государственный университет информатики и радиоэлектроники», 2007 |
СОДЕРЖАНИЕ
Общие требования к оформлению контрольной работы 4
Задание №1. Линейный вычислительный процесс.. 4
1.1. Теоретические сведения. 4
1.2. Пример выполнения задания. 9
1.3. Индивидуальные задания. 10
Задание №2. Реализация разветвляющихся алгоритмов 11
2.1. Теоретические сведения. 12
2.2. Пример выполнения задания. 13
2.3. Индивидуальные задания. 14
Задание №3. Реализация циклических алгоритмов.. 17
3.1. Теоретические сведения. 17
3.2. Пример выполнения задания. 17
3.3. Индивидуальные задания. 19
Задание №4. Обработка одномерных массивов.. 20
4.1. Теоретические сведения. 20
4.2. Пример выполнения задания. 21
4.3. Индивидуальные задания. 22
Задание №5. Обработка двухмерных динамических массивов. Функции пользователя.. 23
5.1. Теоретические сведения. 23
5.2. Пример выполнения задания. 27
5.3. Индивидуальные задания. 29
Дополнительное задание №6. Обработка структур с использованием файлов.. 30
6.1. Теоретические сведения. 30
6.2. Пример выполнения задания. 32
6.3. Индивидуальные задания. 35
Приложение. Операции языка С/С++. 37
Основная литература.. 39
Дополнительная литература.. 39
Общие требования к оформлению контрольной работы
1. Стандартный титульный лист, с указанным номером варианта задания, должен быть подписан исполнителем.
2. Отчет о решенных задачах должен содержать:
– постановку задачи;
– структурную (обобщенную) схему алгоритма;
– листинг (текст кода) программы с пояснением его отдельных участков;
– результаты (экранные формы), иллюстрирующие работоспособность программы;
– список используемой литературы.
В зачетной сессии контрольная должна быть защищена (демонстрация на ПК решения задач своего варианта, указанного в списке группы).
Задание №1. Линейный вычислительный процесс
Цель работы: изучить правила составления текстов программ, научиться реализовывать линейные алгоритмы. Написать и отладить программу линейного алгоритма в консольном приложении.
Теоретические сведения
Алфавит языка С/С++ состоит из: прописных и строчных букв латинского алфавита, арабских цифр и специальных символов, смысл и правила, использования которых будут рассматриваться далее.
В языке C применяются данные двух категорий: простые (скалярные) и сложные (составные).
К основным (базовым) типам данных относятся целый (int), вещественный (float, double) и символьный (char) типы. В свою очередь, данные целого типа могут быть короткими (short) и длинными (long), со знаком (signed) и беззнаковыми (unsigned). Атрибут long может использоваться и с типом double – длинное вещественное.
К сложным типам данных относятся массивы, структуры (struct), объединения (union) и перечисления (enum).
Запись самоопределенных констант
Тип данных | Общий формат записи | Примеры |
Десятичные целые | ±n | 22 –15 176 –1925 |
Вещественные с фиксированной десятичной точкой | ±n.m | 1.0 –3.125 –0.001 |
Вещественные с плавающей точкой | ±n.mE±p смысл записи ±n,m×10±p | 1.01E–10 0.12537е+4 |
Символьные | ' * ' | 'A' 'х' '0' '<' |
Строковые | “ ****** ” | “Minsk” “Press any key” |
В таблице * – любой символ, набранный на клавиатуре.
Декларация объектов
Все объекты (переменные, массивы и т.д.), с которыми работает программа, необходимо декларировать. В декларации объектам присваиваются идентификаторы (ID), которые могут включать латинские буквы, символ нижнего подчеркивания «_» и цифры, причем первым символом ID не может быть цифра.
Внимание! В языке С/С++ строчные и прописные буквы имеют различные коды, т.е. PI, Pi и pi – различные идентификаторы (прил. 1).
При декларации объектам можно задавать начальные значения (инициализировать), например:
int k = 10, m = 3, n;
double c = –1.3, w = –10.23, s;
Принято использовать в ID переменных строчные буквы, а в именованных константах – прописные, например:
const double PI = 3.1415926;
double pi = 3.1415926;
Разделителями ID являются пробелы, символы табуляции, перевода строки и страницы, а также комментарии.
Комментарий – любая последовательность символов, начинающаяся парой символов /* и заканчивающаяся парой символов */ или начинающаяся // и до конца текущей строки.
Директивы препроцессора
Перед компиляцией программы с помощью директив препроцессора выполняется предварительная обработка текста программы.
Директивы начинаются с символа # (шарп), за которым следует наименование операции препроцессора. Чаще всего используются директивы include и define.
Директива #include используется для подключения к программе заголовочных файлов с декларацией стандартных библиотечных функций, например:
#include <stdio.h> – стандартные функции ввода-вывода;
#include <conio.h> – функции работы с консолью;
#include <math.h> – математические функции.
Директива #define(определить) создает макроконстанту и ее действие распространяется на весь файл, например:
#define PI 3.1415927
– в ходе препроцессорной обработки идентификатор PI везде заменяется указанным значением 3,1415927.
Операции языка С/С++(арифметические: +,–,*,/,%) и наиболее часто использующиеся стандартные математические функцииописаны в прил.1.
Операция присваивания имеет полную и сокращенную формы записи.
Полная форма: ID = выражение;
– выполняется справа налево, т.е. сначала вычисляется выражение, а затем его результат присваивается указанному ID, например: y=(x+2)/(3*x)–5;
В одном операторе можно присвоить значение нескольким переменным, например: x = y = z = 0;
или z = (x = y) * 5; – сначала переменной x присваивается значение переменной y, далее вычисляется выражение x*5 , и результат присваивается переменной z.
Сокращенная форма:IDоперация=выражениe;
где операция – одна из арифметических операций + , –, *, /, %;например:
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 .