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

ОАИП

.docx
Скачиваний:
12
Добавлен:
01.04.2014
Размер:
316.61 Кб
Скачать

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

Учреждение образования

«Белорусский государственный университет

информатики и радиоэлектроники»

Институт информационных технологий

КОНТРОЛЬНАЯ РАБОТА

по дисциплине

«ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ»

Вариант № 3

Выполнил:

студент группы 183221

Полевечко Н.Н.

Минск БГУИР 2011

ЗАДАНИЕ №1

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

.

При x = 3.7410-2, y = –0.825,

z = 0.16102 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