17532

Базові поняття С++

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

Информатика, кибернетика и программирование

Лабораторна робота №1 Базові поняття Мета роботи – вивчити правила синтаксису мови програмування С особливості використання різних типів даних операції потокового введення / виведення. Теоретичні положення 1.1 Правила синтаксису Множина символів ...

Украинкский

2013-07-04

184.5 KB

4 чел.

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

Базові поняття

Мета роботи – вивчити правила синтаксису мови програмування С++, особливості використання різних типів даних, операції потокового введення / виведення.

  1.  Теоретичні положення

 1.1 Правила синтаксису

Множина символів мови С++ складається із прописних і малих латинських літер, арабських цифр, знака підкреслення і роздільників. Літери, цифри і знак підкреслення використовуються при формуванні констант, ідентифікаторів і ключових слів. Компілятор мови С++, на відміну від компілятора мови Pascal, розглядає ту ж саму прописну і малу літери як різні символи.

Роздільники із множини символів мови С++ використовуються для різних цілей: від організації тексту програми до визначення вказівок компіляторові. Найбільш часто використовувані роздільники і їхнє призначення:

{} - операторні дужки; поєднують декілька операторів в один блок, визначають початок і кінець функції;

;  - кінець оператора;

,  - роздільник при перерахуванні констант, змінних;

( )  - містять параметри функцій або операторів;

/*  */  - містять коментар, який розміщується на декількох рядках;

//   - коментар, що займає один рядок.

Важливою складовою мови С++ є керуючі символи (Esc-послідовності), які використовуються для таких дій, як повернення каретки, табуляція, тощо. Керуючий символ складається із зворотного слеша (“\”), за яким вказується або буква, або знаки пунктуації, або комбінація цифр. У таблиці 1.1 наведений список деяких керуючих символів:

Таблиця 1.1- Керуючі символи

Спеціальний символ

Найменування

Звуковий сигнал (дзвінок)

\n

Новий рядок

\t

Горизонтальна табуляція

\v

Вертикальна табуляція

\r

Повернення каретки

\f

Нова сторінка

\

Апостроф

\”

Подвійні лапки

\?

Знак питання

\\

Зворотний слеш

1.2 Типи даних

Основними типами даних є наступні: char, short, int, long, float, double .

Перші чотири типи використовуються для подання цілих чисел, останні два - для подання чисел із плаваючою крапкою. Змінна типу char має розмір, характерний для зберігання символу на даному комп’ютері (зазвичай, байт), а змінна типу int має розмір, що відповідає цілій арифметиці на комп’ютері (зазвичай, слово). Діапазон цілих чисел, які можуть бути представлені типом, залежить від його розміру.

У таблиці 1.2 описані типи даних С++ :

Таблиця 1.2 – Опис типів даних

Тип

Назва типу

Об'єм ОП

Діапазон значень

char

Цілий

8 бітів

-128 … +127

signed char

Цілий із знаком

8 бітів

-128 … +127

unsigned char

Беззнаковий цілий

8 бітів

0...…255

short

Цілий короткий

16 бітів

-32768 …+32767

unsigned short

Беззнаковий цілий  короткий

16 бітів

0...…65535

int

Цілий

32 біта

-2147483648 …+2147483647

unsigned int

Беззнаковий цілий

32 біта

0...…+429496729

long

Цілий довгий

32 біта

-2147483648 …+2147483647

unsigned long

Цілий довгий беззнаковий

32 біта

0...…+429496729

float

З плаваючої комою

32 біта

- 3.4 1038 … 3.4 1038

double

З плаваючої комою довгий

64 біта

- 1.7 10308 … 1.7 10308

long double

Довгий із плаваючої комою

80 бітів

- 3.4 104932 … 3.4 104932

Якщо при оголошенні змінної використати ключове слово const, то одержуємо тип, що має ті ж властивості, що й вихідний, за винятком того, що значення змінної типу const не може змінюватися після ініціалізації. Константа повинна ініціалізуватися при оголошенні. Для змінних ініціалізація необов'язкова, але настійно рекомендується.

 

Приведення типів при обчисленні виразів

При виконанні операцій виконується автоматичне перетворення типів, щоб привести операнди виразів до загального типу або щоб розширити короткі величини до розміру цілих величин, що використовуються у машинних командах. Виконання приведення залежить від специфіки операції і від типу операнда або операндів.

