Оператори й основні типи даних мови С++

КОНТРОЛЬНА РОБОТА



«Базові мови програмування»






Зміст



Завдання 1. «Базові типи змінних. Елементарний ввід-вивід»

Завдання 2. «Умовні оператори. Оператори множинного вибору»

Завдання 3. «Оператори циклу»

Список використаних джерел




Завдання 1. «Базові типи змінних. Елементарний ввід-вивід»



Короткі теоретичні відомості.

Програма на мові С++ завжди містить одну головну функцію main( ). Ключове слово void означає, що функція main( ) не повертає ніяких параметрів. Тіло функції завжди знаходиться в блоці програми, який обмежений відкриваючою і закриваючою дужками {…}.

Основні типи даних. Визначення основних (базових) типів даних здійснюється за допомогою ключових слів. Для типів із плаваючою точкою (дійсних) використовуються ключові слова float, double, long double, для цілих типів – char, int, short, long з службовими словами signed та unsigned, які вказують, що ціла змінна вважається знаковою або беззнаковою. Операція sizeof обчислює розмір у байтах ділянки пам'яті, яка зайнята змінною зазначеного типу або типом даних.

Оператори вводу та виводу даних. Для виводу на екран монітору використовуються функції printf( ), puts( ), putchar( ) та ін. Функції putchar( ), puts( ) мають тільки один параметр і виводять відповідно символи та рядки, але не забезпечують вивід числових даних. Функція printf( ) використовується для форматованого виводу на екран усіх типів даних за допомогою специфікаторів. 

Специфікатор формату починається із символу %, після якого стоїть символ, що вказує тип даних: %d – ціле число; %ld - довге ціле число типа long int; %u – беззнакове ціле число; %f – дійсне число типа float; %lf – дійсне число типа doublе; %Lf - довге дійсне число типа long double; %e – дійсне число в експоненціальній формі; %c – символ; %s – рядок; %o – цілі числа у восьмирічній системі числення; %x – цілі числа в 16-тирічній системі числення; %p – адреса змінної в 16-тирічній системі числення.

Основні функції вводу даних із клавіатури scanf( ), gets( ), getchar( ). Функція getchar( ) не має параметрів і вводить символи, функція gets( ) має один параметр і вводить рядки. Функція scanf( ) здійснює перетворення формату за допомогою специфікаторів і може мати декілька аргументів, дозволяючи тим самим вводити значення числових, символьних змінних та рядків. Специфікатори формату аналогічні (але не цілком) тим, що використовуються функцією виводу printf( )[1-8].

Постановка завдання.

а) введіть два цілих десяткових числа з 8-ю значними цифрами (додатне і від'ємне) та два десяткових числа з плаваючою точкою з 9-ю значними цифрами (додатне і від'ємне) і здійсніть форматований вивід чисел в стандартній та заданій формах.



	№вар.

Цілі числа

Дійсні числа



Ширина поля

Ключі

Ширина поля

Кіл-ть знаків після точки

3

20

з нулями перед першою цифрою

15

7



Програма A1.

#include <stdio.h>

#include <iostream.h>

#include <conio.h>

void main( )

{

long int i1 = 0; // оголошення змінних цілого типу

long int i2 = 0;

long double ld1 = 0; // оголошення змінних з плаваючою точкою

long double ld2 = 0;

cout << "Vvedite 8-mi znachnoe 10-oe chislo (+): ";

cin >> i1;

cout << endl;

cout << "Vvedite 8-mi znachnoe 10-oe chislo (-): ";

cin >> i2;

cout << endl;

// вивід результату у форматі цілого типу

printf("Vache chislo (+):%*.20ld\n",0,i1);

printf("Vache chislo (-):%*.20ld\n",0,i2);

cout << "\nVvedite 9-i znachnoe vewestvennoe chislo (+): ";

cin >> ld1;

cout << endl;

cout << "Vvedite 9-i znachnoe vewestvennoe chislo (-): ";

cin >> ld2;

cout << endl;

// вивід результату у форматі з плаваючою точкою

printf("Vache chislo (+):%15.7Lf\n",ld1);

printf("Vache chislo (-):%15.7Lf\n",ld2); getch();

}



Результати работи програми.





Мал. 1. Результат работи програми А1



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

Програма Б1.

