Вариант №9 Контрольная домашняя. 1-4
.docЛабораторная работа №1
Программирование линейных алгоритмов
Вариант №9.
Написать программу вычисления значения линейного арифметического выражения.
Решение.
Разобьем вычисление на несколько этапов.
1.
2. b=(y-x)
3.
4.
5. s=c+d
Код программы.
#include <iostream.h>
#include <math.h>
int main()
{
double x,y,z,s,a,b,c,d;
cout <<"Vvedite x:";
cin >>x;
cout <<"Vvedite y:";
cin >>y;
cout <<"Vvedite z:";
cin >>z;
a=y/x;
b=y-x;
c=fabs(pow(x,a)-pow(a,1./3));
d=b*(cos(y)-z/b)/(1+pow(b,2));
s=c+d;
cout <<"Result s="<<s<<endl;
return 0;
}
Результат работы программы.
Лабораторная работа №2
Программирование разветвляющихся алгоритмов
Вариант №9.
Код программы.
#include <iostream.h>
#include <math.h>
int main()
{
double x,y,s;
cout <<"Vvedite x:";
cin>>x;
cout<<"vvedite y:";
cin>>y;
if(x>fabs(y))
{
s=2*pow(x,3)+3*pow(y,2);
cout<<"1vetv.Result="<<s<<endl;
}
else if((x>3)&&(x<fabs(y)))
{
s=fabs(x-y);
cout <<"2vetv.Result="<<s<<endl;
}
else
{
s=pow(fabs(x-y),1/3.);
cout<<"3Vetv.Result="<<s<<endl;
}
return 0;
}
Результат работы программы.
Лабораторная работа №3
Программирование циклических алгоритмов
Вариант №9.
Код программы.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int main()
{
double s, x, a, b, h;
int n;
cout<<"Vvedite a, b, h:"<<endl;
cin>>a>>b>>h;
for(x=a;x<=b;x+=h)
{
s=0;
for (n=1;n<=20;n+=1){
s=s+((2*n+1)/(sin(n*x)))*pow(x,n-1);
}
cout<<setw(15)<<"x="<<x<<setw(15)<<"S="<<s<<endl;
}
while (x <= b + h/2);
cout<<endl;
return 0;
}
Результат программы.
Лабораторная работа №4
Программирование с использованием одномерных массивов
Вариант №9.
Ввести одномерный статический массив из k чисел. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.
9. Сформировать два новых массива: в первый записать отрицательные элементы исходного массива, во второй – все остальные.
Код программы.
#include <iostream.h>
#include <math.h>
void main()
{
int a[20],b[20],c[20],n,i,j,k;
cout<<"Vvedite razmer n";
cin>>n;
cout<<"Massiv a"<<endl;
for(i=0;i<n;i++) {
cout<<"a["<<i+1<<"]=";
cin>>a[i];
}
j=k=0;
for(i=0;i<n;i++){
if(a[i]<0){
b[j]=a[i];
j++;
}
else{
c[k]=a[i];
k++;
}
}
cout<<"Massiv b"<<endl;
for(i=0;i<j;i++){
cout<<"b["<<i+1<<"]="<<b[i]<<endl;
}
cout<<"Massiv c"<<endl;
for(i=0;i<k;i++){
cout<<"c["<<i+1<<"]="<<c[i]<<endl;
}
}
Результат программы.
Лабораторная работа №5
Указатели. Программирование с использованием динамических двумерных массивов
Вариант №9.Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.
9. Найти максимальный среди элементов, лежащих выше побочной диагонали.
Код программы.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int FindMaxElement(int,int,int**);
void main()
{
int**a,i,j,n,m,Rez;
cout<<"Vvedite razmer n,m:";
cin>>n>>m;
a=new int*[n]; //захват памяти под указатели
for(i=0;i<n;i++)
a[i]=new int[m]; //Захват памяти под элементы
cout<<"Vvedite a"<<endl;
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"a["<<i+1<<"]["<<j+1<<"]=";
cin>>a[i][j];
}
cout<<"\n Masiv A:"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<"\t"<<a[i][j];
cout<<endl;
}
// Обращение к функции с указанием фактических аргументов
Rez=FindMaxElement(n,m,a);
cout<<"\n\tMaxElement:"<<Rez<<endl;
delete[]a; //Освобождение памяти
cout<<"\n\t Delete"<<endl;
}
//Найти максимальный среди элементов, лежащих выше побочной диагонали
int FindMaxElement(int a, int b,int **x)
{
int i,j,MaxEl;
MaxEl=x[0][0];
for(i=0;i<=a-1;i++)
for(j=0;j<=a-i-2;j++)
if(x[i][j]>MaxEl)
MaxEl=x[i][j];
return MaxEl;
}
Результат программы.