24 апреля 2015 г.

Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих участников.

void bros(int kubik);
int res();

void main()
{
char brosok;
do
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));

cout <<"Привет! Сыграем в кубики? Правила очень простые: ";
cout <<"\nПобеждает тот, у кого сумма по итогам пяти бросков больше!";
cout <<"\nПоехали...\n\n";


int total_chel=0;
int total_komp=0;

do
{
cout <<"Разыграем очередность бросков? Нажми * для броска\n";
cin >> brosok;
}
while (brosok!='*');

int res_chel, res_komp;
do
{
res_chel=res();
cout <<"Ваш результат: "<<res_chel<<"\n";
res_komp=res();
cout <<"\nМой результат: "<<res_komp<<"\n";
}
while (res_chel==res_komp);

if (res_chel>res_komp)
{
cout <<"\nВы начинаете первым :(\n";
for (int i=1; i<=5; i++)
{
do
{
cout <<"Нажми * для броска\n";
cin >> brosok;
}
while (brosok!='*');
cout<<"Вы:\n";
total_chel+=res();
cout<<"Я:\n";
total_komp+=res();
cout<<"Следующий ход:\n";
}
cout <<"Ваш общий результат (сумма очков за 5 бросков): "<<total_chel<<"\n";
cout <<"\nМой общий результат (сумма очков за 5 бросков): "<<total_komp<<"\n";
}
else
{
cout <<"\nЯ начинаю первым :)\n";
for (int i=1; i<=5; i++)
{
cout<<"Я:\n";
total_komp+=res();
do
{
cout <<"Нажми * для броска\n";
cin >> brosok;
}
while (brosok!='*');
cout<<"Вы:\n";
total_chel+=res();
cout<<"Следующий ход:\n";
}
cout <<"Ваш общий результат (сумма очков за 5 бросков): "<<total_chel<<"\n";
cout <<"\nМой общий результат (сумма очков за 5 бросков): "<<total_komp<<"\n";
}

if (total_chel==total_komp)
{
cout <<"\n\nНИЧЬЯ!\n\n";
}
else
{
if (total_chel>total_komp)
{
cout <<"\n\nВы выиграли!\n\n";
}
if(total_chel<total_komp)
{
cout <<"\n\nЯ выиграл! Я же всё-таки умнее тебя\n\n";
}
}
cout<<"\nЕсли хотите продолжить, нажмите *: ";
cin>>brosok;
}
while(brosok=='*');
}

void bros(int kubik)
{
switch (kubik)
{
case 1:
cout <<"***********\n";
cout <<"*                  *\n";
cout <<"*                  *\n";
cout <<"*        *        *\n";
cout <<"*                  *\n";
cout <<"*                  *\n";
cout <<"***********\n";
break;
case 2:
cout <<"***********\n";
cout <<"*                  *\n";
cout <<"*        *        *\n";
cout <<"*                  *\n";
cout <<"*        *        *\n";
cout <<"*                  *\n";
cout <<"***********\n";
break;
case 3:
cout <<"***********\n";
cout <<"*                  *\n";
cout <<"*    *            *\n";
cout <<"*        *        *\n";
cout <<"*            *    *\n";
cout <<"*                  *\n";
cout <<"***********\n";
break;
case 4:
cout <<"***********\n";
cout <<"*                  *\n";
cout <<"*    *      *    *\n";
cout <<"*                  *\n";
cout <<"*    *      *    *\n";
cout <<"*                  *\n";
cout <<"***********\n";
break;
case 5:
cout <<"***********\n";
cout <<"*                  *\n";
cout <<"*    *      *    *\n";
cout <<"*        *        *\n";
cout <<"*    *      *    *\n";
cout <<"*                  *\n";
cout <<"***********\n";
break;
case 6:
cout <<"***********\n";
cout <<"*                  *\n";
cout <<"*    *      *    *\n";
cout <<"*    *      *    *\n";
cout <<"*    *      *    *\n";
cout <<"*                  *\n";
cout <<"***********\n";
break;
}
}
int res()
{
int kubik_1=rand()%6+1;
bros(kubik_1);
int kubik_2=rand()%6+1;
bros(kubik_2);
int rezult;
rezult=kubik_1+kubik_2;
cout <<"Результат: "<<rezult<<"\n\n";
return rezult;
}

Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36). Например, при переводе числа 27 в систему счисления 16 должно получиться 1B; 13 в 5-ю - 23; 35 в 18-ю - 1H

