Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Оператор присваивания, процедуры ввода-вывода




ПРОГРАММИРОВАНИЕ И ОСНОВЫ АЛГОРИТМИЗАЦИИ

Методические указания к лабораторный работам

Омск

Издательство ОмГТУ


Составитель: Е. С. Гебель

 

 

 

Лабораторный практикум содержит методические рекомендации по выполнению лабораторных работ в объеме курса «Программирование и основы алгоритмизации» и предназначен для организации и управления самостоятельной работой студентов. Содержит описание особенностей программирования в среде Borland C/C++, синтаксиса и семантики языка С++. Приведены примеры листингов программ, предложены варианты индивидуальных заданий.

Лабораторный практикум предназначен для студентов дневной формы обучения по направлениям 220700 «Автоматизация технологических процессов и производств» и 220400 «Управление в технических системах».

 

 

Печатается по решению редакционно-издательского совета

Омского государственного технического университета


Лабораторная работа 1

ОСНОВЫ ПРОГРАМИРОВАНИЯ В СРЕДЕ Borland C++.

Алфавит языка, зарезервированые слова, операторы

Приступая к изучению языка, рассмотрим сначала правила программирования (написания текста):

1. Программирование должно быть наглядным (иметь титул, пояснительный текст).

2. Писать следует структурировано (выделяя отступами циклы, ветвления). Выделять текст можно любым количеством пробелов, пустых строк, кроме этого существуют комментарии.

3. Большие и сложные программы следует разбить на несколько простых частей и отлаживать их по отдельности.

Алфавит

Приступая к языку, следует начать с алфавита, т.е. набора символов, допустимых в языке, которыми оперирует язык.

Идентификатор – это имя любого объекта в языке. Следует придерживаться следующих правил создания имен:

1. Допускается использование английских букв и цифр.

2. Начинаться должно с буквы.

3. Прописные и строчные буквы считаются разными.

4. Должны не совпадать с зарезервированными словами.

Зарезервированые слова – это специальные идентификаторы, которые используются строго по назначению.

Список таких слов невелик. Как правило, такие слова обозначают какие-либо действия, структуры в языке. Согласно этим правилам следующие имена допускаются: аsm auto break case catch char class const continue default do double enum extern float goto if long new operator private protected public register return short signed sizeof stati struct switch template this throw try typedef typeid union unsigned virtual void volatile while.

Комментарий – специальный текст внутри таких скобок, который не считается программой, а служит или для пояснения программы, или для отладки. Обозначается // или /*…*/

Специальные знаки делятся на:

1. знаки операторов: {}, [], (), ‘,:=,;,.,.. и т.д.

2. знаки операций: +, -, *, /, %.

3. зарезервированные слова.

Логические операторы. Используются для задания различных логических условий для проверок. Соответствуют операторам булевой алгебры:

&& – логическое и;

|| – логическое или;

! – логическое не;

<< – сдвиг содержимого влево на один разряд;

>> – сдвиг содержимого вправо на 1 разряд.

Операции SHL и SHR практически соответствуют операциям соответственно умножения и деления на 2 для целых чисел.

Операторы отношения:

== проверка на равенство;

> больше;

< меньше;

>= больше или равно;

<= меньше или равно;

!= не равно.

Структура программы

Программа представляет собой совокупность логически самостоятельных этапов. Программа состоит из определенных разделов и в указанном порядке (табл. 1):

Таблица 1

Название раздела Ключевые слова, указывающие раздел в программе
Библиотечные файлы # include <…>
Директивы препроцессора #if, #elif, #else, #endif
Макроопределения #define ….
Пользовательские функции тип имя_функции (список параметров)
Пользовательские типы данных struct..
Имя главной функции тип main (тип параметров)
Переменные тип идентификатор = инициализирующее значение

 

Операторные скобки { … } указывают начало и конец тела процедуры, функции или управляющего оператора.

Процедуры и функции – специальные программы, которые могут выполнять повторяющиеся участки с разными начальными данными (параметрами). В нужный момент описанные заранее они вызываются на выполнение. Могут быть стандартные (встроенные) и пользовательские процедуры и функции. Конструкцией, описанной выше, задаются пользовательские. Стандартные же не описываются, но требуют подключения соответствующих библиотечных файлов, содержащих их описание. Например, при использовании функции вывода printf() необходимо подключить #include <stdio.h>.

 

Основные типы данных

Любые данные характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, операции, применимые к нему, а также формат внутреннего представления. В С++ требуется задавать тип переменной перед ее использованием.

Рассмотрим простые типы и их разновидность – порядковые типы. Порядковый тип назван так потому, что его значения относятся к упорядоченному множеству, всегда можно сказать, какое следующее, какое предыдущее значение, какой порядковый номер у значения (табл. 2).

Таблица 2

Обозначение Диапазон Тип данных
  short, short int, signed short, signed short int -32768... Короткое целое со знаком
  unsigned short, unsigned short int 0...65535 Короткое целое без знака
  int, signed, signed int Зависит от реализации Целое
  unsigned, unsigned int Зависит от реализации Целое без знака
  long, signed long, long int -2147483648… Длинное целое со знаком
  unsigned long 0...4294967295 Длинное целое без знака

 

Символьный тип определяется зарезервированным словом CHAR и задает полный набор ASCII-символов (табл. 3).

Таблица 3

Обозначение Диапазон Тип данных
  char, signed char -128...127 Символьный со знаком
  unsigned char 0...255 Символьный без знака

 

Другая разновидность простых типов – вещественный тип. Имеется пять стандартных типов для представления дробных величин (табл. 4).

Таблица 4

