к.р. по ОАиП
.docxМинистерство образования Республики Беларусь
БГУИР
Факультет заочного обучения
Кафедра вычистельных методов и программирования
Контрольная работа № 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;
}
}
}