Задание 1 Написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.
Решение: #include <iostream> #include <math.h> using namespace std;
Задание 2 Составить программу вычисления выражения. Предусмотреть вывод информации о выбранной ветви вычислений.
Решение:
#include <iostream> #include <math.h> using namespace std; int main()
{ double x, y, s; cout <<"Vvedite x:"; cin >> x; cout <<"Vvedite y:"; double xy=(x*y); if(xy>0) { s=pow((x+y),2)-pow(abs(x),1/3.); cout<<"1 vetv.Result="<<s<<endl; } else if (xy<0){ s=pow((x+y),2)+sin(x); cout<<"2 vetv.Result="<<s<<endl; } else { s=pow((x+y),2)+pow(y,3); cout<<"3Vetv.Result="<<s<<endl; } return 0; } Задание 3 Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1. Вычисление y(x) оформить в виде функции. Предусмотреть передачу параметров в функцию разными способами. 1. Решение: #include <iostream> #include <math.h> using namespace std; #include <iomanip> // Прототипы функций double Summa(double,int); // Передача параметров по значению void Summa(double*,int*,double*);// Передача параметров по указателю void Summa(double&,int&,double&); // Передача параметров по ссылке int main() { double s, x, a, b, h; int n; cout<<"Vvedite a, b, h, n:"<<endl; cin>>a>>b>>h>>n; //Ввод значений: 0.1 1.2 0.1 20 // Вывод строки заголовка таблицы cout<<"\n Value"<<setw(20)<<"Pointer"<<setw(24)<<"Reference\n"; x=a; do //Начало цикла по x { // Вывод таблицы // Передача параметров по значению cout<<setw(5)<<x<<setw(10)<<Summa(x,n);
Summa(&x,&n,&s); // Передача параметров по указателю cout<<setw(10)<<x<<setw(10)<<s ;
Summa(x,n,s); // Передача параметров по ссылке cout<<setw(10)<<x<<setw(10)<<s<<endl; x+=h; // Изменение значения x на величину шага h } while (x<=b+h/2); // Проверка условия продолжение цикла по x cout<<endl; // Переход на новую строку return 0; }
double Summa(double x,int n) // Передача параметров по значению { double s; int i; s=1/3.; // Начальное значение при n=1
for(i=1;i<=n;i++) //Вычисление суммы
s+=pow(x,(i-1))/(2*i+1); return s; // Передача результатов в главную функцию } // Передача параметров по указателю void Summa(double *x,int *n,double *s) { int i; *s=1/3.; // Начальное значение при n=1
for(i=1;i<=*n;i++) // Вычисление суммы
*s +=pow(*x,(i-1))/(2*i+1); } // Передача параметров по ссылке void Summa (double &x, int &n, double &s) { int i; s=1/3.; // Начальное значение при n=1
Задание 4 Ввести одномерный статический массив из k чисел. Найти произведение элементов массива, расположенных между максимальным и минимальным элементами. Вывести на экран исходные данные и полученный результат. Предусмотреть использование функции пользователя. Решение: #include <iostream.> #include <iomanip.> #include <math.h> using namespace std; void MinMax (int a[],int,int*,int*,int*,int*,int*); // прототип функции int main() { int a[10], i, n, min, imin, max, imax, mus;
return 0; } // Функция поиска минимального и максимального элементов // однородного массива и их индексов // Произведение элементов массива void MinMax (int a[],int n,int *min,int *max,int *imin,int *imax,int *mus) { int i; *min=*max=a[0]; // Инициализация значений *mus=1; int tmp=0; for (i=1; i<n; i++) if (a[i]<*min) { // Поиск минимального значения и его индекса *imin=i; *min=a[i]; } else if (a[i]>*max) { // Поиск максимального элемента и его индекса *imax=i; *max=a[i]; } if (*imax<*imin) { tmp=*imax; *imax=*imin; *imin=tmp; } for (i=*imin+1;i<*imax-1;i++) { *mus=*mus*a[i]; } }
Задание 5 Ввести матрицу размером NxM. Память для массива выделить динами-чески. Определить количество положительных элементов, расположенных ни-же побочной диагонали матрицы вывести на экран исходные данные и полученный результат. Предусмотреть в программе функцию пользователя. Решение: #include <iostream> #include <iomanip>
using namespace std;
void main() { int i, j; int nCount = 0; int nSize, nRow, nColumn, *a; cout << "chislo strok:"; cin >> nRow; cout << "Chislo stolbcov:"; cin >> nColumn; nSize = nColumn * nRow; //ввод массива a = new int [nSize]; for (i = 0; i < nRow; ++i) for(j = 0; j < nColumn; ++j) { cout << "A[" << i << "," << j << "]="; cin >> *(a+i*nColumn + j); } //подсчёт элементов for (i = 0; i < nRow; ++i) { for(j = 0; j < nColumn; ++j) if (( nColumn - j - 1 ) < ( i )) if ((*(a+i*nColumn + j)) > 0) nCount++; } //вывод массива на экран for (i = 0; i < nRow; ++i) { for(j = 0; j < nColumn; ++j) cout << setw(5) << *(a+i*nColumn + j); cout << endl; } cout << "chislo polozitelnix elementov nize pobochnoj diogonali=" <<nCount << endl; }
Задание 6 Написать программу формирования файла, содержащего данные: Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы товара. Вывести список това-ров, стоимость которых превышает 1 000 000 рублей. В программе предусмотреть сохранение вводимых данных в файл и возможность чтения из ранее сохраненного файла. Вывести результаты на экран и в текстовой файл. Решение: #include <iostream> #include <conio.h> #include <string.h>
Список используемой литературы: 1. М.И. Болски. Язык программирования Си. 1988г. 2. Б.И. Березин. Начальный курс С и С++. М.,2001г. 3. Бьерн Страуструп. Язык программирования С++ 4. Интернет ресурсы