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

ИТиУвТС / Контрольная работа Вариант 4

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

Задача 1:

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

4. .

При x = 0.4104, y = –0.875,

z = –0.47510-3w = 1.9873.

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

double x, y, z, a, b ,c, w;

puts("\n\t x,y,z= "); // Ввод значений

scanf("%lf %lf %lf", &x, &y, &z);

a = sin(y)*sin(y)*2 + 1 ; //Расчет

b = fabs(cos(x)- cos(y));

c = (1 + z + z*z/2 + pow(z,3)/3 + pow(z,4)/4);

w = pow(b,a)*c;

printf("\n x = %7.3l f\n y = %7.3lf\n z = %7.3lf\n w = %lf\n", x, y, z, w);// Вывод значений

puts("Press any key ... ");

getch();

return 0;

}

Задача2:

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

rez =

Решение:

#include <conio.h>

#include <stdio.h>

#include <math.h>

void main()

{

double r, m, rez,y,x ;

puts("Input r, m");

scanf("%lf %lf", &r, &m);

x=fabs(r);

y=fabs(m)+ 0.5;

if (x==y){ //Оператор сравнения

puts(" Error! ");

}

else {

if (x > y) {

rez =sqrt(fabs(r-m))*pow(cos(r*r),3) ;

puts("|r| > |m| +0.5");

printf("\n result = %lf ", rez);

}

else {

if (0.5 < x ) {

rez = (4*r+3*m)/(pow(r,3)+m*m)*pow(sin(m*m*m),2);

puts("0.5< |r| < |m| +0.5");

printf("\n result = %lf ", rez);

}

else {

puts(" Error! ");

}

}

}

puts("\nPress any key ... ");

getch();

}

1 условие.

2условие

Задача 3

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

4. .

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

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

int n, k;

puts("Input a b h n ");

scanf("%lf%lf%lf%d", &a, &b, &h, &n);

sum= (pow(-1,0)* pow(x,0));

for(x=a ; x<=b; x+=h) { // Начало цикла

m=1;

sum= (pow(-1,0)* pow(x,0));

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

m=m*2*k ;

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

}

y= cos(x);

raz =fabs(y - sum);

printf("\n x=%6.2lf S(x)= %lf Y(x)=%lf |Y(x)- S(x)|=%lf ", x,sum, y,raz);

} //Выход из цикла

puts("\nPress any key ... ");

getch();

}

Задача 4.

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

4. Сумму элементов массива, расположенных между первым и последним положительными элементами.

#include <iostream.h>

#include <conio.h>

void main()

{

int kon=-1, nat=-1;

int a[20], n, i, s = 0 ;

cout <<" Input N (<=20) " ; // Ввод количества элементов массива

cin >> n;

cout <<"\n\t Massiv A" << endl;

for(i = 0; i < n; i++) { // Заполнение массива

cout << "\t a[ " << i+1 << " ] = ";

cin >> a[i];

if ( a[i] > 0 ){

kon= i; //Нахождение последнего положительного числа

}

}

for(i = 0; i < kon ; i++){ // Нахождение первого положительного числа

if (nat<0){

if (a[i]>0) {

nat= i+1;

} }

}

for(i= nat; i<kon ; i++) { //Нахождение суммы

s = s + a[i];

}

cout << "\t Summa = " << s << endl;

cout << "\n Press any key ... " << endl;

getch(); }

Задача 5:

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

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

4. Найти минимальный элемент и поменять его с первым элементом.

#include <iostream.h>

#include <conio.h>

int Fun_Min(int, int, int**);

void main()

{

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

cout << "\t Input N, M : ";

cin >> n >> m;

a = new int*[n];

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

a[i] = new int[m];

cout <<"\n Input A" << endl;

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

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

cout << "\t a[" << i+1 << "][" << j+1 << "] = ";

cin >> a[i][j];

}

**a= Fun_Min(n, m, a); //Обращение к функции

cout <<"\n Matrix A:" << endl;

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

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

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

cout << endl;

}

delete []a;

cout << "\n\t Delete !" << endl;

cout << " Press any key ... " << endl;

getch();

}

int Fun_Min(int a, int b, int **x)

{

int i, j, min = 0,k;

min = x[0][0];

k = x[0][0];

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

for(j=0; j<b;j++) {

if(x[i][j] < min)

min = x[i][j];

}

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

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

if (x[i][j]== min){

x[i][j]=k;

x[0][0]= min;

}

return **x;

}

Литература:

  1. Методические указания по выполнению контрольной работы по курсу «Основы алгоритмизации и программирования» для студентов заочного отделения ИИТ. / Корбит А.Г., Кривоносова Т.М. – Минск: БГУИР, 2007.

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

  3. Колосов С.В. Программирование в среде Delphi: Учеб. пособие. – Мн.: БГУИР, 2005. – 166 с.: ил.

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