Новосибирский Государственный Технический Университет

Кафедра прикладной и теоритической физики

Факультет радиотехники и электроники

 

Расчетно-графическое задание по курсу «Информатика»

Вариант №17

 

Задание РГЗ №1 Задание РГЗ №2 Задание РГЗ №3 Задание РГЗ №4
       

 

 

Выполнил:

студент группы РТВ14-22

Полященков В.В

Проверил:

преподаватель Дуркин В.В.

 

Новосибирск 2012

Содержание:

1. Задание РГЗ №1…………………………………………………………………..3-5

2. Задание РГЗ №2…………………………………………………………………6-10

3. Задание РГЗ №3……………………………………………………………….11-14

4. Задание РГЗ №4……………………………………………………………….15-17

 


 

Задание РГЗ №1

1.Задание:

С помощью оператора if определить, находится ли точка на плоскости в замкнутой области. Если находится, то вычислить значение функции f1 (x,y), если нет – то значение фунции f2 (x,y). Результаты выдать на экран монитора. Значения x и y ввести с клавиатуры компьютера.

 

 

X
-3
  y + x = 4
y

 

 


2. Схема алгоритма.

Начало

P AAAAZHJzL2Rvd25yZXYueG1sTI/BTsMwDIbvSLxDZCRuLCWDFUrTCRAFoZ0YCK5ZY9pqiVM12Vbe HiMOcLT96ff3l8vJO7HHMfaBNJzPMhBITbA9tRreXuuzKxAxGbLGBUINXxhhWR0flaaw4UAvuF+n VnAIxcJo6FIaCilj06E3cRYGJL59htGbxOPYSjuaA4d7J1WWLaQ3PfGHzgx432GzXe+8huwpzB9d XZvt+/PdZfqglV095Fqfnky3NyASTukPhh99VoeKnTZhRzYKp2Geq2tGNVzkCgQDv4sNk0otQFal /F+h+gYAAP//AwBQSwECLQAUAAYACAAAACEAtoM4kv4AAADhAQAAEwAAAAAAAAAAAAAAAAAAAAAA W0NvbnRlbnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQA4/SH/1gAAAJQBAAALAAAAAAAAAAAA AAAAAC8BAABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQDF3tgG/wEAAAYEAAAOAAAAAAAAAAAA AAAAAC4CAABkcnMvZTJvRG9jLnhtbFBLAQItABQABgAIAAAAIQA4bQZT3QAAAAoBAAAPAAAAAAAA AAAAAAAAAFkEAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABADzAAAAYwUAAAAA " strokecolor="black [3040]" strokeweight="1.5pt">

«введите x, y»
x, y, f



 
x, y

 

 

НЕТ -----Да-------[((x<=3&&y<=3&&x>=0&&y>=0)

||(x<=0&&x>=-3&&y>=0&&y<=3)

||(x>=0&&y<=0&&(x*x+y*y)<=4))

«входит»
«не входит»

f=sin(x)*sin(x)+log(fabs(y))
f=(x+sin(y))/cos(x*y)

 

 

«f=», f

 


 


конец

 

 

3.Текст программы.

#include<iostream>

#include<math.h>

using namespace std;

void main ()

{

setlocale(LC_ALL,"rus_rus.1251");

float x,y,f;

cout<<"введите x,y"<<endl;

cin>>x>>y;

if ((x<=3 && y<=3 && x>=0 && y>=0)

|| (x<=0 && x>=-3 && y>=0 && y<=3)

|| (x>=0 && y<=0 && (x*x+y*y)<=4))

{

f=sin(x)*sin(x)+log(fabs(y));

cout<<"входит"<<endl;

}

else

{

f=(x+sin(y))/cos(x*y);

cout<<"не входит"<<endl;

}

cout<<"f="<<f;

 

}

4.Тестовый пример:

Введите x, y

“входит”

f= 1,92543

 

 


 

Задание РГЗ №2

 

1.Задание:

С помощью оператора цикла for вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения переменных i и j указывается только в том случае, если он отличается от единицы.

a)

 

