Показаны сообщения с ярлыком switch. Показать все сообщения
Показаны сообщения с ярлыком switch. Показать все сообщения

24 апреля 2016 г.

Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100. Выполнить циклический сдвиг массива на заданное количество столбцов. Направление сдвига задаёт пользователь.

srand(time(0));

int choice;

int count;

const int length = 8;

const int width = 5;

int A[width][length]{};

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

do {

cout << "Enter a shift direction of the array:" << endl
<< "1 - Left" << endl << "2 - Right" << endl;
cin >> choice;

} while (choice != 1 && choice != 2);

cout << "Enter count:" << endl;

cin >> count;



switch (choice) {

case 1:

for (int k = 0; k < count; k++) {
for (size_t i = 0; i < width; i++) {
int tmp = A[i][0];
for (size_t j = 0; j < length-1; j++)
A[i][j] = A[i][j + 1];
A[i][length-1] = tmp;
}
}
break;

case 2:

for (int k = 0; k < count; k++) {
for (size_t i = 0; i < width; i++) {
int tmp = A[i][length - 1];
for (size_t j = length - 1; j > 0; j--)
A[i][j] = A[i][j - 1];
A[i][0] = tmp;
}
}
break;

}

cout << endl << endl;

cout << "Result:" << endl;

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause");

Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100. Выполнить циклический сдвиг массива на заданное количество строк. Направление сдвига задаёт пользователь.

srand(time(0));

int choice;

int count;

const int length = 8;

const int width = 5;

int A[width][length]{};

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
A[i][j] = rand() % 100;
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

cout << endl << endl;

do {

cout << "Enter a shift direction of the array:" << endl
<< "1 - Up" << endl << "2 - Down" << endl;
cin >> choice;

} while (choice != 1 && choice != 2);

cout << "Enter count:" << endl;

cin >> count;



switch (choice) {

case 1:

for (int k = 0; k < count; k++) {
for (size_t j = 0; j < length; j++) {
int tmp = A[0][j];
for (size_t i = 0; i < width-1; i++)
A[i][j] = A[i+1][j];
A[width-1][j] = tmp;
}
}
break;

case 2:

for (int k = 0; k < count; k++) {
for (size_t j = 0; j < length; j++) {
int tmp = A[width-1][j];
for (size_t i = width - 1; i > 0; i--)
A[i][j] = A[i-1][j];
A[0][j] = tmp;
}
}
break;

}

cout << endl << endl;

cout << "Result:" << endl;

for (size_t i = 0; i < width; i++) {

for (size_t j = 0; j < length; j++) {
cout.width(3);
cout << A[i][j];
}
cout << endl;

}

system("pause")

Программа находит максимальное число в определённой области в двумерном массиве.

void main() {


srand(time(NULL));
setlocale(LC_ALL, "rus");

const int q = 6;
int A[q][q];
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
A[i][j] = rand() % 100;
cout << A[i][j] << "\t";
}
cout << "\n\n";
}
cout << "\n\n";
char choice;
do
{
int max = A[0][0];
cout << "Программа находит максимальное число в заданной области" << endl;
cout << "1-*** 2-*.. 3-*** 4-..." << endl
<< " .** **. .*. .*." << endl
<< " ..* *** ... ***" << endl << endl
<< "5-*** 6-*.* 7-*.. 8-..*" << endl
<< " .*. *** **. .**" << endl
<< " *** *.* *.. ..*" << endl << endl
<< "9-*** 0-..*" << endl
<< " **. .**" << endl
<< " *.. ***" << endl << endl
<< "I(i) - Инициализация нового массива" << endl;
cout << "Сделайте свой выбор:";
cin >> choice;
switch (choice) {
case '1':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if ( j >= i)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j >= i)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '2':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j <= i)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '3':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j >= i&&j <= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '4':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i&&j >= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max < A[i][j] && j <= i&&j >= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '5':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i&&j >= q - i - 1 || j >= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if ((max<A[i][j] && j <= i&&j >= q - i - 1) || (j >= i&&j <= q - i - 1 && max<A[i][j]))
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '6':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= i&&j >= q - i - 1 || j <= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if ((max<A[i][j] && j >= i&&j >= q - i - 1) || (j <= i&&j <= q - i - 1 && max<A[i][j]))
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '7':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= i&&j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j <= i&&j <= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '8':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= i&&j >= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j >= i&&j >= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '9':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j <= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j <= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case '0':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (j >= q - i - 1)
cout << A[i][j] << "\t";
else
cout << ".\t";
}
cout << "\n\n";
}
cout << "\n\n";
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
if (max<A[i][j] && j >= q - i - 1)
max = A[i][j];
}
}
cout << "Максимальное число: " << max << endl;
break;
case 'I':
case 'i':
for (int i = 0; i<q; i++) {
for (int j = 0; j<q; j++) {
A[i][j] = rand() % 100;
cout << A[i][j] << "\t";
}
cout << "\n\n";
}
cout << "\n\n";
break;
}
cout << "Если хотите продолжить, нажмите C: ";
cin >> choice;
} while (choice == 'C'|| choice == 'c');

