bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [236]
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ИТиУвТС » Другое

ОАИП 30 вариант
Подробности о скачивании 20.10.2011, 00:33
Вариант 30
Задача №1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
14. .
При x = 12.310-1, y = 15.4,
z = 0.252103  g = 82.8257.
187.345

Обобщенная схема алгоритма:

#include <iostream.h>
#include <conio.h>
#include <math.h>
int main()
{
double x, y, z, g ;
// ввод исходных даных
cout << "\n\t x,y,z = " << endl;
cin >> x >> y >> z;
//вычисляем
g = pow(y,x+1)/(pow(fabs(y-2),1/3.)+3)+(x+y/2)*pow(x+1,-1/sin(z))/(2*fabs(x+y));
// вывдим исходные данные и результат
cout << "\n x = " << x << "\n y = " << y << "\n z = " << z
<< "\ng = " << g << endl;
cout << "Press any key ... " << endl;
getch();// задержка
return 0;
}


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

14. rez =


Обобщенная схема алгоритма:

#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <math.h>
void main()
{
double r,m ,rez;
cout << "Input r, m" << endl;
cin >> r >> m;
if (r>-2*m) // первая ветвь
{
rez = exp(-fabs(m+r))+log(fabs(m));
cout << " r > -2m " << endl;
cout << "\n\t Rezultat rez = " << rez;
}
else if ((-2.5*m<r)&&(r<=-2*m)) // вторая
{
rez = exp(fabs(m+r))-log(fabs(m));
cout << " -2.5m<r<=-2m" << endl;
cout << "\n\t Rezultat rez = " << rez;
}
else cout << " vne diapazona!!! " << endl;
cout <<"\nPress any key ... " << endl;
getch();
}






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

14. , .

Обобщенная схема алгоритма:

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <math.h>
int main()
{
double a,b,h,x,y,s,p;
int n,k;
cout << "Vvedite a,b,h,n" << endl;
cin >> a >> b >> h >> n;
x=a;
cout <<"---- x ---- "<<" ---- y ---- "<<" ---- s ----"<<endl;
do
{
s=p=x;
for (k=1; k<=n; k++)
{p *= x*x/((2*k+1)*2*k);
s += p;
}
y=(exp(x)-exp(-x))/2;
cout << setw(9) << x << setw(15) << y << setw(15) << s << endl;
x += h;
}
while (x <= b+h/2);
cout << endl;
getch();
return 0;
}




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

Обобщенная схема алгоритма:

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i, s = 0;
do {
cout << "\t Input N (<=20) ";
cin >> n;
if (n>20) cout << "\t n > 20, vvedite zanovo"<< endl; }
while (n>20);
cout <<"\n\t Massiv A" << endl;
for(i = 0; i < n; i++) {
cout << "\t a[ " << i+1 << " ] = ";
cin >> a[i];
}
i=0;
while (a[i])
i++;
while (i<n-1)
{i++;
s+=abs(a[i]);
}
cout << "\n "<< "\t Summa = " << s << endl;
cout << "\n Press any key ... " << endl;
getch();
}





Задача №5
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
14. Найти число элементов массива = T* и перемножить эти элементы.

Обобщенная схема алгоритма:

Обобщенная схема алгоритма функции int Fun_Sum_Kol(int, int, int**, int*,int):

#include <iostream.h>
#include <conio.h>
int Fun_Sum_Kol(int, int, int**, int*,int); // Описание прототипа функции
void main()
{
int **a, i, j, n, m, pr, kol,T;
cout << "\t Input N, M, T : ";
cin >> n >> m>>T;
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];
}
cout <<"\n Matrix A:" << endl;
for(i=0; i<n; i++) {
for(j=0; j<m; j++)
cout << "\t" << a[i][j];
cout << endl;
}
// Обращение к функции с указанием фактических аргументов
pr = Fun_Sum_Kol(n, m, a, &kol,T);
cout << "\n Kol-vo = " << kol << "\t Proizvedenie = " << pr << endl;
for(i=0; i<n;i++)
delete a[i];
delete []a;// Освобождение памяти
cout << "\n\t Delete !" << endl;
cout << " Press any key ... " << endl;
getch();
}
/* Реализация описанной выше функции, в заголовке которой указаны формальные параметры, идентификаторы которых обрабатываются в ее коде */
int Fun_Sum_Kol(int a, int b, int **x, int *k,int t)
{
int i, j, s = 1;
*k = 0;
for(i=0; i<a;i++)
for(j=0; j<b;j++)
if(x[i][j] ==t){
(*k)++; // Скобки обязательны
s *= x[i][j];
}
return s;
}
Категория: Другое | Добавил: CeH9
Просмотров: 1529 | Загрузок: 29
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]