24 декабря 2015 г.

Вычислить площадь поверхности и объем: a.цилиндра(радиус r, высота h).b.шара(S = 4r2, V = (4 / 3) r3).*/

int r, h;
const double pi = 3.14;
cout << "Enter radius(sm):";
cin >> r;
cout << "Enter height(sm):";
cin >> h;
cout << "Square cylinder " << 2 * pi*r*h << " sm" << endl;
cout << "Volume cylinder " << pi*r*r*h << " sm" << endl;
cout << "Square bowl " << 4 * pi*r*r << " sm" << endl;
cout << "Volume bowl " << (4 / 3.0)*pi*r*r*r << " sm" << endl;
system("pause");

22 сентября 2015 г.

Необходимо создать двумерный массив. Далее написать функцию, которая заполнит его случайными числами от 30 до 60. Создать еще две функции, которые находят максимальный и минимальный элементы этого двумерного массива

void init(int **a, int line, int column);
void out(int **a, int line, int column);
int max(int **a, int line, int column);
int min(int **a, int line, int column);

void main()
{
setlocale(LC_ALL, "rus");

int size_l, size_c;
do
{
cout << "Введите количество строк:";
cin >> size_l;
cout << "Введите количество столбцов:";
cin >> size_c;
//инициализация двумерного массива
int **mas = new int*[size_l];
for (int i = 0; i < size_l; i++)
mas[i] = new int[size_c];

init(mas, size_l, size_c);//вызов функции заполнения массива
out(mas, size_l, size_c);//вызов функции вывода массива на экран

cout << "Максимальное число в массиве: " << max(mas, size_l, size_c) << "\n";
cout << "Минимальное число в массиве: " << min(mas, size_l, size_c) << "\n";

//удаление двумерного массива
for (int i = 0; i < size_l; i++)
delete[]mas[i];
delete[] mas;
cout << "\nЕсли хотите продолжить, нажмите 1:";
cin >> size_l;
cout << "\n";
} while (size_l==1);
}

void init(int **a, int line, int column)
{
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
a[i][j] = rand() % 30 + 30;
}
}
}

void out(int **a, int line, int column)
{
cout << "\n";
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
cout<<a[i][j]<<" ";
}
cout << "\n";
}
cout << "\n";
}

int max(int **a, int line, int column)
{
int d = a[0][0];
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
if (d < a[i][j])
d = a[i][j];
}
}
return d;
}

int min(int **a, int line, int column)
{
int d = a[0][0];
for (int i = 0; i < line; i++)
{
for (int j = 0; j < column; j++)
{
if (d > a[i][j])
d = a[i][j];
}
}
return d;
}

Произвести, используя указатель на указатель проверку на нуль при делении.

void del(double *x, double *y, double *res);

void main()
{
setlocale(LC_ALL, "Russian");
cout << "Введите число, которое будем делить: ";
double a, b, res;
cin >> a;
cout << "\n";

cout << "Введите число, на которое будем делить: ";
cin >> b;
cout << "\n";

del(&a, &b, &res);

if (b == 0){
return;
}
cout << "Результат - " << res << "\n";
}

void del(double *x, double *y, double *res){
if (*y == 0)
cout << "Нельзя делить на нуль. Повторите попытку!" << "\n";
else
*res = *x / *y;
}

Найти заданную степень числа, пользуясь только указателями.

void st(long int *digit, int *stepen, long int *res)
{
for (int i = *stepen; i > 1; i--)
{
*res *= *digit;
}
}

void main()
{
setlocale(LC_ALL, "Russian");
long int a, res;
int stepen;
do{
cout << "Эта программа считает степень числа с помощью указателей\n";
cout << "Введите число:";
cin >> a;
cout << "Введите степень:";
cin >> stepen;
res = a;
st(&a, &stepen, &res);
cout << "\n" << stepen << " степень числа " << a << " равна " << res << "\n\n";
cout << "Если хотите продолжить, нажмите 1:";
cin >> a;
} while (a == 1);
}

Через указатели на указатели посчитать сумму двух чисел и записать в третье.

void summ(int *x, int *y, int *tmp);

void main()
{
setlocale(LC_ALL, "Russian");
int a, b, res;
do{
cout << "Эта программа считает сумму двух чисел и записивает в третье\n";
cout << "\nВведите первое число:";
cin >> a;
cout << "\nВведите второе число:";
cin >> b;
summ(&a, &b, &res);
cout << "\nСумма равна " << res << ".\n";
cout << "Если хотите продолжить, нажмите 1:";
cin >> a;
} while (a == 1);
}

void summ(int *x, int *y, int *tmp)
{
*tmp= *x + *y;
}

Написать примитивный калькулятор, пользуясь только указателями.

void summ(int *x, int *y, int *tmp);
void razn(int *x, int *y, int *tmp);
void proizv(int *x, int *y, int *tmp);
void delen(int *x, int *y, int *tmp);

void main()
{
setlocale(LC_ALL, "Russian");
int a, b, res;
char dei;
do{
cout << "Этот примитивный калькулятор использует только указатели\n";
cout << "\nВозможно использовать только + - * / \n";
cin >> a >> dei >> b;
cout << "=\n";
switch (dei){
case '+':
summ(&a, &b, &res);
cout << res << "\n";
break;
case '-':
razn(&a, &b, &res);
cout << res << "\n";
break;
case '*':
proizv(&a, &b, &res);
cout << res << "\n";
break;
case '/':
delen(&a, &b, &res);
cout << res << "\n";
break;
default:
cout << "Error!";
}
cout << "Если хотите продолжить, нажмите 1:";
cin >> a;
} while (a == 1);
}

void summ(int *x, int *y, int *tmp)
{
*tmp = *x + *y;
}

void razn(int *x, int *y, int *tmp)
{
*tmp = *x - *y;
}

void proizv(int *x, int *y, int *tmp)
{
*tmp = *x * *y;
}

void delen(int *x, int *y, int *tmp)
{
*tmp = *x / *y;
}

Найти факториал числа, пользуясь только указателями.

void fact(long int *digit, long int *res)
{
for (int i = 1; i <= *digit; i++)
{
*res *= i;
}
}

void main()
{
setlocale(LC_ALL, "Russian");
long int a, res=1;
do{
cout << "Эта программа считает факториал с помощью указателей\n";
cout << "\nВведите число:";
cin >> a;
fact(&a, &res);
cout << "Факториал " << a << " равен " << res << "\n";
cout << "Если хотите продолжить, нажмите 1:";
cin >> a;
} while (a == 1);
}