void sys(int digit,int syst)
{
int i=0,A[50];
for(;digit>0;i++)
{
A[i]=digit%syst;
digit/=syst;
}
for(int j=i-1;j>=0;j--)
{
if(A[j]<10)
cout<<A[j];
else
cout<<char(A[j]-10+'A');
}
}

void main()
{
setlocale(LC_ALL, "Russian");
int digit;
do
{
cout<<"Эта программа переводит число в любую систему счисления.\nПожалуйста введите число: ";
cin>>digit;
cout<<"\nВведите систему счисления: ";
int syst;
cin>>syst;
sys(digit,syst);
cout<<"\nЕсли хотите продолжить, нажмите 1: ";
cin>>digit;
}
while (digit==1);
}

23 апреля 2015 г.

написать функцию, которая возвращает факториал числа

double fact(int a)
{
int res = 1;
for (int i = 1; i <= a; i++)
{
res *= i;
}
return res;
}

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

int z;
do
{
cout << "Эта программа считает факториал числа.\nПожалуйста введите число: ";
cin >> z;
cout << "\nФакториал числа " <<z<<" равен "<< fact(z) << "\n";
cout << "Если хотите продолжить, нажмите 1\n";
cin >> z;
} while (z == 1);
}

Написать функцию, которая рисует прямоугольник из *, ширина и высота передаются в параметрах функции

void rect(int a,int b);

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

int length,width;
do
{
cout << "Эта программа выводит на экран прямоугольник.\nПожалуйста введите длину прямоугольника: ";
cin >> length;
cout << "\nПожалуйста введите ширину прямоугольника: ";
cin >> width;
rect(length, width);
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> length;
} while (length == 1);
}

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

Написать функцию, которая принимает массив чисел, и возвращает максимальное число из массива

void init(int A[], int size);
void out(int A[], int size);
int max(int A[], int size);

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

const int s=20;
int arr[s];
int a;
do
{
cout << "Эта программа принимает массив чисел, и выводит его максимальное значение.\n";
init(arr, s);
out(arr, s);
cout<<"\nМаксимальное значение в массиве - "<<max(arr, s);
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() % 100;
}
}

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

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

Написать функцию, которая принимает число, и возвращает истину, если число простое или ложь - если число сложное

bool prost(int a);

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

int digit;
do
{
cout << "Эта программа проверяет число - простое оно или сложное.\nПожалуйста введите число: ";
cin >> digit;
if (prost(digit) == 1)
cout << "\nЧисло простое\n";
else
cout << "\nЧисло сложное\n";
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> digit;
} while (digit == 1);
}

bool prost(int a)
{
for (int i = 2; i <= a; i++)
{
if (a%i == 0)
{
if (a != i)
{
return false;
}
return true;
}
}
}

Написать функцию, которая выводит все простые числа от 1 до 1000

void prost(int a);

void main()
{
int a = 1000;
prost(a);
}

void prost(int a)
{
for (int i = 1; i <= a; i++)
{
for (int j = 2; j <= a; j++)
{
if (i%j == 0)
{
if (i != j)
break;
cout << i << "\n";
break;
}
}
}
}

Написать функцию, которая принимает число и возвращает количество цифр в этом числе

int dig(int digit);

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

int a;
do
{
cout << "Эта программа показывает количество цифр в числе.\nПожалуйста введите число: ";
cin >> a;
cout << "\nКоличество цифр в числе - " << dig(a) << "\n";
cout << "Если хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

int dig(int digit)
{
int res = 0;
while(digit > 0)
{
res++;
digit /= 10;
}
return res;
}

Написать функцию, которая принимает число, и возвращает число с перевёрнутым порядком чисел

int perev(int);

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

int a;
do
{
cout << "Эта программа переворачивает число наоборот.\nПожалуйста введите число: ";
cin >> a;
cout << "\nПеревёрнутое число - " << perev(a) << "\n";
cout << "Если хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

int perev(int digit)
{
int res = 0;
for (;;)
{
if (digit > 0)
{
res = digit % 10 + res * 10;
digit /= 10;
}
else
break;
}
return res;
}

Написать функцию,которая принимает число и выводит на экран цифры этого числа через пробел без рекурсии

int prob(int digit);

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

int a;
do
{
cout << "Эта программа принимает число и выводит на экран цифры этого числа через пробел.\nПожалуйста введите число: ";
cin >> a;
int b = prob(a);
while (b > 0)
{
cout << a / b << " ";
a %= b;
b /= 10;
}
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

int prob(int digit)
{
int tmp = -1;
while (digit > 0)//цикл считает количество цифр
{
tmp++;
digit /= 10;
}
int res=1;
while (tmp>0)//цикл считает количество десятков
{
res *= 10;
tmp--;
}
return res;
}

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

void prob(int);

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

int a;
do
{
cout << "Эта программа принимает число и выводит на экран цифры этого числа через пробел.\nПожалуйста введите число: ";
cin >> a;
prob(a);
cout << "\nЕсли хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

void prob(int digit)
{
if (digit == 0)
return;
int res = digit % 10;
digit /= 10;
prob(digit);

cout << res <<" ";
}

Создать массив из 100 элементов в диапазоне от 0 до 100. Написать функцию, которая вычислить сумму всех элементов масссива, значения которых выше, чем среднее арифметическое всех элементов массива

 setlocale(LC_ALL, "Russian");
void init(int A[], int size);
void out(int A[], int size);
int summ_sr(int A[], int size);

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

const int s = 100;
int arr[s];
int a;
do
{
cout << "Эта программа принимает массив чисел, и выводит сумму всех элементов масссива,\n"
<<"значения которых выше, чем среднее арифметическое всех элементов массива.\n";
init(arr, s);
out(arr, s);
cout << "\nСумма равна - " << summ_sr(arr, s);
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() % 100;
}
}

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

int summ_sr(int A[], int size)
{
int sr = 0;
for (int i = 0; i < size; i++)
{
sr += A[i];
}
sr /= size;
int summ = 0;
for (int i = 0; i < size; i++)
{
if (A[i]>sr)
{
summ += A[i];
}
}
return summ;
}

Написать функцию, которая возводит число в степень

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

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

int a,b;
do
{
cout << "Эта программа возводит число в степень.\nПожалуйста введите число:\n";
cin >> a;
cout << "Введите степень, в которую нужно возвести число:\n";
cin >> b;
cout << "Равно " << st(a,b) << "\n";
cout << "Если хотите продолжить, нажмите 1\n";
cin >> a;
} while (a == 1);
}

Написать функцию, которая делает произведение трёх чисел

int proizv(int a, int b,int c)
{
int res = a*b*c;
return res;
}

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

int z, y, x;
do
{
cout << "Эта программа считает произведение трёх чисел.\nПожалуйста введите три числа:\n";
cin >> z >> y >> x;
cout << "Произведение введённых трёх чисел равно " << proizv(z, y, x) << "\n";
cout << "Если хотите продолжить, нажмите 1\n";
cin >> z;
} while (z == 1);
}

21 апреля 2015 г.

Дана квадратная матрица порядка n (n строк, n столбцов). Найти наибольшее из значений элементов, расположенных в тёмно-синих частях матриц.

 //a)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=i)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//б)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j!=i+1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//в)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=i&&j<=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//г)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j<=i&&j>=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//д)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
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<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//е)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
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<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//ж)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j<=i&&j<=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//з)
int max=0;
do
{
const int q=7;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=i&&j>=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//и)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j<=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

//к)
int max=0;
do
{
const int q=6;
int A[q][q];
srand(time(NULL));

for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
A[i][j]=rand()%100;
cout<<A[i][j]<<"\t";
if(max<A[i][j]&&j>=q-i-1)
max=A[i][j];
}
cout<<"\n\n";
}
cout<<"\n\n";
cout<<"Максимальное число: "<<max<<"\n"
<<"Если хотите продолжить, нажмите 1: ";
cin>>max;
}
while(max==1);

Дан двухмерный массив размерностью 3X4. Необходимо найти колличество элементов значение которых равно нулю.

setlocale(LC_ALL, "Russian");
const int row=3;
const int col=4;
int A[row][col];
srand(time(NULL));
int summ=0;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
A[i][j]=rand()%10;
cout<<A[i][j]<<"\t";
if (A[i][j]==0)
summ++;
}
cout<<"\n\n";
}
cout<<"Количесво нулей в массиве равно "<<summ<<"\n";

19 апреля 2015 г.

Дан двумерный массив. Расположить числа от 0 до n по улитке

setlocale(LC_ALL, "Russian");
const int len=15;//строки массива
const int col=9;//столбцы массива
int A[len][col];//сам массив
int summ=len*col;//произведение ширины на высоту, нужно для устранения ошибки
int xlen=0;//корректиривщик строк массива
int xcol=0;//корректировщик столбцов массива
int tmp_len=len;
int tmp_col=col;
int digit=1;//начальное число

while(tmp_len>0)
{
for(int i=0;i<4;i++)
{
for(int j=0;j<((tmp_len<tmp_col)?tmp_col:tmp_len);j++)
{
if(i==0&&j<tmp_col-xcol&&digit<=summ)
A[i+xlen][j+xcol]=digit++;
if(i==1&&j<tmp_len-xlen&&j!=0&&digit<=summ)
A[j+xlen][tmp_col-1]=digit++;
if(i==2&&j<tmp_col-xcol&&j!=0&&digit<=summ)
A[tmp_len-1][tmp_col-(j+1)]=digit++;
if(i==3&&j<tmp_len-(xlen+1)&&j!=0&&digit<=summ)
A[tmp_len-(j+1)][xlen]=digit++;
}
}
tmp_len--;
tmp_col--;
xlen++;
xcol++;
}
for(int i=0;i<len;i++)
{
for(int j=0;j<col;j++)
{
cout<<A[i][j]<<"\t";
}
cout<<"\n\n";
}
cout<<"\n\n";

18 апреля 2015 г.

Дан двумерный массив 7х7. Необходимо вывести зеркальное отражение от левого нижнего угла в правый верхний

const int q=7;
int A[q][q];
srand(time(NULL));

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";
for(int i=0;i<q;i++)
{
for(int j=0;j<q;j++)
{
if(i!=j)
A[i][j]=A[j][i];
cout<<A[i][j]<<"\t";
}
cout<<"\n\n";
}
cout<<"\n\n";

8 апреля 2015 г.

Использование функции rand

#include <iostream>
#include<stdlib.h>// в этом файле содержится функция rand
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
int a;
a=rand();
cout<<a<<"\n";
a=rand();
cout<<a<<"\n";
}

7 апреля 2015 г.

Дан массив из 50-ти элементов. Необходимо посчитать сумму элементов между первым и последним отрицательными значениями массива

const int size=50;
int A[size];
srand(time(NULL));
for(int i=0;i<size;i++)
{
A[i]=rand()%100-50;
}
for(int i=0;i<size;i++)
{
cout<<i<<" - "<<A[i]<<"\n";
}
int first;//первое отрицательное число
int last;//последнее отрицательное число
int mfirst;//маркер первого отрицательного числа
int mlast;//маркер последнего отрицательного числа
for(int i=0;i<size;i++)
{
if(A[i]<0)
{
first=A[i];
mfirst=i;
break;
}
}
for(int i=size-1;i>0;i--)
{
if(A[i]<0)
{
last=A[i];
mlast=i;
break;
}
}
cout<<"\nпервое отрицательное число: "<<first
<<"\nПоследнее отрицательное число: "<<last
<<"\nМаркер первого отрицательного числа: "<<mfirst
<<"\nМаркер последнего отрицательного числа: "<<mlast
<<"\n\n";
int summ=0;//сумма элементов между первым и последним отрицательным значением
for(int i=mfirst;i<=mlast;i++)
{
cout<<i<<" - "<<A[i]<<"\n";
summ+=A[i];
}
cout<<"Сумма равна "<<summ<<"\n";

Дан массив из 50-ти элементов. Необходимо посчитать сумму элементов между минимальным и максимальным значениями массива

const int size=50;
int A[size];
srand(time(NULL));
for(int i=0;i<size;i++)
{
A[i]=rand()%900+99;
}
for(int i=0;i<size;i++)
{
cout<<i<<" - "<<A[i]<<"\n";
}
int min=A[0];//примем первое число массива, как самое минимальное
int max=A[0];//примем первое число массива, как самое максимальное
int marker_min;//индекс минимального элемента в массиве
int marker_max;//индекс максимального элемента в массиве

for(int i=1;i<size;i++)
{
if(A[i]<min){
min=A[i];
marker_min=i;
}
if(A[i]>max){
max=A[i];
marker_max=i;
}
}
cout<<"\nmax "<<max<<"\nmin "<<min<<"\nmarker_min "<<marker_min<<"\nmarker_max "<<marker_max<<"\n\n";
int summ=0;//сумма элементов между минимальным и максимальным значением
if(marker_min<marker_max){
for(int i=marker_min;i<=marker_max;i++)
{
cout<<i<<" - "<<A[i]<<"\n";
summ+=A[i];
}
}
else{
for(int i=marker_max;i<=marker_min;i++)
{
cout<<i<<" - "<<A[i]<<"\n";
summ+=A[i];
}
}
cout<<"Сумма равна "<<summ<<"\n";

Дан массив из 20-ти элементов. Вывести самое маленькое нечётное число

setlocale(LC_ALL, "Russian");
const int size=20;
int A[size];
srand(time(NULL));
for(int i=0;i<size;i++)
{
A[i]=rand()%900+99;
}
for(int i=0;i<size;i++)
{
cout<<i<<" - "<<A[i]<<"\n";
}
int min=A[0];
for(int i=1;i<size;i++)
{
if(A[i]<min&&A[i]%2!=0)
{
min=A[i];
}
}
cout<<"Самое нечётное маленькое число массива: "<<min<<"\n";

Дан массив из 50-ти элементов int от 0 до 999. Найти самую большую цепочку неубывающих чисел.

setlocale(LC_ALL, "Russian");
const int size = 50;
int A[size];
srand(time(NULL));
for (int i = 0; i<size; i++)
A[i] = rand() % 999 + 0;
for (int i = 0; i<size; i++)
cout << i << " - " << A[i] << "\n";
int l = 0;
int tmp_l = 1;
int b = 0;
int tmp_b = 0;
int i;
for (i = 1; i<size; ++i)
{
if (A[i] >= A[i - 1])
tmp_l++;
else
{
if (tmp_l>l)
{
l = tmp_l;
b = tmp_b;
}
tmp_b = i;
tmp_l = 1;
}
}
cout << "\n\n\n";
for (int i = b; i<b + l; i++)
cout << i << " - " << A[i] << "\n";

6 апреля 2015 г.

Дан массив из 50-ти элементов int от 0 до 999. Пользователь вводит число. Необходимо проверить, есть ли это число в массиве. Если есть, то вывести число и индекс

