МЕТОДИЧКА_С++_Ч1
.pdfif (choice == Sunday || choice == Saturday)
cout << "\nYou're already off on weekends!\n";
else
cout << "\nOkay, I'll put in the vacation day!\n"; getch();
return 0; }
7.Оформити звіт по практичній роботі. Звіт повинен містити: тему, мету,
послідовність виконання роботи, відповіді на контрольні питання.
Контрольні питання
1.Поясніть призначення пунктів меню інтегрованого середовища розробки?
2.Як створити новий файл в ІСР Borland C++ 5.01?
3.Як відкомпілювати програму в ІСР Borland C++ 5.01?
4.Як зберегти файл з програмою в ІСР Borland C++ 5.01?
11
Практична робота № 2
Тема: Базові типи даних та введення-виведення в мові C++.
Мета роботи: Отримання практичних навиків використання базових типів даних та введення-виведення в мові С++.
Теоретичні відомості
У С/С++ є чотири базові арифметичні (числовi) типи даних. З них два цілочисельних — char, int — і два плаваючих (дійсних) — float і double.
Крім того, в програмах можна використовувати деякі модифікації цих типів, що описуються за допомогою службових слів — модифікаторів. Існують два модифікатори розміру — short (короткий) і long (довгий) — і два модифікатори знаків — signed (знаковий) і unsigned (беззнаковий). Знакові модифікатори застосовуються тільки до цілих типів.
Як відомо, тип величини пов'язаний з її формою внутрішнього уявлення,
безліччю значень, що набувають, і безліччю операцій, застосовних до цієї величини.
У таблиці 2.1 перераховані арифметичні типи даних С++, вказаний об'єм займаної пам'яті і діапазон допустимих значень.
Таблица 2.1. Арифметичні типи даних С++, об'єм займаної пам'яті і діапазон допустимих значень.
|
Тип даних |
Розмір |
Діапазон значень |
Еквівалентні назви типу |
|||
|
(байт) |
||||||
|
|
|
|
|
|
|
|
|
char |
1 |
-128…+127 |
signed char |
|
|
|
|
int |
2/4 |
Залежить від системи |
signed, signed int |
|||
|
unsigned char |
1 |
0…255 |
Немає |
|
|
|
|
unsigned int |
2/4 |
Залежить від системи |
unsigned |
|
|
|
|
short int |
2 |
-32768…32767 |
short, |
signed |
short |
|
|
|
|
|
int |
|
|
|
|
unsigned short |
2 |
0…65535 |
unsigned short int |
|||
|
long int |
4 |
- |
long, |
signed |
long |
|
|
|
|
2147483648…2147483647 |
int |
|
|
|
|
unsigned long int |
4 |
0…4294967295 |
unsigned long |
|
|
|
|
float |
4 |
(3.4E-38…3.4E+38) |
Немає |
|
|
|
|
double |
8 |
(1.7E-308…1.7+308) |
Немає |
|
|
|
|
long double |
10 |
(3.4E-4932…1.1E+4932) |
Немає |
|
|
|
|
|
|
|
|
|
|
|
12
Розмір типу int і unsigned int залежить від розміру слова операційної системи, в якій працює компілятор С++. У 16-розрядних ОС (MS DOS) цим типам відповідають 2 байти, в 32-розрядних (Windows) — 4 байти.
Аналізуючи дані таблиці 2.1, можна зробити наступні висновки:
якщо не вказаний базовий тип, то за замовченням мається на увазі int;
якщо не вказаний модифікатор знаків, то за замовченням мається на увазі signed;
з базовим типом float модифікатори не вживаються;
модифікатор short застосовний тільки до базового типу int.
Під час визначення змінних їм можна привласнювати початкові значення, які заносяться у відповідну для них пам’ять в процесі ініціалізації.
Приклади визначень (опис з ініціалізацією):
char newsimbol=’\n’;
long filebegin=0L;
double pi=3.1415926535;
В позначенні типу може використовуватися одночасно декілька службових слів.
Наприклад, визначення:
long double zebra,stop;
визначає змінні з іменами zebra і stop дійсного типу підвищеної точності, але явно не привласнює цим змінним ніяких початкових значень.
Застосовуються як окремо, так і разом з іншими іменами типів, службові слова unsigned (беззнаковий) і signed (знаковий) дозволяють для арифметичного або символьного типу вибирати спосіб урахування знакового розряду :
unsigned int i,j,k;//значення від 0 до 65535 unsigned long L,M,N;//значення від 0 до 4294967295 unsigned char c,s; //значення від 0 до 255
Введення-виведення мови С/С++.
В мові С++ немає влаштованих засобів введення/виведення – воно організовується за допомогою функцій, типів та об’єктів, що містяться в стандартних бібліотеках. Використовуються два засоби: функції, успадковані з мови С та об’єкти С++. Розглянемо функції, що успадковані з мови С.
13
Функції стандартного введення - виведення описані у файлі stdio.h.
printf() - виведення формату на екран:
int printf(char *format, <список виведення>);
Перший параметр є символьним рядком, який задає специфікації формату. Решта параметрів - перерахування змінних і виразів, значення яких виводяться. Кожна специфікація формату має вигляд (параметри в квадратних дужках необов'язкові):
%[flags][width][.prec][F|N|h|l]type
де type - |
тип специфікації |
d або i |
ціле десяткове число зі знаком |
u |
десяткове число без знаку |
x |
ціле 16-річне число без знаку |
f |
число з плаваючою комою |
e |
число в E-формі |
g |
число з плаваючою комою або в E-формі |
c |
один символ |
s |
рядок символів |
%символ %
flags - |
ознака вирівнювання: |
+ або |
вирівнювання по правому краю |
пусто |
|
-вирівнювання по лівому краю
width - |
ціле число - загальна ширина поля. Якщо це число починається з |
||
|
цифри 0, виведення доповнюється зліва |
нулями до заданої ширини. |
|
|
В задану ширину входять всі символи виведення, включаючи знак, |
||
|
дробну частину і т.ін.. |
|
|
prec - |
ціле число, кількість знаків післе коми під час виведення чисел з |
||
|
плаваючою комою |
|
|
F - |
відповідний елемент списку виведення являється |
дальнім |
|
|
вказівником |
|
|
N - |
відповідний елемент списку виведення являєтся близьким |
||
|
вказівником |
|
|
l - |
відповідний елемент писку виведення |
являється long |
int або |
|
double |
|
|
scanf() - форматоване введення з клавіатури:
int scanf(char *format, <список введення>);
14
Перший параметр є символьним рядком, який задає специфікації формату (див. функцію printf()). Решта параметрів - перерахування адрес змінних, в які вводяться дані. У цьому списку перед іменами всіх змінних, окрім тих, які вводяться по специфікації типу %s, повинен стояти символ &.
putchar() - виведення одного символу на екран:
int putchar(int ch);
Параметр функції - код символу, який виводиться. При успішному виконанні функція повертає цей же код, при неуспіху - EOF.
getchar() - введення одного символу з клавіатури:
int getchar(void);
Функція повертає код введеного символу.
puts() - виведення рядка символів на екран:
int puts(char *string);
Параметр функції –вказівник на початок того рядка, з якого виводяться дані. Функція повертає кількість виведених символів.
gets() - введення рядка символів з клавіатури:
char *gets(char *string);
Параметр функції - вказівник на початок того рядка, в який вводяться дані.
Функція повертає той же самий вказівник .
Приклад програми, що використовує функції введення/виведення в стилі С.
#include<stdio.h> int main(){
int i;
printf(”Введіть ціле число\n”); scanf(“%d”,&i);
printf(“Ви ввели число %d ,дякую!”,i); return 0;
}
А так виглядає програма з використанням бібліотеки класів С++:
#include<iostream.h> int main(){
int i;
15
cout<<”Введіть ціле число\n”; cin>>i;
cout<<”Ви ввели число”<<i<<” ,дякую!”; return 0;}
Заголовочний файл <iostream.h> містить опис набору класів для керування введенням/виведенням. В ньому визначені стандартні об’єкти-потоки cin для введення з клавіатури і cout для виведення на екран, а також операції розміщення в поток << та читання з потоку >>.
Етапи роботи з програмою на С++ в системі програмування (рис. 2.1 —
прямокутниками відображені системні програми, а блоки з овальною формою позначають файлі на вході і на виході цих програм).
Текстовий редактор
Вихідний текст програми на С++
(файл example.cpp)
Препроцесор |
Вмикаємі файли *.h |
|
|
|
|
Повний текст програми на С++
(файл [ample.cpp)
Компілятор
Об’єктний код програми
(файл example.obj)
Компоновщик |
Бібліотечні файли |
|
Виконуєма програма
(файл example.exe )
Рис. 2.1 Етапи роботи з програмою на С++ в системі програмування
1.За допомогою текстового редактора формується текст програми і зберігається у файлі з розширенням срр. Хай, наприклад, це буде файл з ім'ям example.срр.
16
2.Здійснюється етап препроцесорної обробки, зміст якого визначається директивами препроцесора, розташованими перед заголовком програми
(функції). Зокрема, по директиві #include препроцесор підключає до тексту програми заголовні файли (*.h) стандартних бібліотек.
3.Відбувається компіляція тексту програми на Си++. В ході компіляції можуть бути виявлені синтаксичні помилки, які повинен виправити програміст. В
результаті успішної компіляції виходить об'єктний код програми у файлі з розширенням obj. Наприклад, example.obj.
4.Виконується етап компоновки за допомогою системної програми Компонувальник (Linker). Цей етап ще називають редагуванням зв'язків. На даному етапі до програми підключаються бібліотечні функції. В результаті компоновки створюється виконувана програма у файлі з розширенням ехе.
Наприклад, example.ехе.
Послідовність виконання роботи:
1.Уважно ознайомтеся з теоретичним матеріалом щодо виконання практичної роботи.
2.Вивчити:
-базові типи даних мови С++;
-організацію введення-виведення даних в мові С++.
3.Набрати та відкомпілювати програми, які наведені нижче:
Приклад 1.
#include<iostream.h> int main(){
float fahr,cels;
cout<<"Vvedite temperaturu po Farengeytu"<<endl; cin>>fahr;
cels=5*(fahr-32)/9; cout<<"Farengeyt = "<<fahr<<endl; cout<<"Celsium = "<<cels<<endl; cin.get();
17
cin.get();
return 0;
}
Приклад 2.
#include<stdio.h>
#include<conio.h> int main(){ float fahr,cels;
printf("Vvedite temperaturu po Farengeytu\n"); scanf("%f",&fahr);
cels=5*(fahr-32)/9; printf("Farengeyt = %6.2f \n",fahr); printf("Celsium = %6.2f \n",cels); getch();
return 0;
}
4.Оформити звіт по практичній роботі. Звіт повинен містити: тему, мету,
постановку задачі, текст програм і результати роботи програми, відповіді на контрольні питання, висновки.
Контрольні питання
1.Які основні типи даних існують в мові С++?
2.Як визначаються змінні в мові С++?
3.Які функції стандартного введення-виведення ви знаєте?
4.Що містить заголовочний файл <iostream.h>?
5.Перерахуйте етапи роботи з програмою на С++ в системі програмування.
18
Практична робота № 3
Тема: Програмування алгоритмів лінійної структури в мові
С++.
Мета роботи: Отримання практичних навиків в програмуванні алгоритмів лінійної структури, алгебраїчних виразів і використання математичних функцій бібліотеки мови С++.
Теоретичні відомості
Алгоритм з лінійною структурою – це такий алгоритм, у якому оператори програми записуються один за одним у відповідності з порядком їх розміщення. Для запису програми такої структури необхідні оператори привласнення, введення вихідних даних і виведення результатів обчислень.
Для визначення і опису змінних основних типів використовуються наступні ключові слова, кожне з яких окремо може виступати в якості імені типу:
char (символьний);
short (короткий цілий);
int (цілий);
long (довгий цілий);
float (дійсний);
double (дійсний з подвійною точністю);
void (відсутність значення);
Під час визначення змінних їм можна привласнювати початкові значення, які заносяться у відповідну для них пам’ять в процесі ініціалізації.
Приклади визначень (опис з ініціалізацією):
char newsimbol=’\n’;
long filebegin=0L;
double pi=3.1415926535;
В позначенні типу може використовуватися одночасно декілька службових слів.
Наприклад, визначення:
19
long double zebra,stop;
визначає змінні з іменами zebra і stop дійсного типу підвищеної точності, але явно не привласнює цим змінним ніяких початкових значень.
Застосовуються як окремо, так і разом з іншими іменами типів, службові слова unsigned (беззнаковий) і signed (знаковий) дозволяють для арифметичного або символьного типу вибирати спосіб урахування знакового розряду :
unsigned int i,j,k;//значення від 0 до 65535 unsigned long L,M,N;//значення від 0 до 4294967295 unsigned char c,s; //значення від 0 до 255
Деякі стандартні математичні функції (знаходяться у файлі math.h.):
abs - абсолютне значення цілого числа - |x|
int abs(int x);
labs - абсолютне значення "довгого" цілого числа - |x|:
long labs(long x);
fabs - абсолютне значення дійсного аргументу x подвійної точності - |x|:
double fabs(double x);
sqrt - добування квадратного кореня:
double sqrt(double x);
pow - піднесення до степеню:
double pow(double x, double у);
cos - косинус - cos x (тут і далі x задається в радіанах):
double cos(double x);
sin - синус - sin x:
double sin(double x);
tan - тангенс - tg x:
double tan(double x);
acos - арккосинус - arccos x:
double acos(double x);
20
