Теоретические сведения. 2.1.Структура программы на С++
2.1.Структура программы на С++ Программа на языке Си имеет следующую структуру: #директивы препроцессора . . . . . . . . . #директивы препроцессора функция а ( ) операторы функция в ( ) операторы void main ( ) //функция, с которой начинается выполнение программы операторы описания присваивания функция пустой оператор составной выбора циклов перехода Директивы препроцессора управляют преобразованием текста программы до ее компиляции. Исходная программа, подготовленная на С++ в виде текстового файла, проходит 3 этапа обработки: 1) препроцессорное преобразование текста; 2) компиляция; 3) компоновка (редактирование связей или сборка). Рис. 2. Обработка С++ программы После этих трех этапов формируется исполняемый код программы. Задача препроцессора – преобразование текста программы до ее компиляции. Правила препроцессорной обработки определяет программист с помощью директив препроцессора. Директива начинается с #. #define - указывает правила замены в тексте. #include<имя заголовочного файла> – директива предназначена для включения в текст программы текста из каталога заголовочных файлов, поставляемых вместе со стандартными библиотеками. Каждая библиотечная функция C имеет соответствующее описание в одном из заголовочных файлов. Список заголовочных файлов определен стандартом языка. Употребление директивы include не подключает соответствующую стандартную библиотеку, а только позволяют вставить в текст программы описания из указанного заголовочного файла. Если используется заголовочный файл из стандартной библиотеки, то его имя заключают в угловые скобки. Если используется заголовочный файл, который находится в текущем каталоге проекта (он может быть создан разработчиком программы), то его имя заключается в кавычки. Подключение кодов библиотеки осуществляется на этапе компоновки, т. е. после компиляции. Хотя в заголовочных файлах содержатся все описания стандартных функций, в код программы включаются только те функции, которые используются в программе. После выполнения препроцессорной обработки в тексте программы не остается ни одной препроцессорной директивы. Программа представляет собой набор описаний и определений, и состоит из набора функций. Среди этих функций всегда должна быть функция с именем main. Без нее программа не может быть выполнена. Перед именем функции помещаются сведения о типе возвращаемого функцией значения (тип результата). Если функция ничего не возвращает, то указывается тип void: void main(). Каждая функция, в том числе и main, должна иметь список параметров. Список может быть пустым, тогда он указывается как(void) (слово void может быть опущено: ()). За заголовком функции размещается тело функции. Тело функции – это последовательность определений, описаний и исполняемых операторов, заключенных в фигурные скобки. Каждое определение, описание или оператор заканчивается точкой с запятой. Определения – вводят объекты (объект – это именованная область памяти, частный случай объекта – переменная), необходимые для представления в программе обрабатываемых данных. Примерами являются const int y = 10 ; //именованная константа float x ; //переменная Описания – уведомляют компилятор о свойствах и именах объектов и функций, описанных в других частях программы. Операторы – определяют действия программы на каждом шаге ее исполнения. 2.2. Элементы языка C/C++ 1) Алфавит языка который включает · прописные и строчные латинские буквы и знак подчеркивания; · арабские цифры от 0 до 9; · специальные знаки “{},| []()+-/%*.\’:;&?<>=!#^ · пробельные символы (пробел, символ табуляции, символы перехода на новую строку). 2) Из символов формируются лексемы языка: · Идентификаторы – имена объектов C/C++-программ. В идентификаторе могут быть использованы латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, PROG1, prog1 и Prog1 – три различных идентификатора. Первым символом должна быть буква или знак подчеркивания (но не цифра). Пробелы в идентификаторах не допускаются. · Ключевые (зарезервированные) слова – это слова, которые имеют специальное значение для компилятора. Их нельзя использовать в качестве идентификаторов. · Знаки операций – это один или несколько символов, определяющих действие над операндами. Операции делятся на унарные, бинарные и тернарную по количеству участвующих в этой операции операндов. · Константы – это неизменяемые величины. Существуют целые, вещественные, символьные и строковые константы. Компилятор выделяет константу в качестве лексемы (элементарной конструкции) и относит ее к одному из типов по ее внешнему виду. · Разделители – скобки, точка, запятая пробельные символы. 2.3. Константы в C/C++ Константа – это лексема, представляющая изображение фиксированного числового, строкового или символьного значения. Константы делятся на 5 групп: · целые; · вещественные (с плавающей точкой); · перечислимые; · символьные; · строковые. Компилятор выделяет лексему и относит ее к той или другой группе, а затем внутри группы к определенному типу по ее форме записи в тексте программы и по числовому значению. Целые константы могут быть десятичными, восьмеричными и шестнадцатеричными.
Вещественные константы могут иметь две формы представления: с фиксированной точкой и с плавающей точкой.
Перечислимые константы вводятся с помощью ключевого слова enum. Это обычные целые константы, которым приписаны уникальные и удобные для использования обозначения. enum {one=1, two=2, three=3, four=4}; enum {zero,one,two,three}; enum {ten=10, three=3, four, five, six}; enum {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; Символьные константы – это один или два символа, заключенные в апострофы. Символьные константы, состоящие из одного символа, имеют тип char и занимают в памяти один байт, символьные константы, состоящие из двух символов, имеют тип int и занимают два байта. Последовательности, начинающиеся со знака \, называются управляющими, они используются: · для представления символов, не имеющих графического отображения, например: \a – звуковой сигнал, \b – возврат на один шаг, \n – перевод строки, \t – горизонтальная табуляция; · для представления символов: \ , ’ , ? , ” ( \\, \’ ,\? ,\” ); · для представления символов с помощью шестнадцатеричных или восьмеричных кодов (\073, \0хF5); Строковая константа – это последовательность символов, заключенная в кавычки. Внутри строк также могут использоваться управляющие символы. Например: ”\nНовая строка”, ”\n\”Алгоритмические языки программирования\””. 2.3. Типы данных в C++
Типы C++ можно разделить на простые и составные. К простым типам относят типы, которые характеризуются одним значением. В языке C++ определено 6 простых типов данных: int (целый)
wchar_t (расширенный символьный) (C++) bool (логический) (C++)
double (вещественный с двойной точностью)
Существует 4 спецификатора типа, уточняющих внутреннее представление и диапазон стандартных типов
short (короткий) long (длинный) signed (знаковый) unsigned (беззнаковый)
Переменные Переменная в C++ – именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Перед использованием любая переменная должна быть описана. int a; float x; Операции В соответствии с количеством операндов, которые используются в операциях они делятся на унарные (один операнд), бинарные (два операнда) и тернарную (три операнда).
Приоритеты операций.
Выражения Из констант, переменных, разделителей и знаков операций можно конструировать выражения. Каждое выражение представляет собой правило вычисления нового значения. Каждое выражение состоит из одного или нескольких операндов, символов операций и ограничителей. Если выражение формирует целое или вещественное число, то оно называется арифметическим. Пара арифметических выражений, объединенная операцией сравнения, называется отношением. Если отношение имеет ненулевое значение, то оно – истинно, иначе – ложно. Ввод и вывод данных В языке C/C++ нет встроенных средств ввода и вывода – он осуществляется с помощью функций, типов и объектов, которые находятся в стандартных библиотеках. Существует два основных способа: функции C и объекты C++. Для ввода/вывода данных в стиле C используются функции, которые описываются в библиотечном файле stdio.h. · printf (форматная строка, список аргументов); форматная строка – строка символов, заключенных в кавычки, которая показывает, как должны быть напечатаны аргументы. Например: printf (”Значение числа Пи равно %f\n”, pi); Форматная строка может содержать: · символы печатаемые текстуально; · спецификации преобразования; · управляющие символы. Каждому аргументу соответствует своя спецификация преобразования: %d, %i – десятичное целое число; %f – число с плавающей точкой; %e,%E – число с плавающей точкой в экспоненциальной форме; %u – десятичное число в беззнаковой форме; %c – символ; %s – строка. В форматную строку также могут входить управляющие символы: \n – управляющий символ новая строка; \t – табуляция; \a – звуковой сигнал и др. Также в форматной строке могут использоваться модификаторы формата, которые управляют шириной поля, отводимого для размещения выводимого значения. Модификаторы – это числа, которые указывают минимальное количество позиций для вывода значения и количество позиций ля вывода дробной части числа: %[-]m[.p]C, где – – задает выравнивание по левому краю, m – минимальная ширина поля, p – количество цифр после запятой для чисел с плавающей точкой и минимальное количество выводимых цифр для целых чисел (если цифр в числе меньше, чем значение р, то выводятся начальные нули), С – спецификация формата вывода. printf("\nСпецификации формата:\n%10.5d - целое, \n \\ %10.5f - с плавающей точкой\\n %10.5e – \\
Будет выведено: Спецификации формата: 00010 – целое 10.00000 – с плавающей точкой 1.00000е+001 - в экспоненциальной форме 10 – строка. · scanf (форматная строка, список аргументов); в качестве аргументов используются адреса переменных. Например:
scanf(“ %d%f ”, &x,&y);
При использовании библиотеки классов C++, используется библиотечный файл iostream.h, в котором определены стандартные потоки ввода данных от клавиатуры cin и вывода данных на экран cout, а также соответствующие операции << – операция записи данных в поток; >> – операция чтения данных из потока.
#include <iostream.h>; … cout << “\nВведите количество элементов: ”; cin >> n; Постановка задачи 1. Для задачи 1 определить тип заданных выражений и найти их значения. 2. Составить систему тестов и вычислить полученное выражение для нескольких значений Х, определить при каких Х выражение не может быть вычислено. 3. Для задачи 2 записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. 4. Составить систему тестов и вычислить полученное выражение для нескольких точек, принадлежащих и не принадлежащих заштрихованной области. 5. Для задачи 3 вычислить значение выражения, используя различные вещественные типы данных (float и double). 6. Объяснить полученные результаты. 7. Результаты всех вычислений вывести на печать. Варианты
Методические указания
c=pow(a,3); d=3*pow(a,2)*b; e=3*a*pow(b,2); f=pow(b,3); Содержание отчета 1) Постановка задачи (общая и конкретного варианта). 2) Формулы, используемые при решении задачи (математическая модель). 3) Программы для решения задач на языке C++. 4) Описание используемых в программе стандартных функций. 5) Система тестов для проверки правильности работы программы и результаты выполнения тестов. 6) Объяснение результатов работы программы.
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (515)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |