Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка по программированию

.pdf
Скачиваний:
20
Добавлен:
27.03.2015
Размер:
346.06 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Нижегородский государственный университет им. Н.И.Лобачевского

Радиофизический факультет

Кафедра математики

ПРАКТИКУМ на ЭВМ: СБОРНИК ЗАДАНИЙ

Учебное пособие для студентов радиофизического факультета ННГУ

Издание второе, дополненное и исправленное

Нижний Новгород, 2010

УДК 681.3

Практикум на ЭВМ: Сборник заданий : Учебное пособие для студентов радиофизического факультета ННГУ. - 2-е изд., дополненное и исправленное / Сост. В.А.Савин. - Нижний Новгород: ННГУ, 2010. - 124 с.

В предыдущее издание 1996г. были включены варианты практических заданий, используемых в процессе преподавания общего курса "Вычислительные машины и программирование"на радиофизическом факультете ННГУ уже на протяжении длительного периода времени. Ранее в разработке этих заданий непосредственное участие принимали преподаватели кафедры математики В.А.Гусев, В.Б.Орлов, В.А.Савин, А.Ф.Шапкин. Проверенная временем методическая эффективность от использования комплекса таким образом подобранных заданий заставила свести их в единый сборник, позволяющий составить целостное представление о целях и задачах курса и заложить основы для дальнейшего изучения методов вычислений и математического моделирования на ЭВМ. Вместе с тем практика применения сборника выявила ряд вопросов, требующих постоянных пояснений для обучаемых. Это заставило коренным образом переработать ряд приводимых в сборнике примеров, снабдив их необходимыми комментариями. В ряде случаев предложены к выполнению упрощенные варианты заданий.

Составитель: В.А.Савин

Рецензенты: В.Н.Белых, В.А.Вдовин

Нижегородский государственный университет им. Н.И.Лобачевского, 2010

 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ ............................................................

4

ЗАДАНИЕ 1 ...........................................................

6

ЗАДАНИЕ 2 ..........................................................

12

ЗАДАНИЕ 3 ..........................................................

20

ЗАДАНИЕ 4 ..........................................................

25

ЗАДАНИЕ 5 ..........................................................

41

ЗАДАНИЕ 6 ..........................................................

60

ЗАДАНИЕ 7.1 ........................................................

73

ЗАДАНИЕ 7.2 ........................................................

87

ЗАДАНИЕ 8 .........................................................

106

ЗАДАНИЕ 9 .........................................................

119

ЛИТЕРАТУРА .....................................................

123

3

ВВЕДЕНИЕ

Курс вычислительных машин и программирования является базовым курсом в системе математической подготовки на радиофизическом факультете ННГУ и ориентирован на освоение общих подходов к решению практических задач, связанных с использованием современных вычислительных средств и оргтехники.

Изучение методики постановки и решения вычислительных задач позволяет в конечном итоге добиваться от обучаемых логического обоснования при выборе средств достижения результата и проведения анализа этого результата.

Важнейшим этапом в достижении этой цели является изучение основ алгоритмизации и принципов использования алгоритмических языков программирования для постановки и решения прикладных задач на ЭВМ. Следуя выбранному направлению, задачи, вошедшие в сборник, расположены по мере усложнения их логической структуры. При этом каждый набор задач выбран для иллюстрации какой-либо характерной алгоритмической структуры.

Для каждого набора задач рассмотрен пример решения, включающий постановку задачи, обоснование подхода к ее решению и реализации программ на алгоритмических языках высокого уровня FORTRAN и C, иллюстрирующих возможности инструментальных средств решения практических задач.

При составлении вычислительно-машинных программ учитывались особенности способа задания числовых и символьных величин, присущих каждому из используемых языков программирования.

4

Всячески избегалось отступление от стандартных конструкций языка FORTRAN и от ANSI-стандарта языка C, что позволяет надеяться на достаточную мобильность предлагаемых программ, исключающую высокую степень зависимости от архитектуры используемой ЭВМ и операционной системы, под управлением которой она работает.

Приведенные тексты программ на языках FORTRAN и C, ориентированы на использование практически любого современного компилятора этих языков программирования, работающих под управлением операционных систем UNIX и MSDOS на ЭВМ класса IBM PC.

Для осознанного решения некоторых заданий требуются определенные знания материала курсов математического анализа, аналитической геометрии и высшей алгебры.

5

ЗАДАНИЕ 1

