Реферат: Розділ лінійні програми вступ поняття програми. Мова програмування середовище програмування. Поняття програми. Створення програми








Методична розробка




Частина 1


Лінійні алгоритми

Розгалуження

Цикли

Функції

Масиви

Шаблони

Структури

Динамічні структури






Підготував: вчитель інформатики
Колківської ЗОШ-ліцею

Процик Анатолій Петрович


Колки

2006


^ РОЗДІЛ 1. ЛІНІЙНІ ПРОГРАМИ

ВСТУП

ПОНЯТТЯ ПРОГРАМИ. МОВА ПРОГРАМУВАННЯ СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ .

ПОНЯТТЯ ПРОГРАМИ. СТВОРЕННЯ ПРОГРАМИ.

Програма, що працює на комп'ютері, нерідко ототожнюється з самим комп'ютером, оскільки людина, що використовує програму, "вводить в комп'ютер" початкові дані з клавіатури або за допомогою мишки і "комп'ютер видає результат" на екран (так для прикладу працює програма „Калькулятор”). Насправді перетворення початкових даних, що вводяться з клавіатури, і результат, що виводиться на екран монітора, виконує процесор комп'ютера відповідно до послідовності команд деякої програми, яку попередньо написав і зберіг на комп’ютері програміст. Так, щоб комп'ютер виконав деяку роботу, необхідно розробити цю послідовність команд, або, як кажуть, написати програму. Вираз написати програму відображає тільки один з етапів створення комп'ютерної програми, коли розробник програми дійсно записує команди (інструкції) на папері або за допомогою текстового редактора.

Програмування — це процес створення (розробки) програми. Іншими словами, це процес написання тексту програми в деякому текстовому редакторі або на листку паперу. Текст програми пишеться на деякій мові програмування.

Програма – це опис обчислень.

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

^ МОВИ ПРОГРАМУВАННЯ.

Знакові системи, що використовуються для опису процесів обчислень, які виконуються на комп’ютері – мови програмування. Процес формування опису – програма. Розрізняють наступні мови програмування:

машинні

асамблерні

мови високого рівня

Машинні мови

Знакова система, яка допускає безпосередньо виконувати процесором комп’ютера програм, що написані на цій мові. Одиниця програми в машинній мові – це машинна команда.



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

Для виконання переважної більшості операцій недостатньо однієї команди. Таму команди машинної мови об’єднуються в так звані речення.

Асамблерні мови

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




Мови високого рівня

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


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




Компіляція – процес, в якому на мові високого рівня цілком перетворюється у програму машинної мови, а вже потім програма на машинній мові виконується процесором. Тому компільована машина програма на відміну від інтерпретованої запам’ятовується цілком. Програму, що виконує процес компіляції називають компілятором.



Першою мовою високого рівня, що стала концептуальною основою більшості сучасних мов була мова ALGO 58/60.

В даний час в комп'ютерному світі існує безліч мов програмування високого рівня. Найпопулярніші сьогодні – це BASIC, Pascal, С, Ада, JAVA. Яка з мов краща? Відповідь на це питання не так проста. Проте можна з упевненістю сказати, що С++ не "учбова", не "іграшкова" мова, вона використовується для розробки складних "професійних" програм, у тому числі працюючих в середовищі Windows.

^ СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ

Середовище програмування - це системи програм, що забезпечують початкове кодування та відлагодження програми. Крім засобів трансляції програм (компілятора для більшості мов), вони містять у собі засоби для роботи з файловою системою та операційною системою (ОС). Такі середовища програмування називають інтегрованими. Інтегроване середовище програмування містить:

редактор для створення програм;

засоби трансляцію програми у машинну мову (компілятор або інтерпретатор)

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

розвинуту бібліотеку підпрограм, модулів, класів, мегамодулів (готових програм, які може використати програміст у своїй програмі).

§1. ПЕРША ПРОГРАМА

Більшість програм на C++ починаються з одного або декількох операторів #include, містять рядок void main(void), а потім набір операторів, що беруться у фігурні дужки. З цього уроку ви зрозумієте, що ці на перший погляд складні оператори реально дуже просто освоїти. До кінця даного уроку ви вивчите наступні основні концепції:

Оператор #include забезпечує підключення «допоміжних» файлів, які містять оператори C++ або програмні визначення.

