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

ИТиУвТС / ОАиП

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

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

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

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

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

Специальность «Информационные технологии и

управление в технических системах»___________

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

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

Вариант №_8_

Студент-заочник_1_ курса

Группы № 082426_______

ФИО Редько Светланы________

Викторовны_________________

Адрес ул. Советская д.59,______

Кв 39, г.п. Подсвилье,_________

Глубокский р-он,Витебская обл.

211797______________________

Тел. 8 (029) 513-56-16_________

Минск, 2010

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

При x = –2.23510-2, y = 2.23, z = 15.221   = 39.374.

#include <stdio.h>

#include <math.h>

void main()

{

float x, y, z, a, b ,c, rez;

x = –2.235*pow(10.-2); //присваиваем значение x

y = 2.23; //присваиваем значение y

z = 15.221; //присваеиваем значение z

a = pow(x,6)+pow(log(y),2); //присваиваем

b = atan(x)+atan(z); //присваиваем

c = exp(fabs(x-y))*pow(fabs(x-y),x+y); //присваиваем

rez = c/b+pow(a,1/3); //присваиваем

printf("\n x = %7.5f \n y = %7.5f \n z = %7.5f \n Rez = %7.5f \n", x, y, z, rez); //вывод на экран

}

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

Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий.

rez =

#include <conio.h> // #include <iostream.h>

#include <stdio.h>

#include <math.h>

void main()

{

float c,k,rez;

printf (“Введите значения с”);

scanf("%f ",&c); // вводим значение c

printf (“Введите значения k”);

scanf("%f ",&k); // вводим значение k

if (fabs(c+k)>2)

{ rez=pow(tan(c-2*k),2);

printf (“|c+k|>2”);

printf ( “значение выражения %f”,rez); // выводим значение выражения если |c+k|>2

}

else if (fabs(c+k)<=0.5)

{printf(“|c+k|<=0.5”);

printf (“неправильно ввели значения”);}

else { rez=log(fabs(c-2*k))-sin(c/2*k);

printf(“0.5<|c+k|<=2”);

printf ("\n значение выражения%f”,rez);} /* выводим значение выражения

если 0.5<|c+k|<=2 */

getch();

}

1 вариант введенные значения соответсвуют первому условию:

2 вариант введенные значения соответсвуют первому условию:

3 вариант введенные значения не соответсвуют ни одному из условий:

  1. Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.

Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.

, .

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main ()

{

float a,b,h,y,s,r,x;

int n,k;

printf (“ \n введите диапазон от а до b и шаг h \n”);

scanf (“ %f \n %f \n %f”,&,&b,&h);

printf (“ \n введите число членов ряда \t”);

scanf (“ %i”, &n);

printf (“ \n x \t y(x) \t s(x) \t |y(x)-s(x)|”); // создаем шапку для таблицы вывода зн-й

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

{ y=exp(2*x); //определяем значение функции в точке x

r=s=1;

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

{ r=r*2*x/k; // определяем сумму при каждом значении x

s+=r;}

printf (“ \n %2.1f \t %5.4f \t %5.4f \t %5.4f”,x,y,s,fabs(y-s));}

getch ();

}

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

#include <conio.h>

#include <stdio.h>

#define n 10

void main ()

{

int a[n],i,otr,sum;

printf (“\n введите массив”);

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

{ printf (“\n a[%i]”,i+1); // вводим массив

scanf (“%i”,&a[i]);}

printf(“\n введенный массив\n”)

for (i=0; i<n; i++) // выводим полученный массив

printf (“%5i”,a[i]);

sum=0;

for (i=0; i<n; i++) // определяем индекс последнего отриц. числа

if (a[i]<0) otr=i;

for (i=otr+1; i<n; i++)

sum+=a[i]; //считаем сумму членов после последнего отриц.

printf (“\n сумма %i”,sum);

}

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

Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.

Найти количество 0-й и 1-ц в массиве, а также сумму единиц.

#include <conio.h> // #include <iostream.h>

#include <stdio.h>

#include <math.h>

void EZ (int**,int,int); // описываем функцию пользователя

int main ()

{ clrscr();

int *a,n,m;

printf (“введите n, m:”); // вводим количество строк и столбцов

scanf (“ %d %d”,&n,&m);

a=new int*[n]; // занимаем место в памяти

for (i=0; i<n; i++) // ввод массива

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

{ printf (“ENTER a[%d][%d]=”,i+1,j+1);

scanf (“%d”,&a[i][j]);}

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

{printf (“\n); // вывод массива

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

printf (“ \t %d”, a[i][j])}

EZ(a,n,m); //вызов функции

delete (a); // освобождение памяти

printf (\n press button …”);

getch();

return (0);

}

void EZ (int**a,int n1,int m1) // решение с использованием функции

{

int z=0; ed=0; sum=0;

for (int i=0;i<n1;i++)

for (int j=0;j<m1;j++)

{ if (abs(a[i][j]==1) {ed++; sum+=a[i][j];} // определяем число единиц и их сумму

if (a[i][j]==0) z++; // определяем число нулей

}

ЛИТЕРАТУРА

1. Батура М.П., Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Основы алгоритмизации и программирования. Язык Си : учеб. пособие. – Минск : БГУИР, 2007.

2. Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Конспект лекций по курсу «Основы алгоритмизации и программирования» для студентов всех специальностей и всех форм обучения. - Мн.: БГУИР, 2004.

3. Бусько В.Л., Карцев В.Т., Кривоносова Т.М., Навроцкий А.А. Основы программирования в среде С++ Builder: лаб.практикум по курсу «Основы алгоритмизации и программирования» для студ. 1 – 2-го курсов БГУИР. В 2 ч. Ч.1 . – Минск: БГУИР, 2007.

7