Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методические указания и примеры выполнения лабораторных работ 2 страница




Лабораторная работа 1.

Тема «Линейный и разветвляющийся алгоритм».

Постановка задачи. Составить блок-схему и программу для вычисления Y и Z по заданным формулам.

а) при х =0,12.

Рис. 7.1. Блок-схема Код программы: #include <iostream.h> #include <math.h> int main(){ double x, Y; x=0.12; Y=pow(pow(x,2.0)+x,0.5); cout<<"x="<<x<<endl; cout<<"Y="<<Y<<endl; return 0; }

Результат выполнения программы:

Ручной счет:

При х =0,12 .

Проверка результата в программе MathCad:

 

б) ,

где x, y считать с клавиатуры.

 

Рис. 7.2. Блок-схема Код программы: #include <iostream.h> #include <math.h> int main(){ double x,y,Z; cout<<"x="; cin>>x; cout<<"y="; cin>>y; if(pow(x,2.0)+pow(y,2.0)<2.0){ Z=pow(1.0-sin(pow(x,2.0)+pow(y,3.0)),2.0); } else{ Z=pow(pow(x,2.0)*y +8.0,0.5); } cout<<"Z="<<Z<<endl; return 0; }

Результат выполнения программы:

Ручной счет:

При х =0,2; у =1; x 2+ y 2=0,22+12=1,04 < 2 {первая ветвь}

Z =(1-sin(x 2+ y 3))2=(1-sin(0,22+13))2=(1-sin(1,04))2=0,019.

Проверка результатов в программе MathCad:

 

в) , где x, y считать с клавиатуры.


 

Рис. 7.3. Блок-схема Код программы #include <iostream.h> #include <math.h> int main(){ double x,y,Z, a,b; cout<<"x=";cin>>x; cout<<"y=";cin>>y; a=y*pow(x,0.5); b=sin(y)/x; Z=a; if(b<Z){ Z=b; } cout<<"Z="<<Z<<endl; return 0; }

Результат выполнения программы:

Ручной счет:

При х =3,5; у =1,6; ; ;

Z=min{2,993; 0,286}=0,286.

Проверка результатов в программе MathCad:

 

Лабораторная работа 2.

Тема «Циклический алгоритм».

Постановка задачи. Составить блок-схему и программу для вычисления таблицы значений функций Y и Z по заданным формулам.

а) при 0≤ х ≤5 с шагом 0,9; использовать операторы while, for, do while.

Рис. 7.4. Блок-схема с предусловием   Рис. 7.5. Блок-схема с постусловием  

Код программы с оператором while:

#include <iostream.h>

#include <math.h>

#include <iomanip.h>

int main(){

double x,Y;

cout<<setw(10)<<"x"

<<setw(10)<<"Y"<<endl;

x=0;

while(x<=5){

Y=pow(pow(x,2.0)+x,0.5);

cout<<setw(10)<<x

<<setw(10)<<Y<<endl;

x=x+0.9;

}

return 0;}

Результат выполнения программы:

 

Код программы с оператором for:

#include <iostream.h>

#include <math.h>

#include <iomanip.h>

int main(){

double x,Y;

cout<<setw(10)<<"x"

<<setw(10)<<"Y"<<endl;

for(x=0;x<=5;x=x+0.9){

Y=pow(pow(x,2.0)+x,0.5);

cout<<setw(10)<<x

<<setw(10)<<Y<<endl;

}

return 0;}

Результат выполнения программы:

Код программы с оператором do while:

#include <iostream.h>

#include <math.h>

#include <iomanip.h>

int main(){

double x,Y;

cout<<setw(10)<<"x"

<<setw(10)<<"Y"<<endl;

x=0;

do{

Y=pow(pow(x,2.0)+x,0.5);

cout<<setw(10)<<x

<<setw(10)<<Y<<endl;

x=x+0.9;

} while(x<=5);

return 0;}

Результат выполнения программы:

б) ,

при 0≤ х ≤1,2 с шагом 0,7; при 0≤ y ≤1 с шагом 0,5; использовать оператор for; найти сумму, произведение, минимальное и максимальное значение функции.

