Мова СМова Сі++і++
Лінійні програми на Сі++
План:
1.Структура програми
2.Засоби мови для написання лінійної
програми
3.Форматований вивід на екран.
4.Форматоване введення з клавіатури.
5.Потокове уведення-виведення в Сі++
Загальна структура програми
на Сі++ наступна
директиви_препроцесора
визначення_функції_1
визначення_функції_2
визначення_функції_N
Серед функцій обов'язково
є присутньою головна функція з ім'ям
main
Проста програма містить тільки головну
функцію і має наступну структуру:
директиви препроцесора
void main()
{ визначення_об'єктів;
виконувані_оператори;
}
Приклад 1. Дано: а, b, с — сторони
трикутника. Обчислити S — площа трикутника.
По формулі Герона :
де р — півпериметр трикутника.
#include <stdio.h>
#include <math.h>
void main ()
{float a, b, c, p, s;
printf("na="); scanf("%f",&a);
printf("nb="); scanf("%f",&b);
printf("nc="); scanf("%f",&c);
p=(a+b+c)/2;
s=sqrt (р(p - c));
printf("Площа трикутника=%f", s);
}
Програма складається з однієї головної
функції із стандартним ім'ям main. Слово
void означає відсутність якого-небудь
повертаного цією функцією результату, а
порожні дужки — відсутність у неї аргументів.
Усе, що розміщено після заголовка функції і
поміщено у фігурні дужки, можна назвати
тілом функції.
Перший рядок — оголошення
використовуваних змінних. Усі вони
плаваючого типу double. Оголошення змінних
закінчується крапкою з комою.
Подальша частина програми — виконувані
оператори. Серед них оператори виводу на
екран, введення даних з клавіатури, оператори
привласнення.
Поняття «оператор» в Сі++ трактують таким
чином: будь-який вираз, після якого стоїть
крапка з комою, сприймається компілятором
як окремий оператор. Оператор визначає
закінчену дію на черговому кроці виконання
програми.
.
Якщо обчислення вираження закінчується
привласненням, то його можна назвати
оператором привласнення.
У даній програмі є присутніми два оператори
привласнення : обчислення півпериметра (р) і
обчислення площі трикутника (s).
У вираженні для обчислення площі
використовується бібліотечна функція sqrt()
— квадратний корінь.
Ця функція відноситься до бібліотеки
математичних функцій. Для підключення цієї
бібліотеки до нашої програми
використовується директива препроцесора
#include <math.h>.
Тут math.h — ім'я заголовного файлу цієї
бібліотеки.
Математичні функціїМатематичні функції
(заголовний файл math.h)(заголовний файл math.h)
У даній програмі оператори
printf (...); і scanf (...);
реалізують відповідно вивід на екран і
введення початкових даних з клавіатури.
Вони здійснюють звернення до відповідних
функцій стандартної бібліотеки введення-
виведення Сі, заголовний файл якої має ім'я
stdio.h.
Символи
"%c" є специфікацією формату
введення/виведення символьних даних,
"%d" — специфікацією для цілих чисел
Форматований вивід на екранФорматований вивід на екран
Оператор виклику функції printf() має
наступну структуру:
printf(форматний рядок,
список_аргументів);
Форматний рядок обмежений подвійними
лапками (тобто є текстовою константою) і може
включати довільний текст, символи, що
управляють, і специфікатори формату. Список
аргументів може бути відсутнім або ж
складатися з виразів, значення яких виводяться
на екран (у окремому випадку з констант і
змінних).
У прикладі оператор printf ("nа="); містить
текст ("а=") і символи ("n"), що управляють.
Текст виводиться на екран в тому вигляді, в
якому він записаний. Символи, що управляють,
впливають на розташування на екрані знаків,
що виводяться. В результаті виконання цього
оператора на екран з нового рядка виведуться
символи а=.
Ознакою символу, що управляє, є значок .
n - перевід строки;
t – горизонтальна табуляція;
r – повернення курсору к початку нової строки;
a – сигнал-дзвінок;
b –повернення на один символ (позицію);
f – прогін сторінки;
v – вертикальна табуляція
Оператор
printf ("Площа трикутника=% f", s);
містить усі види параметрів функції printf.
Список аргументів складається з однієї змінної
s. Її значення виводиться на екран. Пара
символів %f є специфікацією формату
значення змінної s, що виводиться. Значок % —
ознака формату, а буква f вказує на те, що
число, що виводиться, має речовинний (real)
(плаваючий) тип і виводиться на екран у формі
з фіксованою точкою.
Наприклад, якщо в результаті обчислень
змінна s отримає значення 32,435621, то на
екран виведеться:
Площа трикутника=32.435621
Специфікатор формату визначає форму
зовнішнього представлення величини, що
виводиться. Ось деякі специфікатори формату:
%c – символ;
%s – строчка;
%d – ціле десяткове число (int);
%u – ціле десяткове без знаку;
%f – дійсне з плаваючою крапкою;
Наприклад, після виконання наступних
операторів:
на екран виведеться рядок:
m=84.299999 k=-12 p=3.21500e+01
Тут двічі використовуваний символ табуляції , що
управляє, відокремив один від одного значення, що
виводилися. З цього прикладу видно, що відповідність
між специфікаторами формату і елементами списку
аргументів встановлюється в порядку їх запису зліва
направо.
Форматоване введення зФорматоване введення з
клавіатуриклавіатури
Оператор виклику функції scanf() має наступну
структуру:
scanf(форматний_рядок, список_аргументів);
Ця функція здійснює читання символів, що
вводяться з клавіатури, і перетворення їх у внутрішнє
представлення відповідно до типу величин. У функції
scanf() форматний рядок і список аргументів є
обов'язковим. У прикладі є оператор:
scanf("%f",&a);
Тут "%f" — форматний рядок; &а — список
аргументів, що складається з одного елементу. Цей
оператор проводить введення числового значення в
змінну а.
Символьну послідовність, що вводиться
з клавіатури і сприйману функцією
scanf(), прийнято називати вхідним
потоком. Функція scanf() розділяє цей
потік на окремі величини, що вводяться,
інтерпретує їх відповідно до вказаного
типу і формату і привласнює змінним, що
містяться в списку аргументів.
Список аргументів — це перелік змінних, що
вводяться, причому перед ім'ям кожної змінної
ставиться значок &. Це знак операції «взяття
адреси змінною».
Форматний рядок пишеться в лапках (як і для
printf) і складається зі списку специфікацій.
Кожна специфікація розпочинається зі знаку %,
після якого можуть слідувати
*ширина поля модифікатор специфікатор
З них обов'язковим елементом є лише
специфікатор. Для введення числових даних
використовуються наступні специфікатори:
d — для цілих десяткових чисел (тип int);
u — для цілих десяткових чисел без знаку (тип
unsigned int);
f — для дійсних чисел (тип float) у формі з
точкою;
е — для дійсних чисел (тип float) у формі з
плаваючою точкою.
Зірочка в специфікації дозволяє пропустити у
вхідному потоці певну кількість символів.
Ширина поля — ціле позитивне число, що
дозволяє визначити число символів з вхідного
потоку, що належать значенню відповідної
змінної, що вводиться. Як і в специфікаціях
виводу для функції printf(), в специфікаціях
введення функції scanf() допустиме
використання модифікаторів h, l, L
Вони застосовуються при введенні значень
модифікованих типів :
hd — для введення значень типу short int;
ld — для введення значень типу long int;
lf, le — для введення значень типу double у
формі з фіксованою і плаваючою точкою;
Lf, Le — для введення значень типу long
double у формі з точкою.
У прикладі програми усі три величини а, b, c
можна ввести одним оператором:
scanf("%f%f%f",&a,&b,&c);
Якщо послідовність введення буде такою:
5 3.2 2.4 <Enter>
то змінні отримають наступні значення: а = 5,0, b =
3,2, с = 2,4. Роздільником в потоці введення між
різними значеннями може бути будь-яка кількість
пропусків, а також інші пробільні символи: знак
табуляції, кінець рядка. Тільки після натиснення на
клавішу Enter значення, що вводяться,
привласняться відповідним змінним. До цього
вхідний потік поміщається у буфер клавіатури і
може редагуватися.
Потокове введення-виведення в Сі++Потокове введення-виведення в Сі++
Програмуючи на мові Сі++, можна
користуватися засобами введення-виведення
стандартної бібліотеки Сі, що підключається за
допомогою заголовного файлу stdio.h. Проте в
Сі++ є свої специфічні засоби введення-виводу
Це бібліотека класів, що підключається до
програми за допомогою файлу iostream.h. У цій
бібліотеці визначені в якості об'єктів стандартні
символьні потоки з наступними іменами:
сin — стандартний потік введення з клавіатури;
cout — стандартний потік виводу на екран.
Введення даних інтерпретується як витягання з
потоку сin і привласнення значень відповідним
змінним. У Сі++ визначена операція витягання із
стандартного потоку, знак якої >>. Наприклад,
введення значень в змінну х реалізується
оператором
cin>>x;
Виведення даних інтерпретується як приміщення
в стандартний потік cout значень, що виводяться.
Виводитися можуть тексти, поміщені в подвійні
лапки, і значення виразів. Знак операції
приміщення в потік <<. Приклади використання
потокового виводу :
cout<<a+b;
соut<<"nРезультат="<<Y;
cout<<"x="<<x<<" y="<<y<<" z="<<z<<endl;
Перепишемо програму з прикладу у варіанті з
використанням потокового введення-виведення
Сі++.

