Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Запишіть програму для обчислення значення виразу вигляду



N0Z0N1Z1N2Z2…Nk-2Zk-2Nk-1, де Ni - ціле однорозрядне число, Zi — один зі знаків арифметичних дій: додавання, віднімання або множення 3 ‹ k ‹ 10.

ЗАУВАЖЕННЯ:

Запропоноване рішення є універсальним для усіх знаків дій у виразі з одноцифровими числами.

//варіант 5 №17

 

//варіант 9 №17

 

#include ‹iostream›

 

#include ‹string›

 

int k;//к ‐ кількість знаків арифметичних дій

 

double N[10]; //масив чисел

 

char Z[10]={'0'}; //масив знаків арифметичних дій

 

void delNZ(int);

 

using namespace std; int main()

{

 

string s;

 

cin ›› s;//введення виразу

 

k=0;

 

N[k]=s[0]‐'0';//перетворюємо першу цифру виразу в число

 

//заповнюємо масив N одноцифровими числами, а масив Z ‐ знаками дій

 

for (int i=1; i‹s.length()‐1; i+=2)

 

{ Z[k]=s[i];

N[k+1]=s[i+1]‐'0'; k++;

}

 

//виконуємо ділення, доки є такі дії,

 

//щоразу замінюючи ділене часткою, та видаляючи дільник і знак дії:

 

//наприклад 1+2*3‐4/2 перетвориться в 1+2*3‐2


 

 

a: for (int i=0; i‹k; i++) if (Z[i]=='/')

{

 

N[i]=N[i]/N[i+1];//заміна діленого

 

delNZ(i);//видалення і+1‐того числа та і‐того знака дії

 

goto a;//повторний перегляд знаків арифметичних дій

 

}

 

//виконуємо множення, доки є такі дії

 

b: for (int i=0; i‹k; i++) if (Z[i]=='*')

{

 

N[i]=N[i]*N[i+1];

 

delNZ(i); goto b;

}

 

//додавання, віднімання

 

for (int i=0; i‹k; i++) switch (Z[i])

{

 

case '+': N[0]+=N[i+1]; break;

 

case '‐': N[0]‐=N[i+1]; break;

 

}

 

cout ‹‹ s‹‹ "=" ‹‹ N[0] ‹‹ endl; system ("pause");

return 0;

 

}

 

void delNZ(int j)//функція видалення цифр та знаків з масивів

 

{

 

for(int i=j; i‹k‐1; i++)

 

{

 

N[i+1]=N[i+2];

 

Z[i]=Z[i+1];


 

 

}

 

k‐‐;//кількість чисел і знаків зменшується

 

}

 

 

ВАРІАНТ 6

Запишіть програму для обчислення суми квадратів від’ємних елементів масиву дійсних чисел. Кількість елементів масиву n (5 ‹ n ‹ 30), числа вводяться з клавіатури.

//варіант 6 №17

 

#include ‹iostream›

 

#include ‹cmath› using namespace std; int main()

{

 

int n;

 

cout ‹‹ "n="; cin ›› n;

double *M = new double [n];

 

double s=0;

 

for(int i=0; i‹n; i++)

 

{

 

cin ›› M[i];

 

if (M[i]‹0)

 

s+= pow(M[i],2);

 

}

 

cout ‹‹ s; system ("pause"); return 0;

}

 

 

ВАРІАНТ 7


Запишіть програму для обчислення суми квадратів додатних елементів масиву дійсних чисел. Кількість елементів масиву n (5 ‹ n ‹ 30), числа вводяться з клавіатури.

//варіант 7 №17

 

#include ‹iostream›

 

#include ‹cmath› using namespace std; int main()

{

 

int n;

 

cout ‹‹ "n="; cin ›› n;

double *M = new double [n];

 

double s=0;

 

for(int i=0; i‹n; i++)

 

{

 

cin ›› M[i];

 

if (M[i]›0)

 

s+= pow(M[i],2);

 

}

 

cout ‹‹ s; system ("pause"); return 0;

}

 

 

