Линейные вычислительные процессы
Циклические вычислительные процессы. Вычисления по рекуррентным формулам Решить задачу вычисления значения функции, содержащей сумму или (и) произведение. Варианты заданий приведены в табл. 4.1. В этой таблице приведены вид функции и рабочий набор исходных данных. Задание: по рекуррентным формулам необходимо вычислить сумму или произведение,. Циклические вычислительные процессы. Задача… Читать ещё >
Линейные вычислительные процессы (реферат, курсовая, диплом, контрольная)
МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Чувашский государственный университет имени И.Н. Ульянова»
Факультет дизайна и компьютерных технологий Кафедра компьютерных технологий ОТЧЕТ ПО УЧЕБНОЙ ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ Выполнил:
студентка гр. ДиКТ-41−12
Краснова О.И.
Проверил:
ст. преподаватель Мытникова Е.А.
Чебоксары
Задание 1
Линейные вычислительные процессы Необходимо решить задачу вычисления и вывода значений функций y = f1(x) и z = f2(y, a, b).
Функция y = f1(x) | Функция z = f2(y, a, b) | Рабочий набор | ||||
x | a | b | ||||
2,5 | 6,1 | |||||
Блок схема:
Код Программы:
#include
#include
#include
int main ()
{
float a, b, x;
double z, y; //создаем нужные нам переменные вещественного типа.
printf («Vvedite znachenia x = n»);
scanf («%f» ,&x);
printf («Vvedite znachenia a = n»);
scanf («%f» ,&a);
printf («Vvedite znachenia b = n»);
scanf («%f» ,&b); //вводим исходные данные.
y = (sin (x)*sin (x)*sin (x) + 3.7)/5; //вычисляем функцию у.
z = (sqrt (14*y+2)+6)/(sqrt (14*y+2)+cos (b)+a); // вычесляем функцию z
printf («Resultat: y = %f; z = %f;», y, z);
//cout «» Resultat: n" ;
//cout ««y = «» y «» n» ;
//cout ««z = «» z «» n»; // выводим результат на экран.
getchar ();
getchar ();
}
Скрин результатов:
Задание 2
Разветвляющиеся вычислительные процессы Вычисления значения функции y=f (x), при х =19,8
Блок схема:
Код программы:
#include
#include
#include
int main ()
{
float x;
double y; //создаем нужные нам переменные вещественного типа.
printf («Vvedite znachenia x = n»);
scanf («%f» ,&x);
if (x>20)
{y=sin (x)*sin (x)/2;}
else
if ((x<=20)&&(x>=6))
{y = pow (x, 1/3);}
else
if ((x<6)&&(x>-4))
{y=sin (x)*sin (x);}
else {y=0;}
printf («Resultat: y:%f», y);
getchar ();
getchar ();
}
Скрин результата:
Задание 3
Циклические вычислительные процессы. Задача табулирования Необходимо решить на ЭВМ задачу вычисления N значений функции y = f (x) для ряда равноотстоящих значений аргумента x, начиная от значения x = xнач вплоть до значения x = xкон. Функция y = f (x) зависит от параметра a. Результаты вычислений следует оформить в виде таблицы, снабженной заголовком.
Вид функции y = f (x) | Рабочий набор исходных данных | ||||
N | a | xнач | xкон | ||
1,5 | 3,5 | ||||
Блок схема:
Код программы:
#include
#include
#include
int main ()
{
float x, x0, x_kon, det_x, a;
int N;
double y; //создаем нужные нам переменные вещественного типа.
printf («Vvedite znachenia N = n»);
scanf («%d» ,&N);
printf («Vvedite znachenia a = n»);
scanf («%f» ,&a);
printf («Vvedite znachenia x0 = n»);
scanf («%f» ,&x0);
printf («Vvedite znachenia x_kon= n»);
scanf («%f» ,&x_kon);
det_x = ((x_kon-x0)/N); //вычисляем шаг для х
x = x0; //вводим переменную x для цикла
printf («N x yn»); //выводим на экран заголовок таблицы
printf («%fn», det_x);
for (int i =0; i < N; i++) //запускаем цикл по i, изменяемое от 0 до N-1, с шагом 1
{
y = log (x*x*x*x +a*a)/(a*a*a*a+28); //вычисляем у
printf («%d %f %f n», i+1,x, y); //выводим на экран текущее значение х и у
x=x+det_x; //делаем шаг
}
// погрешность в х из-за того что 0,8 333 333 бесконечно
getchar ();
getchar ();
}
Скрин результата:
Задание 4
Циклические вычислительные процессы. Вычисления по рекуррентным формулам Решить задачу вычисления значения функции, содержащей сумму или (и) произведение. Варианты заданий приведены в табл. 4.1. В этой таблице приведены вид функции и рабочий набор исходных данных. Задание: по рекуррентным формулам необходимо вычислить сумму или произведение,
Функция | Рабочий набор | ||
n | х | ||
Блок схема:
Код программы:
#include
#include
#include
using namespace std;
int main ()
{
int n;
float i, x;
long double y; //создаем нужные нам переменные вещественного типа.
printf («Vvedite znachenia n = n»);
scanf («%d» ,&n);
printf («Vvedite znachenia x = n»);
scanf («%f» ,&x);
i = 2;//вводим исходные данные.
y = 1; // приравниваем изначально у = 1
while (i<=n) // пока i меньше либо равно n выполняем
{
y = (x/(x+4) — x*sqrt ((float)1+1/i))*y; //вычисляем произведение.
i++; // делаем шаг
}
y=4*y; //вычислляем итоговое значение у
printf («Resultat: y = %f», y); //выводим результат
getchar ();
getchar ();
}
Скрин результата:
Задание 5
Программирование вложенных циклов В работе необходимо вычислять значение (я) функции y = f (x). Варианты заданий отличаются видом функции (табл.5.1). В нечетных вариантах заданий необходимо вычислять значение функции для одного значения аргумента x, а в четных следует решать задачу табулирования. При вычислении значения функции оказывается необходимым вычислять несколько сумм (произведений). Вычисление некоторых сумм (произведений) может потребовать организации вложенных циклов.
Функция | Рабочий набор | |||||
x | m | Xнач | xкон | n | ||
; | ||||||
Блок схема:
Код программы:
#include
#include
#include
using namespace std;
int main ()
{
int n;
float x, x0, x_kon, det_x, s1, s2,y, m; //создаем нужные нам переменные вещественного типа.
printf («Vvedite znachenia n = n»);
scanf («%d» ,&n);
printf («Vvedite znachenia x0 = n»);
scanf («%f» ,&x0);
printf («Vvedite znachenia x_kon= n»);
scanf («%f» ,&x_kon);
printf («Vvedite znachenia m= n»);
scanf («%f» ,&m);
s1=0;
s2=0;
//вводим исходные данные.
det_x=(x_kon-x0)/n; //вычисляем шаг х
x=x0;
printf («n x y n»);
for (int i = 1; i<=m;i++)
{s1=s1 + i*i;} //считаем 1 сумму отдельног т.к. она не зависит от х
for (int j =0; j
{
for (int i = 1; i<=m;i++) // вычисляем сумму s2
{
s2+=(1+i*x)*(1+i*x);
}
y = pow ((1+(2+s1+s2)*(2+s1+s2)),(float)0.25); //вычисляем у. (сделали привидение типов)
printf («%d %f %f n», j+1,x, y); //выводим на экран
x+=det_x; // делаем шаг
s2=0; //обнуляем 2 сумму
}
getchar ();
getchar ();
}
Скрин программы:
Задание 6
Одномерные массивы Найти количество отрицательных элементов массива.
Блок схема:
Код программы:
#include
#include
#include
using namespace std;
int main ()
{ const int n = 10;
int massiv[n];
int sum=0;
printf («Vvedite znachenia massiva: n»);
for (int i = 0; i
{
printf («%d: «, i+1);
scanf («%d» ,&massiv[i]);
if (massiv[i]<0)
{sum+=1;}
}
printf («Resultat: %d», sum); //выводим результат
getchar ();
getchar ();
}
Скрин результата:
Задание 7
Двумерные массивы функция вычислительный матрица цикл Найти сумму всех элементов матрицы.
Блок схема:
Код программы:
#include
#include
#include
using namespace std;
int main ()
{ const int n = 4, m = 3;
int massiv[n][m];
int sum=0;
printf («Vvedite znachenia massiva: n»);
for (int i = 0; i
for (int j = 0; j
{
printf («[%d,%d]: «, i+1,j+1);
scanf («%d» ,&massiv[i][j]);
sum+=massiv[i][j];
}
printf («Resultat: summa = %d», sum); //выводим результат
getchar ();
getchar ();
}
Скрин результата:
Задание 8
Работа с квадратными массивами Квадратную матрицу 5-го порядка заполнить единицами и нулями в шахматном порядке.
Блок схема:
Код программы:
#include
#include
#include
using namespace std;
int main ()
{ const int n = 5;
int massiv[n][n];
for (int i = 0; i
for (int j = 0; j
{
if ((i+j)%2==0) // если сумма индексов четна, то ставим 0 (для того чтобы начать с 1 нужно поменять условие на (i+j)%2≠0
massiv[i][j]=1;
else
massiv[i][j]=0;
}
printf («Resultat: n»);
for (int i = 0; i
{ for (int j = 0; j
printf («%d «, massiv[i][j]);//выводим массив
printf («n»);
}
getchar ();
}
Скрин результата: