Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКУМ_2.doc
Скачиваний:
15
Добавлен:
29.03.2015
Размер:
159.23 Кб
Скачать

5. Вычисление биноминального коэффициента

// Нахождение биноминального коэффициента P(n,k)

#include "stdafx.h"

#include <iostream>

using namespace std;

#include <conio.h>

int fact(int i);

int _tmain(int argc, _TCHAR* argv[])

{

int n,k;

cout<<"Enter n >k ";

cin>>n;

cout<<"\n Enter k <n ";

cin>>k;

cout<<" \n P(n,k) = "<<fact(n)/(fact(k)*fact(n-k))<<"\n";

getch();

return 0;

}

int fact(int i)

{

if(i<=1) return 1;

return i*fact(i-1);

}

6. Разложение целого числа на сумму биноминальных коэффициентов

/* Разложение N>=11 на сумму трех биноминальных коэффициентов, при этом

a<=b<=c<=N */

#include "stdafx.h"

#include <iostream>

using namespace std;

#include <string.h>

using namespace std;

#define N 12 // N- именнованная константа

int fact(int k);

void main()

{

int a,b,c,k,k1,k2,k3;

for(c=3;c<=N;c++)

for(b=2;b<=c;b++)

for(a=1;a<=b;a++)

{

k1=fact(c)/(6*fact(c-3));

k2=fact(b)/(2*fact(b-2));

k3=fact(a)/(fact(a-1));

if(N==k1+k2+k3)

{

cout<<" a= "<<a<<" b = "<<b<<" c = "<<c;

cin>>k;

return;

}

}

}

int fact(int k)

{

if(k<=1) return 1;

return k*fact(k-1);

}

7. Сумма некоторых элементов массива

/* Задан массив целых чисел А[10], найти сумму его четных членов и нечетных чисел */

#include "stdafx.h"

#include <iostream>

using namespace std;

#include <conio.h>

#define SIZE 10 // SIZE - именнованная константа

int main()

{

int i,n;

int s1=0,s2=0,A[SIZE];

cout<<"Input n= \n";

cin>>n;

cout<<" Enter items of array A:\n";

for(i=0;i<=n-1;i++) cin>>A[i];

for(i=0;i<=n-1;i=i+2) s1=s1+A[i];

for(i=0;i<=n-1;i++)

if(A[i]%2!=0) s2=s2+A[i];

cout<<" Sum of even members = "<<s1;

cout<<" Sum of odd numbers = "<<s2;

getch();

return 0;

}

8. Модификация массива данных. Вариант 1.

/* Даны целые положительные числа а1,а2,...аn. Получить новую

последовательность, выбросив из исходной все члены со значением max(a1,a2,...,an).*/

#include "stdafx.h"

#include <iostream>

using namespace std;

#include <conio.h>

#define SIZE 10 // SIZE - именнованная константа

int main()

{

int i,n,A[SIZE],B[SIZE],max,k=0;

cout<<"Enter n= \n";

cin>>n;

cout<<"Enter array A: \n";

for(i=0;i<n;i++) cin>>A[i];

max=A[0];

for(i=0;i<n;i++) if (A[i]>max)max=A[i];

for(i=0;i<=n-1;i++)

{

if (A[i]!=max)

{

B[k]=A[i];

k++;

}

}

cout<<"New array: \n";

for(i=0;i<=k-1;i++) cout<<B[i];

getch();

return 0;

}

9. Модификация массива данных. Вариант 2.

/* Даны целые положительные числа а1,а2,...аn. Получить новую

последовательность, выбросив из исходной все члены со значением max(a1,a2,...,an), не вводя нового массива*/

#include "stdafx.h"

#include <iostream>

using namespace std;

#include <conio.h>

#define SIZE 10 //именнованная константа

int main()

{

int i,j,n,A[SIZE],max,k;

cout<<"Enter n= \n";

cin>>n;

cout<<"Enter array A: \n";

for(i=0;i<n;i++) cin>>A[i];

max=A[0];

for(i=0;i<n;i++) if (A[i]>max)max=A[i];

// Блок выкидывания элемента и сдвига последующих элементов

for(i=0;i<n;i++)

{

if(A[i]==max)

{

A[i]=A[i+1];

for(k=i+1;k<(n-1);k++) A[k]=A[k+1];

n--;

i--;

}

}

cout<<"New array: \n";

for(i=0;i<n;i++) cout<<” “<<A[i];

getch();

return 0;

}