Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 225; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.176.191 (0.007 с.) |