Порядок виконання роботи.
1. Запустити Microsoft Visual C++ (MVC++).
2. Відкрити простий проект, для якого:
3. обрати тип проекту, що створюється: Win32 Console Application;
4. вказати назву проекту та місце розташування проекту;
5. обрати тип консольного додатку A simple Application.
6. Відкрити файл головної функції проекту та внести до неї відповідні зміни.
// головна функція
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std ;
void swapR ( int&, int& ) ;
void swapR ( char&, char& ) ;
void reverseArray ( int*, int = 10 ) ;
int* reverseArray ( const int*, int, int ) ;
char* reverseArray ( const char* ) ;
void view ( const int*, int = 5 ) ;
int main ( )
{
int ar [ 10 ] = { 1, 2, 3, 4, 5, 6 } ;
cout << "Initial array\n" ; view ( ar, 10 ) ;
// реверс усього масиву
reverseArray ( ar ) ;
cout << "\nReverse array\n" ; view ( ar, 10 ) ;
// реверс частини масиву
int* p = reverseArray ( ar, 5, 9 ) ;
cout << "\nReverse part array\n" ; view ( p ) ;
// реверс стрічки
char* s = "NOMEL ON NOLEM ON" ;
char* pr = reverseArray ( s ) ;
cout << "\nInitial string\n" ; cout << s << endl ;
cout << "\nReverse string\n" ; cout << pr << endl ;
return 0 ;
}
// перестановка за допомогою посилань (ссылок)
void swapR ( int& rx, int& ry )
{ int t = rx ; rx = ry ; ry = t ; }
void swapR ( char& rx, char& ry )
{ char t = rx ; rx = ry ; ry = t ; }
// реверс массиву в самому собі
void reverseArray ( int* p, int size )
{
for ( int i = 0, j = size - 1; i < j; i++, j-- )
swapR ( p [ i ], p [ j ] ) ;
}
// формування зворотнього масиву із частини масиву
int* reverseArray ( const int* pIn, int top, int end )
{
if ( end <= top ) return 0 ;
int size = end - top + 1 ; int* pRes = new int [ size ] ;
int i, j, ir, jr ;
for ( i = top, j = end, ir = 0, jr = size - 1; i < j; )
{
pRes [ ir++ ] = pIn [ j-- ] ;
pRes [ jr-- ] = pIn [ i++ ] ;
}
if ( i == j ) pRes [ ir ] = pIn [ i ] ;
return pRes ;
}
// реверс стрічки
char* reverseArray ( const char* p )
{
char* pOut = new char [ strlen ( p ) + 1 ] ;
strncpy ( pOut, p, strlen ( p ) + 1) ;
char *pTop = pOut, *pEnd = pOut + strlen ( pOut ) - 1 ;
while ( pTop < pEnd )
swapR ( *pTop++, *pEnd-- ) ;
return pOut ;
}
void view ( const int* arr, int count )
{ for ( int i = 0; i < count; i++ )
{
cout << '\n' << "\ti=" << i << " " << arr[i] << endl ;
}
}
Зберегти проект. за допомогою команди File Save All.
Виконати програму за допомогою команди Build Execute Lab8_1.exe.
Протестувати програму для різних значень вхідних даних.
Закрити проект за допомогою команди File Close Workspace.
Закрити MVC++.
Частина 2
У відповідності з варіантом розробити перевантажені функції, призначення яких приведено в таблиці.
-
№ вар
Призначення функцій
1
Розрахунок площ:
А) трикутника по трьом сторонам;
Б) прямокутника;
В) кола.
2
Розрахунок об’ємів:
А) куба;
Б) конуса;
В) призми з правильним трикутником в основі.
3
Розрахунок площ поверхонь тіл:
А) кулі;
Б) призми з прямокутником в основі;
В) конусу.
4
Розрахунок площ трикутника:
А) по основі і висоті;
Б) по трьом сторонам;
В) кола.
5
Розрахунок площ:
А) трикутника по трьом сторонам;
Б) трапеції;
В) ромбу.
6
Розрахунок об’ємів:
А) призми з прямокутником в основі;
Б) циліндра;
В) кулі.
7
Розрахунок площ бокових поверхонь тіл:
А) піраміди з правильним трикутником в основі;
Б) призми з прямокутником в основі;
В) конусу.
8
Розрахунок площ:
А) кільця;
Б) трапеції;
В) квадрату.
9
Розрахунок об’ємів:
А) куба;
Б) конуса;
В) призми з правильним трикутником в основі.
10
Розрахунок площ бокових поверхонь тіл:
А) циліндру;
Б) піраміди з прямокутником в основі;
В) призми з правильним трикутником в основі.
11
Розрахунок площ:
А) трикутника;
Б) прямокутника;
В) кола.
12
Розрахунок площ поверхонь тіл:
А) кулі;
Б) призми з прямокутником в основі;
В) конусу.
13
Розрахунок площ:
А) кільця;
Б) трапеції;
В) квадрату.
14
Розрахунок площ:
А) трикутника по трьом сторонам;
Б) трапеції;
В) ромбу.
15
Розрахунок площ бокових поверхонь тіл:
А) піраміди з правильним трикутником в основі;
Б) призми з прямокутником в основі;
В) конусу.