Основна частина програми на C++ починається з оператора void main(void).

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

Для виведення на екран можна використовувати оператор cout.

Коли ви створюєте програми на C++, ви реально працюєте в термінах операторів. Пізніше ви вивчите оператор привласнення, який привласнює значення змінним, оператор if, який дозволяє програмі «самій приймати рішення» і т.д. А поки ми просто будемо розглядати програму, як систему, що складається операторів.

Директиви препроцесора.

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

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

Директиви мови С++ починаються із символа #.

^ Д
#include <назва файлу.розширення> або #include ”шлях до файлу\назва файлу.розширення”

#include <math.h> #include ”d:\stud\MyBib.h”
иректива #include означає, що до програми необхідно приєднати програмний код із зазначеного після неї файлу (header-файлу, модуля, бібліотеки).

У першому випадку бібліотека math.h є стандартною (усі стандартні бібліотеки розміщені у папці INCLUDE середовища С++). Бібліотека MyBib.h не є стандартною і знаходиться за вказаним шляхом.

^ Перша програма

Суттєвою особливістю мови С++ є те, що програми складаються з функцій. Головна фуккцію, яка має бути у кожній програмі, - це функція вигляду:

К
// Коментар

Main(void)

{

Тіло функції

Return 0;

}
оментар слугує для пояснення призначення програми і не впливає на виконання команд програми. Коментар можна і не писати.

Main() – заголовок функції.

Void – означає, що функція незалежить від параметрів.

У тілі функції містяться команди. Команди одна від одної відокремлюють символом – ; . Текст функції закінчується Return 0 – командою виходу з функції та повернення функції результату (у описаному випадку значення – 0). Тіло функції записується у {… }


1. Перша програма

Р
// Моя перша програма

#include

Main(void)

{

Cout <<”Привіт! Я С++!”;

Return 0;

}

// Моя перша програма

#include

Int Main()

{

Cout <<”Привіт! Я С++!”;

Return 0;

}
озглянемо програму, у результаті виконання якої на екран буде виведено повідомлення: Привіт! Я С++!

Ключове слово void можна не писати (замість Main(void) записати Main()).

Коментар // Моя перша програма не впливає на роботу програми. Його можна записати по-іншому: /* Моя перша програма*/ - це більш універсальний запис коментаря.

Директива #include під’єднує бібліотечний файл iostream.h. Саме в цьому файлі описана команда - конструкція Cout <<.

Cout << забезпечує виведення на екран монітора повідомлення ”Привіт! Я С++!”.

Функція Main(void) (або те ж саме Main()) може мати тип. Наприклад.


Int Main() – означає, що функція повертатиме в точку виклику результат типу Int, тобто цілого типу. В нашому випадку в точку виклику функція повертає ціле значення 0 (return 0).

Інший варіант цієї програми:


// Моя перша програма

#include

Void Main()

{

Cout <<”Привіт! Я С++!”;

}



Така функція називається функцією типу Void. Вона не повертає в програму жодних значень. Тому команду Return писати не треба.


І ще один варіант нашої першої програми:


// Моя перша програма

#include

#include

Void Main()

{

Clrscr();

Cout <<”Привіт! Я С++!”;

Getch();

}



#include - під’єднання бібліотеки, де знаходяться іункції Clrscr() та Getch().

Clrscr() – очищення екрана.

Getch() – затримка на екрані результату виконання програми до тих пір, поки не буде натиснута довільна клавіша на клавіатурі.


2. Підсумок.

