Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Министерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Институт информационных технологий
Специальность: Информационные технологии и управление в технических системах
КОНТРОЛЬНАЯ РАБОТА
По курсу ОАиП
Вариант № 8
Студента-заочника 1 курса
группы № 382471
ФИО Грабок Илья Алексеевич
адрес: г.Гомель ул.Б.Царикова д.20 корп.2 к.914
тел. +375293935260
Минск, 2013
№1
Блок-схема алгоритма
Код программы
#include <iostream.h>
#include <math.h>
int main ()
{ //начало главной функции
double x, y, z, s; //объявление переменных
cout << "Vvedite x: "; //ввод данных
cin >> x;
cout << "Vvedite y: ";
cin >> y;
cout << "Vvedite z: ";
cin >> z;
s=exp(fabs(x-y))*pow(fabs(x-y),x+y); //вычисления
s/=atan(x)+atan(z);
s+=pow(pow(x,6)+pow(log(y),2),1./3);
cout << "s = " << s << endl; //вывод результата
return 0; //завершение выполнения программы
} //конец главной функции
Результат
№2
Блок-схема алгоритма
Код программы
#include <iostream.h>
#include <math.h>
int main()
{
double x,y,s,f;
cout <<"Vvedite x: ";
cin >> x;
cout <<"Vvedite y: ";
cin >> y;
f=x/y;
if ((f<0)&&(y!=0))
{
s=pow(pow(x,2)+y,3);
cout << "\nVetv 1 \n";
}
else if ((f>0)&&(y!=0))
{
s=log(fabs(x/y))+x/y;
cout << "\nVetv 2 \n";
}
else
{
s=pow(fabs(sin(y)),1./3);
cout << "\nVetv 3 \n";
}
cout << "\nResult = "<< s << endl;
return 0;
}
Результат
№3
Блок схема алгоритма
Код программы
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
double Summa (double, int); //передача параметров по значению
void Summa (double*, int*, double*); //передача параметров по указателю
void Summa (double&, int&, double&); //передача параметров по ссылке
int main()
{
double s,x,a,b,h;
int n;
cout << "vvedite a, b, h, n:\n";
cin >> a >> b >> h >> n; //ввод данных
//вывод заголовка таблицы
cout << "\n Value" << setw(20) << "Pointer" << setw (24) << "Reference \n";
x=a;
do //начало цикла х
{ //передача параметров по значению
cout << setw(5) << x <<setw(10) << Summa(x,n);
//передача параметров по указателю
Summa(&x, &n, &s);
cout << setw(10) << x << setw(10) << s;
//передача параметров по ссылке
Summa(x, n, s);
cout << setw(10) << x << setw(10) << s << endl;
x+=h; //изменение значения х на величину шага h
}
while (x<=b+h/2); //проверка условия продолжения цикла по х
cout << endl; //переход на новую строку
return 0;
}
double Summa (double x, int n) //передача параметров по значению
{
double s;
int i;
s=0;
for (i=1; i<=n; i++) //цикл вычисления суммы
s+=(2*pow(i,2)+1)*pow(x,2*i-2)/(2*i);
return s; //передача результата s в главную функцию
}
void Summa (double *x, int *n, double *s) //передача параметров по указателю
{
int i;
*s=0;
for (i=1; i<=*n; i++)
*s+=(2*pow(i,2)+1)*pow(*x,2*i-2)/(2*i);
}
void Summa (double &x, int &n, double &s) //передача параметров по ссылке
{
int i;
s=0;
for (i=1; i<=n; i++)
s+=(2*pow(i,2)+1)*pow(x,2*i-2)/(2*i);
}
Результат
№4
Код программы
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
void Fun (int a[], int, double*); //прототип функции
int main()
{
int a[10], i, n;
double P;
cout << "Vvedite razmer massiva: "; //ввод размерности массива
cin >> n;
cout << "\nVvedite massiv:\n";
for (i=0; i<n; i++) //цикл ввода массива
{
cout << "Vvedite a["<<i<<"]=";
cin >> a[i];
}
cout << "\nMassiv a:\n";
for (i=0; i<n; i++) //цикл вывода массива
cout << setw(7) << a[i];
cout << endl;
Fun (a, n, &P); //вызов функции
cout << "\nProizvedenie = " <<P << endl; //вывод результата
return 0;
}
void Fun (int a[], int n, double *P)
{
int i, imin, k;
*P=1;
imin=k=0;
for (i=1; i<n; i++) //цикл поиска мин.элемента
if (a[i]<a[imin])
imin = i; //запись номера минимального элемента
if (imin<n-1)
for (i=imin+1; i<n; i++) //вычисление произв.четных отриц. элементов после миним.
if ((a[i]%2==0)&&(a[i]<0))
{
*P*=a[i];
k++;
}
if (k==0)
*P=0; //вычисление произведения
}
Результат
После минимального есть четные отрицательные элементы:
После минимального нет четных отрицательных:
Минимальный элемент последний:
№5
Код программы
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
void Fun (int**, int, int*);
int main()
{
int **a, i, j, n, min;
cout << "Vvedite razmer kvadr. massiva A:\n";
cout << "row n=";
cin >> n;
a=new int *[n]; //выделение памяти под массив указателей
for (i=0; i<n; i++) //выделение памяти под соответствующие
a[i]=new int [n]; //этим указателям строки матрицы
cout << "\nVvedite massiv A:\n"; //ввод элементов массива
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
cout << "Vvedite a["<<i<<"]["<<j<<"]: ";
cin >> a[i][j];
}
cout << "\nMassiv A:\n";
for (i=0; i<n; i++) //цикл вывода массива
{
for (j=0; j<n; j++)
cout << setw(9) << a[i][j];
cout << endl;
}
Fun (a, n, &min); //вызов функции
cout << "\nMin. element = " << min << endl;
for (i=0; i<n; i++) //освобождение выделеленной памяти
delete [] a[i];
delete []a;
a=NULL;
return 0;
}
void Fun (int **a, int n, int *min)
{
int i, j;
*min=a[0][0]; //первоначальный минимальный элемент
for (i=0; i<n; i++)
for (j=0; j<i; j++)
if (a[i][j]<*min) //поиск мин.элемента выше главной диагонали
*min=a[i][j];
}
Результат