Операції введення-виведення Арифметичні операції

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Лабораторна Робота

На тему: "Операції введення-виведення. Арифметичні операції"

Введення

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

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

1. Консольне введення-виведення

Консольне введення-виведення організовується за допомогою стандартних бібліотек stdio. H і conio. H, що передбачає наявність директив # include <stdio. H> і / або # include <conio. H> у заголовній частині програми.

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

printf («форматная_строка» [, перем1] [, перем2] [, ...]);

Тут у круглих дужках вказані параметри (або аргументи) функції printf, причому перший з них, форматна рядок в подвійних лапках, є обов'язковим. Інші параметри, змінні різного типу, зазначається за необхідності. Форматна рядок може містити:

  • звичайні текстові символи, які виводяться на екран в тому ж вигляді, як вони записані в форматної рядку,

  • керуючі символи, зокрема символи переведення рядка "\ n», табуляції «\ t», і деякі інші (починаються зі знака зворотної косої риси «\»),

  • символи форматного перетворення, які використовуються для виведення значень змінних (починаються зі знака відсотка «%»).

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

мінлива

тип даних С / C + +

символ перетворення

ціле число

int

% D

дійсне число

float, double

% F

текстовий символ

char

% C

текстовий рядок

char *, char []

% S

Наприклад, запис printf ("Hello!") Означає виведення на екран простий текстової рядки «Hello!». Запис printf ("% d», x) виводить на екран значення цілочисельний змінної x. Випадок, коли на екран виводяться відразу дві змінні, ілюструється таким прикладом

Тут верхні стрілки вказують позиції всередині рядка формату, куди будуть виведені значення змінних i і x. Решта тексту рядка формату буде відображений без зміни. Наприклад, якщо змінна i до моменту виконання цього оператора мала значення 5, а змінна x була дорівнює 1.5, на екран буде виведено: «Значення 5 ї змінної одно 1.500000».

Важливим є відповідність символу форматного перетворення (% d,% f, і т.д.) дійсному типу змінної (int, float, double і т.д.). Недотримання цього правила веде до непередбачуваного результату на екрані. Тому використана в прикладі мінлива i повинна бути оголошена раніше як цілочисельна (int), а x - як речовинна (float або double).

Функція printf також дає можливості управління виводу з допомогою ескейп-послідовностей, що починаються з символу ESC (зворотний слеш «\»). Деякі з них наведені в таблиці:

керуючий символ

назва

дію

\ N

lf (line feed)

переклад рядка

\ T

ht (horizontal tab)

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

\ V

vt (vertical tab)

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

\ A

bel (audible bell)

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

\ B

bs (backspace)

повернення на крок (забій)

\ '

'(Single quote)

одинарна лапка

\ »

«(Double quote)

лапки

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

scanf («форматная_строка», & перем1 [, & перем2] [, ...]);

Аргументи функції scanf багато в чому аналогічні відповідним аргументів printf, за винятком того, що в якості додаткових параметрів scanf приймає не імена змінних, а їх адреси. У силу цього перед ім'ям кожної змінної в scanf повинен стояти знак операції взяття адреси «&» (амперсанд).

У момент передачі управління функції scanf виконання програми припиняється в очікуванні введення від користувача. Уся введена з клавіатури інформація відображається на екрані (луна-виведення). Під час введення користувачеві доступні найпростіші можливості редагування, зокрема клавіша забою Backspace. Виконання оператора завершується, як тільки користувач натискає клавішу Enter. Введена інформація при цьому буде приведена до відповідного типу і записана в змінну.

Функція getch з бібліотеки conio. H не має параметрів і використовується для введення з клавіатури окремого символу натиснутої клавіші. На відміну від scanf, ця функція не вимагає натиснення Enter для підтвердження кінця введення. Оператор завершує роботу відразу після того, як натиснута будь-яка клавіша. Ваша програма може аналізувати повертається цією функцією значення з тим, щоб негайно на нього реагувати. Ми будемо також використовувати цю функцію в кінці програми для того, щоб призупинити закриття вікна на час ознайомлення з результатами роботи.

Розглянемо наступний приклад роботи з функціями консольного вводу-виводу.

Приклад 1. Напишіть програму, що виводить на екран символи зірочки «*» у формі ромба, як це показано на малюнку справа.

Рішення. Завдання може бути вирішена декількома способами. Нижче наводиться один із варіантів.

/ / - Консольний висновок -

# Pragma hdrstop

# Include <stdio. H> / / Підключаємо бібліотеки

# Include <conio. H> / / консольного вводу-виводу

# Pragma argsused

int main (int argc, char * argv [])

{

printf (»* \ n");   / / У програмі використовуємо кілька

printf (»* * \ n");   / / Послідовних викликів функції

printf (»* * \ n");   / / Printf для виводу на екран

printf («* * \ n");   / / Окремих рядків малюнка.

printf (»* * \ n");   / / Кожну рядок закінчуємо

printf (»* * \ n"); / / керуючим символом '\ n'.

printf (»* \ n"); / /

getch (); / / Затримка до натискання будь-якої клавіші

return 0; / / Завершення програми

}

/ / -

2. Потоковий ввід-висновок

Потоковий ввід-висновок організовується за допомогою бібліотеки iostream. H, що передбачає наявність директиви # include <iostream. H> у заголовній частині програми. У бібліотеці визначені два потокових об'єкта з іменами cin і cout, які пов'язані з клавіатурою та екраном комп'ютера відповідно. Ці об'єкти використовуються як джерело вхідної інформації (потік cin) і контейнер вихідної інформації (потік cout). Для них визначено наступні операції:

  • витяг з потоку cin (знак операції «>>»),

  • розміщення в потоці cout (знак операції «<<»).

Загальна форма запису цих операцій

cin>> мінлива;

cout <<текстова строка_ілі_переменная;

Тут перший рядок означає вилучення числового значення з потоку cin (тобто введення з клавіатури) і його запис в змінну. Другий рядок - розміщення простий текстової стоки або числового значення змінної в потоці cout (тобто виведення на екран).

Приклади:

cout <<index; / / виводить на екран значення index

cin>> x; / / вводить значення x з клавіатури

cout <<«Enter your name»; / / виводить текстову рядок

cin>> name; / / вводить змінну name

На відміну від відповідних конструкцій консольного вводу-виводу, потокові оператори ніде не вимагають явного вказівки типу змінних. У наведених вище прикладах index, x, name можуть бути змінними будь-якого типу (int, float, char і т.д.), і у всіх випадках представлені оператори будуть працювати коректно. Це відбувається за рахунок автоматичного визначення типу змінної в потокових операціях. Програміст отримує додаткові зручності у зв'язку з виключенням помилок приведення типів, які характерні для консольних операцій. Початківцям програмістам C + + часто рекомендується використовувати саме потокові операції, як надійнішу (і сучасну) техніку програмування.

Потік cout допускає наявність у виведеної текстової рядку керуючих символів або ESC послідовностей (`\ n`, `\ t`, `\ b` і ін, див. таблицю вище), дія яких аналогічно їх дії в операторі printf. Крім того, висновок в cout може управлятися за допомогою спеціальних потокових маніпуляторів. Наприклад, маніпулятор endl (end line) приводить до завершення поточного рядка та переводу курсора на нову екранну рядок. Запис cout <<endl, таким чином, призводить до того ж результату, що і конструкція cout <<«\ n».

Рішення сформульованої вище задачі про виведення на екран фігури у формі ромба засобами потокового введення-виведення показано в наступному лістингу

/ / - Потоковий висновок -

# Pragma hdrstop

# Include <iostream. H> / / для потокового виводу в cout

# Include <conio. H> / / для використання getch

# Pragma argsused

int main (int argc, char * argv [])

{

cout <<«* \ n»;

cout <<«* * \ n»;

cout <<«* * \ n»;

cout <<«* * \ n»;

cout <<«* * \ n»;

cout <<«* * \ n»;

cout <<«* \ n»;

getch ();

return 0;

}

/ / -

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

3. Арифметичні операції і математичні функції

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

назва операції

знак в С / C + +

алгебраїчний вираз

запис на С / C + +

складання

+

f + 7

f + 7

віднімання

-

p - c

p - c

множення

*

bm

b * m

поділ

/

x / y

x / y

залишок від ділення

%

r mod s

r% s

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

алгебра: ® запис на С / C + +: .

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

Крім арифметичних операцій, мова C + + дає зручні можливості використання математичних функцій. Велика їх частина міститься в бібліотеці math. H, і для користування ними потрібна відповідна директива # include <math. H>. Найбільш уживані математичні функції наведені в таблиці:

назва функції

позначення

запис в С / С + +

синус

sin (x)

косинус

cos (x)

тангенс

tan (x)

квадратний корінь

sqrt (x)

зведення в ступінь

pow (x, y)

експонента

exp (x)

натуральний логарифм

log (x)

модуль

fabs (x)

арксинус

asin (x)

арккосинус

acos (x)

арктангенс

atan (x)

Всі перераховані функції приймають в якості аргументу речову змінну (або константу) і повертають речовинний результат. Використовувати функції можна шляхом їх виклику, аналогічно викликом функцій вводу-виводу. Наприклад, в результаті виконання наступного набору операторів мінлива y отримає значення квадратного кореня з 2:

float x = 2.0; float y = sqrt (x);

У бібліотеці math. H також визначені деякі часто використовувані математичні константи, частина з яких наведена нижче

константа

запис в С / С + +

M _ PI

M_E

M_LN2

M_LN10


Необхідно написати програму, яка запитує у користувача довжини сторін трикутника a, b, c й виводить на екран кути a, b, g.

Рішення. Скористаємося відомою формулою косинусів, яку послідовно застосуємо для знаходження всіх кутів трикутника. Розраховані значення a, b, g переведемо з радіанах в градуси, помноживши їх на 180 ° / p.

/ / - Розрахунок кутів трикутника -

# Pragma hdrstop

# Include <iostream. H> / / для потокового вводу-виводу

# Include <conio.h>   / / Для getch ()

# Include <math.h>   / / Для acos (x) і M_PI

# Pragma argsused

int main (int argc, char * argv [])

{

float a, b, c; / / оголошуємо змінні a, b, c

cout <<«input a -»; / / виводимо на екран запрошення

cin>> a; / / вводимо значення a, і т.д.

cout <<«input b -»;

cin>> b;

cout <<«input c -»;

cin>> c;

float alpha, betta, gamma; / / оголошуємо змінні

alpha = acos ((b * b + c * c - a * a) / (2 * b * c));   / / Вважаємо alpha

betta = acos ((a * a + c * c - b * b) / (2 * a * c));   / / Вважаємо betta

gamma = acos ((a * a + b * b - c * c) / (2 * a * b));   / / Вважаємо gamma

cout <<«\ n alpha =» <<alpha / M_PI * 180;   / / Виводимо всі

cout <<«\ n betta =» <<betta / M_PI * 180;   / / Кути на екран

cout <<«\ n gamma =» <<gamma / M_PI * 180;   / / (У градусах)

cout <<«\ n» <<alpha + betta + gamma;   / / Сума кутів = pi?

getch ();   / / Затримка

return 0;   / / Завершення

}

/ / -

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
74.2кб. | скачати


Схожі роботи:
Операції введення виведення Арифметичні операції
Арифметичні операції з BCD числами
Обробка рук хірургічних рукавичок у ході операції підготовка інструментів до операції етапи п
Ресурси пасивні операції депозити депозитні операції депозитні 2
Ресурси пасивні операції депозити депозитні операції депозитні
Ресурси пасивні операції депозити депозитні операції депозитні рахунки вклади населення вклади
Ресурси пасивні операції депозити депозитні операції депозитні рахунки вклади населення вклади 3
Ресурси пасивні операції депозити депозитні операції депозитні рахунки вклади населення вклади 2
Ресурси пасивні операції депозити депозитні операції депозитні рахунки вклади населення вклади 4
© Усі права захищені
написати до нас