Обозначение Диапазон Тип данных
  float -3.4e-38... 3.14e+38 Вещественное число с плавающей точкой
  double -1.7е-308..1.7е308 Вещественное число удвоенной точности
  long double   -3.4e-4932... 3.4e4932 Длинное вещественное число удвоенной точности

 

Для непосредственного обозначения логических значений в C++ используются целочисленные значения 0 - ложь и 1 - истина. Кроме того, в логических операциях любое ненулевое значение операнда ассоциируется с единицей. Поэтому отрицанием нулевого значения является 1, т.е. истина, а отрицанием любого ненулевого значения оказывается 0, т.е. ложь.

Тип void (отсутствие типа) не имеет ни значений, ни действий.

 

ОПЕРАТОР ПРИСВАИВАНИЯ, ПРОЦЕДУРЫ ВВОДА-ВЫВОДА

С помощью оператора присваивания переменной или функции присваивается значение выражения. Для этого применяется знак «=», слева от которого записывается имя переменной или функции, а справа – выражение, значение которого вычисляется перед присваиванием. Структура оператора в С++ записывается в виде

<идентификатор> = <выражение>;

Допускается для идентификаторов использовать любой тип, за исключением файлового, причем тип идентификатора и тип выражения должны быть совместимы.

В выражениях могут использоваться математические (библиотека math.h), логические операции и операции отношения (табл. 5).

Таблица 5.

Обращение Выполняемая функция Тип
Аргумента Функции
abs(x) fabs(x) |Х| |Х| Целый вещественный Целый вещественный
sin(x) cos(x) log(x) exp(x) sqrt(x) atan (x) asin(x) acos(x) log10(x) pow(x,y) sin X cos X ln (X) ex arctg X arcsin x arcos x lg x xy   Целый или вещественный   вещественный

В C++ предусмотрено использование таких математических констант как M_ Pi =3.1415926535897932385, M_ Pi_2, M_ Pi_4 и M_E=2.7. Более сложные математические функции получаются путем комбинации базовых, которые перечислены выше.

При использовании стандартных функций ввода/вывода в выполняемой программе указывается библиотечный файл stdio.h. Вывод результатов (по формату) на экран осуществляется с помощью функции:

printf(“строка форматов”, [список выводимых аргументов]

Пример. printf (“Итого %d\n”, y);

При вызове printf() обязательно передается в качестве аргумента хотябы одна строка, например printf (“Введите число”);. Строка форматов состоит из символов, которые выводятся без изменения, и символов, задающих преобразование данных. Спецификации преобразования формата имеют вид:

% [флаг] [ширина] [.точность]символ формата

Пример. printf(“х=%+3.2f\n y=%5d\a”, x, y);

Флаг может принимать следующие значения, записанные в табл. 6.

Таблица 6.

Значения флага Описание
- Выравнивание по левому краю
+ Всегда выводить знак (+ или -)
  Заполнять лишнее пространство нулями вместо пробелов
# Выводить 0 перед восьмеричными и 0х перед шестнадцатеричными константами

 

Ширина – это минимальный размер поля вывода. Точность – это число цифр после десятичной точки для вещественных переменных.

Управляющие символьные константы (табл. 7) или escape-символы применяются для представления символов и чисел, которые нельзя непосредственно ввести с клавиатуры. Еscape-последовательность начинается с косой черты \ и заключается в кавычки.

Таблица 7.

Символьная константа Описание
\n Переход на новую строку
\a Звуковой сигнал
\t Горизонтальная табуляция
\v Вертикальная табуляция
\b Возврат на символ
\r Возврат на начало строки

 

Символы формата определяют тип аргумента (табл. 8).

Символьная константа Описание
символ
%d целое десятичное число
%i целое десятичное число
десятичное число в виде х.хх е+хх
%f десятичное число с плавающей занятой хх.хххх
%g %f или %е, что короче
восьмеричное число
%s строка символов
шестнадцатеричное число 5a5f
указатель

Функция формализованного ввода scanf() предназначения для чтения данных из входного потока и интерпретации их в соответствии со строкой управления форматом.

scanf(“%строка форматов”, &имя переменной);

После преобразования данные записываются в область памяти определенными аргументами, которые следуют за строкой управления форматом. Каждый аргумент списка должен быть указателем на переменную, тип которой соответствует типу, указанному в строке управления форматов, т.е. перед именем аргумента должен указываться символ & (“взять адрес”).

Пример. scanf (“%d %f”, &x, &y);

Пример. Вычислить площадь треугольника по формуле Герона, если длины его сторон А, В и С вводятся с клавиатуры.

Алгоритм программы показан на рис. 1. Листинг программы на языке С++:

#include <stdio.h> // библиотека, содержащая описание

// операторов ввода/вывода

# include <conio.h> // библиотека, содержащая описание

// операторов для работы с экраном

# include <math.h> // библиотека, содержащая описание

//математических операторов

void main() // заголовок главной функции программы

{ int a, b, c; // описание целочисленных идентификаторов

float p, s; // описание вещественных идентификаторов

clrscr (); // процедура очистки экрана

printf(“Vvedite dliny storon a, b, c \n”); // вывод информационного

// сообщения

scanf (“%d%d%d”, &a,&b,&c); // ввод значений a, b и с

p=(a+b+c)/2; // вычисление полупериметра

s=sqrt(p*(p-a)*(p-b)*(p-c)); // вычисление площади

printf (“Ploshad S=%4.2f\n”, s); // вывод результата

getch(); // процедура задержки экрана,

// пока не нажата любая клавиша

}

В результате работы программы на экран выводится сообщение:

Ploshad S=……

Рис. 1.

Лабораторная работа 2

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...