system("pause");
}

26 января 2016 г.

К введенному числу(от 0 до 1000) приписать слово «рублей» в правильном падеже

setlocale(0, "rus");

int digit;

cout << "Enter rub:";

cin >> digit;

int tmp = digit % 10;

if (digit % 100 > 9 && digit % 100 < 20)

{

cout<<digit<< " рублей";

}

else

{

switch (tmp)
{
case 1: cout << digit << " рубль"; break;
case 2:
case 3:
case 4: cout << digit << " рубля"; break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: cout << digit << " рублей"; break;
default: cout << ""; break;
}

}

cout << endl;

system("pause");

К введенному числу (от 0 до 99) приписать слово «копеек» в правильном падеже

setlocale(0, "rus");

int digit;

cout << "Enter kop:";

cin >> digit;

int tmp = digit % 10;

if (digit % 100 > 9 && digit % 100 < 20)

{

cout << digit << " копеек";

}

else

{

switch (tmp)
{
case 1: cout << digit << " копейка"; break;
case 2:
case 3:
case 4: cout << digit << " копейки"; break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: cout << digit << " копеек"; break;
default: cout << ""; break;
}

}

cout << endl;

system("pause");

Пользователь вводит число, программа должна написать это число текстом. Например пользователь ввел 123, программа показывает на экран «сто двадцать три»

setlocale(0, "rus");
int digit;
cout << "Enter digit:";
cin >> digit;
int tmp = digit / 1000;
switch (tmp)
{
case 1: cout << "тысяча "; break;
case 2: cout << "две тысячи "; break;
case 3: cout << "три тысячи "; break;
case 4: cout << "четыре тысячи "; break;
case 5: cout << "пять тысяч "; break;
case 6: cout << "шесть тысяч "; break;
case 7: cout << "семь тысяч "; break;
case 8: cout << "восемь тысяч "; break;
case 9: cout << "девять тысяч "; break;
default: cout << ""; break;
}
tmp = (digit / 100) % 10;
switch (tmp)
{
case 1: cout << "сто "; break;
case 2: cout << "двести "; break;
case 3: cout << "триста "; break;
case 4: cout << "четыреста "; break;
case 5: cout << "пятьсот "; break;
case 6: cout << "шестьсот "; break;
case 7: cout << "семьсот "; break;
case 8: cout << "восемьсот "; break;
case 9: cout << "девятьсот "; break;
default: cout << ""; break;
}
tmp = digit % 100;
if (tmp > 9 && tmp < 20)
{
switch (tmp)
{
case 10: cout << "десять "; break;
case 11: cout << "одиннадцать "; break;
case 12: cout << "двенадцать "; break;
case 13: cout << "тринадцать "; break;
case 14: cout << "четырнадцать "; break;
case 15: cout << "пятнадцать "; break;
case 16: cout << "шестнадцать "; break;
case 17: cout << "семнадцать "; break;
case 18: cout << "восемнадцать "; break;
case 19: cout << "девятнадцать "; break;
default: cout << ""; break;
}
}
else
{
int z = tmp / 10;
switch (z)
{
case 2: cout << "двадцать "; break;
case 3: cout << "тридцать "; break;
case 4: cout << "сорок "; break;
case 5: cout << "пятьдесят "; break;
case 6: cout << "шестьдесят "; break;
case 7: cout << "семьдесят "; break;
case 8: cout << "восемьдесят "; break;
case 9: cout << "девяносто "; break;
default: cout << ""; break;
}
tmp %= 10;
switch (tmp)
{
case 1: cout << "один"; break;
case 2: cout << "два"; break;
case 3: cout << "три"; break;
case 4: cout << "четые"; break;
case 5: cout << "пять"; break;
case 6: cout << "шесть"; break;
case 7: cout << "семь"; break;
case 8: cout << "восемь"; break;
case 9: cout << "девять"; break;
default: cout << ""; break;
}
}
cout << endl;
system("pause")