Основні арифметичні перетворення:

  1.  Операнди типу float приводяться до типу double.
  2.  Якщо один операнд long double, то другий приводиться до цього ж типу.
  3.  Якщо один операнд double, то другий також приводиться до типу double.
  4.  Будь-які операнди типу char і short приводяться до типу int.
  5.  Будь-які операнди unsigned char або unsigned short приводяться до типу unsigned int.
  6.  Якщо один операнд типу unsigned long, то другий приводиться до типу unsigned long.
  7.  Якщо один операнд типу long, то другий приводиться до типу long.
  8.  Якщо один операнд типу unsigned int, то другий операнд приводиться до цього ж типу.

Таким чином, при обчисленні виразів операнди приводяться до типу того операнда, що має найбільший розмір. Наприклад,

double         ft, sd;

unsigned char  ch;

unsigned long  in;

int            i;

  ...

  Sd = ft*(i+ch/in);

/* Операнд ch приведеться до типу unsigned int (правило 5). Потім він приведеться до типу unsigned long (правило 6). По цьому ж правилу i приведеться до unsigned long і результат операції в круглих дужках буде мати тип unsigned long. Потім цей результат приведеться до типу double (правило 3) і результат усього виразу буде мати тип double. */

1.3 Операції

Операції - це комбінації символів, що визначають дії по перетворенню значень. У мові С++ визначені наступні операції (табл. 1.3):

Таблиця 1.3 - Операції мови С++

Опе-рація

Найменування

Приклад

Особливості

Арифметичні операції

+

Додавання

a+b

Віднімання

a−b

*

Множення

a*b

/

Ділення

a/b

Результатом ділення цілих чисел буде ціле число (дробова частина відкидається), результат ділення дійсних чисел – дійсне число

%

Остача при діленні цілих чисел

a % b

Знак остачі збігається із знаком дільника

Унарний мінус

-a

Зміна знака числа

Логічні операції

&&

І (логічне множення)

a && b

Результат істина, якщо всі операнди істині

||

АБО (логічне додавання)

a||b

Результат істина, якщо хоча б один з операторів - істина

!

НЕ (заперечення)

!a

Результат протилежний значенню операнда

Операції відношення (порівняння)

==

Дорівнює

a==b

!=

Не дорівнює

a!=b

>

Більше

a>b

<

Менше

a<b

>=

Не менше

a>=b

<=

Не більше

a<=b

Бітові операції

&

І (кон’юнкція)

3&2=5

1&1=1, 0&1=0, 1&0=0, 0&0=0

|