На основе линейной алгоритмической структуры составить программу для ЭВМ, позволяющую вычислить результат арифметического выражения при заданных значениях переменных x и a .

1: y =

2: y =

3: y =

4: y =

5: y =

6: y =

 

 

 

 

Варианты задания

 

 

 

 

 

 

lg(1 + ejxj+1) + e

 

x = 1:7

sin(

+a

+ x) arctg(1 + p

 

+ x2) + 14:8

; a = 0:5

x

e

 

 

p3

 

sin(x + ) e x2

 

 

 

 

e

;

x = 0:5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arctg(1 + p3 x + x5) ln(3:2 jx aj)

a = 2:2

 

(x5 + x7) arctg(1 + lgjxj) + jx aj 0:62

; x = 0:98

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11:5 + px3 + sin x cos e

 

 

 

 

a = 3:1

p3

 

 

ex

 

arctg(sin(xa+e) + 1)

 

a + 1:7 x4

 

 

x = 0:9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

)

 

 

 

 

a = 5:1

 

ln(a + ejxj) + lg(1 + e x

 

 

 

 

 

 

 

 

sin(1 + p

 

+ x3) + p5

 

 

 

 

 

 

 

 

 

x = 0:8

 

 

x

e

 

 

 

 

;

 

lg(1 + ln(1 + ejxj)) + 4:2 e j11x 4aj

 

a = 2:2

 

q

 

 

 

 

 

 

 

j

j

)

 

 

 

 

e ;

x = 1:2

 

ax3

 

 

 

 

 

 

 

 

 

5

x3 + 1=x

 

 