Вводится время (часы и минуты) – программа выводит приветствие, соответствующее введённому времени (например, ввели 15 часов 6 минут – выводится приветствие «добрый день»)

setlocale(0, "rus");

int hours, min;

cout << "Добрый день. Введите время(ч. и мин.):" << endl;

cin >> hours >> min;

hours = hours + min / 60;



int tmp = hours % 10;

if (hours % 100 > 9 && hours % 100 < 20)

{

cout << hours << " часов ";

}

else

{

switch (tmp)
{
case 1: cout << hours << " час "; break;
case 2:
case 3:
case 4: cout << hours << " часа "; break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: cout << hours << " часов "; break;
default: cout << ""; break;
}

}




min %= 60;

tmp = min % 10;

if (min % 100 > 9 && min % 100 < 20)

{

cout << min << " минут";

}

else

{

switch (tmp)
{
case 1: cout << min << " минута"; break;
case 2:
case 3:
case 4: cout << min << " минуты"; break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: cout << min << " минут"; break;
default: cout << ""; break;
}

}




cout << endl;

system("pause");

К введенному числу (от 0 до 10…0.99) приписать слова «рублей» и «копеек» в правильном падеже

setlocale(0, "rus");

int digit, num;

cout << "Enter summ:";

cin >> num;

digit = num / 100;

int tmp = digit % 10;

if (digit % 100 > 9 && digit % 100 < 20)

{

cout<<digit<< " рублей ";

}

else

{

switch (tmp)
{
case 1: cout << digit << " рубль "; break;
case 2:
case 3:
case 4: cout << digit << " рубля "; break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: cout << digit << " рублей "; break;
default: cout << ""; break;
}

}




digit = num % 100;

tmp = digit % 10;

if (digit % 100 > 9 && digit % 100 < 20)

{

cout << digit << " копеек";

}

else

{

switch (tmp)
{
case 1: cout << digit << " копейка"; break;
case 2:
case 3:
case 4: cout << digit << " копейки"; break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: cout << digit << " копеек"; break;
default: cout << ""; break;
}

}

cout << endl;

system("pause");

Создать программу конвертер. Пользователю отображается меню из нескольких пунктов: //Конвертер: //1. грн – евро //2. евро – доллары //3. км – м //4. м - км //5. кг – г //6. г - кг

setlocale(0,"rus");

int answer = 1;

double digit;

const double uah_eur = 29.12;

const double eur_usd = 0.91;




while (answer)