setlocale(LC_ALL, "Russian");
const int size=50;
int A[size];
srand(time(NULL));
for(int i=0;i<size;i++)
{
A[i]=rand()%999+0;
}
//Для проверки работоспособности программы четыре нижние строки нужно разкомментировать
//for(int i=0;i<size;i++)
//{
// cout<<A[i]<<"\n";
//}
int digit;
do
{
cout<<"Эта программа проверяет есть ли введённое число в массиве\nПожалуйста введите число от 0 до 999: ";
cin>>digit;
bool check=false;
int i;
for(i=0;i<size;i++)
{
if(A[i]==digit)
{
check=true;
break;
}
}
if(check)
cout<<"Введённое число "<<digit<<" есть в массиве под номером "<<i<<"\n";
else
cout<<"Введённое число "<<digit<<" отсутствует в массиве\n";
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
cout<<"\n";
}
while(digit==1);

Дан массив из 50-ти элементов int от 0 до 99. Найти самую большую цепочку неубывающих чисел.

setlocale(LC_ALL, "Russian");
const int size=20;
int A[size];
srand(time(NULL));
for(int i=0;i<size;i++)
{
A[i]=rand()%999+0;
}
for(int i=0;i<size;i++)
{
cout<<A[i]<<"\n";
}
int length=0;//длина последовательности
int marker;//маркер первого элемента наибольшей последовательности

//поиск самой длинной последовательности
for(int i=0;i<size;i++)
{
if(A[i]<=A[i+1])
{
length++;
marker=i;
}
}
cout<<"length - "<<length<<"\n";
//cout<<"marker - "<<marker<<"\n";
}

Пример инициализации массива с помощью генератора случайных чисел. Необходимо подключить библиотеку

int A[10];
srand(time(NULL));
for(int i=0;i<10;i++)
{
A[i]=rand()%900+99;
}
for(int i=0;i<10;i++)
{
cout<<A[i]<<"\n";
}

Дан массив из 15-ти элементов. Необходимо удалить отрицательные числа из массива, а в конец поставить 0.

const int size=15;
int A[size]={1,9,-8,4,-3,6,0,30,-54,50,2,5,-87,47,15};
for(int i=0;i<size;i++)
{
if(A[i]==0)
{
int a=A[size-1];
A[size-1]=A[i];
A[i]=a;
}
if (A[i]>=0)
cout<<A[i]<<"\n";
}

Дан массив из 15-ти элементов. Необходимо найти среднее значение и расположить их в порядке возрастания

setlocale(LC_ALL, "Russian");
const int size=15;
int A[size]={1,9,8,4,3,6,32,30,54,50,2,5,87,47,15};
int a=0;
for(int i=0;i<size;i++)
{
a+=A[i];
}
a/=size;
for(int i=0;i<size;i++)
{
for(int y=1;y<size;y++)
{
if(A[i]>A[y])
{
for(int j=i;j<size;j++)
{
if(A[i]>A[j])
{
int a=A[i];
A[i]=A[j];
A[j]=a;
break;
}
}
}
}
}
cout<<"Среднее значение элементов массива: "<<a<<"\n";
for(int i=0;i<size;i++)
{
cout<<A[i]<<"\n";
}
cout<<"\n";

Дан массив из 15-ти элементов, в котором записаны числа. Некоторые повторяются. Вывести из массива все повторяющиеся числа в одном экземпляре

const int size=15;
int A[size]={1,2,3,4,3,6,7,3,5,10,2,5,2,4,15};
for(int i=0;i<size;i++)
{
bool check=true;
for (int j=i;j<size;j++)
{
if (i!=j&&A[i]==A[j])
check=false;
}
if (check)
cout<<A[i]<<"\n";
}

Дан массив из 15-ти элементов. Необходимо чётные значения поместить в начало массива

const int size=15;
int A[size]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
for(int i=0;i<size;i++)
{
if (A[i]%2!=0)
{
for(int y=i;y<size;y++)
{
if(A[y]%2==0)
{
int a=A[i];
A[i]=A[y];
A[y]=a;
break;
}
}
}
}
for(int i=0;i<size;i++)
{
cout<<A[i]<<"\n";
}
cout<<"\n";

Дан массив из 10 элементов. Необходимо поменять в массиве соседние числа местами

 setlocale(LC_ALL, "Russian");