Програма на мові С++ розпочинається підключенням бібліотек (для цього слугує деректива #include).
Бібліотека iostream.h – містить конструкцію cout<<, яка виводить на екран повідомлення. Повідомлення беруться в кавички (“…”)
Бібліотека conio.h – містить функції clrscr() та getch().
clrscr() – очищення екрану
getch() – затримка на екрані результату виконання програми

Кожна програма мовою С++ повинна містити головну функцію main(). Тіло функції заключають у фігурні кавички {…}. Після кожної команди тіла функції ставиться крапка з комою - ;

Функція може мати тип:
int main() – означає, що функція повертає в точку виклику функції значення типу int(ціле). В цьому випадку тіло функції має завершуватися командою return.
void main() – що функція має тип void, тобто не повертає ніякого значення. В цьому випадку в тілі функції команда return не використовується.



§2. КЕРУЮЧІ ПОСЛІДОВНОСТІ

Керуючі послідовності – це комбінація спеціальних символів, які використовуються для введення та виведення деяких даних. Керуюча послідовність складається із символу слеш «\» і спеціально означеного символу. Вони призначені для форматованого виведення на екран, наприклад, для переходу на новий рядок, подання звукового сигналу, а також для виведення на екран деяких спеціальних символів: апострофа, лапок тощо. Основні керуючі послідовності наведені у таблиці.

^ Символи керуючих послідовностей

Призначення

\а , \7

Подати звуковий сигнал

\n

Перейти на новий рядок.

\t

Переведення курсора до наступної позиції табуляції

\\

Вивести символ \

\’

Вивести символ ‘

\”

Вивести символ ”

\?

Вивести символ ?

Керуючі послідовності разом з повідомленнями записуються у лапках після конструкції cout <<.

^ Розглянемо програму:


#include

#include

Void main()

{

Clrscr();

Cout<<”Привіт! \n”;

Cout<<”Я С++”;

Getch();

}



#include

#include

Void main()

{

Clrscr();

Cout<<”Привіт! \nЯ С++”;

Getch();

}


^ Результат роботи програми:

Привіт!

Я С++


або

Зауваження 1. Якщо використати послідовність, невизначену у мові С++ (наприклад, \u), то компілятор пропустить символ послідовності (похилу риску) і виведе на екран лише символ, записаний після риски (в нашому випадку літеру u)

Зауваження 2. Замість керуючої послідовності \n можна використати команду cout<
Попередню програму з використанням команди endl можна переписати у таких виглядах:


#include

#include

Void main()

{

Clrscr();

Cout<<”Привіт! \n”;

Cout<
Cout<<”Я С++”;

Getch();

}

#include

#include

Void main()

{

Clrscr();

Cout<<”Привіт! “<
Cout<<”Я С++”;

Getch();

}

#include

#include

Void main()

{

Clrscr();

Cout<<”Привіт! “<
Getch();

}



Програма виведення на екран Вашої домашньої адреси.


^ 1. З використанням керуючої послідовності \n

#include

#include

Void main()

{

Clrscr();

Cout<<”Моя домашня адреса. \n”;

Cout<<”*******************\n”;

Cout<<” Волинська обл” \n;

Cout<<” Маневицький р-н\n”;

Cout<<” смт. Колки\n ”;

Cout<<” вул. Центральна, 5\n”;

Getch();

}

^ 1. З використанням команди cout<

#include

#include

Void main()

{

Clrscr();

Cout<<”Моя домашня адреса. ”<
Cout<<”*******************”<
Cout<<” Волинська обл” <
Cout<<” Маневицький р-н” <
Cout<<” смт. Колки ” <
Cout<<” вул. Центральна, 5” <
Getch();

}



Підсумок

Керуючі послідовності – це комбінація спеціальних символів, які використовуються для введення та виведення даних. Керуючі послідовності записуються разом з повідомленнями у кавичках конструкції cout<<.

Керуюча послідовність \n переводить курсор на наступний рядок

Команда cout<


§3. НАЙПРОСТІШІ ПРОГРАМНІ ОБ’ЄКТИ. СТАЛІ ТА ЗМІННІ.

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

Загальні відомості про програмні об’єкти

Будь-який, навіть найпростіший, об’єкт має:

позначення (назву, ім’я);

значення;

тип;

Для об’єкта визначені ті чи інші операції, які можна застосувати до даного об’єкта.

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

Сталі (константи)

Стала – це об’єкт для якого не можна застосувати операцію зміни його значення. Значення сталої протягом виконання усієї програми не змінюється.

О
Const <назва сталої 1> = <значення сталої 1> або Const <тип> <назва сталої 2> = <значення сталої 2>
пис сталої

Якщо тип сталої не вказується, то вона вважається цілою (типу int) – для сталої 1.

Стала 2 називається типізованою. Для неї вказується тип.

С
Приклад

Const vik = 20, rist = 156;

Const float g = 2.78
талі vik та rist – не типізовані, які мають значення 20 та 156 відповідно.

Стала g – типізована. Вказує на те, що це дійсна стала. Її значення 2.78.

Зверніть увагу, що в одному блоці const можна описати кілька констант, перерахувавши їх через кому (vik = 20, rist = 156)


Розглянемо 2 варіанти програми, яка виводить дані про учня.


#include

#include

const vik = 15, rist = 156;

void main()

{

clrscr();

cout<<"Мiй вiк = "<
cout<<"Мiй зрiст = "<
getch();

}

#include

#include

void main()

{

clrscr();

const vik = 15, rist = 156;

cout<<"Мiй вiк = "<
cout<<"Мiй зрiст = "<
getch();

}

або

^ Результат роботи програми

Мiй вiк = 15

Мiй зрiст = 156



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

Зауваження 2 Правила хорошого стилю програмування вимагають описувати усі об’єкти в межах тієї функції, де вони використовуються. В нашому випадку опис const vik = 15, rist = 156 правильніше робити в тілі головної функції (другий варіант програми).

Змінні

Змінні – це об’єкти, які можуть набувати а також змінювати свої значення під час виконання програми. Їх оголошують так:


<тип змінних 1> <список змінних 1>;

……..

<тип змінних N> <список змінних N >;



У списку змінні записуються через кому.


Наприклад, змінні оголошуються так:

а
Int a,c;

float b, d = 2.5;

char w, q = ‘a’;
та с – змінні цілого типу (типу Int)

b, d – змінні дійсного типу (типу float). Змінній d надається деяке значення 2.5 відразу під час оголошення (або, іншими словами, змінна d ініціалізується під час оголошення значенням 2.5)

w, q – змінні символьного типу (char). Змінна q ініціалізується значенням ‘a’ під час оголошення.

Приклад Програма знаходження суми та добутку двох чисел


#include

#include

void main()

{

clrscr();

const a = 3, b = 2;

int sum, prod;

sum = a+b;

prod = a*b;

cout<<"3 + 2 = "<
cout<<"3 * 2 = "<

getch();

}

^ Результат роботи програми:

3 + 2 = 5

3 * 2 = 6

Підсумок.

Для організації даних в програмі використовують змінні та сталі:
Стала – це ділянка пам’яті значення якої не може змінюватися під час виконання програми.
Змінна – це ділянка пам’які, яка може отримувати значення, а також значення в ній може змінюватися під час роботи програми.

Перш ніж використати сталі та змінні, їх необхідно описати.


^ ХОЧЕШ ЗНАТИ БІЛЬШЕ? ПРОЧИТАЙ!

1. ПРЕДСТАВЛЕННЯ ЗНАЧЕНЬ У КОМП’ЮТЕРІ.

Розрізняють числові значення (наприклад, 5, 12.5,…) та символьні значення (наприклад, ‘а’, ‘@’, ‘5’).

Існують ще логічні значення. Але представлення логічних значень ми розглянемо пізніше.

Розрізняють десяткове, двійкове, шістнадцяткове, символьне представлення та представлення з плаваючою крапкою.


^ Десяткове представлення

З десятковим представленням ми користуємося у повсякденному житті. Так число «п’ять» ми записуємо у десятковому представленні, а саме – 5.

Для десяткового представлення використовується 10 різних символів, а саме цифр (0…9) для запису довільного числа.

Наприклад,

8735 = 8000 + 700 + 30 + 5 = 8·103 + 7·102 + 3·101 + 5·100

87,35 = 80 + 7 + 0,3 + 0,05 = 8·101 + 7·100 + 3·10-1 + 5·10-2

Хоча ми і будемо записувати числа в програмі у десятковому представленні (бо ми до такого представлення звикли), але варто пам’ятати, що компілятор усі значення переводить у двійкове представлення. Усі числа в пам’яті комп’ютера зберігаються у двійковому представленні.


^ Двійкове представлення

В двійковому представленні записуються біти цілих чисел.

Для двійкового представлення використовується 2 символи, а саме цифри 0 та 1 для запису довільного числа.

Так байт для числа «п’ять» має вигляд: 00000101
розряд

7

6

5

4

3

2

1

0

біти

0

0

0

0

0

1

0

1






= 0·27 + 0·26 + 0·25 + 0·24 + 0·23 + 1·22 + 0·21 + 1·20 = 5 (десяткове представлення)


Десяткове предст.

Двійкове предст

Десяткове предст.

Двійкове предст

1

00000001

7

00000111

2

00000010

8

00001000

3

00000011

9

00001001

4

00000100

10

00001010

5

000000101

……….

…….

6

000000110

255

11111111

Перетворимо число 5 з десяткового представлення у двійкове. Для цього необхідно справа від числа 5 записати остачу від ділення на два, а саме 1. Цілу частину від ділення числа 5 на 2 (а саме число 2) записуємо під числом 5. Цей процес продовжуємо доти, поки зліва не отримаємо 0.


5

1

Нульвий розряд

2

0

Перший розряд

1

1

Другий розряд

0






5(10) = 00000101(2)


^ Шістнадцяткове представлення.

Використовується для представлення адрес, а саме адрес команд та значень у пам’яті. Використовується 16 різних символів: 0…9, A, B, C, D, E, F для запису довільного числа.

Наприклад,

число «п’ятнадцять»: у десятковому представленні – 15
у шіснадцятковому представленні - F

^ Представлення символьних значень

Для представлення символьних значень використовується 1 байт (у відповідності з таблицею ASCII). Таблиця ASCII складається з 255 символів. Код довільного символу лежить в межах 0..255. Для кодування 1 символу достатньо 1 байта (8 біт).

Перші 127 символів таблиці ASCII

0- | 16-► | 32- | 48-0 | 64-@ | 80-P | 96-` | 112-p |

1-☺ | 17-◄ | 33-! | 49-1 | 65-A | 81-Q | 97-a | 113-q |

2-☻ | 18-↕ | 34-" | 50-2 | 66-B | 82-R | 98-b | 114-r |


Зауваження!

З 7 по 13 символи – це коди невидимих символів (Esc, Enter, пробіл, тощо)

128…159 – буква А…Я

160…175 – букви а…п

224…239 – букви р…я
3-♥ | 19-‼ | 35-# | 51-3 | 67-C | 83-S | 99-c | 115-s |

4-♦ | 20-¶ | 36-$ | 52-4 | 68-D | 84-T | 100-d | 116-t |

5-♣ | 21-§ | 37-% | 53-5 | 69-E | 85-U | 101-e | 117-u |

6-♠ | 22-▬ | 38-& | 54-6 | 70-F | 86-V | 102-f | 118-v |

7- | 23-↨ | 39-' | 55-7 | 71-G | 87-W | 103-g | 119-w |

8- | 24-↑ | 40-( | 56-8 | 72-H | 88-X | 104-h | 120-x |

9- | 25-↓ | 41-) | 57-9 | 73-I | 89-Y | 105-i | 121-y |

10- | 26- | 42-* | 58-: | 74-J | 90-Z | 106-j | 122-z |

11- | 27-← | 43-+ | 59-; | 75-K | 91-[ | 107-k | 123-{ |

12- | 28-∟ | 44-, | 60-< | 76-L | 92-\ | 108-l | 124-| |

13- | 29-↔ | 45-- | 61-= | 77-M | 93-] | 109-m | 125-} |

14-♫ | 30-▲ | 46-. | 62-> | 78-N | 94-^ | 110-n | 126-~ |

15-☼ | 31-▼ | 47-/ | 63-? | 79-O | 95-_ | 111-o | 127-⌂ |

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

Число 0.0028 можна представити:

.28Е-2 (математичний запис 0.28·10-2) або

2.8Е-3 (математичний запис 2.8·10-3) або

28.0Е-4 (математичний запис 28·10-4) або

.0028Е0 (математичний запис 0.0028·100)

Розрізняють нормалізоване та ненормалізоване представлення.

Представлення f нормалізоване, якщо:

Для числа 0.0028

.28Е-2 – нормалізоване представлення

2.8Е-3

28.0Е-4 - ненормалізовані представлення

.0028Е0

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

Забезпечує обробку дійсних чисел з плаваючою крапкою так званий співпроцесор.

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

^ 2. НАЙПРОСТІШІ ПРОГРАМНІ ОБ’ЄКТИ: ЛІТЕРАЛ, КОНСТАНТА, ЗМІННА.

Загальні поняття.

Будь-який програмний об’єкт складається з двох частин: з позначення (зображення) та значення (вмісту)

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

Літерал – найпростіший програмний об’єкт. Значення та позначення літералу збігаються.



Приклади літералів:

5 – його значення 0101 (тобто «п’ять» у двійковому представленні)

‘а’ – його значення 0001100001 (код в таблиці ASCII. 0001100001 в десятковому представленні 97).

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

Наприклад


#include

main()

{

cout<<5;

}
на екрані буде число 5.

#include

main()

{

cout<<’а’;

}
на екрані буде символ а.



Зверніть увагу символьний літерал береться в апострофи.


Константа – програмний об’єкт, який також складається з двох частин: позначення (ім’я) та значення. Значенням константи в свою чергу є літерал.



Використання констант в програмі доцільно по двом причинам:

По-перше, коли літерал з однаковим значенням використовуються більше одного разу (це може бути наприклад число «пі»).

По-друге, використовувані для констант позначення, що відповідають логічному змісту програми покращують розуміння програми.

Змінна – програмний об’єкт, значення якого не можна визначити по позначенню як у літералу, чи по опису, як у константи.



Конструкція змінна, як літерал та константа складається з позначення (імені) та значення (вмісту). Ім'я змінної в свою чергу складається з двох частин: позначення імені (ідентифікатор) та посилання . Посилання зберігає інформацію про те, де розташоване значення-вміст змінної (наприклад, 5). Крім адреси посилання містить і кількість пам’яті, що займає значення змінної. Змінна, як і константа має бути попередньо описана. Як бачимо зі схеми на відміну від літерала та константи для змінної зв’язок її позначення зі значенням не прямий. Позначення напряму зв’язане з посиланням, тобто адресою деякої комірки пам’яті, а що в цій комірці – позначення «не знає». Така конструкція дає можливість змінювати значення змінної. Адже пам’ять відведену під значення змінної можна витерати та заповнювати іншим значенням. При цьому ім’я змінної не міняється.


§4 НАДАННЯ ЗНАЧЕНЬ ЗМІННИМ. ВВЕДЕННЯ ЗНАЧЕНЬ З КЛАВІАТУРИ.
^ НАЙПРОСТІШІ АРИФМЕТИЧНІ ОПЕРАЦІЇ.

Ми вже знаємо, що у С++ немає вбудованих команд введення-виведення і для того, щоб вивести значення або деяке провідомлення необхідно попередньо підключити бібліотеку iostrem.h

Пристрої введення-виведення.

Операції введення-виведення залежать від того:

з яких пристроїв буде здійснюватися введення (клавіатура, файл, тощо);

на які пристрої здійснюється виведення (монітор, файл, тощо)

Очевидно дії введення-виведення тісно пов’язані з функціонуванням цих пристроїв, зовнішніх по відношенню до ЕОМ. Устрій і робота цих пристроїв залежить від їх типу. Тому неможливо розробити універсальні команди для забезпечення введення-виведення на конкретні пристрої.

Поняття потоку

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

За замовчуванням стандартними пристроями для потоків виведення даних є монітор, а для потоку введення – клавіатура. Стандартний потік для виведення даних – cout. Він використовує команду введення (>>)

Стандартний потік для введення даних – cin. Він використовує команду виведення (<<).

Потоки cout та cin описані в модулі iostrem.h.

Команда введення даних.

Надавати значення змінним можна двома способами:

за допомогою команди присвоєння (наприклад х = 3.1)

а
Cin>> <змінна>;
бо команди введення даних з клавіатури.

Команда введення з клавіатури має такий загальний вигляд:


Якщо необхідно ввести значення відразу кільком змінним, то можна або використати декілька потоків введення, або записати усі змінні в одному потоці cin, застосувавши для цього декілька команд >>.

Н
#include

#include

void main()

{

clrscr();

int a,b;

int sum, prod;

cin>>a;

cin>>b;

sum = a+b;

prod = a*b;

cout<
cout<
getch();

}
априклад. Знайти суму та добуток двох цілих чисел, що вводяться з клавіатури


#include

#include

void main()

{

clrscr();

int a,b;

int sum, prod;

cin>>a>>b;

sum = a+b;

prod = a*b;

cout<
cout<
getch();

}


Результат роботи програми:

5 7

5 + 7 = 12

5 * 7 = 35


або

Програми необхідно складати так, щоб ними могли користуватися не лише укладачі, але й інші особи. Тобто програми мають бути масовими та зрозумілими. Перед командою введення даних варто записувати команду виведення на екран текстового повідомлення-підказки про те, що саме слід ввести. Враховуючи сказане попередню програму змінимо наступним чином:


Результат роботи програми

a = 2

b = 3

2 + 3 = 5

2 * 3 = 6

#include

#include

void main()

{

clrscr();

int a,b;

int sum, prod;

cout<<"a = ";

cin>>a;

cout<<"b = ";

cin>>b;

sum = a+b;

prod = a*b;

cout<
cout<
getch();

}



Крім операцій додавання (+) та множення (*) допустимі і дві інші арифметичні операції:

додавання (+)

множення (*)

відніманні (-)

ділення (/)



§5 ТИПИ ДАНИХ. НАДАННЯ ЗНАЧЕНЬ ЗМІННИМ. ВКАЗІВКА ПРИСВОЄННЯ.
^ ПРАВИЛА УЗГОДЖЕННЯ ТИПІВ.

Типи даних

Як вже вказувалось дані що беруть участь у розв'язуванні задачі мають певний тип. Тип визначає:

допустимі значення;

операції, які можна виконувати над значеннями цього типу;

обсяг пам’яті, яка резервується для нього.

Типи числових даних поділяють на цілі, дійсні та символьні.

Цілі типи

Змінні цілого типу описуються так: int <ім’я змінної>

Допустимі значення: усі цілі з діапазона -32768 … +32767

^ Обсяг пам’яті: 2 байти


void main()

{

int x = 66; // х отримує значення 66

}

void main()

{

int x; // х отримує випадкове ціле значення

x = 66; // х отримує значення 66

}



Дійсні типи

Змінні дійсного типу описуються так: float <ім’я змінної>

Допустимі значення: усі цілі та дробові з діапазона 3.410–38…3.41038

Обсяг пам’яті: 4 байти


void main()

{

float x; // х отримує випадкове дійсне значення

x = 2.5; // х отримує значення 2.5

}

void main()

{

float x = 2.5; // х отримує значення 2.5

}

Символьний тип

Змінні символьного типу описуються так: char <ім’я змінної>

Допустимі значення: усі 255 символів кодової таблиці комп’ютера ASCII

Обсяг пам’яті: 1 байт.

Увага Змінним символьного типу можна надавати значень двома способами:

Б
void main()

{

char x; // х отримує випадкове символьне значення

x = 'A'; // х отримує значення – символ А

}

void main()

{

char x = 'A'; // х отримує значення – символ А

х = 66; // х отримує значення – символ В (її код в ASCII 66)

}
езпосередньо (якщо х типу char, то після виконання команди х = ‘А’ х отримає значення А)

Використовуючи код ASCII ( після виконання команди х = 65 х отримає значення А, бо код символу А – 65)

Вказівка присвоєння. Правила узгодження типів.

Команда присвоєння призначена для надання змінним значень.

К
<Назва змінної>=<вираз> або <Назва змінної1>=<Назва змінної2>=…=<Назва змінноїN>=<вираз>
оманда присвоєння має такий загальний вигляд:

^ Дія команди. Обчислюється вираз і його значення надається змінній або кільком змінним. Вираз може містити числа, сталі, змінні, назви функцій, з’єднувані символами операцій.

Наприклад, a = 5, a = 8 – 3; c = d = a + 4; e = d/5 + c

З
//Приклад явне перетворення типів

void main()

{

int a = 2; float c = 3.8;

int b;

b = a * int(c); // 2 * 3 = 6, b = 6

}

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

void main()

{

int a = 2; float c = 3.8;

int b;

b = a * c; //2*3.8 = 7.6, b = 7

}
мінна або вираз не обов’язково повинні бути одного типу. Крім того, у виразі можуть бути дані різних числових типів (змішані вирази). Якщо тип змінної не збігаються з типом виразу, то у С++ відбувається узгодження типів, яке буває двох типів: явне та неявне.


Підсумок

Тип визначає:

допустимі значення;

операції, які можна виконувати над значеннями цього типу;

обсяг пам’яті, яка резервується для нього.

Цілі типи – int; Дійсні типи – float; символьні типи – char.

Команда присвоєння призначена для надання змінним значень.

Якщо при виконанні команди присвоєння тип змінної не збігаються з типом виразу, то у С++ відбувається узгодження типів



§6.1. ВИРАЗИ. ОПЕРАЦІЇ ІНКРЕМЕНТУ (++) ТА ДЕКРЕМЕНТУ (– –).
^ СУМІЩЕНЯ ОПЕРАЦІЇ ПРИСВОЄННЯ З АРИФМЕТИЧНИМИ ОПЕРАЦІЯМИ


Пріоритет арифметичних операцій

Пріоритет

Операції

Зміст операції

Приклад

Коментар

Найвищий

+ –

Присвоєння знака.

2 * –5 = – 10

Спочатку 5 змінює знак , а тоді множиться на 2

Середній

* / %

Множення, ділення, остача від ділення.

Найнижчий

+ –

Додавання, віднімання.

4 + 2* –5 = –6

Додавання виконується останньою

Для зміни пріорітету, як і в математиці використовуються круглі дужки.

Наприклад

2 * –5 = –6

2 * (–5 + 4) = –2

7 % 3 = 1

12 / 4 – 2 = 1

12 / (4 – 2) = 6

7 % 3 * –5 = –5


Операції інкременту (++) та декременту (– –)

Операція інкременту збільшує значення змінної на 1, а декрименту – зменшує на 1.

В
void main()

{

int a;

a = 5; // а = 5

++a; // а = 6

}

void main()

{

int a;

a = 5; // а = 5

a++; // а = 6

}

void main()

{

int a;

a = 5; // а = 5

а = а + 1; // а = 6

}
усіх випадках після виконання команди а++ (++а чи а = а + 1) значення змінної а збільшується на 1. Якщо команду а++ (++а чи а = а +1) замінити командою а– – (– –а чи а = а – 1), то значення змінної а зменшиться на 1. Як бачимо, операція інкременту аналогічна команді а = а + 1, а декрименту – команді а = а – 1

На перший погляд різниці між тим, де записано оператор інкременту (декрименту), перед чи після змінної, немає. Але це не так для тих випадків, коли дана операції присутня у виразах.

^ Операції інкременту і декременту існують у двох формах:

префіксній – якщо символи ++ (– –) записані перед змінною;

п
void main()

{

int a,b ; //a = 836 b = -28724

a = 5; // a = 5 b = -28724

b = 3*a++; // a = 6 b = 15

}
остфіксній – якщо символи ++ (– –) записані після змінної;


void main()

{

int a,b ; //a = 836 b = -28724

a = 5; // a = 5 b = -28724

b = 3*++a; // a = 6 b = 18

}



Якщо змінна, над якою виконується операція інкременту чи декременту присутня у деякому виразі, то:

для префіксної форми спочатку виконується операція інкременту (декрименту), а потім обчислюється значення виразу.

для постфіксної форми спочатку обчислюється значення виразу, а потім виконується операція інкременту (декрименту).

Або іншими словами:

у префіксній формі операція інкременту (декрименту) має найвищий пріорітет за усі інші операції, присутні у виразі;

у постфіксній формі операція інкременту (декрименту) має найнищий пріорітет за усі інші операції, присутні у виразі;

Операція присвоєння, суміщена з арифметичною операцією

Використовується для зміни значення деякої змінної:

- збільшити на +=;

- зменшити на –=;

- збільшити в *=;

- зменшити в /=;

- знайти остачу від ділення %=.

^ Наприклад, ці команди ідентичні:

1) a = a + 10 та а +=10 2) b = 4 * b та b *=4 3) c = c % 5 та c %= 5

Зауваження! Якщо справа від операції присвоєння суміщеної з арифметичною операцією стоїть деякий вираз, то спочатку обчислюється значення цього виразу, а тоді виконується суміщена операція присвоєння. Для зміни пріорітету можна використати дужки. Наприклад:


void main()

{

int a,b;

a = 5;

b = a *= 2 + 1; // а = 15 b = 15

}

void main()

{

int a,b;

a = 5;

b = (a *= 2) + 1; // а = 10 b = 11

}



§6.2 МАТЕМАТИЧНІ ФУНКЦІЇ

Усі стандартні математичні функції у С++ описані в бібіліотеці .

Назва ф-ції

Матем запис

Назва ф-ції

Матем запис

Назва ф-ції

Матем запис

abs(x)

|x|

exp(x)

ex

ceil(x)

заокруглює число х до більшого цілого
еще рефераты
Еще работы по разное