{

cout << R"X(
Конвертор единиц
1.грн – евро
2.евро – доллары
3.км – м
4.м - км
5.кг – г
6.г - кг
)X" << endl;
cin >> answer;
switch (answer)
{
case 1:
cout << "Введите количество UAH:";
cin >> digit;
cout << digit / uah_eur << " EUR" << endl;
break;
case 2:
cout<< "Введите количество EUR:";
cin >> digit;
cout << digit / eur_usd << " USD" << endl;
break;
case 3:
cout << "Введите количество km:";
cin >> digit;
cout << digit * 1000 << " m" << endl;
break;
case 4:
cout << "Введите количество m:";
cin >> digit;
cout << digit / 1000 << " km" << endl;
break;
case 5:
cout << "Введите количество kg:";
cin >> digit;
cout << digit * 1000 << " g" << endl;
break;
case 6:
cout << "Введите количество g:";
cin >> digit;
cout << digit / 1000 << " kg" << endl;
break;
case 0:
break;
}
cout << "Чтобы выйти из программы, нажмите 0:";
cin >> answer;
system("cls");

}

system("pause");

25 января 2016 г.

Написать программу, которая предлагает пользователю ввести номер дня недели и в ответ показывает название этого дня. Решить с использованием if и switch

int a;
cout << "Enter number of day:";
cin >> a;
switch (a) {
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
case 3:
cout << "Wednesday" << endl;
break;
case 4:
cout << "Thursday" << endl;
break;
case 5:
cout << "Friday" << endl;
break;
case 6:
cout << "Saturday" << endl;
break;
case 7:
cout << "Sunday" << endl;
break;
default:
cout << "Error!" << endl;
break;
}
system("pause");

Написать программу перевода денежной суммы из гривен в евро, доллары или российские рубли. Решить с использованием if и switch.

double uah;
int answer;
const double eur = 28.05;
const double usd = 26.74;
const double rub = 0.33;
cout << "-------Menu-------" << endl;
cout << "1 - EUR" << endl;
cout << "2 - USD" << endl;
cout << "3 - RUB" << endl;
cout << "0 - Exit" << endl;
cin >> answer;
switch (answer)
{
case 1:
cout << "Enter UAH:";
cin >> uah;
cout << uah / eur << " EUR" << endl;
break;
case 2:
cout << "Enter UAH:";
cin >> uah;
cout << uah / usd << " USD" << endl;
break;
case 3:
cout << "Enter UAH:";
cin >> uah;
cout << uah / rub << " RUB" << endl;
break;
case 0:
exit(0);
break;
default:
cout << "Error!" << endl;
break;
}
system("pause");

Ввести дату и время (каждая компонента вводится отдельно) и проверить корректность введённых значений.

int month,day,hours,min;
cout << "Enter month and days:" << endl;
cin >> month >> day;
if (month > 0 && month <= 12)
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout << ((day <= 31) ? "Correct date!" : "Error! Incorrect date!") << endl;
break;
case 2:
cout << ((day <= 29) ? "Correct date!" : "Error! Incorrect date!") << endl;
break;
case 4:
case 6:
case 9:
case 11:
cout << ((day <= 30) ? "Correct date!" : "Error! Incorrect date!") << endl;
break;
}
}
else
cout << "Error! Incorrect month!" << endl;
cout << "Enter time (hours and minutes)" << endl;
cin >> hours >> min;
cout << ((hours> 0 && hours <= 12) ? "Correct hours!" : "Error! Incorrect hours") << endl;
cout << ((min > 0 && month <= 60) ? "Correct minutes!" : "Error! Incorrect minutes") << endl;
system("pause");

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

int age, answer;
const int men = 65;
const int woman = 60;
cout << "---Menu---" << endl;
cout << "1 - Men" << endl;
cout << "2 - Woman" << endl;
cin >> answer;
switch (answer)
{
case 1:
cout << "Enter age:";
cin >> age;
cout << ((age > men) ? "It's time to retire" : "Early retirement") << endl;
break;
case 2:
cout << "Enter age:";
cin >> age;
cout << ((age > woman) ? "It's time to retire" : "Early retirement") << endl;
break;
default:
cout << "Error!" << endl;
break;
}
system("pause");

Ввести порядковый номер карты(от 0 до 35) и определить масть и достоинство карты.

