
Контрольная работа №1 Вариант 6
.docxМинистерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Контрольная работа №1 по дисциплине:
«Основы алгоритмизации и программирования»
Вариант 6
Студента ФЗО специальность СТ
группы 003001
Костикова Никиты Владимировича
Адрес: 230005 г.Гродно
ул. Дзержинского 123/1-20
Телефон: +375292817911
Минск 2010
Содержание:
Содержание 2
1. Задача 1 3
2. Задача 2 4
3. Задача 3 5
4. Задача 4 6
5. Задача 5 7
Задача 1.
Написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.
При х=16,55 ∙ 10-3; y=–2,75; z=0,15
Код программы:
#include <iostream.h>
#include <math.h>
int main()
{double a,b,c,f,d,h,i,x,y,z,s;
cout << "Enter x:"; cin >> x;
cout << "Enter y:"; cin >> y;
cout << "Enter z:"; cin >> z;
a=pow(x,1/3.);
b=pow(x,y+2);
c=10*(a+b);
d=pow(c,1/2.);
f=pow(asin(z),2);
h=fabs(x-y);
i=f-h;
s=d*i;
cout <<"Results:"<< s << endl;
return 0;
}
Задача 2.
Составить программу вычисления выражения согласно указанному варианту. Предусмотреть вывод информации о выбранной ветви вычислений.
Код
программы:
#include <iostream.h>
#include <math.h>
int main()
{double x,y,s;
cout <<"Enter x:"; cin >>x;
cout <<"Enter y:"; cin >>y;
double xy=x*y;
if(xy>0.5 && xy<10){
s=exp(x-fabs(y));
cout <<"Result s 1 vetvi:"<<s<<endl;}
else if(xy>0.1 && xy<10){
s=pow(fabs(x+y),1/3);
cout<<"Result s 2 vetvi:"<<s<<endl;}
else{
s=2*pow(x,2);
cout<<"Result s 3 vetvi:"<<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 s, x, a, b, h;
int k, i;
cout << "Enter a, b, h, k:" << endl;
cin >> a >> b >> h >> k;
x = a;
cout << setw(0) << "\n" <<"X" << setw(10) << "Y" << endl;
do
{
s = 2;
for (i = 1; i <= k; i++)
s += pow(x,2*i-2)/2*1+1;
cout << setw(0) << x << setw(10) << s << endl;
x += h;
}
while (x <= b + h/2);
cout << endl;
return 0;
}
Задача 4.
Ввести одномерный статический массив из k чисел. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.
6. Сдвинуть элементы массива циклически на n позиций влево.
Код
программы:
#include <iostream.h>
#include <math.h>
#include <conio.h>
int main()
{
int a[10], i, n, min, imin, max, imax, u;
cout << "Enter razmer: ";
cin >> n;
cout << "Enter kolichestvo pozicii vlevo: ";
cin >> u;
for (i=0; i<n; i++)
{
cout << "Vvedite a[" << i << "]= " ;
cin >> a[i];
}
cout << "Massiv a:" << endl;
for (i=0; i<n; i++)
cout << a[i] << " " ;
cout << "\n Elementy massiva \"a\" so sdvigom na "<< u <<" poziciyu"<< endl;
for (i=0; i<n; i++)
cout << a[i]-u << " " ;
return 0;
}
Задача 5.
Ввести матрицу размером NxM. Память для массива выделить динами-чески. Выполнить в соответствии с номером варианта индивидуальное зада-ние и вывести на экран исходные данные и полученный результат.
6. Определить количество четных элементов, расположенных на главной и побочной диагоналях.
Код
программы:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int main()
{
int **a;
double tmp;
int i=0, j=0,n,m,kol=0;
cout << "Vvedite razmer: n, m" << endl;
cin >> n >> m;
a = new int*[n];
for(i=0; i<n; i++) //i=0
a[i] = new int[m];
for (i=0; i<n; i++) //i=0
for (j=0; j<m; j++) //j=0
{
cout << "Vvedite a[" << i << "][" << j << "]: " ;
cin >> tmp;
a[i][j]=int(floor(tmp));
}
cout << "Massiv A:" << endl;
for (i=0; i<n; i++)
{
for (j=0; j<m; j++) //j
cout << setw (4) << a[i][j] << " ";
cout << endl;
}
if (n!=m)
{
cout<<"Matrica ne kvadratnaya, poetomy podschet ne vozmojen";
}
else
{
for (i=0;i<n;i++)
{
if (a[i][i] % 2 == 0 )
{
kol++;
}
};
for (i=1;i<=n;i++)
{
if (a[i-1][n-i] % 2 == 0)
{
kol++;
}
};
if (n%2 == 0)
{
cout<<"Kolicestvo chetnih chisel = "<<kol;
}
else
{
if (a[n/2][n/2]%2==0) kol--;
cout<<"Kolicestvo chetnih chisel = "<<kol;
}
}
return 0 ;
}