Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 2: введення-виведення данихСодержание книги
Поиск на нашем сайте ПЛАН 1. Об’єкт cout. 2. Функція printf. 3. Об’єкт cin.
Об’єкт cout Об’єкт cout виводить дані на заданий пристрій. Синтаксис:
cout << data[ << data ], де data - змінні, константи, вирази.
Приклад:
cout<< “Привіт”; cout << “Коля”; //ПривітКоля
cout<< “\n Привіт\n”; cout << “Коля”; //Привіт //Коля
# include <iostream.h>
Void main() { cout << “Петро \tВася\n”; cout << “3\t2\n”; cout << “4\t5\n"; }
Виведення: Петро Вася 3 2 4 5 \t - табуляція через 8 символів.
Для cout використовуються різноманітні маніпулятори. Наприклад, маніпулятори hex і oct використовуються для виведення відповідно, 16-х і 8-х чисел. Приклад:
# include <iostream.h>
Void main() { int num = 0x4c, num_2 = 012, num_s; num_s = num + num_2; cout << "Виведення у 16 - х кодах " << hex << num_s; //Виведення у 16 - х кодах 56 }
Маніпулятор установлює виведення 8 і 16–річних чисел, поки не зустрінеться інший маніпулятор oct, hex, dec. Маніпулятори setw(), setprecision() і setfill() - це функції-члени які змінюють стан об’єкта cout. setw() - вирівнює число виведення в межах заданої ширини. setfill() - заповнює незаповнені позиції встановленим символом. При цьому формуються лідируючі пробіли. setprecision(n) – маніпулятор виведення зазначеної кількості знаків n.
Приклад:
#include <iostream.h> #include <iomanip.h>
Void main() { cout << 456 <<456 <<456<<"\n"; //456456456 cout << setw(5) << 456 << setw(5) << 456<< 456; // 456 456456 cout<<"\n"<<setw(10)<<setprecision(6)<<12.47888; // 12.4789 cout << "\n"<< setw(10) << setfill(’+’)<< 12.47; //+++++12.47 }
Маніпулятори setiosflags і resetiosflags використовуються для установки певних глобальних прапорів, які клас C++, iostream, використовує при визначенні поведінки по умовчанню при введенні та виведенні. На ці прапори посилаються як на змінні стану. Функція setiosflags() встановлює зазначені в ній прапори, а resetiosflags() очищує (або скидає) їх. Ці маніпулятори в якості аргументів використовують значення, показані в таблиці 3. Таблиця 3 Аргументи для setiosflags і resetiosflags
Наприклад:
cout<<setw(10)<<“Привіт\n”; cout<<setw(10)<<setiosflags(ios::left)<<“Привіт”;
Результат здійснення:
Привіт Привіт
Є й інші маніпулятори, із якими можна ознайомиться в "Справочній інформації" пакету або у відповідній літературі.
Функція printf Для виведення даних у класичному C використовується функція printf. Вона без змін перенесена у С++. Синтаксис:
printf(char *fotmat, <додаткові аргументи>)
Рядок формату складається із символів виведених без зміни і символів, що задають перетворення даних. Для такого перетворення використовуються додаткові аргументи. Специфікація перетворення формату має вигляд: %[ флаги ] [ширина] [. точність] [ L|l ] тип де прапори: – (мінус) - вирівнювання по лівому краю поля; + (плюс) - виводиться знак числа + або –; ширина: визначає мінімальне число виведених символів, що доповнюються пробілами або нулями. точність: визначає число знаків після десяткової точки для чисел із плаваючою точкою. Для змінних цілого типу визначається максимальне число виведених цифр. тип: d або i -десяткове ціле зі знаком (int); u – десяткове ціле без знака (unsigned int); x – шістнадцятирічне ціле без знака (unsigned int); f – виведення числа з плаваючою точкою (float, double); e – виведення числа з плаваючою точкою із використанням експоненціальної форми (float, double); c – виведення символу (char); s – виведення рядка; p – виведення по покажчику. L | l – застосовується в комбінації із символом типу: Lf і Le - довгий із плаваючою точкою (long double); ld або li - довгий цілий (long int); lu – беззнаковий довгий цілий (unsigned long int).
Приклад:
#include <iostream.h> #include <stdio.h>
Void main() { int g = 22; float f = 20000/3.; double d=10000.0; long ln = 200001L; long double ld=1.0; d = d/3; ld/=3; printf(" \n-----%10.1f----",f); //----- 6666.7---- printf(" \n-----%10.4d----",g); //----- 0022---- printf(" \n--d=%10.5f g=%d",d,g); //--d=3333.33333 g=22 printf(" \n--ln=%8ld ",ln); //--ln= 200001 printf(" \n--ln=%8.7ld ",ln); //--ln= 0200001 printf(" \n--ld=%20.19Lf ",ld); //--ld=0.3333333333333333330 } Об’єкт cin Введення даних здійснюється з використанням об’єкта cin. Синтаксис: cin >> змінна [ >> змінна ]… При введенні рядків введення здійснюється тільки по одному слову. При введенні декількох змінних роздільник між ними - пробіл або <Enter>. Приклад 1:
char f[20]; cout << “Введіть ім’я?”; cin >> f; cout << “Ім’я:”<< f; int e; cin >>e; cout << “\n e = ”<< e;
Приклад 2
#include <iostream.h>
Void main() { char name[20],fam[20]; int age; cin >> name >> fam >> age; //Іван Іванов 25 cout << fam << ’ ’ << name << ’ ’ << age; }
Результат роботи:
Іванов Іван 25
ТЕМА 3: ОПЕРАЦІЇ В С++ ПЛАН 1. Математичні операції в С++. 2. Операції відношення. 3. Логічні операції. 4. Додаткові операції. 5. Порозрядні операції.
1. Математичні операції в С++ * / + - % - ділення по модулю або залишок від ділення
cout << 10%2 << “\n”; //0 cout << 300%165 << “\n”; //135
Оператор присвоювання:
a = b = c = d = e = 100; val = 3 + (r = 9 - c);
Складові операції:
+= *= /= - =
Приклад:
int a = 10; a+=10 //20; a-= 10 //10; a*=2 //20; a/=5 //4;
Змішані типи даних: Якщо у виразах змішані типи даних, то виконується перетворення меншої точності у більшу. Наприклад, тип цілий і подвоєна точність забезпечує перетворення цілого типу в подвоєну точність.
int a = 4; double c = 17.1567; double t; t = a + c; //a-перетвориться в double
Частіше усього не треба перейматися стосовно автоматичного перетворення типів. У ряді випадків зручно використовувати приведення типу. Синтаксис:
(data type) expression, де data type -будь-який тип даного expression - з мінна, константа або вираз
Приклад:
int c = 10; cout << (float) c / 3; //3. 3333 cout << (float) (c / 3); //3
Якщо змішуються беззнакові змінні зі змінними інших типів, можуть виникнути проблеми. Операції відношення == дорівнює > більше < менше >= більше або дорівнює <= менше або дорівнює != не дорівнює
Результатом виразу відношення є: 0 - неправда або 1 - істина
cout << 2 == 2 == 2 // 0 - неправда cout << 2 < 3 // 1 - істина
Вираз відношення - два арифметичних вирази, з’єднані операцією відношення.
Оператор if
Синтаксис:
if (<вираз>) { блок з одного або більш операторів }
Якщо після if стоїть 1 оператор, фігурні дужки можна не ставити.
Оператор if...else
Синтаксис:
if (<вираз>) { блок з одного або більш операторів } Else
if (Х > 0) Y = X * X; else Y = 2 * X;
У логічному виразі обчислення виконуються зліва на право. Обчислення припиняються, як тільки результат стає визначеним. Такий засіб називається усіканням. if (a > b || c > d || e > f) – переривається, як тільки обчислюється, що a > b, або c > d. Логічні операції && - I || - АБО ! - НЕ
!(var1 = = var2) – те ж саме var1! = var2
Приклад: if ((a< b) & & (c > d)) cout << 3; Пріоритетність операцій: - арифметичні операції; - операцій відношення; - логічні операцій.
Усікання може бути використане для коректного обчислення. Наприклад: if (b! = 0 && a / b > 12.4) - коректно, ділення на нуль не буде. Якщо записати if (a / b > 12.4 && b! = 0) - небезпечно, може бути ділення на нуль. Логічні вирази повертають значення типу int. Будь-яке ненульове значення розглядається як істина. Додаткові операції Умовна операція? Ця операція може використовуватися замість if... else Синтаксис:
результат = вираз1? вираз2: вираз3
Приклад:
int i = 6, j = 8; int res = (i < j)? i: j; cout << res << ’\n’; // 6 char rs[10]; strcpy(rs, (i < j)? "Менше": "Не менше"); cout << rs; //Менше Операція інкремент (++) і декремент (--) Ця операція збільшує або зменшує значення змінної. При цьому в залежності від розташування справа або зліва від змінної інкремент ++ і -- називають префіксним або постфіксним. ++i означає i = i + 1 або i += 1; --i означає i = i - 1 або i -= 1; Якщо змінна має префіксну операцію, вона змінює своє значення перед тим, як буде використана у виразі. Якщо використовується постфіксна операція, то змінна змінить своє значення після обробки виразу:
a = 6; b = a++ -1 // a = 7 b = 5
Префіксна операція має вищий пріоритет, ніж будь-яка інша операція. s = ++(a + b) → Помилка!!! Операція застосовується тільки до змінної. Приклад:
int i = 1, j = 2, k = 3; a = i++ + j - --k; cout << a << i << k // 122
Операція sizeof() Формат: sizeof (дані) Sizeof (тип даних) sizeof повертає розмір у байтах даних або типів даних.
cout sizeof (float) //4
Порозрядні операції Таблиця 4 Основні порозрядні операції
Таблиця 5 Характеристика основних порозрядних операцій
9 & 14 // 8
9 | 14 // 15
9 ^ 14 // 7
~ 9 // 6
unsigned char u1 = ~9; // 246 signed char u2 = ~9; // -10 unsigned int u3 = ~9; // 65526 signed int u4 = ~9; // -10 unsigned long u5 = ~9; // 4294967286 signed long u5 = ~9; // -10
Приклад визначення парного або непарного значення
#include <iostream.h>
Void main() { int input; cin>> input; if(input & 1) // Істина, якщо число непарне cout<< input << “Число непарне”; else cout<< input << “Число парне”; }
У ASCII кодах єдина відзнака між маленькими і великими буквами значення 0 або 1 у 5-му біті - для англійських букв. Біт → 7 6 5 4 3 2 1 0 А → 0 1 0 0 0 0 0 1 → Шест. 41, Дес. 65 а → 0 1 1 0 0 0 0 1 → Шест. 61, Дес. 97
Щоб перетворити символ до верхнього регістру необхідно встановити 0 у 5-й біт. Для цієї мети можна використовувати маску зі значенням
223(10) = DF(16) = 1 1 0 1 1 1 1 1(2) → бітова маска. Якщо 5-й біт 0 - не зміниться, якщо 1 - перетвориться в 0.
Приклад:
#include <iostream.h> #define bitmas (0xDF) // 1 1 0 1 1 1 1 1
Void main() { char a,b,c; cin>>a; //g cin>>b; //M cin>>c; //p a = a & bitmas; b &= bitmas; // Складові поразрядні c &= bitmas; // операції cout<<a<<b<<c; //GMP } Для переключення заданого біта з 0 у 1 і навпаки, ефективно використовувати виключаюче АБО. Приклад із маскою, аналогічний попередньому. Порозрядні операції зсуву. Синтаксис: a << b → зсув уліво a >> b → зсув управо
Приклад:
29 << 3 // 232 0 0 0 1 1 1 0 1 // 29 1 1 1 0 1 0 0 0 // 232 ← зсув на 3
Ця операція дорівнює 29∙ 23 = 232 Початковий знак від’ємного числа зберігається. При застосуванні порозрядного зсуву до від’ємного числа його знак зберігається, але старші розряди заміняються одиницею, а не нулем. Зсув управо (уліво) на n розрядів відповідно зменшує (збільшує) число в 2n разом. Приклад порозрядних зсувів.
#include <iostream.h>
Void main() { int num_1 = 25; // 00011001 int num_2 = 102; // 01100110 int shift_1, shift_2; shift_1 = num_1 << 3; // 200 shift_2 = num_2 << 3; // 816 cout << shift_1 << «\n» << shift_2; // 200 // 816 }
Може бути використана складова операція порозрядного зсуву: <<= — складений порозрядний зсув уліво >>= — складений порозрядний зсув управо
signed int num1 = 15; unsigned int num2 = 15; num1 <<= 4; //множення на 16 num2 >>= 3; //ділення на 8
ТЕМА 4: ОРГАНІЗАЦІЯ ЦИКЛІВ ПЛАН 1. Організація циклів за допомогою while і do... while. 2. Організація циклів із використанням оператора for. 3. Оператори switch і goto.
1. Організація циклів за допомогою while і do...while Синтаксис while:
while (<вираз>) {
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-02-10; просмотров: 314; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |