Автор работы: Пользователь скрыл имя, 22 Января 2014 в 14:08, контрольная работа
#include <iostream.h> // директивы препроцессора
#include <math.h>
int main()
{ // начало главной функции
Министерство образования Республики Беларусь
БГУИР
Факультет заочного обучения
Кафедра: Вычислительных методов и программирования
Контрольная работа № 1
по дисциплине: «Основы алгоритмизации и программирования»
Выполнил студент гр. 100801 Специальности МСТК
|
|
Проверил: доцент Навродский А.А. Оценка: ________________ ________________________ (подпись) ________________________(дата) |
Вариант №10 |
||
Почтовый адрес: |
|
Задание№1
(Тема: Программирование линейных алгоритмов)
Условие:
Написать программу вычисления
значения выражения при
s =2-x*√x+4√|y|*3√e1-sinz
при: x = 3,981*10-2; y = –1,625*103; z = 0,512. Ответ: s = 1,26185.
Решение:
#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=pow(2,-x)*sqrt(x+pow(fabs(y)
cout <<"Resultat s="<<s<<endl; // вывод результата
return 0;
}
*В результате вычисления выражения с исходными данными в программе, получен, аналогичный указанному, результат.
Задание№2
(Тема: Программирование разветвляющихся алгоритмов)
Условие:
Составить программу вычисления. Предусмотреть вывод информации о выбранной ветви вычислений.
Решение:
#include <iostream.h> // директивы препроцессора
#include <math.h>
int main()
{
double x,y,a,b,s;
// объявление переменных с
cout <<"Vvedite x:"; cin>> x; // ввод исходных переменных
cout <<"Vvedite y:"; cin>> y;
a=fabs(x*y);
b=fabs(x);
// исключаем повторения
if
(a>10){
s=log(b+fabs(y)); cout<<"|x*y|>10, Resultat s="<<s<<endl; // считаем, выводим 1 ветвь
}
else if (a<10) { // иначе, начало функции «if» второй ветви
s=exp(x+y); cout<<"|x*y|<10, Resultat s="<<s<<endl; // считаем, выводим 2 ветвь
}
else {
s=pow(b,1/3.)+y; cout<<"|x*y|=10, Resultat s="<<s<<endl; // считаем, выводим 3 ветвь
}
return 0;
}
Задание№3
(Тема: Программирование циклических алгоритмов)
Условие:
Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1.
Решение:
#include <iostream.h> // директивы препроцессора
#include <math.h>
#include <iomanip.h>
int main()
{
double
x,y,a,b,h; //
объявление переменных с
int n,i; // объявление целых переменных с выделением памяти
cout<<"Vvedite kajdoe znachenie cheres ENTER: a,b,h,n:"<<endl;
cin>>a>>b>>h>>n; // ввод исходных переменных
x=a;
do
{
y=1;
for(i=1;i<=n;i++)
y+=pow(cos(x),i)/(2*i+1); // считаем ∑
cout<<setw(15)<<x<<setw(15)<<
x+=h;
}
while(x<=b+h/2); // условие продолжения цикла «do»
cout<<endl; // конец строки
return 0; // возврат ОС начального состояния
}
Задание№4
(Тема: Программирование с использованием одномерных массивов)
Условие:
Ввести одномерный статический массив из k чисел. Определить, симметричен ли массив, т.е. читается ли он одинаково слева направо и справа налево и вывести на экран исходные данные и полученный результат.
Решение:
#include <iostream.h> // директивы препроцессора
#include <math.h>
int main()
{ // начало главной функции
int a[10],i,k,b;
cout <<"Vvedite rasmer massiva:"; // ввод размера «k» массива
cin >> k;
for(i=0;i<k;i++)
cout <<"Vvedite a["<<i<<"]="; // ввод чисел массива
cin>> a[i];
}
cout <<"Massiv a:"; //вывод на экран массива «a»
cout <<endl; // конец строки
for(i=0;i<k;i++) // условие вывода «a[i]»
cout <<a[i]<<" "; // вывод a[i] с пробелом
cout <<endl; // конец строки
k--; // уменьшаем «k» для сдвига «a[i]» в пределы массива
for(i=0;i<b&&a[i]==a[k];i++) // условие сравнения крайних чисел
{
k--; // сдвиг влево для следующего сравнения
}
if(a[i]==a[k]) cout <<"Massiv simmetrichen"<<endl;
else cout <<"Massiv ne simmetrichen"<<endl;
return 0; // возврат ОС начального состояния
}
Задание№5
(Тема: Указатели. Программирование с использованием
динамических двумерных массивов)
Условие:
Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.
Решение:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int main()
{
double **a;
int i, j, n, m, imin, jmin;
cout << "Vvedite razmer: n, m" << endl;
cin >> n >> m;
a = new double*[n]; // Выделение памяти под массив указателей
for(i=0; i<n; i++) // Выделение памяти под соответствующие
a[i] = new double[m]; // этим указателям строки матрицы
for (i=0; i<n; i++)
for (j=0; j<m; j++) // Ввод двумерного массива
{
cout << "Vvedite a[" << i << "][" << j << "]: " ;
cin >> a[i][j];
}
cout << "Massiv A:" << endl; // Вывод двумерного массива
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
cout << setw (9) << a[i][j] << " ";
cout << endl;
}
imin=1; // Присваиваем min первому элементу под главной диагональю
jmin=0;
for(i=2;i<n;i++) // условия сравнения элементов
for(j=0;j<i;j++)
{
if( a[i][j]< a[imin][jmin])
{ imin=i;
jmin=j; }
}
cout << "Min = " << a[imin][jmin]<< endl;
for(i=0; i<n; i++)
delete[]a[i];
delete[]a;
return 0;
}