int card;
cout << "Enter number of card:";
cin >> card;
if (card >= 0 && card <= 8)
{
switch (card)
{
case 0:
case 1:
case 2:
case 3:
case 4:
cout << card + 6 << " " << char(3) << endl;
break;
case 5:
cout << "J " << char(3) << endl;
break;
case 6:
cout << "Q " << char(3) << endl;
break;
case 7:
cout << "K " << char(3) << endl;
break;
case 8:
cout << "A " << char(3) << endl;
break;
}
}
else if (card >= 9 && card <= 17)
{
switch (card)
{
case 9:
case 10:
case 11:
case 12:
case 13:
cout << card - 3 << " " << char(4) << endl;
break;
case 14:
cout << "J " << char(4) << endl;
break;
case 15:
cout << "Q " << char(4) << endl;
break;
case 16:
cout << "K " << char(4) << endl;
break;
case 17:
cout << "A " << char(4) << endl;
break;
}
}
else if (card >= 18 && card <= 26)
{
switch (card)
{
case 18:
case 19:
case 20:
case 21:
case 22:
cout << card - 3 << " " << char(5) << endl;
break;
case 23:
cout << "J " << char(5) << endl;
break;
case 24:
cout << "Q " << char(5) << endl;
break;
case 25:
cout << "K " << char(5) << endl;
break;
case 26:
cout << "A " << char(5) << endl;
break;
}
}
else if (card >= 27 && card <= 35)
{
switch (card)
{
case 27:
case 28:
case 29:
case 30:
case 31:
cout << card - 3 << " " << char(6) << endl;
break;
case 32:
cout << "J " << char(6) << endl;
break;
case 33:
cout << "Q " << char(6) << endl;
break;
case 34:
cout << "K " << char(6) << endl;
break;
case 35:
cout << "A " << char(6) << endl;
break;
}
}
system("pause");

Ввести любую дату (день, месяц, год вводятся по отдельности) и вывести следующую за ней дату.

int month,day,year;
cout << "Enter date:" << endl;
cin >> year >> month >> day;
bool correct=false;
if (month > 0 && month <= 12)
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day <= 31)
correct=true;
break;
case 2:
if ((day <= 29 && year % 4 == 0) || (day <= 28 && year % 4 != 0))
correct = true;
break;
case 4:
case 6:
case 9:
case 11:
if (day <= 30)
correct = true;
break;

default:
break;
}
}

if (!correct)
cout << "Incorrect date!" << endl;
else
{
if (day == 31 && month == 12)
{
day = 1;
month = 1;
year++;
}
else if (
(day == 31 && (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10))
|| (day == 30 && (month == 4 || month == 6 || month == 9 || month == 11))
|| (month == 2 && (day == 28 || day == 29))
)
{
month++;
day = 1;
}
else
day++;

cout << day << " day " << month << " month " << year << " year" << endl;
}

Программа расчета скидок. Вводится количество товара и стоимость за штуку. //Определить сумму скидки, если при суммарной стоимости 100гр скидка составляет 3%, 200 – 5%, 300 и более – 7%. //Решить с использованием if и switch

double price, quantity, summ, sale;
cout << "Enter price:";
cin >> price;
cout << "Enter quantity:";
cin >> quantity;
summ = price*quantity;
if (summ < 100)
cout << "Not sale" << endl;
else if (summ >= 100 && summ < 200)
cout << "3% sale" << endl;
else if (summ >= 200 && summ <= 300)
cout << "5% sale" << endl;
else if (summ >= 300)
cout << "7% sale" << endl;
system("pause");

калькулятор

double a, b, res;
int answer;
cout << "Welcome. Calc v1" << endl;
cout << "1 - (+)" << endl;
cout << "2 - (-)" << endl;
cout << "3 - (*)" << endl;
cout << "4 - (/)" << endl;
cout << "0 - (exit)" << endl;
cin >> answer;