ВАРІАНТ 8

Запишіть програму формування та виведення масиву з 20 випадкових чисел (з діапазону від 0 до 1000) та обчислення їхнього середнього значення.

//варіант 8 №17

 

#include ‹iostream›

 

#include ‹ctime› using namespace std; int main()

{

 

srand(time(NULL));//задання параметрів функції rand()


 

 

int M[20];

 

int s=0;

 

for (int i=0; i‹20; i++)

 

{

 

M[i]=rand()%1001; //ініціалізація випадковими цілыми числами в діапазоні від 0 до 1000 cout ‹‹ M[i] ‹‹ " "; //виведення в рядок через пробіл

s+=M[i]; //підрахунок суми

 

}

 

cout ‹‹ double(s)/20 ‹‹ endl;//підрахунок і виведення середнього значення

 

system ("pause"); return 0;

}

 

ВАРІАНТ 9

Запишіть програму для обчислення значення виразу вигляду N0Z0N1Z1N2Z2…Nk-2Zk-2Nk-1, де Ni - ціле однорозрядне число, Oi — один з двох знаків арифметичних дій: множення або ділення 3 ‹ k ‹ 10.

ЗАУВАЖЕННЯ:

Запропоноване рішення є універсальним для усіх знаків дій у виразі з одноцифровими числами.

//варіант 5 №17

 

//варіант 9 №17

 

#include ‹iostream›

 

#include ‹string›

 

int k;//к ‐ кількість знаків арифметичних дій

 

double N[10]; //масив чисел

 

char Z[10]={'0'}; //масив знаків арифметичних дій

 

void delNZ(int);

 

using namespace std; int main()

{

 

string s;

 

cin ›› s;//введення виразу


 

 

k=0;

 

N[k]=s[0]‐'0';//перетворюємо першу цифру виразу в число

 

//заповнюємо масив N одноцифровими числами, а масив Z ‐ знаками дій

 

for (int i=1; i‹s.length()‐1; i+=2)

 

{ Z[k]=s[i];

N[k+1]=s[i+1]‐'0'; k++;

}

 

//виконуємо ділення, доки є такі дії,

 

//щоразу замінюючи ділене часткою, та видаляючи дільник і знак дії:

 

//наприклад 1+2*3‐4/2 перетвориться в 1+2*3‐2 a: for (int i=0; i‹k; i++)

if (Z[i]=='/')

 

{

 

N[i]=N[i]/N[i+1];//заміна діленого

 

delNZ(i);//видалення і+1‐того числа та і‐того знака дії

 

goto a;//повторний перегляд знаків арифметичних дій

 

}

 

//виконуємо множення, доки є такі дії

 

b: for (int i=0; i‹k; i++) if (Z[i]=='*')

{

 

N[i]=N[i]*N[i+1];

 

delNZ(i); goto b;

}

 

//додавання, віднімання

 

for (int i=0; i‹k; i++) switch (Z[i])


 

 

{

 

case '+': N[0]+=N[i+1]; break;

 

case '‐': N[0]‐=N[i+1]; break;

 

}

 

cout ‹‹ s‹‹ "=" ‹‹ N[0] ‹‹ endl; system ("pause");

return 0;

 

}

 

void delNZ(int j)

 

{

 

for(int i=j; i‹k‐1; i++)

 

{

 

N[i+1]=N[i+2];

 

Z[i]=Z[i+1];

 

}

 

k‐‐;//кількість чисел і знаків зменшується

 

}

 

 

ВАРІАНТ 10

Запишіть програму для виведення на екран монітора заданої послідовності з N слів (1≤N≤90), розділених пропусками. Та слів цієї самої послідовності, відсортованих в алфавітному порядку.

ЗАУВАЖЕННЯ:

Не вказано, яким саме чином «задана» ця сама послідовність слів. Вважатимемо, що рядок вводиться з клавіатури (як це було в ДПА

2013)

//варіант 10 №17

 

#include ‹string›

 

