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

к.р. по ОАиП

.docx
Скачиваний:
24
Добавлен:
11.05.2015
Размер:
100.06 Кб
Скачать

Министерство образования Республики Беларусь

БГУИР

Факультет заочного обучения

Кафедра вычистельных методов и программирования

Контрольная работа № 1

по дисциплине: «Основы алгоритмизации и программирования»

Вариант 12

Выполнила студентка гр. 202901

Специальность СРРиТ

Цехмейстер А.Н.

Проверил: Навроцкий А.А.

Оценка: ________________

________________________

(подпись)

________________________

(дата)

2012

Лабораторная работа №1

Написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильными результатом.

при x = 3,251; y = 0,325; z = 0,46610-4.

Ответ: s = 4,23655.

Текст программы:

#include <iostream.h>

#include <math.h>

int main ( )

{

double x, y, z, a, b, c, s;

cout << “Vvedite x: “ << endl;

cin >> x;

cout << “Vvedite y: “ << endl;

cin >> y;

cout << “Vvedite z: “ << endl;

cin >> z;

a = pow(2,pow(y,x)) + pow(pow(3,x),y);

b = y*(atan(z) – 1/3.);

c = fabs(x) + (1/(pow(y,2)+1));

s = a – b/c;

cout << “Result h= “ << s << endl;

return 0;

}

Лабораторная работа №2

Составить программу вычисления выражения согласно указанному варианту. Предусмотреть вывод информации о выбранной ветви вычислений.

Текст программы:

#include <iostream.h>

#include <math.h>

int main ( )

{

double x, y, s;

cout << “Vvedite x: ” << endl;

cin >> x;

cout << “Vvedite y: ” << endl;

cin >> y;

double f_2x = 2*x;

if (f_2x < y)

{

s = tan(x) + pow(x,2);

cout << “1 result = ” << s << endl;

}

else if (f_2x > y) {

s = fabs(pow((x+y),3));

cout << “2 result = ” << s << endl;

}

else {

s = pow(x,1/3.)*sin(x);

cout << “3 result = ” << s << endl;

}

return 0;

}

Лабораторная работа №3

Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1.

Текст программы:

#include "iostream.h"

#include "iomanip.h"

#include "math.h"

int main()

{

double a,b,h,x,y,p,s;

int n,i;

cout<<"Vvedite a,b,n,h"<<endl;

cin>>a>>b>>n>>h;

x=a;

do

{

p=s=1/fabs(sin(x));

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

{

p*=(1+x)/fabs(sin(x));

s+=p;

}

cout<<setw(15)<<x<<setw(15)<<s<<endl;

x+=h;

}

while (x<=b+h/2);

cout<<endl;

return 0;

}

Лабораторная работа №4

Ввести одномерный статический массив из k чисел. Определить количество инверсий в массиве (таких пар элементов, в которых большее значение находится слева от меньшего). Вывести на экран исходные данные и полученный результат.

Текст программы:

#include "iostream.h"

#include "iomanip.h"

int main()

{

int a[10],i,R,k;

cout<<"Vvedite razmer massiva"<<endl;

cin>>R;

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

{

cout<<"Vvedite element "<<i<<": ";

cin>>a[i];

}

k=0;

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

{

if (a[i]>a[i+1])

k++;

}

cout<<"k="<<k<<endl;

return 0;

}

Лабораторная работа №5

Ввести матрицу размером . Память для массива выделить динамически. Найти в каждом столбце матрицы минимальный элемент. Вывести на экран исходные данные и полученный результат.

Текст программы:

#include <iostream>

#include <iomanip>

#include <math.h>

using namespace std;

int main()

{

double **a;

int i, j, n, m, imin;

double min;

while(true)

{

system("cls");

cout << "Vvedite razmer: n, m " << endl;

cin >> n >> m;

a = new double *[n];

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

a[i] = new double [m];

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

for (j = 0; j < m; j++)

{

cout << "Vvedite a[" << i << "][" << j << "]: ";

cin >> a[i][j];

}

cout << "Massiv A: " << endl;

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

{

for (j=0; j<m; j++)

cout << setw (9) << a[i][j] << " ";

cout << endl;

}

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

{

min=a[0][j]; imin=0;

for (i=1; i<m;i++)

if (a[i][j]<min)

{min=a[i][j]; imin=i;}

bool bp=true;

if (bp) cout << min << endl;

}

switch(n)

{

case 1:

break;

default:

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

delete [] a[i];

delete []a;

a = NULL;

return 0;

}

}

}