Варіанти до роботи

Таблиця 1. Варіанти до пункту № 3.


Таблиця 2. Варіанти до пункту 6.

Оглядові запитання

1. Що таке модулі програми на мові С++?

2. Що виконує наступна директива препроцесора? #include <iostream>

3. Що виконує наступний оператор? using namespace std;

4. Який оператор можна використовувати, щоб надрукувати фразу “Hello!” та перейти на новий рядок?

5. Який оператор можна застосовувати, щоб присвоїти змінної типу цілого числа з іменем cheeses?

6. Який оператор можна використовувати, щоб присвоїти змінної cheeses значення 76?

7. Який оператор можна використовувати, щоб зчитати значення, що введені з клавіатури, та присвоїти його змінної cheeses?

8. Який оператор можна використовувати, щоб надрукувати фразу “У нас є X сортів cheese”, у котрій значення змінної cheese замінює Х?

9. Що можна казати про функції наступних їх прототипів? int froop (double t); void rattle (int n); int prune (void);

10. У яких випадках не використовується ключове слово return при визначені функції?


Лабораторна робота № 4. Арифметичні та логічні операції у С++.

Мета роботи.

Здобути навики використання середовища розробки мови C++, створити проект, що містить арифметичні та логічні операції, здобути навички написання таких програм.

Короткі теоретичні відомості до роботи.

Програма на мові С++ записується в текстовий файл з розширенням.cpp, наприклад, progr.cpp.В іменах файлів не слід використовувати нелатинські літери. Власний алгоритм розташовується у фігурних дужках {} після виразу main (), у якому круглі дужки вказують, що це - програмний блок, який має назву – функція, у даному випадку з іменем main. Програма може складатися не із однієї функції, але main (головна) присутня завжди. З неї починається виконання програми. Алгоритм програми має назву тіло функції і завжди заключний у фігурні дужки. Окрема фраза алгоритму закінчується знаком;. Функція main завжди завершується виразом return 0;, який свідчить, що програма завершена.

Перша операція нашої програми: cout<<“****початок****”; - виводить на екран монітора символьний рядок (текст якого розміщується у подвійних лапки).

Наступний рядок – це об’ява. Позначення I, j, k, f є іменами змінних, або ідентифікаторами. Слово, що стоїть поперед ідентифікаторів, визначає тип даних і має назву спеціфікатором типу. Наприклад, int визначає, що I, j, k, f - цілі числа. Далі I та j присвоюється значення 2. Безпосереднє привласнення значення ідентифікатора при об’яві називається ініціалізацією, що демонструють оголошення:

double d=.751; де змінна d - числа з плаваючою точкою типу double.

сhar f = ‘ &’; де символьна змінна f - типу сhar.

Символ полягає в одинарні лапки, рядок символів - у подвійні. Ціла і дробова частини числа розділяються крапкою. Рядок

cout<<“\n”<<“i=“<<i<<“\n”<<“j=“<<j<<‘ ‘

<<“d=”<<d<<“\n”<<“f=“<<f;

Послідовно виводяться на екран значення I, j, d, f (спеціальний вивід).

Команда \n – почати вивід з нового рядка.

Пробіл у одинарних лапках розділяє пробілом виведені знаки або рядки.

Операція I=N дається поперед функції main, як вказівку препроцесору

#define N 12, яка робить заміну N на 12 і далі робиться присвоєння змінній I значення 12.

Операція cin>>k; зупиняє виконання програми для введення з клавіатури значення змінній k. Після натискання на клавішу Enter присвоюється змінній k відповідне значення.

Директива препроцесору #include<iostream, h> - включає у програму вбудовані у мову С++ функції вводу-виводу

Рядки, що починаються з символу #, обробляються поперед компіляції власної програми.

Програма повинна бути написана зрозуміло для користувача. Кожна програма повинна починатися з коментаря, в якому міститься назва файлу і його призначення. Коментарі всередині програми повинні допомагати її розумінню. Програма повинна бути розділена на логічні блоки відступами, пробілами, коментарями. Ідентифікатори повинні відповідати загально прийнятим математичним позначенням. Букви i, j, k, l, m, n бажано використовувати для позначення цілих чисел.

//Файл 1\1_01.cpp

#include <iostream, h> //заголовочний файл

#define N 12 //заміна N на 12

main () {

cout<<”*****початок*****”;

int i, j, k, l; //об’ява

i=j=2 //присвоєння

double d=.526; //об’ява зі ініціалізацією

char f=’&’ //об’ява зі ініціалізацією

cout<<“\n”<<“i=“<<i<<“\n”<<“j=“<<j<<‘ ‘

<<“d=”<<d<<“\n”<<“f=“<<f; /*вивід на монітор

I=N; //використання директиви #define

cout<<“\n”<<“I=”<<I; /*вивід значення змінної N

cout<<“\n”<<“ввід цілого числа k”;

cin>>k; /*ввід з клавіатури

cout<<“k=”<<k; //вивід k

cout<<“\n”<<“i+j“<<i+j<<‘ ‘<<“d+k=“<<(d+k)

<<“ ^^ кінець ^^”;

return 0; /*при завершені програма повертає процесору, який її викликав, значення 0 */

} //кінець функції main

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

Результат виконання програми

Компіляція та виконання програм.

Компілятор Microsoft Visual C++ 6.0 та Microsoft Visual C++NET (2003) практично повністю однакові.

Запустимо компілятор та за допомогою команди File | New … викличемо діалогове вікно New з активною закладкою Projects. У лівій частині вікно слід виділити рядок Win32 Console Application.

У результаті створюється консольний додаток Windows. Праворуч у вікні за допомогою поля Location слід вибрати дисковий каталог, у якому будуть розташовані усі учбові проекти. У полі введення, яке розташовано у правій частині вікна, слід ввести з клавіатури назву проекту (наприклад, –Proj1). Натиснути кнопку ОК і проект створений. Графічним середовищем компілятора автоматично створений однойменний проект дисковий каталог Proj1, у якому розташуються усі допоміжні файли, що обслуговують проект.

Щоб впровадити в проект свій файл з текстом, потрібно знову виконати команду File | New … графічного середовища компілятора Microsoft Visual C++, але вже з активною закладкою Files, де лівою клавішею миші виділяємо рядок “С++ Source File”. У правій частині вікна у File name вводимо ім’я файлу з розширенням “.cpp”. Натискуємо кнопку ОК и такий файл автоматично створюється в каталогу нашого проекту, а його текст можна вводити з клавіатури.

Фактично права частина головного вікна компілятора є текстовим редактором. Процес компіляції починається з натисканням клавіші F7 (або виконати команду меню Build | Build Proj1.exe) і процес компіляції пішов. Результат компіляції можна подивитися у нижній частині вікна компілятора.

Самим головним є повідомлення про відсутність помилок у процесі компіляції (0 error) і відсутність попереджень (0 warning). Компілятор відповів, що програма написана правильно і створив машинний варіант програми

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

Наприклад, клавішею F9 поставити маркер зупинку у деякий рядок програми. У цьому випадку програма зупиниться на цьому рядку. Наводячи курсор миші на іменах змінних, можна у спливаючому вікні побачити їх поточні значення, аж до крапки зупину програми.

Щоб після зупинки перейти до наступного рядка достатньо натиснути на клавішу F10. Для початку виконання програми в автоматичному режимі достатньо знову натиснути клавішу F5.

ЕЛЕМЕНТИ МОВИ С++

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

Сукупність ключових слів складає словар мови. Усі зарезервовані ключові слова містять тільки малі літери (символи нижнього регістру) й написані на англійській мови. Нелатинський алфавіт можна використовувати тільки у коментарях, між подвійними лапками та для символьних змінних між одинарними лапками.

Пробіл – використовується не тільки в якості роздільника лексем мови, але й як символьний знак. Компілятор не реагує на додаткові пробіли у тексті програми.

С++ використовує знаки арифметичних та логічних операцій

Сенс обчислення остачі (%) у тому, що автоматично при діленні цілих чисел здійснюється округлення, причому, дрібна частина відкидається.

АРИФМЕТИЧНІ ТА ЛОГІЧНІ ОПЕРАЦІЇ

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

Наприклад, у виразі: i=k+d+1/m%n-1; - дії виконуються в такому порядку: множення, ділення, обчислення остачі, додавання, віднімання.

ПРИКЛАДИ СКОРОЧЕНИХ ЗАПИСІВ:

Операції інкрименту та декрименту застосовуються до цілих чисел. Операції з умовами використовують ключове слово if (коли). Наприклад, if (а>b) a+=b;

Коли а>b виконується, тобто умова істинно (true), виконується операція додавання a+=b. Коли умова не виконується, тобто умова хибна (false), операція додавання не виконується.

Умова може складатися не обов’язково із однієї умови. Умова зв’язується знаками логічного додавання && (І) або логічного множення || (АБО).

Наприклад,

if (i==j && k!=5) a=1.5; if (i==j || k!=5) a=1.5;


Програма обчислення арифметичних та логічних операцій.

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

Слід пам’ятати, що введення декілька чисел (або символів) виконується послідовно: число, Enter, число, Enter, і так далі.

Оглядові запитання

1. З яким розширенням записує програму файлу у С++?

2. Яка функція main ()?

3. З якої функції починається виконання програми?

4. Яким виразом завершується завжди функція main?

5. Які букви бажано використовувати для позначення цілих чисел?

6. Як впровадити в проект свій файл з текстом?

7. Як запустити програму із графічного середовища компілятора, як відлагоджувальний варіант машинної програми?

8. Які С++ використовує знаки арифметичних та логічних операцій?

9. Яким чином виконуються операцій одного пріоритету?

10. До яких чисел використовуються операції інкрименту та декрименту?

11. Які знаки використовуються при написані умови операції розгалуження?


Лабораторна робота № 5. Змінні у С++.

Мета роботи.

Здобути навики використання середовища розробки мови C++, створити проект, що містить різні змінні в операції, здобути навички написання таких програм.

Короткі теоретичні відомості до роботи.

Кожна змінна має ім’я, тип, розмір та значення.

Ім’я змінної (ідентифікатор) є її назва. Тип визначає, яки числа або символи записані у комірки пам’яті під цим ім’ям. Розмір – зв’язаний з об’явою типа, визначає об’єм пам’яті, максимальну величину або точність заданого числа. Значення визначає конкретний вміст числа, що заданий. Ідентифікатор починається з букви, складається з комбінації букв, цифр ти знака підкреслення. Ідентифікатор може присвоювати константу.

Набір базових типів даних в С++ розглядався у першій лекції.

Програмісти за звичаєм використовують скорочену запис типу, для чого іноді відкидають слово int. Тип chair (character – символ) використовується для збереження букви, цифри, або символу із множини символів. При присвоюванні використовуються одинарні лапки. Тип int (integer – ціле число), який служить для збереження цілих чисел, типи float (плаваючий) та double (подвійний) – для збереження чисел з плаваючою крапкою. Беззнакова форма unsigned (sign – знак) дає можливість більш ефективно працювати з цілими числами типа int та з кодами символів типа chair. Форми short (короткий), long (длінній) та unsigned (беззнаковий) дозволяють економно використовувати ресурси комп’ютера.

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

Наприклад, double a;

J=sizeof (a); f,j j=sizeof (double);

Цілі числа у С++ представлені у десятковій, восьмирічній, шестнадцатеричній системах числення. Програмісти використовують за звичаєм десяткову систему.

Наведемо приклади напису чисел (10, 132, 32179) у десятковій, восьмирічній, шестнадцатеричній системах числення відповідно:

10 → 012 → 0xа

132 → 0204 → 0xА

32179 → 076663 → 0x7DB3

Числа з плаваючою крапкою у десятковій системі числення можна записати у звичайній формі з роздільною крапкою, або науковою нотацією. Наприклад:

2103ю001 = ю2103001e+4 = 21030/01e-1

-102. =-.102e+3 = -1020.e-1

Приклади об’яви типів з ініціалізацією:

char f=‘5’, f2=‘$’, f3=‘1’;

unsigned char p = ‘4’;

Int i=33; short j=-3736; long k=21474066; unsigned l=445; float a=.156;

Double bi=3.e-15; long double cc=-.111. e+40;

Константа задається за допомогою атрибута const (постійний). Наприклад:

const double PI=3.1416;

При спроби змінити значення константи компілятор фіксує помилку.

Розглянемо програму визначення розмірів пам’яті базових типів.

Множина типів даних створює проблеми при виконані операцій з операндами (учасниками операцій) різних типів. Арифметичні дії виконуються над числами одного типу. Тому константи треба перетворювати (привести) до одного типу.

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

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

Наприклад: int I; double a;

a=(double)I; - ціле число перетворюється у тип double і присвоюється а.


i=(int)a; - число з плаваючою крапкою перетворюється у ціле і присвоюється i. При присвоєні здійснюється неявне перетворення типів. Наприклад, операції: a=I; i=a; повторюють приведені вище явні перетворення.

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

Розглянемо програму, у якій змінюється результат в залежності від перетворення типів окремих чисел та їх суми.

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

У тексті програми об’ява повинна передавати першому використані змінні.

КЕРУЮЧІ СТРУКТУРИ МОВИ С++

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

Структура слідуванням вписана в С++. Поки не вказано іншого, комп’ютер виконує операції одну за одній у тій послідовності, яки були записані програмістом.

С++ містить три типи структур вибору и три типи структур повторення.

СТРУКТУРИ ВИБОРУ

Структура вибору if вже використовувалась при розглядані логічних операцій. Наприклад: if (m==n) cout<<“m рівно n”;

if (m!=n) cout<<“m не рівно n”;

Структура вибору if/else (коли/інакше) дає можливість подвійного вибору. Перепишемо два рядка, що вже розглянуті.

If (m==n) cout<<“m рівно n”;

else cout<<“m не рівно n”;

Коли умова істинна – виконується одна дія, а коли умова хибна – виконується інша дія.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: