- •А.П. Новоселов программирование на языке Си
- •1.1. Порядок создания программы
- •1.2. Ввод и выполнение программы
- •1.3. Модификация программы
- •1.4. Пошаговое выполнение программы
- •1.5. Сообщения компилятора и компоновщика
- •1.6. Действия в случае ошибки выполнения
- •1.7. Ошибки в форматах ввода/вывода
- •1.8. Вычисления с вещественными числами
- •2.1. Лексемы
- •2.2. Идентификаторы
- •2.3. Ключевые слова
- •2.4. Константы
- •3.2. Арифметические операции
- •3.3. Операции отношения и логические операции
- •3.4. Операции присваивания
- •3.5. Поразрядные операции
- •3.6. Библиотека функций
- •1. Вычисление площади и периметра геометрической фигуры
- •2. Вычисления по формулам с вещественными числами
- •3. Арифметические операции для целочисленных данных
- •4. Циклы с заданным числом повторений
- •5. Алгоритмы с разветвлениями
- •6. Циклы с условием окончания
- •7. Последовательная обработка данных
- •8. Поразрядные операции
- •9. Обработка массивов
- •10. Обработка матриц
- •11. Сортировка массивов
- •12. Сортировка матриц
- •1.1. Математическая постановка
- •1.4.2. Содержание результатов работы программы на экране
- •Выполнил: Иванов и.П., гр. Ут – 11, вариант 13(2)
- •1.4.3. Текст программы
- •Выводы по работе
1.8. Вычисления с вещественными числами
Дополните код программы строками:
float fl, a = 1. / 3. , b = 1./9. ;
fl = a * 3 ;
printf("\n\n a = %.20f fl = %.20f \n b = %.20f a*a = %.20f",
a, fl, b, a*a );
if( b == a*a ) printf("\n b == a*a");
else printf("\n b <> a*a");
Результат выполнения программы показан на рис. 11. Машинное слово для типа float имеет размер 4 байта. Поэтому большинство вещественных чисел в компьютере представлены с погрешностью.
Рис.11. Вычисления с вещественными числами
Сравнение на равенство вещественных данных в программе нужно выполнять так: если | f – b | < e, то значения переменных f и b считаются равными, е – заданная малая величина, удовлетворяющая в данной задаче допустимой погрешности значений величин.
Вопросы и упражнения
Как открыть среду программирования Borland C++ Builder 6 для создания консольного приложения?
Можно ли вставлять фрагменты текста в код создаваемой программы из других программ или документов?
Как запустить программу на выполнение?
Какие способы запуска программы на выполнение?
Как можно выполнить отладку консольного приложения при наличии синтаксических ошибок в коде программы?
Какие ошибки обнаруживаются при выполнении программы?
Для каких типов данных будут показаны ошибки при выполнении программы?
Какого типа должна быть переменная z, чтобы программа с оператором if( z < 1e-50) выполнялась успешно?
2. Лексические соглашения в С++
2.1. Лексемы
Лексема – одна из смысловых единиц во входном тексте для компилятора. Имеется пять видов лексем: идентификаторы, ключевые слова, константы, операции и прочие разделители. Для разделения лексем используются пробел, символы новой строки, новой страницы, горизонтальной и вертикальной табуляции и комментарии. Символы лексемы нельзя разделять пробелами!
2.2. Идентификаторы
Имена переменных – это последовательность букв и цифр произвольной длины. Первая литера должна быть буквой: символ ‘_’ (подчерк) считается в идентификаторах буквой. Различаются буквы верхнего и нижнего регистров (int x, X; // две переменные). Все литеры значимы.
2.3. Ключевые слова
Следующие идентификаторы в Си резервируются для употребления в качестве ключевых слов и не могут быть использованы иначе:
asm continue float new signed try auto default for operator sizeof typedef break delete friend private static union case do goto protected struct unsigned catch double if public switch virtual char else inline register template void class enum int return this volatile const extern long short throw while
Пользователи должны также избегать введения имён, начинающихся с одного или с двух подчерков: первые резервируют для себя реализации языка Си, а вторые употребляются реализациями С++.
Представление программы на языке С++, соответствующее стандарту ASCII, для обозначения операций и в качестве знаков пунктуации используют следующие литеры:
! % ^ & * ( ) – + = { } | ~ [ ] \ ` ; : “ < > ? , . /
Операции обозначаются следующими комбинациями литер:
–> ++ – – . * –> * + – / << >> <= >= = = != && ||
*= /= %= += – = <<= >>= &= ^= \= ::
Лексемы # и ## обрабатывает препроцессор – программа предварительной обработки кода компилируемой программы.