int A[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i+=2)
{
int a=A[i];
A[i]=A[i+1];
A[i+1]=a;
}
for(int i=0;i<10;i++)
{
cout<<A[i]<<"\t";
}
cout<<"\n";
cout<<sizeof (A)<<" Байт\n";

Программа, которая отображает ромб

 setlocale(LC_ALL, "Russian");
       *
      ***
    *****
  *******
    *****
      ***
        *

int digit;
do
{
cout<<"Эта программа отображает ромб\nВведите размер грани (нечётное число): ";
cin>>digit;
cout<<"\n";
//if(digit%2!=0){
for(int i=0;i<digit*2-1;i++)
{
for(int y=0;y<digit*2-1;y++)
{
if(y>=digit-i-1&&y<=digit-1+i&&i<digit+y&&y<digit*3-i-2)
{
cout<<"*";
continue;
}
cout<<"#";
}
cout<<"\n";
}
//}
//else
// cout<<"Ошибка! Вы ввели неправильное число\n";
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Программа, которая отображает ромб, наклонённый вправо

 setlocale(LC_ALL, "Russian");
       *****
      *****
    *****
  *****
*****

int digit;
do
{
cout<<"Эта программа рисует ромб, наклонённый вправо\nВведите размер стороны: ";
cin>>digit;
cout<<"\n";
for(int i=0;i<digit;i++)
{
for(int y=0;y<digit*2;y++)
{
if(y>=digit-i&&y<digit*2-i)
{
cout<<"*";
continue;
}
cout<<" ";
}
cout<<"\n";
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Программа, которая отображает ромб, наклонённый влево

setlocale(LC_ALL, "Russian");
*****
  *****
    *****
      *****
        *****

int digit;
do
{
cout<<"Эта программа рисует ромб, наклонённый влево\nВведите размер стороны: ";
cin>>digit;
cout<<"\n";
for(int i=0;i<digit;i++)
{
int a=digit;
for(int y=0;y<digit*2-1;y++)
{
if(i<y+1&&y<a)
{
cout<<"*";
continue;
}
cout<<" ";
a++;
}
cout<<"\n";
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Пользователь вводит целое число. Необходимо из этого числа удалить цифры 3 и 6 и вывести обратно на экран

setlocale(LC_ALL, "Russian");
int digit;
do
{
cout<<"Эта программа удаляет цифры 3 и 6 из числа и выводит обратно на экран\nВведите число: ";
cin>>digit;
cout<<"\n";
int out=0, tmp=1;
for(;digit!=0;)
{
if(digit%10!=3&&digit%10!=6){
out=out+tmp*(digit%10);
tmp*=10;
}
digit/=10;
}
cout<<"Новое число - "<<out<<"\n";
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Нужно нарисовать равнобедренный треугольник

setlocale(LC_ALL, "Russian");
      *
    *  *
 *        *
*******

int digit;
do
{
cout<<"Эта программа рисует равнобедренный треугольник\nВведите размер стороны (нечётное число): ";
cin>>digit;
cout<<"\n";
if(digit%2!=0){
for(int i=0;i<digit/2+1;i++)
{
for(int y=0;y<digit;y++)
{
if(i==digit/2||y==digit/2+i||y==digit/2-i)
{
cout<<"*";
continue;
}
cout<<" ";
}
cout<<"\n";
}
}
else
cout<<"Ошибка! Вы ввели неправильное число\n";
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

5 апреля 2015 г.

Нужно нарисовать такой квадрат:

setlocale(LC_ALL, "Russian");
******
**      *
*  *    *
*   *   *
*     * *
******

int digit;
do
{
cout<<"Эта программа рисует квадрат\nВведите размер стороны: ";
cin>>digit;
cout<<"\n";
for(int i=0;i<digit;i++)
{
for(int y=0;y<digit;y++)
{

if(y==i||i==0||y==0||i==digit-1||y==digit-1)
{
cout<<"*";
continue;
}
cout<<" ";
}
cout<<"\n";
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Нужно нарисовать такой квадрат:

setlocale(LC_ALL, "Russian");
****
****
####
####

int digit;
do
{
cout<<"Эта программа рисует квадрат\nВведите размер стороны: ";
cin>>digit;
cout<<"\n";
for(int i=0;i<digit;i++)
{
if(i<digit/2){
for(int y=0;y<digit;y++)
{
cout<<"*";
}
cout<<"\n";
}
else{
for(int y=0;y<digit;y++)
{
cout<<"#";
}
cout<<"\n";
}
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Нужно нарисовать равнобедренный треугольник

setlocale(LC_ALL, "Russian");
*
**
***
****
*****

int digit;
do
{
cout<<"Эта программа рисует равнобедренный треугольник\nВведите размер стороны: ";
cin>>digit;
cout<<"\n";
for(int i=0;i<digit;i++)
{
for(int y=0;y<=i;y++)
{
cout<<"*";
}
cout<<"\n";
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Нужно нарисовать равнобедренный треугольник

setlocale(LC_ALL, "Russian");
*****
****
***
**
*

int digit;
do
{
cout<<"Эта программа рисует равнобедренный треугольник\nВведите размер стороны: ";
cin>>digit;
cout<<"\n";
for(int i=0;i<digit;i++)
{
for(int y=0;y<digit;y++)
{
if(y>=i)
cout<<"*";
}
cout<<"\n";
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Пользователь вводит любое целое число. Необходимо посчитать сколько среди цифр этого числа чётных, нечётных и 0

setlocale(LC_ALL, "Russian");
int digit;
do
{
int chet=0,nechet=0, nul=0;
cout<<"Эта программа считает сколько среди цифр этого числа чётных, нечётных и 0\nВведите число: \n";
cin>>digit;
cout<<"\n";
for(int i=1;digit!=0;i++)
{
if(digit%10==0)
{
nul++;
}
else if((digit%10)%2==0)
chet++;
else
nechet++;
digit/=10;
}
cout<<"Чётных цифр: "<<chet<<"\n";
cout<<"Нечётных цифр: "<<nechet<<"\n";
cout<<"Нолей: "<<nul<<"\n";
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Пользователь вводит диапазон целых чисел. Необходимо вывести только те числа, которые кратны 5 и 7

setlocale(LC_ALL, "Russian");
int digit,A[10];
do
{
cout<<"Эта программа выводит только те числа, которые кратны 5 и 7\nВведите массив из десяти чисел: \n";
for(int i=0;i<10;i++)
{
cin>>A[i];
}
cout<<"\n";
for(int i=0;i<10;i++)
{
if(A[i]%5==0&&A[i]%7==0)
{
cout<<"Это число кратно 5 и 7 - "<<A[i]<<"\n";
}
}
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Пользователь вводит любое целое число. Необходимо посчитать сумму и произведение цифр этого числа

setlocale(LC_ALL, "Russian");
int digit;
do
{
int summ=0,proizv=1;
cout<<"Эта программа считает сумму и произведение цифр введённого числа\nВведите число: \n";
cin>>digit;
cout<<"\n";
for(int i=1;digit!=0;i++)
{
summ+=digit%10;
proizv*=digit%10;
digit/=10;
}
cout<<"Сумма цифр равна: "<<summ<<"\n";
cout<<"Сумма произведения равна: "<<proizv<<"\n";
cout<<"Если хотите продолжить, нажмите 1: ";
cin>>digit;
}while(digit==1);

Пользователь вводит год и номер месяца, программа сообщает сколько в этом месяце дней

setlocale(LC_ALL, "Russian");
int year,month;
cout<<"Эта программа сообщает сколько в ведённом месяце дней\nВведите год: ";
cin>>year;
cout<<"\nВведите месяц: ";
cin>>month;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout<<"В этом месяце - 31 день\n";
break;
case 4:
case 6:
case 9:
case 11:
cout<<"В этом месяце - 30 дней\n";
break;
case 2:
if(year%4==0)
cout<<"В этом месяце - 29 дней\n";
else
cout<<"В этом месяце - 28 дней\n";
default:
cout<<"Ошибка! Вы ввели неправильный месяц\n";
}