switch (answer)
{
case 0:
exit(0);
break;
case 1:
cout << "Enter first number" << endl;
cin >> a;
cout << "Enter second number" << endl;
cin >> b;
res = a + b;
cout << "Summ = " << res << endl;
break;
case 2:
cout << "Enter first number" << endl;
cin >> a;
cout << "Enter second number" << endl;
cin >> b;
res = a - b;
cout << "Sub = " << res << endl;
break;
case 3:
cout << "Enter first number" << endl;
cin >> a;
cout << "Enter second number" << endl;
cin >> b;
res = a * b;
cout << "Mult = " << res << endl;
break;
case 4:
cout << "Enter first number" << endl;
cin >> a;
cout << "Enter second number" << endl;
cin >> b;
if (b != 0)
{
res = a / b;
cout << "Div = " << res << endl;
}
else
cout << "ERROR!!! Division by zero" << endl;
break;
default:
cout << "Enter correct answer" << endl;
break;
}
system("pause");

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

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

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;
}

17 июня 2015 г.

Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать: 1) Элементы обоих массивов; 2) Общие элементы двух массивов; 3) Элементы массива A, которые не включаются в B; 4) Элементы массива B, которые не включаются в A; 5) Элементы массивов A и B, которые не являются общими для них (то есть объединение результатов двух предыдущих вариантов).

void init(int *a, int size);
void out(int *a, int size);
void out_c(int *a, int size);

void main()
{
setlocale(LC_ALL, "Russian");
int digit;

const int size_a = 15;
int a[size_a];
int *pa;
pa = &a[0];
//^ первый массив с указателем
const int size_b = 15;
int b[size_b];
int *pb;
pb = &b[0];
//^ второй массив с указателем
const int size_c = size_a + size_b;
int c[size_c];
int *pc;
pc = &c[0];
//^ третий массив с указателем
int tmp = 0;
do
{
init(a, size_a);
out(a, size_a);
Sleep(1000);//необходимая пауза для инициализации второго массива (необходимо подключить библиотеку windows.h)
init(b, size_b);
out(b, size_b);

cout << "Эта программа создаёт третий массив, в котором собирает:\n";
cout << "1 - Элементы обоих массивов;\n";
cout << "2 - Общие элементы двух массивов;\n";
cout << "3 - Элементы массива A, которые не включаются в B;\n";
cout << "4 - Элементы массива B, которые не включаются в A;\n";
cout << "5 - Элементы массивов A и B, коотрые не являются общими для них(то есть объединение результатов двух предыдущих вариантов)\n\n";
cin >> digit;
switch (digit){
case 1:
for (pc = c, pa = a; pc < c + size_a + size_b; pc++, pa++)
*pc = *pa;
for (pc = c + size_a, pb = b; pc < c + size_a + size_b; pc++, pb++)
*pc = *pb;
cout << "\nРезультат:\n\n";
out(c, size_c);
break;
case 2:
pc = c;
for (pa = a; pa < a + size_a; pa++){
for (pb = b; pb <b + size_b; pb++){
if (*pa == *pb){
*pc = *pa;
pc++;
}
}
}
cout << "\nРезультат:\n\n";
out_c(c, size_c);
break;
case 3:
pc = c;
tmp = 0;
for (pa = a; pa < a + size_a; pa++){
for (pb = b; pb <b + size_b; pb++){
if (*pa == *pb)
tmp++;
}
if (tmp == 0){
*pc = *pa;
pc++;
}
tmp = 0;
}
cout << "\nРезультат:\n\n";
out_c(c, size_c);
break;
case 4:
pc = c;
tmp = 0;
for (pb = b; pb <b + size_b; pb++){
for (pa = a; pa < a + size_a; pa++){
if (*pb == *pa)
tmp++;
}
if (tmp == 0){
*pc = *pb;
pc++;
}
tmp = 0;
}
cout << "\nРезультат:\n\n";
out_c(c, size_c);
break;
case 5:
pc = c;
tmp = 0;
for (pa = a; pa < a + size_a; pa++){
for (pb = b; pb <b + size_b; pb++){
if (*pa == *pb)
tmp++;
}
if (tmp == 0){
*pc = *pa;
pc++;
}
tmp = 0;
}
for (pb = b; pb <b + size_b; pb++){
for (pa = a; pa < a + size_a; pa++){
if (*pb == *pa)
tmp++;
}
if (tmp == 0){
*pc = *pb;
pc++;
}
tmp = 0;
}
cout << "\nРезультат:\n\n";
out_c(c, size_c);
break;
}
cout << "\nЕсли хотите продолжить, нажмите 1:";
cin >> digit;
} while (digit == 1);
}