2

  • 1.
  • 2.
    План: 1.Структура програми 2.Засоби мовидля написання лінійної програми 3.Форматований вивід на екран. 4.Форматоване введення з клавіатури. 5.Потокове уведення-виведення в Сі++
  • 3.
    Загальна структура програми наСі++ наступна директиви_препроцесора визначення_функції_1 визначення_функції_2 визначення_функції_N
  • 4.
    Серед функцій обов'язково єприсутньою головна функція з ім'ям main Проста програма містить тільки головну функцію і має наступну структуру: директиви препроцесора void main() { визначення_об'єктів; виконувані_оператори; }
  • 5.
    Приклад 1. Дано:а, b, с — сторони трикутника. Обчислити S — площа трикутника. По формулі Герона : де р — півпериметр трикутника.
  • 6.
    #include <stdio.h> #include <math.h> voidmain () {float a, b, c, p, s; printf("na="); scanf("%f",&a); printf("nb="); scanf("%f",&b); printf("nc="); scanf("%f",&c); p=(a+b+c)/2; s=sqrt (р(p - c)); printf("Площа трикутника=%f", s); }
  • 7.
    Програма складається зоднієї головної функції із стандартним ім'ям main. Слово void означає відсутність якого-небудь повертаного цією функцією результату, а порожні дужки — відсутність у неї аргументів. Усе, що розміщено після заголовка функції і поміщено у фігурні дужки, можна назвати тілом функції. Перший рядок — оголошення використовуваних змінних. Усі вони плаваючого типу double. Оголошення змінних закінчується крапкою з комою.
  • 8.
    Подальша частина програми— виконувані оператори. Серед них оператори виводу на екран, введення даних з клавіатури, оператори привласнення. Поняття «оператор» в Сі++ трактують таким чином: будь-який вираз, після якого стоїть крапка з комою, сприймається компілятором як окремий оператор. Оператор визначає закінчену дію на черговому кроці виконання програми. .
  • 9.
    Якщо обчислення вираженнязакінчується привласненням, то його можна назвати оператором привласнення. У даній програмі є присутніми два оператори привласнення : обчислення півпериметра (р) і обчислення площі трикутника (s).
  • 10.
    У вираженні дляобчислення площі використовується бібліотечна функція sqrt() — квадратний корінь. Ця функція відноситься до бібліотеки математичних функцій. Для підключення цієї бібліотеки до нашої програми використовується директива препроцесора #include <math.h>. Тут math.h — ім'я заголовного файлу цієї бібліотеки.
  • 11.
  • 12.
    У даній програміоператори printf (...); і scanf (...); реалізують відповідно вивід на екран і введення початкових даних з клавіатури. Вони здійснюють звернення до відповідних функцій стандартної бібліотеки введення- виведення Сі, заголовний файл якої має ім'я stdio.h. Символи "%c" є специфікацією формату введення/виведення символьних даних, "%d" — специфікацією для цілих чисел
  • 13.
    Форматований вивід наекранФорматований вивід на екран Оператор виклику функції printf() має наступну структуру: printf(форматний рядок, список_аргументів); Форматний рядок обмежений подвійними лапками (тобто є текстовою константою) і може включати довільний текст, символи, що управляють, і специфікатори формату. Список аргументів може бути відсутнім або ж складатися з виразів, значення яких виводяться на екран (у окремому випадку з констант і змінних).
  • 14.
    У прикладі операторprintf ("nа="); містить текст ("а=") і символи ("n"), що управляють. Текст виводиться на екран в тому вигляді, в якому він записаний. Символи, що управляють, впливають на розташування на екрані знаків, що виводяться. В результаті виконання цього оператора на екран з нового рядка виведуться символи а=. Ознакою символу, що управляє, є значок .
  • 15.
    n - перевідстроки; t – горизонтальна табуляція; r – повернення курсору к початку нової строки; a – сигнал-дзвінок; b –повернення на один символ (позицію); f – прогін сторінки; v – вертикальна табуляція
  • 16.
    Оператор printf ("Площа трикутника=%f", s); містить усі види параметрів функції printf. Список аргументів складається з однієї змінної s. Її значення виводиться на екран. Пара символів %f є специфікацією формату значення змінної s, що виводиться. Значок % — ознака формату, а буква f вказує на те, що число, що виводиться, має речовинний (real) (плаваючий) тип і виводиться на екран у формі з фіксованою точкою.
  • 17.
    Наприклад, якщо врезультаті обчислень змінна s отримає значення 32,435621, то на екран виведеться: Площа трикутника=32.435621 Специфікатор формату визначає форму зовнішнього представлення величини, що виводиться. Ось деякі специфікатори формату: %c – символ; %s – строчка; %d – ціле десяткове число (int); %u – ціле десяткове без знаку; %f – дійсне з плаваючою крапкою;
  • 18.
    Наприклад, після виконаннянаступних операторів: на екран виведеться рядок: m=84.299999 k=-12 p=3.21500e+01 Тут двічі використовуваний символ табуляції , що управляє, відокремив один від одного значення, що виводилися. З цього прикладу видно, що відповідність між специфікаторами формату і елементами списку аргументів встановлюється в порядку їх запису зліва направо.
  • 19.
    Форматоване введення зФорматованевведення з клавіатуриклавіатури Оператор виклику функції scanf() має наступну структуру: scanf(форматний_рядок, список_аргументів); Ця функція здійснює читання символів, що вводяться з клавіатури, і перетворення їх у внутрішнє представлення відповідно до типу величин. У функції scanf() форматний рядок і список аргументів є обов'язковим. У прикладі є оператор: scanf("%f",&a); Тут "%f" — форматний рядок; &а — список аргументів, що складається з одного елементу. Цей оператор проводить введення числового значення в змінну а.
  • 20.
    Символьну послідовність, щовводиться з клавіатури і сприйману функцією scanf(), прийнято називати вхідним потоком. Функція scanf() розділяє цей потік на окремі величини, що вводяться, інтерпретує їх відповідно до вказаного типу і формату і привласнює змінним, що містяться в списку аргументів.
  • 21.
    Список аргументів —це перелік змінних, що вводяться, причому перед ім'ям кожної змінної ставиться значок &. Це знак операції «взяття адреси змінною». Форматний рядок пишеться в лапках (як і для printf) і складається зі списку специфікацій. Кожна специфікація розпочинається зі знаку %, після якого можуть слідувати *ширина поля модифікатор специфікатор
  • 22.
    З них обов'язковимелементом є лише специфікатор. Для введення числових даних використовуються наступні специфікатори: d — для цілих десяткових чисел (тип int); u — для цілих десяткових чисел без знаку (тип unsigned int); f — для дійсних чисел (тип float) у формі з точкою; е — для дійсних чисел (тип float) у формі з плаваючою точкою.
  • 23.
    Зірочка в специфікаціїдозволяє пропустити у вхідному потоці певну кількість символів. Ширина поля — ціле позитивне число, що дозволяє визначити число символів з вхідного потоку, що належать значенню відповідної змінної, що вводиться. Як і в специфікаціях виводу для функції printf(), в специфікаціях введення функції scanf() допустиме використання модифікаторів h, l, L
  • 24.
    Вони застосовуються привведенні значень модифікованих типів : hd — для введення значень типу short int; ld — для введення значень типу long int; lf, le — для введення значень типу double у формі з фіксованою і плаваючою точкою; Lf, Le — для введення значень типу long double у формі з точкою.
  • 25.
    У прикладі програмиусі три величини а, b, c можна ввести одним оператором: scanf("%f%f%f",&a,&b,&c); Якщо послідовність введення буде такою: 5 3.2 2.4 <Enter> то змінні отримають наступні значення: а = 5,0, b = 3,2, с = 2,4. Роздільником в потоці введення між різними значеннями може бути будь-яка кількість пропусків, а також інші пробільні символи: знак табуляції, кінець рядка. Тільки після натиснення на клавішу Enter значення, що вводяться, привласняться відповідним змінним. До цього вхідний потік поміщається у буфер клавіатури і може редагуватися.
  • 26.
    Потокове введення-виведення вСі++Потокове введення-виведення в Сі++ Програмуючи на мові Сі++, можна користуватися засобами введення-виведення стандартної бібліотеки Сі, що підключається за допомогою заголовного файлу stdio.h. Проте в Сі++ є свої специфічні засоби введення-виводу Це бібліотека класів, що підключається до програми за допомогою файлу iostream.h. У цій бібліотеці визначені в якості об'єктів стандартні символьні потоки з наступними іменами: сin — стандартний потік введення з клавіатури; cout — стандартний потік виводу на екран.
  • 27.
    Введення даних інтерпретуєтьсяяк витягання з потоку сin і привласнення значень відповідним змінним. У Сі++ визначена операція витягання із стандартного потоку, знак якої >>. Наприклад, введення значень в змінну х реалізується оператором cin>>x; Виведення даних інтерпретується як приміщення в стандартний потік cout значень, що виводяться. Виводитися можуть тексти, поміщені в подвійні лапки, і значення виразів. Знак операції приміщення в потік <<. Приклади використання потокового виводу : cout<<a+b; соut<<"nРезультат="<<Y; cout<<"x="<<x<<" y="<<y<<" z="<<z<<endl;
  • 28.
    Перепишемо програму зприкладу у варіанті з використанням потокового введення-виведення Сі++.