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

ИТиУвТС / ОАИП 2 вариант

.doc
Скачиваний:
63
Добавлен:
01.04.2014
Размер:
198.66 Кб
Скачать

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

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

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

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

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

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

По курсу «Основы алгоритмизации и программирования»

Вариант № 2

Минск, 2010

Содержание

Задание №1…………………………………………………………………………...…3

Задание №2……………………………………………………………………………...4

Задание №3………………………………………………………………………..….…6

Задание №4……………………………………………………………………………...9

Задание №5…………………………………………………………………………….11

Литература……………………………………………………………………………..13

Задание №1.

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

При x = –4.5, y = 0.7510-4, z = 0.845102u = –55.6848.

Решение задачи.

Код программы:

#include <iostream.h>

#include <conio.h>

#include <math.h>;

#pragma hdrstop

int main()

{

double x,y,z,a,e,b,c,d,rez;

//вводим данные

cout<<"enter x, y, z = "<<endl;

cin>>x>>y>>z;

//числитель

a = pow((8+pow(fabs(x-y),2)+1),(1.0/3));

//знаменатель

b = (pow(x,2)+pow(y,2)+2);

//дробь

c = a/b;

//экспонента

e = exp(fabs(x-y));

//умножение экспоненты на скобки

d = e*pow((pow(tan(z),2)+1),x);

//результат

rez = c-d;

cout<<"rezult: "<<rez;

getch();

return 0;

}

Результаты:

Задание №2.

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

rez =

Решение задачи.

Код программы:

#include <iostream.h>

#include <math.h>

#include <conio.h>

#pragma hdrstop

int main()

{

double rezult, f, o;

//вводим данные

cout<<"enter F,O: "<<endl;

cin>>f>>o;

//проверка выполнения первого условия

if (fabs(f)<5*fabs(o))

{

rezult = log(fabs(2*f-3*pow(exp(o),2)));

cout<<endl;

cout<<"|F| < 5|O|"<<endl;

cout<<"rezult = "<<rezult<<endl;

}

//проверка выполнения второго условия

else

{

if ((5*fabs(o)<fabs(f))&&(fabs(f)<=7.5*fabs(o)))

{

rezult = log(fabs(2*pow(f,2)-3*o));

cout<<endl;

cout<<"5|O|<|F|<=7.5|O|"<<endl;

cout<<"rezult = "<<rezult<<endl;

}

//если ни одно из условий не выполнено

else

{

cout<<endl;

cout<<"net reshenij"<<endl;

}

}

getch();

return 0;

}

Результаты:

Выполнение 1-го условия

Выполнение 2-го условия

Выполнение 3-го условия

Задание №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 <vcl.h>

#include <iostream.h>

#include <math.h>

#include <conio.h>

#pragma hdrstop

int main()

{

double y,x,a,b,h,sum;

int k=1,n,i;

//вводим данные

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

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

//расчитываем сумму ряда для каждого икса

for (x=a;x<=b;x+=h)

{

sum = 0;

//рассчитываем сумму для отдельного икса

for (k=1;k<=n;k++)

{

sum+=pow(-1,(k+1))*pow(x,2*k)/(2*k*(2*k-1));

}

//выводим результаты и сравниваем сумму ряда со значением заданной функции

y = x*atan(x)-log(sqrt(1+pow(x,2)));

cout<<endl;

cout<<"x = "<<x<<" "<<"sum = "<<sum<<endl;

cout<<"Y(x) = "<<y<<endl;

cout<<"|S(x)-Y(s)| = "<<fabs(sum-y)<<endl;

}

getch();

return 0;

}

Результаты:

Задание №4.

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

Решение задачи.

Код программы:

#include <vcl.h>

#include <iostream.h>

#include <conio.h>

#pragma hdrstop

int main()

{

int a[20],i,n,niz,verh,sum;

verh,niz,sum=0;

bool k=false;

//вводим натуральное число элементов

do

{

cout<<"enter the number of elements, N > 0: ";

cin>>n;

}

while(n<=0);

//заполняем массив

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

{

cout<<"enter the "<<i+1<<" element: ";

cin>>a[i];

}

//находм первый ноль

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

{

if (a[i]==0)

{

niz=i;

k=true; //индикатор нуля

break;

}

else niz=0;

}

//находим последний ноль

for (i=n-1;i>=0;i--)

{

if (a[i]==0)

{

verh=i;

break;

}

//если нулей нет, то верхняя граница равна нулю

else verh=0;

}

//вспомогательный код, показывающий номера первого и последнего нуля

cout<<"niz "<<niz+1<<endl;

cout<<"verh "<<verh+1<<endl;

//если нулей нет, то сумма ноль

if (k==false)

{

sum=0;

}

//иначе считаем сумму между первым и последним нулем

else

{

for (i=niz+1;i<verh;i++)

{

Результаты:

Задание №5.

В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.

Найти произведение элементов, расположенных на главной диагонали.

Решение задачи.

Код программы:

#include <iostream.h>

#include <conio.h>

#pragma hdrstop

int prod(int**,int,int);

int main()

{

int i,j,n,m,**a;

//вводим размерность массива, матрица должна быть квадратной

do

{

cout<<"enter N, M for array: ";

cin>>n>>m;

}

while(n!=m);

//выделяем память под указатели

a = new int*[n];

//выделяем память под элементы

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

a[i]=new int[m];

//вводим массив

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

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

{

cout<<"a["<<i<<"]["<<j<<"] = ";

cin>>a[i][j];

}

//выводим заданную матрицу

cout<<endl;

cout<<"matrix: ";

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

{

cout<<endl;

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

{

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

}

}

cout<<endl;

//вызов функции и вывод произведения элементов главной диагонали

cout<<"product: "<<prod(a,n,m)<<endl;

getch();

return 0;

}

//объявление функции

int prod(int **arr,int nn,int mm)

{

int pr,ii,jj;

pr=1;

for (ii=0;ii<nn;ii++)

pr*=arr[ii][ii];

return pr;

}

Результаты:

Литература

1) Методические указания по выполнению контрольной работы по курсу «Основы алгоритмизации и программирования» (ОАиП) для студентов заочного отделения ИИТ. Мн., 2007

2) .Л.Бусько, А.Г.Корбит, Т.М.Кривоносова Конспект лекций по курсу «Основы алгоритмизации и программирования». Мн., 2004.

3) Б.В. Керниган, Д.М. Ричи. Б.В. Керниган, Д.М. Ричи. «Язык С». Издательство “Самиздат”, Львов 2002.

13