- •Int main() /* головна обов’язкова функція, де ключове слово int означає, що функція main() повертатиме у точку виклику результат цілого типу*/ 6
- •Засоби розробки с програм
- •Директиви препроцесора.
- •Using namespace std; // вказуємо, що будемо працювати з іменами із стандартної бібліотеки
- •Запитання
- •Тема 2. Данні
- •Команда присвоєння. Правила узгодження типів.
- •Запитання
- •Тема 3. Операції та вирази
- •Тема 4. Потоки. Введення - виведення даних
- •Форматування даних
- •Введення-виведенні засобами бібліотеки сstdіo
- •Тема 5. Адреси даних. Вказівники. Динамічна пам’ять
- •Тема 6. Файли
- •Тема 7. Розгалуження
- •Логічні вирази та логічні операції.
- •Команда ?
- •Тема 8. Цикли
- •Команда циклу з післяумовою do-while має вигляд
- •Тема 9. Функції (1)
- •Тема 10. Функції (2)
- •Тема 11. Масиви
- •Тема 12. Рядки
- •Тема 13. Структури, списки, стеки, черги, об’єднання
- •Тема 14. Виняткові ситуації
- •Http://www.Rate1.Com.Ua/strannosti/2633/ Самі фатальні помилки в програмному забезпеченні
- •Помилки під час виконання (виняткові ситуації, виключення) Exceptions - це помилки, що виникають у випадку, коли програма намагається виконати неприпустиму операцію.
- •Тема 15. Графіка
- •Написание простых графических программ
- •Http://www.Rsdn.Ru/article/opengl/ogltut2.Xml Графическая библиотека OpenGl
Команда ?
Команда ? є аналогом команди розгалуження if. Загальний вигляд команди ? такий:
<логічний вираз> ? <команда або вираз 1> : <команда або вираз 2>
Дія команди. Обчислюється значення логічного виразу. Якщо воно істинне, то виконується команда 1 або обчислюється вираз 1, інакше - команда або вираз 2.
Задача 2 (про два числа). Ввести два цілі числа. Знайти більше з них.
// Визначення більшого числа
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int x,y;
cout<<"Введіть значення x,y\n";
cin>>x>>y;
cout<< "Max =";
x > y ? cout<<x : cout<<y;
getch();
}
Команда ? у разі потреби трактується компілятором як вираз, тому її зручно використовувати у директивах препроцесора, наприклад
#define abs(x) > 0 ? (х); -(х);
Приклад 6. Нехай с = 10.
Тоді після виконання команди х = (с == 3) ? 2 * с : с - 2; отримаємо х = 8, оскільки с не дорівнює 3, і тому тут обчислюється значення виразу 2.
Команда вибору (switch). Команда вибору має вигляд
switch (<вираз>);
{
case <ознака 1> : <команда 1>; break,
case <ознака N> : <команда N> break;
default; <команда N+1>;
}
Вираз та ознаки мають бути цілочисельні. Оскільки транслятор мови C++ може розглядати значення змінних типу char і enum як цілі дані, то на місці виразу та ознак можуть бути сталі цілого, символьного або перераховного типів. На місці команд 1 — N може бути одна команда, декілька або не бути жодної команди. Команда break не є обов’язковою і записується у разі потреби. Вона слугує для виходу з команди switch.
Складова частина default: <команда N+1> також може бути відсутня — тоді матимемо коротку форму команди вибору switch.
Дія команди. Якщо значення виразу збігається зі значенням ознаки п, то виконується команда з номером n і розглядається наступний за нею рядок case і т.д. Для того, щоб припинити дію команди switch, наприклад, після виконання команди n (тобто щоб вийти з цієї команди), записують команду break;. Якщо значення виразу не збігається із жодною з ознак, то виконується команда N+1 або, у випадку короткої форми, наступна команда після команди switch.
Задача 3 (про квитки). Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:
Скільки коштуватимуть m квитків до населеного пункту, помер k якого вводять з клавіатури?
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int k, m; float cina;
cout << "Уведіть номер k населеного пункту і кількість квитків m"<<endl;
cin>>k >> m;
switch (k)
{
case 1 : cina = 22; break;
case 2:
case 3:
case 4: cina = 25; break;
case 5:
case 6: cina = 30; break;
case 7:
case 8: cina = 35; break;
default : cout <<"Дані введено неправильно \n";
cina = 0;
}
cout << m << " квитків до пункту " << k << " коштують ";
cout << cina * m << " грн.";
getch();
}
Команда безумовного переходу goto. Ця команда змінює послідовність виконання інших команд шляхом переходу до виконання команди, що має позначку (мітку). Команда переходу має вигляд
goto <позначка>;
Позначка може розміщуватись перед довільною командою у програмі. Вона відокремлюється від команди двокрапкою (:), а саме:
<позначка> : <команда>;
Позначкою може бути лише ідентифікатор, тобто набір допустимих символів, який починається з букви або символу підкреслення (_).
Задача 4 (про квадратне рівняння). Ввести декілька наборів коефіцієнтів квадратного рівняння ах2 + bх + с = 0 і вивести повідомлення: матиме рівняння дійсні корені чи ні?
// Програма Квадратне рівняння
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main()
{
float a, b, c, d;
vvid : cout <<"Уведіть коефіцієнти рівняння \n";
cin>> a >> b >>c;
if (a == 0) goto finish; // Якщо a=0, то перейти до позначки finish
d = pow(b, 2) - 4 * a * c; // Інакше обчислити дискримінант
if (d >= 0) cout <<"Це рівняння має корені";
else // Якщо дискримінант від'ємний, то
{
cout <<"Дані введено неправильно \n"; // виводимо відповідні
cout<<"Рівняння дійсних розв'язків не має"; // повідомлення
goto vvid; // Перейти до позначки vvid
}
finish : getch();
}
Зауваження 4. Використовувати команду goto варто лише у виняткових випадках, оскільки вона змінює природну послідовність виконання команд і робить програму важкозрозумілою.
Задача 5 (про розклад на день). Скласти програму, яка б виводила на екран розклад роботи на тиждень.(повторити перерахунковий тип)
#include <iostream> // Програма Розклад на день
#include <conio.h>
using namespace std;
int main()
{
enum svet {mon, tue, wed, the, fri, sat, sun};
int day;
cout << "Розклад занять на тиждень\n\n";
for (day = mon; day <= sun; day++)
switch (day)
{
case mon : cout << "Понеділок\t Зустріч акціонерів. \n"; break;
case tue : cout << "Вівторок\t Відрядження\n"; break;
case wed : cout << "Середам\t Відрядження\n"; break;
case the : cout << "Четвер\t Відрядження\n"; break;
case fri : cout << "П'ятниця\t Здати звіт Зайти в банк\n"; break;
case sat : cout << "Субота\t Їдемо на рибалку\n"; break;
case sun : cout << "Неділя\t Відвідати батьків. Ввечері йдемо у театр\n";
}
getch();
}
Вправи
Чи істинний складений логічний вираз х <= 8 && х > 3, якщо:
а) х = 0 (відповідь: ні); б) х = 2;
в) х — 10; г) x: = 5; д) x: = 15?
Якого значення (true чи false) набуде вираз х <= 2 || х > 5, якщо:
а) x: = 0 (відповідь: true); б) х = 2;
в) x: = 10; г) ж = 5; д) х = 15?
Запишіть логічний вираз для визначення, чи деяка точка х належить відрізку:
а) [0; 3) (відповідь: х >= 0 && х < 3); б) (-5; 5]; в) [10; 20];
г) [2;14] або [20;25]; д) [4;10] і [8; 12].
Запишіть умову того, що число а: а) парне; б) ділиться без остачі на 3; в) не ділиться без остачі на 3; г) ділиться на 3 і на 5; д) ділиться на 3 або на 5.
Складіть логічні вирази для перевірки, чи е точка (х; у): а) у другій чверті (відповідь: х < 0 && у > 0 ); б) на координатних осях; в) у другій або третій чверті; г) у квадраті зі стороною, що дорівнює 1, побудованому на координатних осях у першій чверті; д) у крузі одиничного радіуса з центром у початку координат (підказка: умова належності точки кругу така: х2 + у2 < 1).
Модифікуйте програму Обчислення виразу так, щоб вивести результати у файл.
Модифікуйте програму Обчислення виразу так, щоб користувач міг вибирати, куди виводити результати: на екран чи у файл.
Вказівка. Використайте, наприклад, команди
cout <<"Виведення результатів: 1 - на екран, 2-у файл";
сcin>>n;
if (n == 1) <виводимо результати на екран>;
else <виводимо результати у файл>;
Складіть логічний вираз для пошуку у бібліотеці деякої книжки за трьома параметрами: видавництво - «Деол», рік видання — 2003, автор - Новосад.
Модифікуйте програму Квадратне рівняння так, щоб можна було розв’язати декілька рівнянь. Наприклад, вводити коефіцієнти доти, доки значення коефіцієнта а не дорівнюватиме нулю.
Складіть програму для розв’язування рівняння ах + b = 0. Передбачте випадки а) а = 0 і b = 0; б) а = 0, b ≠ 0; в) а ≠ 0.
Розв’яжіть задачу № 3 з розділу "Задачі" вашого варіанта. Передбачте виведення результатів на екран і у файл.
Розв’яжіть задачу № 4 вашого варіанта. Передбачте виведення результатів а) на екран; б) у файл.
Розв’яжіть задачу № 4 наступного варіанта. Виведіть результати виконання програми у файл.
Розв’яжіть задачу № 5 свого варіанта. Виведіть результати викопання програми на екран.
1.8.5
3.1
