Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МЕТОДИЧКА_С++_Ч1

.pdf
Скачиваний:
30
Добавлен:
15.02.2015
Размер:
955.7 Кб
Скачать

if (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