Код программы: (приложение Borland C++)   #include <iostream.h> #include <math.h> #include <iomanip.h> int main(){ double x,y,Z,S,P,min,max; cout<<setw(5)<<"x"<<setw(5) <<"y"<<setw(15)<<"Z"<<endl; S=0;P=1; min=10E10; max=-10E10; for(x=0;x<=1.2;x=x+0.7){ for(y=0;y<=1;y=y+0.5){ if(pow(x,2.0)+pow(y,2.0)<2){ Z=pow(1.0-sin(pow(x,2.0) +pow(y,3.0)),2.0);} else{ Z=pow(pow(x,2.0)*y +8.0,0.5);} cout<<setw(5)<<x<< setw(5)<<y<<setw(15) <<Z<<endl; S=S+Z; P=P*Z;  
Рис. 7.6. Блок-схема if(Z<min)min=Z; if(Z>max)max=Z; } } cout<<"S="<<S<<endl; cout<<"P="<<P<<endl; cout<<"min="<<min<<endl; cout<<"max="<<max<<endl; return 0;}

 

Результат выполнения программы:

 

в) , при 0,6≤ х ≤12 с шагом 7; при 0≤ y ≤3 с шагом 1,5; использовать оператор while.

Рис. 7.7. Блок-схема   Код программы: #include <iostream.h> #include <iomanip.h> #include <math.h> int main(){ double x,y,Z,a,b; cout<<setw(5)<<"x"<< setw(5)<<"y"<<setw(15) <<"Z"<<endl; x=0.6; while(x<=12){ y=0; while(y<=3){ a=y*pow(x,0.5); b=sin(y)/x; Z=a; if(b<Z)Z=b; cout<<setw(5)<<x<<setw(5) <<y<<setw(15)<<Z<<endl; y=y+1.5; } x=x+7.0; } return 0; }

Результат выполнения программы:

 

Лабораторная работа 3.

Тема «Массивы».

а) Одномерный массив Х(15) задать в программе. Найти максимальный из отрицательных элементов и поменять его местами с последним.

  Код программы: #include <iostream.h> #include <iomanip.h> int main(){ double X[15]={0.3,-1,5,2.5,7.3,2,-0.6,0.7,6.4,3,-9,0,5,-2,8}; double max,tmp; int i, imax; max=-10E10; for(i=0;i<15;i=i+1){ cout<<setw(5)<<X[i]; if(X[i]<0 && X[i]>max){ max=X[i]; imax=i; } } cout<<endl<<"max="<<max<<"pri i="<<imax<<endl; tmp=X[imax]; X[imax]=X[14]; X[14]=tmp; for(i=0;i<15;i=i+1){ cout<<setw(5)<<X[i]; } cout<<endl; return 0; }   Рис. 7.8. Блок-схема  

Результат выполнения программы:

б) Матрица А(4,4) задается с клавиатуры. Найти: сумму элементов среди элементов, расположенных на главной диагонали матрицы А; максимальный элемент в третьей строке матрицы. Поменять местами найденный максимальный элемент и значение S.

Код программы:

#include <iostream.h>

#include <iomanip.h>

int main(){

double a[4][4];

double S,max;

int i,j,jmax;

for(i=0;i<4;i=i+1){

for(j=0;j<4;j=j+1){

cin>>a[i][j];

}

}

for(i=0;i<4;i=i+1){

for(j=0;j<4;j=j+1){

cout<<setw(5)<<a[i][j];

}

cout<<endl;

}

S=0;

for(i=0; i<4; i=i+1){

S=S+a[i][i];

}

cout<<"S="<<S<<endl;

max=-10E10;

for(j=0; j<4; j=j+1){

if(a[2][j]>max){

max=a[2][j];

jmax=j;

}

}

cout<<"max="<<max<<" pri i=2, j="<<jmax<<endl;

a[2][jmax]=S;

for(i=0;i<4;i=i+1){

for(j=0;j<4;j=j+1){

cout<<setw(5)<<a[i][j];

}

cout<<endl; } return 0;}

Блок-схема:

Рис. 7.9. Блок-схема

 

Результат выполнения программы:

 


Литература

 

1. Катаева Л.Ю. Численные методы: метод. Указания./ Сост.: Л.Ю.Катаева. НГТУ. – Н.Новгород 2004.

2. Катаева Л.Ю. Математика. Численные методы. Учебное пособие./ Под ред. Л.Ю. Катаевой. – Н.Новгород, РГОТУПС, 2004.

3. Катаева Л.Ю., Васильев А.Н, Химич С.А. Численные методы в Scilab и Calc. / Л.Ю. Катаева и др. Н.Новгород, НГТУ, 2007

4. Катаева Н.А., Митяков Е.С., Масальская А.В и др. Численные методы (flash-учебник). Катаева Н.А. и др. Н.Новгород, НГТУ, 2007

5. Катаева Л.Ю.,Джинчвилаш-вили Г.А. Рабочая программа и задания по «Вычислительной математике»./ Л.Ю. Катаева и др. Н.Новгород, РГОТУПС, 2005

6. Катаева Л.Ю., Крайзлер М.Б., Савченко А.В. Методы решения задач естествознания./ Л.Ю.Катаева и др Н.Новгород: Изд-во НГТУ, 2007 - 83 с.

7. Тарнаева С.А., Катаева Л.Ю., Романова Н.А. Применение методов математической статистики при решении инженерных задач./ С.А.Тарнаева и др. Нижегород. гос. техн. ун-т им. Р.Е. Алексеева. – Нижний Новгород, 2014 - 84 с.

8. Симоновича С. В. Информатика: Учебник для вузов.- / Под ред. С.В. Симоновича. – СПб.: Питер, 2008.

9. Алексеева И.В. Сборник задач и упражнений по курсу «Информатика». – Обнинск: Обнинский институт атомной энергетики, 2007.

10. Богуславский А.А., Соколов С.М. Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна: КГПИ, 2007.

11. Демидович Е.М. Основы алгоритмизации и программирования. Язык СИ: учебн. Пособие. – СПб.: БХВ-Петербург, 2008.

12. Дэвис С. С++ для «чайников». – К.: Диалектика, 2009.

13. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб: Питер, 2007

14. Вирт Н. Алгоритмы и структуры данных. — М.: Мир, 1989.

15. Березин Б.И., Березин С.Б. Начальный курс С и C++. — М.: ДИАЛОГ-МИФИ, 1996.

16. Керниган Б., Ритчи Д. Язык программирования Си: Пер. с англ. — М.: Финансы и статистика, 1992.

17. Могилев и др. Информатика: Учебное пособие для вузов / А.В.Могилев, Н.И.Пак, Е.К.Хеннер; Под ред. Е.К. Хеннера. - М.: Изд. центр "Академия", 2008.

18. Бентли Дж. Жемчужины программирования. Второе издание. — СПб.: Питер, 2002.

19. Касаткин А. И., Вальвачев А. Н. Профессиональное программирование на языке Си: От Турбо Си к С++. – Минск: Вышэйшая школа, 1992. – 240с.

20. Николенко Д. В. Самоучитель по Visual C++. -СПб: Наука и техника, 2001. -368 с.

21. Павловская Т. А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003. – 461с.

22. Паппас К., Мюррей У. Программирование на С и С++. -К.: BHV, 2000. – 320c.

23. Савич У. С++ во всей полноте. - К.: BHV; СПб: Питер, 2005. 784 с.

24. Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих. – М.: Мир, 1988. -512с.

25. Шиманович Е. Л. C/C++ в примерах и задачах. - Минск: Новое знание, 2004, - 528с.

Интернет-ресурсы:

1. Сайт электронных методических разработок ННГУ им. Н.И.Лобачевского: http://www.unn.ru/books (свободный доступ)

2. Информационная система "Единое окно доступа к образовательным ресурсам": http://window.edu.ru/window/library/

3. Электронная библиотека рунета, поиск книг и журналов: http://bookfi.org/


 




Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 1004; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.039 сек.