(1 + lg

x

p

 

 

 

 

 

 

 

 

arctg(ej

j

0:59 sin(x=a)) +

 

 

 

a = 0:5

 

 

 

 

 

a

 

 

 

 

 

 

 

6

 

 

 

e x2 + sin( p

 

 

+ xe)

 

 

 

p3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ax7

 

 

 

 

 

 

7: y =

 

 

a

 

 

 

 

 

;

x = 1:5

ln(a + x

 

lg(1 + ejxj)) + 3

 

 

x

 

 

 

 

 

2:4

a = 0:7

 

 

j

a

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xa

p5

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = 1:4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8: y =

 

 

x + 7a

 

+ 14:3 ( a + sin(x ))

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a+

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

a = 1:2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arctg( x2 ) lg(1 + a )

 

 

 

 

 

 

 

 

 

 

 

 

p

 

sin(a + x ) p3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x5 + a7

 

 

 

 

 

 

9: y =

 

e

 

 

;

 

 

x = 0:2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = 1:6

arctg(cos(e ) e x) + lg(1 + jaxj)

 

 

 

 

 

 

 

10: y =

11:3 sin(1 + cos(a2 + x3)) ae2

 

;

 

x = 1:3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lg(1 + arctg(1 + ejxj)) + 1:7px7

 

a = 1:6

 

 

 

 

11: y =

arctg(1 + x2 p3

 

 

 

) + 11:3 e jxj

 

 

e + 2

;

x = 1:3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin(ax + p ) ln(1 + ex2)

 

 

 

 

a = 1:6

 

 

 

 

 

 

 

 

 

 

sin(1 + ex ) + p

 

+ x3 p

 

 

 

 

 

 

12: y =

 

x

a

 

 

;

x = 0:7

 

2

 

 

 

 

 

 

 

a = 1:3

 

 

ln(a2 + e x ) arctg(cos(1 + jxjae))

 

 

 

 

ln(1 + e x + ajxj) + 3:5p3

 

 

 

 

 

 

 

13: y =

 

ea4

 

 

 

 

;

x = 0:5

sin(ae + x )

 

arctg(e x2

+ cos(e ))

a = 1:8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14: y =

e ax2 sin(x + 0:7) + lg(1 + e jxj) 1

;

x = 0:8

 

 

 

 

 

 

0:56 + 14:7qx3 + jsin(x=a)j

a = 1:1

7

 

 

 

 

arctg(a+x2 ) 11:86 sin(1 + lnjaj)

 

x = 1:4

15: y =

 

x2

p

 

 

 

;

a = 0:95

2

 

7

 

 

lg(a + e

 

) + 1:7 x

 

 

 

 

16: y =

17: y =

18: y =

19: y =

20: y =

sin(a

) x

q

 

 

2

 

 

;

x = 0:2

p

 

+ aex

3 x + p

x

 

+ a4

 

 

 

 

 

 

ln(1 + ej j) arctg(1 + =x )

a = 1:3

arctg(1 + lgjxj) 1:7 (

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a + sin(x ))

;

x = 0:36

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos(e ) e x + ln(x + x7 + pa5)

a = 1:4

4:3 + arctg(a+x ) p

 

 

 

 

 

 

 

 

 

 

 

 

x + 6a5

;

 

x = 1:2

lg(1 + ae) (1 + ln(1 + a ejxj))

 

a = 0:3

 

 

cos(x + p

 

) sin(ax2 + p3

 

1= )

;

 

x

e

x = 1:6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(e x2 + 1:4 a e) arctg(pa x)

 

a = 1:5

 

 

 

 

e ax2 lg(1 + sin( + xp

 

)) 1:3 ae

;

 

a

x = 0:4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(3:6 + cos(p3 x + x4)) jajx

 

 

a = 1:3

 

 

 

 

21:

22:

y = q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

+ x

 

+

a+ e

pe

 

 

;

5

 

3

 

2

p

x + sin(xp

a

)

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arctg(

 

 

) a

 

 

 

 

 

 

 

x2

 

 

 

cos(a2 + x5) + arctg(1 + ejxj) y = ln(1 + ae + p ) lg(jxj 1:3) ;

8

x = 1:5 a = 0:35

x = 1:6 a = 0:92

 

 

 

3x2 + p5

 

arctg(

 

e

)

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

x = 0:7

23: y =

 

x2+a2

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = 1:4

 

ln(1 + e jxj) sin(a + cos(a= ))

24: y =

1:6 x2 cos(e ) e ax ln(1 + jajx5)

; x = 0:86

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(p3 x + p3 e) arctg(3:6 + sin pa)

 

 

a = 1:25

25: y =

p5

e + q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

;

 

x = 0:3

2

 

 

 

 

 

j j

 

 

 

 

 

 

 

 

 

 

3 a7 + x

ln(1 + e

x2)

a = 1:76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos(a

+ e= ) arctg(jxj+a)

 

 

 

 

 

 

1:3 sin(ap

 

) + ap

 

 

 

 

 

 

ln(1 + e ax2)

 

 

 

e

j

x

j

 

 

26: y =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; x = 0:7

 

 

 

 

arctg(e ) lg(1 + x5 + p3 x)

 

 

a = 1:6

27: y =

28: y =

lg(1 + ae) + eax cos(1 + jax5j) q p ;

x3 + arctg(a+e ) ln( 5 x x4 + 1)

arctg(cos( +xa) sin(1 + aex)) p3

 

 

e

;

2

 

ln(1 + e ajxj+x ) cos(1 + jxjae)

 

x = 0:95 a = 1:3

x = 0:72 a = 1:52

29: y =

30: y =

p p

lg( a + sin(x )) + cos( 3 x + x7)

ln(1 + ae + p ) jxj lg(1 + arctg( p ))

e a

e ax2 (1 + sin( + xpa)) lg(1 + ae) p p ;

arctg( a x + 1:7 7 x) + ln(1 + ejxj)

9

x = 0:2 ; a = 1:2

x = 0:89 a = 1:32

Пример 1. Дано арифметическое выражение

 

p5

 

 

x

 

3

 

p

 

 

x sin(

) + (x + 4=3)

 

a

y =

 

a

 

 

 

 

 

2

) + arctg(ae cos(jx 2j))

 

lg(16:5 + e a

и значения переменных x = 0:6 ; a = 1:4 , при которых требуется вычислить его результат. Линейная алгоритмическая структура предполагает последовательный порядок выполнения требуемых действий. При составлении программы для ЭВМ рекомендуется разбить числитель и знаменатель предложенного арифметического выражения на достаточно простые части. Это позволит избежать ошибок при записи слишком длинных выражений. При желании, однако, можно воспользоваться правилами записи строк продолжения.

CЗАДАНИЕ 1. Пример 1. Прогр. на языке FORTRAN. PROGRAM T1

X = 0.6 A = 1.4

P = 3.14159265

B = X**0.2 * SIN( (P-X) / A )

B = B + (X+1.3333333)**3 - P*SQRT( A ) C = P * ALOG10( 16.5 + EXP( -A*A ) )

C = C + ATAN( A**EXP(1.) - COS( ABS( X-2. )))

Y = B / C

WRITE(*,*)

’X =’,X, ’; A

=’,A, ’; Y =’,Y

STOP

 

 

END

 

 

X = 6.000000E-01;

A = 1.400000;

Y = 8.768302E-01

10