void init(int *a, int size)
{
srand(time(NULL));
for (int i = 0; i < size; a++, i++)
*a = rand() % 20 + 1;
}

void out(int *a, int size)
{
cout << "\n";
for (int i = 0; i < size; a++, i++)
cout << *a << " ";
cout << "\n";
}

void out_c(int *a, int size)
{
cout << "\n";
for (int i = 0; i < size; a++, i++)
if (*a>0) cout << *a << " ";
cout << "\n";
}

12 мая 2015 г.

Дан массив из 20 целых чисел со значениями от 1 до 20. Необходимо: - написать функцию, разбрасывающую элементы массива произвольным образом; - создать случайное число из того же диапазона и найти позицию этого случайного числа в массиве; - отсортировать элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы массива, находящиеся справа от найденной позиции по возрастанию.

void init(int A[], int size);
void out(int A[], int size);
void random(int A[], int size);
int search(int A[], int size, int digit);
void sort(int A[], int size, int key);

void main()
{
setlocale(LC_ALL, "Russian");
const int s = 20;
int A[s];
int a, digit,tmp;

do
{
init(A, s);
out(A, s);
cout << "\nЭта программа принимает массив из 20 целых чисел со значениями от 1 до 20:\n";
cout << "1 - разбрасывает элементы массива произвольным образом.\n";
cout << "2 - Пользователь вводит случайное число из того же диапазона, программа находит позицию этого числа в массиве\n";
cout << " и сортирует элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы массива,\n";
cout << " находящиеся справа от найденной позиции по возрастанию\n";
cout << "Введите ваш выбор: ";
cin >> a;
switch (a)
{
case 1:
random(A, s);
out(A, s);
case 2:
cout << "Введите число из диапазона от 1 до 20:";
cin>>digit;
tmp = search(A, s, digit);
if (tmp != -1)
{
cout << "Число " << digit << " есть в массиве под номером " << tmp << "\n";
sort(A, s, tmp);
out(A, s);
}
else
cout << "Число " << digit << " отсутствует в массиве\n";
}
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

void init(int A[], int size)
{
srand(time(NULL));
for (int i = 0; i < size; i++)
A[i] = rand() % 20+1;
}

void out(int A[], int size)
{
cout << "\n";
for (int i = 0; i < size; i++)
cout << A[i] << " ";
cout << "\n";
}

void random(int A[], int size)
{
int x, i, j;

for (i = 0; i<size; i++)
{
x = A[i];
for (j = i - 1; j >= 0 && A[j] != x && A[j]!=A[i]; j--)
A[j + 1] = A[j];
A[j + 1] = x;
}
}

int search(int A[], int size, int digit)
{
for (int i = 0; i<size; i++)
if (A[i] == digit)
return i;
return -1;
}

void sort(int A[], int size, int key)
{
int x, i, j;
for (i = 0; i<key; i++)
{
x = A[i];
for (j = i - 1; j >= 0 && A[j]<x; j--)
A[j + 1] = A[j];
A[j + 1] = x;
}
for (i = key+1; i<size; i++)
{
x = A[i];
for (j = i - 1; j >= key+1 && A[j]>x; j--)
A[j + 1] = A[j];
A[j + 1] = x;
}
}