#include ‹iostream› using namespace std;

 

 

int main()

 

{

 

string s;

 

getline(cin,s);//читаємо рядок s з пробілами


 

 

string MS[91]={};//MS ‐ масив слів int k=0;//k‐індекс слова в масиві MS for(int i=0; i‹s.length(); i++)

{

 

if (s[i]==' ')

 

{ k++;

continue;//пропускаємо пробіл

 

} MS[k]+=s[i];

}

 

 

// лексикографічне упорядочення масиву за зростанням

 

//вважаючи, що усі символи ‐ латинські і в одному регістрі

 

for (int i=0; i‹=k; i++)

 

for (int j=i+1; j‹=k; j++)

 

{

 

if (MS[j]‹MS[i])

 

swap(MS[j],MS[i]);

 

}

 

//выведення упорядоченого масиву

 

for (int i=0; i‹=k; i++) cout ‹‹ MS[i] ‹‹" ";

 

 

system ("pause"); return 0;

}

 

 

ВАРІАНТ 11

Запишіть програму для виведення назви відповідного знаку зодіаку за введеною датою, яка складається з двох цілих чисел D (день місяця) та M (номер місяця). Відомо, що астрологи ділять рік на 12 періодів і кожному з них ставлять у від- повідність один із знаків зодіаку (відповідно до наведеної таблиці).


Період Знак зодіаку
21.01–18.02 Водолій
19.02–20.03 Риби
21.03–20.04 Овен
21.04–21.05 Тілець
22.05–21.06 Близнюки
22.06–22.07 Рак
23.07–23.08 Лев
24.08–23.09 Діва
24.09–23.10 Терези
24.10 –22.11 Скорпіон
23.11–21.12 Стрілець
22.12–20.01 Козеріг

// задача в11 №17

 

#include ‹iostream›

 

#include ‹string› using namespace std; int main ()

{

setlocale (0,""); string

Z[]={"Водолiй","Риби","Овен","Тiлець","Близнюки","Рак","Лев","Дiва","Терези","Скорпiон","Стрiлець","Козерiг"};

 

int D,M,z; cin ›› D ›› M;

// вважатимемо, що значення D та M введені коректно

 

if ((D›=21 && M==1)||(D‹=18 && M==2)) z=0;

 

else if ((D›=19 && M==2)||(D‹=20 && M==3)) z=1; else if ((D›=21 && M==3)||(D‹=20 && M==4)) z=2;


 

 

else if ((D›=21 && M==4)||(D‹=21 && M==5)) z=3; else if ((D›=22 && M==5)||(D‹=21 && M==6)) z=4; else if ((D›=22 && M==6)||(D‹=22 && M==7)) z=5; else if ((D›=23 && M==7)||(D‹=23 && M==8)) z=6; else if ((D›=24 && M==8)||(D‹=23 && M==9)) z=7; else if ((D›=24 && M==9)||(D‹=23 && M==10)) z=8; else if ((D›=24 && M==10)||(D‹=22 && M==11)) z=9; else if ((D›=23 && M==11)||(D‹=21 && M==12)) z=10; else if ((D›=22 && M==12)||(D‹=20 && M==1)) z=11;

 

 

cout ‹‹ Z[z] ‹‹ endl;

 

system ("pause"); return 0;

}

 

 

ВАРІАНТ 12

Паліндромом називають слово, словосполучення або речення, що однаково читають в обох напрямах (зліва направо та справа наліво). Наприклад, «Пилип», «А роза упала на лапу Азора». Запишіть програму для підрахунку кількості паліндромів, які можна утворити з введеного речення, відкидаючи зайві слова. Виведіть кількість паліндромів і всі утворені паліндроми. Наприклад, речення «А роза упала на лапу Азора»; кількість паліндромів — 7; паліндроми: «А роза упала на лапу Азора», «А роза упала лапу Азора», «А роза Азора», «упала на лапу», «упала лапу», «А на», «А».

ЗАУВАЖЕННЯ:

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.