АБО (диз'юнкція)

3|2=3

1|1=1, 0|1=1, 1|0=1, 0|0=0

^

виключаюче АБО

3^2=1

1^1=0, 0^1=1, 1^0=1, 0^0=0

~

Доповнення (заперечення бітів)

~6=-7

~6=~(+)00000110=(-)11111001=-7

Операції зсуву

<<

Зсув вліво на задане число бітів

a<<b

Зсув бітів ліворуч у числі а на b позицій. Результат буде того ж типу, що і а. b не може бути від’ємним або більшим, ніж а.

>>

Зсув вправо на задане число бітів

a>>b

Зсув бітів праворуч у числі а на b позицій. Результат буде того ж типу, що і а. b не може бути від’ємним або більшим, ніж а.

Операції присвоєння

=

Присвоєння

a=b

Значення b заноситься в комірку оперативної пам'яті з ім'ям а. Приведення даних до одного типу відбувається автоматично

+=

Присвоєння суми чисел

a+=b

a=a+b. Короткі числа перетворюються у довгі із збереженням значення, довгі у короткі – із втратою старших бітів. Дійсні числа перетворюються в цілі з відкиданням дробової частини.

%=

Присвоєння остачі ділення

a%=b

a=a%b. Остача визначається тільки при діленні цілих чисел.

−=

Присвоєння різниці чисел

a-a-=b

a= a-b

*=

Присвоєння добутку чисел

a*=b

a=a*b

/=

Присвоєння частки від ділення

a/=b

a=a/b

>>=

Присвоєння із зсувом вправо

a>>=b

<<=

Присвоєння із зсувом вліво

a<<=b

&=

Присвоєння бітової кон’юнкції

a&=b

|=

Присвоєння бітової диз'юнкції

a|=b

^=

Присвоєння значення операції «виключаюче АБО»

a^=b

Унарні операції

++,

−−

Префіксне додавання, віднімання

++a або а=а+1

−−а

Спочатку збільшується (зменшується) значення змінної на 1, потім воно використовується

++,

−−

Постфіксний додавання, віднімання

а++,   

а−−

Спочатку використовується значення змінної, потім воно збільшується на 1

Тернерна операція

?:

Умовна операція

<операнд1>? <операнд2>: <операнд3>

Якщо значення <операнд1> істине, то обчислюється <операнд2>, інакше – <операнд3>

Пріоритети операцій і порядок обчислень

У мові С++ операції з вищими пріоритетами обчислюються першими. Найвищим пріоритетом є пріоритет, рівний 1. Пріоритети і порядок операцій наведені в табл. 1.4:

Таблиця 1.4 - Пріоритети  операцій

Пріоритет

Знак операції

Типи операції

Порядок виконання

1

() [] . ->

Вираз

Ліворуч праворуч

2

+ - ~ ! * & ++ --  

Унарні

Праворуч ліворуч

3

* / %

Мультиплікативні

Ліворуч праворуч

4

+ -

Адитивні

5

<< >>

Зсуву

6

< > <= >=

Відношення

7

== !=

Відношення (рівність)

8

&

Порозрядне І

9

^

Порозрядне виключає АБО

10

|

Порозрядне АБО

11

&&

Логічне І

12

||

Логічне АБО

13

?:

Умовна

14

= *= /= %= += -= &= |= >>= <<= ^=

Просте і складене присвоювання

Праворуч ліворуч

15

,

Послідовне обчислення

Ліворуч праворуч

1.4 Структура програми 

Вихідна програма у загальному випадку являє собою сукупність наступних елементів:

  •  директив препроцесора;
  •  вказівок компіляторові;
  •  зовнішніх оголошень і визначень;
  •  описів функцій.

Препроцесор - це частина компілятора, що виконує підключення стандартних або власних бібліотек користувача до основної програми, формує макровизначення, здійснює умовну компіляцію, тощо.

Директиви препроцесора специфікують дії препроцесора по перетворенню тексту програми перед компіляцією. Вказівки компіляторові - це спеціальні конструкції, які компілятор виконує під час компіляції.

Оголошення змінної задає ім'я і атрибути змінної та приводить до виділення для неї пам'яті. Визначення змінної, окрім того, задає початкове значення змінної (явно або неявно).

Функція – спеціальним чином оформлена частина програми, що виконує логічно завершений набір дій. При оголошенні функції задається її ім'я, тип значення, що повертається, і можливо атрибути її формальних параметрів.

Програма може містити довільне число директив і вказівок компіляторові, оголошень і визначень змінних, описів функцій. Порядок появи цих елементів у програмі досить істотний; він впливає на можливість використання змінних, функцій і типів у різних частинах програми. Для того, щоб програма мовою С++ могла бути скомпільована і виконана, вона повинна містити принаймні одну функцію. Якщо ж програма містить кілька функцій, то серед них виділяється одна головна функція, що має ім'я main. З неї починається виконання програми; вона визначає дії, що виконуються програмою, і викликає інші функції. Якщо програма містить тільки одну функцію, то вона і є головною (має ім'я  main).

Розглянемо найпростіший приклад програми на С++ :

#include <iostream>        // директива препроцесора

main()               //  головна функція

{

 cout << "Hello,world\n";   // виведення повідомлення на екран

}

Рядок #include повідомляє компілятору, щоб він включив стандартні можливості потоку введення і виведення, що є у файлі iostream.h. Без цих описів вираз cout<<"Hello,world\n" не мав би змісту. Операція << ("помістити в") пише свій перший аргумент у другий (рядок "Hello,world\n" у стандартний потік виведення cout). Рядок - це послідовність символів, що заключена у подвійні лапки. У даному рядку символ “\n “ є управляючим символом переходу на новий рядок.

Інша частина програми

main()

{ ...

}

