3. Вывести на экран таблицу значений функции Y(x)=e2x и ее разложения в ряд S(x)=1+2x/(1!)+…+(2x)n/(n!); n=100 для x, изменяющегося от a=0.1 до b=1 с шагом h=(b-a)/10 #include <iostream.h> #include <iomanip.h> #include <math.h> int main (int) { double a,b,h,x,y,s,p; int n,i; cout << "vvedite a:"; cin>>a; cout << "vvedite b:"; cin>>b; cout << "vvedite n:"; cin>>n; x=a; h=(b-a)/10.0; cout<<setw(15)<<"x"<<setw(15)<<"y(x)"<<setw(15)<<"s(x)"<<endl; do { p=s=1; for(i=1;i<=n;i++) { p*=2*x/i; s+=p; } y=exp(2*x); cout<<setw(15)<<x<<setw(15)<<y<<setw(15)<<s<<endl; x+=h; } while(x<=b+h/2); cout<<endl; return 0; }
4. Задан массив из k чисел. Преобразовать массив следующим образом: все отрицательные элементы массива перенести в начало, а все остальные – в конец, сохранив исходное взаимное расположение как среди отрицательных, так и среди положительных элементов.
#include <stdlib.h> #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { float A[100], B[100], a, b; int i, k=100, c=0; cout << "Vvedite k: "; cin >> k; cout << "Vvedite a: "; cin >> a ; cout << "Vvedite b: "; cin >> b; for ( i = 0; i < k; i ++ ) A[i] = (float)rand()*(b-a)/RAND_MAX + a; for ( i = 0; i < k; i ++ ) if ( A[i] < 0 ) { B[c] = A[i]; c ++;} for ( i = 0; i < k; i ++ ) if ( A[i] >= 0 ) { B[c] = A[i]; c ++;} cout<<setw(15)<<"Massiv A"<<setw(18)<<"Massiv A' "<<endl; for ( i = 0; i < k; i ++ ) cout<<setw(15)<<A[i]<<setw(15)<<B[i]<<endl; for ( i=0; i<k; i++) A[i]=B[i]; }
5. Дана матрица размером NxM. Упорядочить ее строки по возрастанию суммы их элементов. #include <iostream.h> #include <conio.h> #include <stdlib.h> void main(int) {int **a, k, i, j, n, m, s1, s2, c, A, B; cout << "Kol-vo strok:"; cin >> n; cout << "Kol-vo stolbcov:"; cin >> m; cout << endl <<"Vvedite interval" <<endl; cout << "Min 4islo:"; cin >> A; cout << "Max 4islo:"; cin >> B; a = new int*[n]; for(i=0; i<n;i++) a[i] = new int[m]; cout << endl << "Matrica A" << endl; for(i=0; i<n; i++) {cout << endl; for(j=0; j<m; j++) { a[i][j] = (int)rand()*(B-A)/RAND_MAX +A; cout << a[i][j]<< "\t";} } for (i=0; i<(n-1); i++) {
for(k=(n-1); k>=i; k--) {s1=s2=0; for (j=0; j<m; j++) {s1+=a[i][j];} for (j=0; j<m; j++) {s2+=a[k][j];} if (s2<s1) { for (j=0; j<m; j++) {c = a[i][j]; a[i][j] = a[k][j]; a[k][j] = c; s1=s2=0; } } }
8. Вывести на экран таблицу значений функцииY(x)=1/(1-x) и ее разложения в ряд S(x)=1/(1+x)+2x/(1+x2)+…+(2k-1x(2^(k-1)-1))/(1+x(2^(k-1))) для x, изменяющегося от a=-0.3 до b=0.4 с точностью ε=10-4. Вывести число итераций, необходимое для достижения заданной точности. ВычислениеS(x) иY(x) оформить в виде функций.
1. Батура М.П., Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Основы алгоритмизации и программирования. Язык Си : учеб. пособие. – Минск : БГУИР, 2007. 2. Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Конспект лекций по курсу «Основы алгоритмизации и программирования» для студентов всех специальностей и всех форм обучения. - Мн.: БГУИР, 2004. 3. Бусько В.Л., Навроцкий А.А. Основы алгоритмизации и программирования в среде С++ лаб.практикум по курсу «Основы алгоритмизации и программирования» для студ. 1 – 2-го курсов всех специальностей БГУИР. Минск: БГУИР, 2008.