n>=2

б)

 

2. Схема алгоритма.

Начало

а)

s,a,p, pi=3.1415, n,k,i  
«введите n»
“введите n>2”,n
T sXBwJBF4b/uYIOraxF5lMvtxHlGYSYq4u7bVISmUxRMZKZUdTR+dev9M+/u/5uoHAAAA//8DAFBL AwQUAAYACAAAACEAn/smId4AAAALAQAADwAAAGRycy9kb3ducmV2LnhtbEyPTU7DMBCF90jcwRok NojaNBA1IU4FRcAGkNpyACcekoh4HMVuGm7PIBawnDef3k+xnl0vJhxD50nD1UKBQKq97ajR8L5/ vFyBCNGQNb0n1PCFAdbl6UlhcuuPtMVpFxvBJhRyo6GNccilDHWLzoSFH5D49+FHZyKfYyPtaI5s 7nq5VCqVznTECa0ZcNNi/bk7OA3bZHJv1UudJa/Jhcs2D8/3T5a0Pj+b725BRJzjHww/9bk6lNyp 8geyQfQarpdpxqiGm0TxKCZ+lYqVLFUgy0L+31B+AwAA//8DAFBLAQItABQABgAIAAAAIQC2gziS /gAAAOEBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgA AAAhADj9If/WAAAAlAEAAAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgA AAAhAL0xAGAYAgAA4gMAAA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9Eb2MueG1sUEsBAi0AFAAG AAgAAAAhAJ/7JiHeAAAACwEAAA8AAAAAAAAAAAAAAAAAcgQAAGRycy9kb3ducmV2LnhtbFBLBQYA AAAABAAEAPMAAAB9BQAAAAA= " strokeweight="1.5pt">

K=2; k<=n; k++
i=1;i<=(k-1); i++
a=sin(pi*i/k)
s+=p
p*=a
s=0

 

 


конец
p=1
“s=”, s

 

 


Начало
б)

s+=exp(cos(pi*i/8*m))
конец
s,pi=3.1415 I,n,m    
“введите n>2 , m”
n,m
i=2; i<=m*n; i++
“s=”,s
s=0

3.Текст программы.

а)

#include<iostream>

#include<math.h>

using namespace std;

void main()

{

setlocale(LC_ALL,"rus_rus.1251");

float s,a,p,pi=3.1415;

int n,k,i;

cout<<"введите n > 2"<<endl;

cin>>n;

s=0;

for(k=2; k<=n;k++)

{

p=1;

for(i=1; i<=(k-1); i++)

{

a=sin(pi*i/k);

p*=a;

}

s+=p;

}

cout<<"s="<<s;

}

б)

#include<iostream>

#include<math.h>

using namespace std;

void main()

{

setlocale(LC_ALL,"rus_rus.1251");

float s,pi=3.1415;

int i,n,m;

cout<<"введите n>2 m "<<endl;

cin>>n>>m;

s=0;

for(i=2; i<=m*n; i++)

{

s+=exp(cos(pi*i/8*m));

}

cout<<"s="<<s;

}

4.Тестовый пример.

а)

Введите n > 2

S= 2.25004

б)

Введите n>2 m

2 3

s=3.35391


 

Задание РГЗ №3

1.Задание:

Определить : 10 членов ряда; абсолютную разность между табличной функцией и суммой ряда. Функцию pow() в программе не применять! Для вычисления члена ряда необходимо использовать рекуррентные соотношения, т.е. выражать последующий член суммы через предыдущий Выражение для D(n) студент должен найти самостоятельно. Значение x вводить с клавиатуры.

Функция: (

Ряд :

Общий член :

Область допустимых значений : 0.1 x 1

 

2. Выражение D(n)

D= = =

3.Схема алгоритма:

Начало

s,b,x,n,y,d,a

 


“введите 0.1<=x<=1”

x


s=0 y=1
n=1;n<=10;n++


-----------[d=((n*n+1)*x)/(2*n*((n-1)*(n-1)+1))]

 

y*=d
s+=y
" ",n, " ",d



конец
 
“абсолютная разность=”, b
“значение функции = “, a
b=fabs(a-s)
a=(x*x/4+x/2+1)*exp(x/2)


------------["сумма ряда = ",s]  

4. Текст программы.

#include<iostream>

#include<math.h>

using namespace std;

void main()

{

setlocale(LC_ALL,"rus_rus.1251");

int n;

float d,a,x,s,b,y;

cout<<"введите 0.1<=x<=1"<<endl;

cin>>x;

s=1;

y=1;

for(n=1;n<=10;n++)

{

d=((n*n+1)*x)/(2*n*((n-1)*(n-1)+1));

y*=d;

s+=y;

cout<<" "<<n<<" "<<d<<endl;

}

a= (x*x/4+x/2+1)*exp(x/2);

b=fabs(a-s);

cout<<"значение функции = "<<a<<endl;

cout<<"абсолютная разность = "<<b<<endl;

cout<<"сумма ряда = "<<s<<endl;

}

5. Тестовый пример.

Введите 0.1<= x<=1

0.66

1 0.66

2 0.4125

3 0.22

4 0.14025

5 0.100941

6 0.0782692

7 0.0637066

8 0.0503625

9 0.0462564

10 0.0406463

Значение функции = 2,00146

Абсолютная разность = 0

Сумма ряда = 2.00146


 

Задание РГЗ №4

 

1.Задание:

Написать и протестировать функцию, которая определяет номера столбцов и строк, на пресечении которых находится минимальный и максимальный элементы.

 

2.Схема алгоритма:

Начало

 
max=0; min=100; xmax=0; ymin=0;
i=1;i<6; i++
j=1; j<6; j++
a[i][j]=rand()%89+10
a[i][j], “ “
 
-------------[max,min,xmin,xmax,ymin,ymax, i,j,a[6][6]]

 

 
j=1; j<6; j++
i=1; i<6; i++
a[i][j]>max
ymax=j
max=a[i][j]
xmax=i
a[i][j]<min

 


Нет

Да

 


Нет
Да

конец
min=a[i][j]
xmin=i
ymin=j
 
 
--------["минимальное число = ",min,"№ строчки = "xmin,"№ столбца = ",ymin]
------[“максимальное число =” ,max,"№ строчки = ",xmax,"№ столбца = "<<ymax]

3. Текст программы.

#include<iostream>

#include <math.h>

using namespace std;

void main ()

{

setlocale(LC_ALL,"rus_rus.1251");

int max,min,xmin,xmax,ymin,ymax,i,j,a[6][6];

max=0;

min=100;

xmax=0;

ymin=0;

for (i=1;i<6;i++)

{

for (j=1;j<6;j++)

{

a[i][j]=rand()%89+10;

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

}

cout<<endl;

}

cout<<endl;

for (i=1;i<6;i++)

for (j=1;j<6;j++)

{

if (a[i][j]>max)

{

max=a[i][j];

xmax=i;

ymax=j;

}

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

{

min=a[i][j];

xmin=i;

ymin=j;

}

}

cout<<"максимальное число = "<<max<<endl<<"№ строчки = "<<xmax<<endl<<"№ столбца = "<<ymax<<endl;

cout<<"минимальное число = "<<min<<endl<<"№ строчки = "<<xmin<<endl<<"№ столбца = "<<ymin<<endl;

}

4.Тестовый пример.

51 54 25 77 44

70 96 87 94 88

19 31 62 16 92

56 68 26 31 17

94 18 85 74 35

Максимальное число = 96

№ строчки = 2

№ столбца = 2

Минимальное число = 16

№ строчки = 3

№ столбца = 4