визначає головну функцію main. Кожна програма повинна містити функцію main, і робота програми починається з виконання саме цієї функції.

2.  Потокове введення / виведення 

Потокове виведення виконується за допомогою операції зсуву вліво ”<<”. Стандартна операція зсуву вліво ”<<” для операцій виведення перевизначається, тобто для цієї операції визначаються нові можливості.  Потокове введення аналогічне виведенню, але використовує перевизначену операцію зсуву вправо ”>>”. Функції потокового введення (cin>>) і потокового виведення (cout<<) описані у бібліотеці iostream. Для керування ними можуть використовуватися маніпулятори, представлені в таблиці 1.9.

Таблиця 2.1 – Маніпулятори управління потоковим  введенням / виведенням

Маніпулятор

Дія

dec

Установка прапора форматування з десятковим перетворенням

hex

Установка прапора форматування із шістнадцятковим перетворенням

oct

Установка прапора форматування із вісімковим перетворенням

setbase(int n)

(для цього треба включити в програму заголовковий файл

#include <iomanip> )

Установка системи числення при перетвореннях із основою n
(0, 8, 10 або 16). Нуль за замовчуванням означає десяткову систему при виведенні і правила
С++ для літералів цілих чисел при введенні

resetiosflags(long f)

Очищення форматних бітів в ins або outs, заданих аргументом f

setiosflags(long f)

Установка біт форматування в ins або outs, заданих аргументом f 

setfill(int c)

Установка символу-заповнювача в c

setprecision(int n)

Установка точності подання чисел із плаваючою крапкою, що дорівнює n розрядам

setw(int n)

Установка ширини поля виведення значення рівним n 

 

  1.  Завдання

За допомогою функції cout вивести текст про виконавця роботи (прізвище, ініціали, група, варіант).

За допомогою функції cin ввести два цілих числа. Виконати бітову операцію відповідно варіанту (таб. 3). Результат вивести за допомогою функції cout у десятковому та шістнацядковому вигляді. Пояснити отриманий результат.

Використовуючи функцію cin ввести три дійсних , b та c) числа. За допомогою функції cout вивести на екран введені числа, номер варіанта та значення обчисленого виразу (значення варіанта задавати константою).

Таблиця 3.1Варыанти

Варіант

Завдання1

Завдання2

1

c=~(a & b);

2

c=~(a | b);

3

c=~(a ^ b);

4

c=(~a & ~b);

5

c=(~a | ~b);

6

c=(~a ^ ~b);

7

c=-(a | b);

8

c=-(a & b);

9

c=-(a | b);

10

c=~(a & -b);

11

c=~(-a ^ b);

12

c=-(a | -b);

13

c=(~a | -b);

14

c=-(~a & b);

15

c=-(a ^ ~b)

  1.  Вимоги до звіту

Звіт по лабораторній роботі повинен бути виконаний в електронному варіанті (Word або HTML) і містити наступні розділи:

номер і назва лабораторної роботи;

відомості про виконавця (прізвище, ініціали, група, варіант);

постановка задачі;

опис виконання операції «доповнення» для номера варіанта;

алгоритм рішення п.3 завдання;

текст програми;

 відео - копії отриманих результатів.

  1.  Контрольні питання

Як визначаються коментарі в тексті програми?

Які заголовні файли використовуються для підключення функцій введення / виведення?

У чому відмінність операторів постфіксного і префіксного додавання (віднімання)?

Робота з бітовими операціями.

Особливості роботи функцій потокового введення / виведення.

Чи обов'язково в програмі повинна бути функція  main?

PAGE   \* MERGEFORMAT9


 

А также другие работы, которые могут Вас заинтересовать

32594. Учет расчетов по социальному страхованию и обеспечению 34 KB
  Для расчетов такого типа предусмотрен счет 69 Расчеты по социальному страхованию и обеспечению. Счет 69 Расчеты по социальному страхованию и обеспечению предназначен для обобщения информации о расчетах по социальному страхованию пенсионному обеспечению и обязательному медицинскому страхованию работников организации. К счету 69 Расчеты по социальному страхованию и обеспечению могут быть открыты субсчета: 691 Расчеты по социальному страхованию 692Расчеты по пенсионному обеспечению; 693 Расчеты по обязательному медицинскому...
32595. Учет расчетов с персоналом по оплате труда 47.5 KB
  Для учета личного состава начисления и выплат заработной платы используют унифицированные формы первичных и учетных документов. В лицевые счета записывают необходимые сведения о работнике все виды начислений и удержаний из заработной платы за каждый месяц. Независимо от формы первичные документы содержат в себе как правило следующие реквизиты: место работы время работы дата наименование и разряд работы операции количество и качество работы фамилии инициалы табельные номера и разряды рабочих нормы времени и расценки за единицу...
32596. Учет расчетов с подотчетными лицами. Бухгалтерские проводки по учету расчетов с подотчетными лицами 39.5 KB
  С 2012 года правила выдачи подотчетных сумм несколько изменятся новшества также предусмотрены Положением № 373П. В частности чтобы получить деньги под отчет работник должен каждый раз писать заявление. Кассир может выдать деньги на основании заявления в котором руководитель сделал надпись о сумме и сроке приказ со списком подотчетных лиц больше издавать не надо.
32597. Учет расчетов с поставщиками и покупателями 47.5 KB
  Предусмотрено наличие на каждом предприятии двух видов журналов учета счетовфактур: журнала учета выдаваемых покупателям счетовфактур и журнала учета полученных от поставщиков счетовфактур. Все счетафактуры хранящиеся в журнале учета счетовфактур должны быть пронумерованы с начала года. Журналы учета полученных и выданных счетовфактур должны быть прошнурованы а их страницы пронумерованы. Для аналитического учета расчетов за поступившие от поставщиков материальные ценности предприятие ведет Реестр учета расчетов с поставщиками и...
32598. Учёт резервов предстоящих расходов 39 KB
  Счет 14 Резервы под снижение стоимости материальных ценностей предназначен для обобщения информации о резервах под отклонения стоимости сырья материалов топлива и т. ценностей определившейся на счетах бух учета от рыночной стоимостирезервы под снижение стоимости материальных ценностей. Образование резерва под снижение стоимости материальных ценностей отражается в учете по кредиту счета14 Резервы под снижение стоимости материальных ценностей и дебету счета 91 Прочие доходы и расходы. В начале периода следующего за периодом в...
32599. Учет собственного и заемного капитала в крестьянском фермерском хозяйстве 34.5 KB
  Учет собственного и заемного капитала в крестьянском фермерском хозяйстве. Собственный капитал сумма уставного резервного и добавочного капитала а также нераспределенная прибыль и целевое финансирование. Учет уставного капитала Уставный капитал это сумма средств первоначально инвестированных собственниками для обеспечения уставной деятельности организации. Величина уставного капитала может по решению учредителей увеличиваться или уменьшатся в процессе финансовохозяйственной деятельности с обязательной регистрацией изменений в...
32600. Трудовые ресурсы и показатели эффективности их использования 29.5 KB
  Эффективность использования трудовых ресурсов характеризуется двумя основными показателями: производительностью труда и трудоемкостью продукции. Производительность труда способность конкретного труда производить в единицу времени определенное количество продукции. Производительность труда Пт в сельском хозяйстве рассчитывается двумя способами: 1. Объем валовой продукции в денежной оценке в расчете на одного среднегодового работника Р:...
32601. Учет внеоборотных и оборотных активов в КФХ 34.5 KB
  На первоначальном этапе создания крестьянского фермерскогохозяйства его основные и оборотные средства формировались в основном за счет имущественного пая выделяемого сельскохозяйственным предприятием или за счет собственных средств. В дальнейшем строительство и приобретение зданий машин взрослого продуктивного и рабочего скота и других объектов основных средств осуществляется за счет собственных средств крестьянского фермерскогохозяйства. Приемпередачу объектов основных средств от сельскохозяйственного предприятия крестьянскому...
32602. Учет денежных средств в кассе‚ на расчетных и других счетах в банке 74.5 KB
  Порядок хранения и расходования денежных средств в кассе установлен Инструкцией ЦБ РФ Порядок ведения кассовых операций в РФ от 4. Поступление денежных средств учитывается по дебету списание по кредиту. Для обеспечения надлежащего контроля за сохранностью денежных средств ежемесячно проводится инвентаризация кассы комиссией утвержденной руководителем предприятия.