ОАИП
.docxМинистерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет
информатики и радиоэлектроники»
Институт информационных технологий
КОНТРОЛЬНАЯ РАБОТА
по дисциплине
«ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ»
Вариант № 3
Выполнил:
студент группы 183221
Полевечко Н.Н.
Минск БГУИР 2011
ЗАДАНИЕ №1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
. |
При x = 3.7410-2, y = –0.825, z = 0.16102 v = 1.0553.
|
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
double x, y, z, a, b ,c, rez;
printf("Vvedite x\n");
scanf("%lf",&x);
printf("Vvedite y\n");
scanf("%lf",&y);
printf("Vvedite z\n");
scanf("%lf",&z);
puts("===========================");
a=1+pow(sin(x+y),2);
b=fabs(x-2*y/(1+pow(x*y,2)));
c=pow(cos(atan(1/z)),2);
rez=a/b*pow(x,fabs(y))+c;
puts("Rezultat virazhenia: ");
printf("%f",rez);
getch();
}
Результаты выполнения:
ЛИТЕРАТУРА
1. Юлин В.А., Булатова И. Р. Приглашение к Си. – Минск: Вышэйшая школа, 1990
ЗАДАНИЕ №2
Составить программу для вычисления значения rez в зависимости от поставленного условия.
rez =
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
double k1,k2,rez;
printf("Vvedite k1\n");
scanf("%lf", &k1);
printf("Vvedite k2\n");
scanf("%lf", &k2);
if ((k1*k2>0)&&(k1*k2<=1))
{
rez=sqrt(fabs(2*k1-5*pow(k2,2)))*exp(k1+k2);
printf("Rezultat: %f\n",rez);
puts("Vichislenie prohidilo po pervoi vetvi");
}
else
{
if (k1*k2>1)
{
rez=sqrt(fabs(2*k1-5*pow(k2,2)))*exp(k1-k2);
printf("Rezultat: %f\n",rez);
puts("Vichislenie prohidilo po vtoroi vetvi");
}
else
puts("Proizvedenie k1 i k2 otricatel'no ili ravno 0");
}
getch();
}
Результаты выполнения:
ЛИТЕРАТУРА
1. Юлин В.А., Булатова И. Р. Приглашение к Си. – Минск: Вышэйшая школа, 1990
2. Павловская Т. А. С/C++. Программирование на языке высокого уровня. – СПБ.: Лидер, 2010
ЗАДАНИЕ №3.
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.
Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int n,k,fact;
float a,b,h,x,y,razn,f,s,pi=3.14;
puts("Vvedite a, b, h ,n");
scanf("%f %f %f %d",&a,&b,&h,&n);
for (x=a; x<=b; x+=h)
{
f=1;
s=1;
fact=1;
for (k=1; k<=n;k++)
{
f=cos(k*pi/4)/fact*pow(x,k);
s+=f;
fact*=k+1;
}
y=exp(x*cos(pi/4))*cos(x*sin(pi/4));
razn=fabs(s-y);
printf("\n x=%8.2f sum=%8.5f y=%8.5f razn=%8.5f",x,s,y,razn);
}
getch();
}
Результаты выполнения:
ЛИТЕРАТУРА
1. Юлин В.А., Булатова И. Р. Приглашение к Си. – Минск: Вышэйшая школа, 1990
2. Павловская Т. А. С/C++. Программирование на языке высокого уровня. – СПБ.: Лидер, 2010
ЗАДАНИЕ №4
В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму элементов массива, расположенных до последнего положительного элемента (не включительно).
Текст программы:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main()
{
int mas[20], n, i,sum,k;
puts("Vvedite kolichestvo elementov massiva");
scanf("%d",&n);
puts("Vvedite znachenie massiva poelementno");
for (i=0; i<n; i++)
{
scanf("%d",&mas[i]);
}
sum=0;
for (i=n-1; i>=0; i--)
{
if (mas[i]>0)
{
k=i;
break;
}
}
for (i=0; i<k; i++)
sum+=mas[i];
printf("Summa: %d", sum);
getch();
}
Результаты выполнения:
ЛИТЕРАТУРА
1. Юлин В.А., Булатова И. Р. Приглашение к Си. – Минск: Вышэйшая школа, 1990
2. Павловская Т. А. С/C++. Программирование на языке высокого уровня. – СПБ.: Лидер, 2010
ЗАДАНИЕ №5
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически, ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных. Найти максимальный элемент и поменять его с первым элементом.
Текст программы:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int func(int,int,int**);
int main()
{
int **a, m, n,i,j;
printf("Vvedite razmernost' matrici NxM\n");
scanf("%d %d", &n, &m);
a = new int*[n];
for(i=0; i<n;i++)
a[i] = new int[m];
puts("Vvedite znachenie massiva poelementno");
for(i=0;i<n;i++)
for(j=0; j<m; j++)
scanf("%d", &a[i][j]);
func(n,m,a);
for(i=0; i<n; i++)
{
for (j=0; j<m; j++)
printf("%4d", a[i][j]);
puts("");
}
delete []a;
getch();
}
int func(int a, int b, int **x)
{
int max, imax, jmax, i, j,A;
max=x[0][0];
imax=0;
jmax=0;
for (i=0; i<a; i++)
for (j=0; j<b; j++)
{
if (x[i][j]>max)
{
max=x[i][j];
imax=i;
jmax=j;
}
}
A=x[0][0];
x[0][0]=x[imax][jmax];
x[imax][jmax]=A;
}
Результаты выполнения:
ЛИТЕРАТУРА
1. Юлин В.А., Булатова И. Р. Приглашение к Си. – Минск: Вышэйшая школа, 1990
2. Павловская Т. А. С/C++. Программирование на языке высокого уровня. – СПБ.: Лидер, 2010