#include <stdio.h>

#include <conio.h>

void main( )

{char ch; // оголошення змінної типу char

printf("Vvedite simvol i najmite Enter\n");

scanf("%c", &ch);

printf("Kod simvola %c v ASCII (10):%d\n", ch, ch); // вивід у 10-й с/с

printf("Kod simvola %c v ASCII (8):%o\n", ch, ch); // вивід у 8-й с/с

printf("Kod simvola %c v ASCII 16):%x\n", ch, ch); // вивід у 16-й с/с

getch();



}

Результати работи програми.





Мал. 2. Результат работи програми Б1.



в) знайдіть значення функції y (x) при заданому значенні х, використовуючи стандартні функції. Для цього включить в текст програми заголовний файл <math.h>.



№вар.

y (x)

х

3

у=arcsin(x)+x2

х=0.412



Програма В1.

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main( )

{

double x = 0.412; 

long double y = 0.0; // оголошенни змінної з плаваючою точкою

printf("Znachenie x = %4.3lf\n",x);

y = (asin(x)+(x*x)); // розрахунок функції y(x)

printf("Znachenie y(x) = %Lf\n",y);

getch();

}



Результати работи програми.





Мал. 3. Результат работи програми В1



Завдання 2. «Умовні оператори. Оператори множинного вибору»



Короткі теоретичні відомості.

Умовний оператор if…else вибирає один з двох варіантів послідовності обчислень та має наступний синтаксис:

if (вираз_1 ) вираз_2 else вираз_3 

Якщо вираз_1 не дорівнює 0, то виконується вираз_2, інакше (якщо вираз_1 дорівнює 0) виконується вираз_3. 

Конструкція if…else може містити оператори вводу-виводу значень, виконання математичних операцій або виклики власних функцій, а також і іншу інструкцію if. 

Якщо в програмі треба врахувати більш трьох можливих варіантів, доцільно використовувати оператор множинного вибору switch. Синтаксис цього оператора такий:

switch (перемикаючий_вираз)

{	case константний_вираз_1: оператори_1;break;

case константний_вираз_2: оператори_2;break;

default: оператори_n+1;}

Оператор switch передає керування тому оператору, константний вираз якого співпадає з значеннями перемикаючого виразу. Якщо значення змінної не задовольняє умовам жодної з гілок case, виконується гілка, що позначена міткою default. Якщо ви пропустили оператор break, комп'ютер виконає всі оператори, які містяться у відповідній гілці case та інших гілках, до першого зустрінутого в тексті break[1-8].

Постановка завдання.

а) Введіть різні значення дійсного числа типу double та знайдіть значення функції у (х) при заданих значеннях х, використовуючи умовні оператори if …else. Виведіть результати на екран.







Програма А2.

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iostream.h>

#define pi 3.1415926 // асоціація pi з значенням 3.1415926

void main( )

{

double x = 0.0; //оголошення змінних з плаваючою точкою

double y = 0.0;

cout << "Vvedite vewestvennoe chislo x = ";

cin >> x;

if (x<(-pi/4)) { 

y = x; // розрахунок функціі у 

cout << endl << "Znachenie x: x < -pi/4"<< endl;

printf("Znachenie y = %4.5f\n",y);

}

if (x>(pi/4)) {

y = -x; // розрахунок функціі у 

cout << endl << "Znachenie x: x > pi/4"<< endl;

printf("Znachenie y = %4.5f\n",y);

}

else {

y = tanl(x); // розрахунок функціі у

cout << endl << "Znachenie x: -pi/4 <= x <= pi/4"<< endl;

printf("Znachenie y = %4.5f\n",y);

}

getch();

}



Результати роботи програми.





Мал. 4. Результат работи програми А2



б) введіть цифру або букву в якості ключа та виведіть на екран потрібні дані, використовуючи оператор множинного вибору switch. В програмі передбачте вивід повідомлення при невірно заданому ключі.



№

Ключ

Необхідна інформація

3

а-z

назви 6 книжок




Програма А2.

#include <conio.h>

#include <iostream.h>

#include <stdio.h>

void main( )

{

char ch; //оголошення змінних 

int ich;

cout << "Vvedite cluch (a-z):";

scanf("%c", &ch); //ввод букви 

printf("Kod simvola '%c' raven %d", ch, ch);

ich = int(ch); //операція приведення типу

if ((ich>=97)&&(ich<=122)) { //перевірка інтервалу

switch (ich) {

case 97:{

cout<< endl <<"1. Slovar";

cout<< endl <<"2. Bukvar";

cout<< endl <<"3. Algebra";

cout<< endl <<"4. Istoriya";

cout<< endl <<"5. Literatura";

cout<< endl <<"6. Pravo";

break;};

…………………………………………..

case 122:{

cout<< endl <<"1. Slovar";

cout<< endl <<"2. Bukvar";

cout<< endl <<"3. Algebra";

cout<< endl <<"4. Istoriya";

cout<< endl <<"5. Literatura";

cout<< endl <<"6. Pravo";

break;};

}

}

else cout<< endl <<"Neverno zadan cluch!!!";

getch();

}



Результати роботи програми Б2.





Мал. 5. Результат работи програми Б2



Завдання 3. «Оператори циклу»



Короткі теоретичні відомості.

Мова С++ має три оператори, за допомогою яких можна організувати цикли: for, while, do…while.

Цикл з оператором for частіше використовується у випадку, коли відомо точна кількість повторів, що потрібно виконати. Цей оператор має синтаксис: 

for (ініціалізація_циклу; умова; список виразів) тіло_циклу

Цикл з оператором do…while використовується в тих випадках, коли невідомо точна кількість повторів, але тіло циклу повинно бути виконано, принаймні, один раз. Синтаксис оператору наступний:

do тіло_циклу while (умова);

Цикл з оператором while використовується в тому випадку, коли невідомо точне число повторів і при цьому немає необхідності, щоб тіло циклу було виконано хоча б один раз. Синтаксис оператору наступний: while (умова) тіло_циклу.

Постановка завдання.

а) використовуючи оператор циклу for, знайдіть суму ряду цілих додатних чисел згідно варіанту. Виведіть результат та останній член суми на екран. Перше число рівно 0.



№

Кіл-ть чисел

Тип чисел

3

9

кратні 5



Програма А3.

#include <conio.h>

#include <iostream.h>

#include <stdio.h>

void main( )

{

clrscr;

int sum = 0; //оголошення змінних цілого типу

int n = 0;

int i;

cout << "Ryad chisel = ";

for (i=0; i<=8; i++) { //цикл знаходження чисел кратних 5

n = i*5;

gotoxy((3*i)+15,1); cout << n;

sum = sum + n;

}

cout << endl <<"Summa chisel = "<< sum ;

cout << endl <<"Poslednee chislo = "<< n ;

getch();

}

Результати роботи програми.



Мал. 6. Результат работи програми А3.



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



№

Тип чисел

Умова

3

цілі, кратні 4

числа від 8 до 100



Програма Б3.

#include <conio.h>

#include <iostream.h>

#include <stdio.h>

void main( )

{

clrscr;

int sum = 0;

int end = 0;

int n = 0;

int i = 0;

cout << " Programma summirovaniya chisel kratnih '4' " << endl;

cout << endl;

n = 8;

while (n<=100) {

if ((n % 4) == 0) {

sum = sum + n;

end = n;

}

i++;

n++;

}

cout << "Summa: " << sum << endl;

cout << "Posledniy chlen summi: " << end << endl;

cout << "Kolichestvo iteraciy : " << i << endl;

getch();

}



Результати роботи програми.





Мал. 7. Результат работи програми Б3




Літературні джерела



1. Абрамов С.А., Зима Е.В. Начала информатики. —М.: Наука, 1990.

2. Грогоно П. Программирование на языке Паскаль. - М.: Мир, 1982.

3. Йенсен К., Вирт H. Паскаль. Руководство для пользователя и описание языка. -М.: Финансы и статистики, 1982.

4. Перминов О.Н. Программирование на языке Паскаль. - М.: Радио и связь, 1988.

5. Пильщиков В.Н. Сборник упражнений по языку Паскаль. - М.: Наука, 1989.

6. Прайс Д. Программирование на языке Паскаль. Практическое руководство. М.: Мир, 1987.

7. Турбо Паскаль 7.0. - К.: Торгово-издательское бюро BHV, 1996.

8. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие.-М.: «Нолидж», 1997.