Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вариант №9 Контрольная домашняя. 1-4

.doc
Скачиваний:
9
Добавлен:
01.04.2014
Размер:
130.56 Кб
Скачать

Лабораторная работа №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;

}

Результат программы.