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

информ часть2

.pdf
Скачиваний:
27
Добавлен:
11.03.2015
Размер:
419.73 Кб
Скачать

33

21. Найти наименьшее натуральное число М такое, для которого

 

 

sin x

 

 

 

 

 

 

 

 

 

 

M

(-1)

n−1

 

 

 

 

 

 

 

 

 

 

 

 

 

1 −

< ε, где ε = 0,01, x = 1/M и вычислить сумму S = å

 

 

.

 

 

x

 

 

 

 

 

 

 

 

 

 

n=1

 

n

 

 

 

 

Замечание. Воспользоваться содержанием варианта 1.

 

 

 

 

 

 

22. Для указанного значения x0

найти наименьшее натуральное чис-

 

 

 

 

 

≤ ε, где ε = 0,01 и вычислить сумму S =

M

 

n

 

 

 

 

 

 

 

 

ло М такое, что

x0

å

x0

.

 

 

 

 

 

M!

 

 

 

 

 

 

 

 

 

n=1

n!

 

 

23. Пользуясь тем, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(1 + x) = x -

x2

x3

... + (-1)

n−1

xn

+ ...

 

 

 

 

(3.6)

 

 

 

2

+

3

-

 

n

 

 

 

 

 

при x [–1; 1] вычислить значение ln(1 + x) для указанного значения x0 [–1; 1] с точностью ε = 0,001. Точность вычисления считается вы- полненной, если последний по модулю член в сумме (3.6) меньше ε.

24. Найти корень xс уравнения 5x3 + 10x2 + 5x – 1 = 0 с точностью

ε = 0,001, пользуясь формулой x

n+1

=

1

, где n = 0,1,…, x0

= 0. Точ-

 

 

5(xn +1)

 

 

ность вычисления считается достигнутой, если |xn+1 xn| < ε и тогда по-

лагают xc xn+1.

25. Найти корень xс уравнения x3 + 12x – 2 = 0 с точностью ε = 0,001, пользуясь формулой xn+1 = 121 (2 - xn3 ) , где n = 0,1,…, x0 = 0,1. Точность

вычисления считается достигнутой, если |xn+1 – xn| < ε и тогда полагают

xc xn+1.

26. Найти корень xс уравнения 2x3 + 4x – 1 = 0 с точностью ε = 0,001,

пользуясь формулой

xn+1

=

 

1

, где n = 0,1,…, x0 = 0,2. Точность

2(2

3

 

 

 

+ xn )

 

вычисления считается достигнутой, если |xn+1 – xn | < ε и тогда полагают

xc xn+1.

27. Найти корень xс уравнения

x1/ 3 +

4

= 0 с точностью ε = 0,001,

 

 

1

æ

a

 

 

 

ö

 

 

пользуясь формулой

xn 1 =

ç

+ (m -1)xn

÷

,

(3.7)

 

m−1

 

+

 

ç

 

 

÷

 

 

 

 

m è xn

 

 

ø

 

 

где n = 0,1,…, m = 1/3, x0 = 1, а = 2. Точность вычисления считается дос- тигнутой, если |xn+1 – xn | < ε и тогда полагают xc xn+1.

28. Найти корень xс уравнения x1/ 5 + 510 = 0 с точностью

ε = 0,00001.

Замечание. Воспользоваться формулой (3.7), где положить m = 1/5; x0 = 1,3; а = 10.

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

34

29. Найти наименьшее натуральное число M такое, для которого

 

1

 

2M

 

 

 

å , где ε = 0,01 и вычислить

M

 

 

<

S = å

1

.

 

3

 

6M + 8

 

 

 

 

 

 

 

n=1 n!

 

 

30. Для заданного значения x0 найти наименьшее натуральное значе-

 

 

 

tg x

−1

 

< ε, где ε = 0,01, x = 1/M и вычислить сумму

ние М такое, что

 

 

 

 

M

n

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S = å

 

 

.

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

n=1 n

 

+1

 

 

 

 

 

 

 

 

 

Контрольные вопросы

1.Как называются программы, в основе которых лежит структура повторения?

2.Сколько операторов цикла вам известно?

3.Каков тип выражения в операторе цикла с предусловием?

4.Верно ли, что в теле цикла с предусловием должен находиться один оператор?

5.Как сделать, чтобы в теле цикла было несколько операторов?

6.Когда проверяется истинность выражения в цикле while?

7.Верно ли, что истинность выражения в цикле с предусловием яв- ляется условием продолжения цикла?

8.Сколько раз выполнится оператор в теле цикла while, если с са- мого начала значение выражения равно false?

9.Верно ли, что цикл while используется при вычислении всякого рода сумм и произведений, когда заранее не известно число повторе- ний?

10.Сколько операторов можно записать между ключевыми словами repeat и until?

11.Когда проверяется истинность выражения в операторе цикла re-

peat?

12.Какой тип имеет выражение в операторе цикла с постусловием?

13.Почему в цикле repeat оператор тела цикла всегда будет выпол-

нен хотя бы один раз?

14.Верно ли, что истинность выражения в цикле repeat является ус- ловием окончания цикла?

15.С помощью каких служебных слов записывается цикл с парамет-

ром?

16.Верно ли, что цикл с параметром применяется в тех случаях, ко- гда заранее известно число повторений?

17.Пусть цикл записан в виде:

for v:=El to Е2 do S;

а) как называется El? б) как называется Е2? в) как называется v?

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

35

18.Сколько раз выполнится оператор S, если Е1 = Е2, а цикл записан

ввиде:

for v:=El to E2 do S;

19. Сколько раз выполнится оператор S и можно ли изменить значе- ние переменной v внутри цикла, если Е1 > Е2, а цикл записан в виде:

for v:=El to E2 do S;

20.Сколько раз выполнится оператор S, если Е1 = Е2, а цикл записан

ввиде:

for v:=El downto E2 do S;

21.Сколько раз выполнится оператор S, если Е1 < Е2, а цикл записан

ввиде:

for v:=El downto E2 do S;

22.Верно ли, что в качестве параметра цикла for используется про- стая переменная, описанная в текущем блоке?

23.Какой тип должен иметь параметр цикла в цикле for?

24.Какой тип должны иметь начальное и конечное значения в цикле

for?

25.Чему равно значение параметра цикла for после завершения цик-

ла?

26.Можно ли войти в тело цикла for, минуя его заголовок?

27.Можно ли войти в тело цикла while, минуя его заголовок?

28.Можно ли войти в тело цикла repeat, минуя его заголовок?

29.Допустим ли выход из тела цикла for, while, repeat?

30.Какие циклы называются вложенными?

31.Верно ли, что цикл, содержащий в себе другой цикл, называется внешним?

32.Какой цикл называется внутренним?

33.Какому условию должны удовлетворять вложенные циклы?

34.Может ли внешний цикл быть циклом for, а внутренний цик-

лом repeat?

35.Могут ли внутренний и внешний циклы быть циклами разных видов?

36.Могут ли внутренний и внешний циклы быть циклами одного ви-

да?

37.Может ли вещественная переменная быть параметром цикла for?

38.Можно ли в качестве параметров вложенных циклов for исполь- зовать одну и ту же переменную?

39.Какие утверждения являются верными (проиллюстрируйте ответ

соответствующими примерами):

а)любой цикл for можно записать при помощи цикла while; б) любой цикл while можно записать при помощи цикла for;

в) не любой цикл for можно записать при помощи цикла while; г) не любой цикл while можно записать при помощи цикла for.

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

36

ЛАБОРАТОРНАЯ РАБОТА № 4

Одномерные массивы

Цель работы: приобрести практический опыт работы при исполь- зовании однотипных данных или массивов.

Основные понятия

Массив это упорядоченный набор переменных одного типа, имеющий общее для всех своих элементов имя. Доступ к элементам массива осуществляется путем указания имени массива и индексов (ин- декса или порядкового номера) массива, которые пишутся в квадратных скобках после имени. В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме LONGINT. Коли- чество элементов в массиве ограничивается объемом свободной опера-

тивной памяти и суммарная длина во внутреннем представлении не должна превышать 65 520 байт. Описываются массивы в разделе описа- ния переменных VAR или в разделе описания типов TYPE следующим образом:

1)Var <имя массива>: ARRAY [<сп.инд.типов>] OF <тuп>;

2)Type <имя типа> = ARRAY [<сп.инд.типов>] OF <тuп>;

Var <имя массива>: <имя типа>;

Здесь <имя массива>, <имя muna> – идентификаторы массива и ти- па данных; ARRAY, OF – зарезервированные слова (массив, из); <сп.инд.типов> – список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, тре- бование синтаксиса; <тип> – порядковый тип Турбо Паскаля.

Примеры:

1) VAR M1: ARRAY [1..20] OF Real;

Здесь описан одномерный массив с именем M1 вещественного типа. Элементы массива обозначаются следующим образом M1[1], M1[2], M1[3], …, M1[20].

2) VAR Matrix: ARRAY [1..3, 1...5] OF Real;

Здесь описан двумерный массив (матрица размером 3 × 5) с именем

Matrix и с элементами вещественными типа Matrix[1,1], Matrix [1,2], …, Matrix [3,5].

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

37

3)TYPE TDim= Array[1..20] of Integer; VAR A: TDim;

Здесь A является одномерным массивом типа TDim.

Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя способами.

Первый способ с использованием типизированных констант, на- пример:

type Dim10= Array[1..10] of Real;

const raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3);

Второй способ инициализации использование разновидности про-

цедуры FillChar:

FillChar( var V; NBytes: Word; B: Byte);

Задание к лабораторной работе

А. Выбрать алгоритм, составить его блок-схему и программу, в ко- торой:

1) вычислить в точках xi = a + (i – 1)h, i = 1, 2, … n + 1, h = (b a)/(n + 1) промежутка [a; b] значения элементов массива yi = f(xi), где f(x) – указанная в варианте задания функция. Вари- ант задания см. в лабораторной работе № 3, задание А;

2)среди элементов массива yi найти первые два y1min, y2min наи- меньших и первые два y1max, y2max наибольших элемента и их порядковые номера (индексы) в массиве;

3)вычислить величину yср. среднее значение элементов массива yi:

4)вычислить величины:

M = ån+1 (yi ycpi )2 (n +1); D = M ;

i=1

5)предусмотреть ввод исходных данных a, b, n с клавиатуры;

6)вывести вычисленные величины на экран и в файл в следую- щем виде:

Исходные данные:

f(x)= ….; a =

 

; b =

; n = 10.

Массив X:

x3

x4

x5

 

x1

x2

 

x6

x7

x8

x9

x10

 

Массив Y:

y3

y4

y5

 

y1

y2

 

y6

y7

y8

y9

y10

 

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

 

 

38

 

y1min =

; y2min =

; y1max =

; y2max =

ycp = ;

M = ; D =

 

Б. Составить блок-схему и написать текст программы для решения приведенной в варианте задания задачи.

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

Задание А

См. в лабораторной работе № 3, задание А.

Задание Б

1. Вычислить сумму и количество элементов массива X больших числа a, где а среднее арифметическое элементов массива X. Элемен- ты массива вычисляются по формуле Xi = i -1 ×sin(i), где i = 1, 2, …,

50.

2. Вычислить среднее арифметическое отрицательных элементов массива X и их количество. Элементы массива вычисляются по формуле

Xi = 3 i -10 ×sin(i), где i = 1, 2, …, 20.

3. Вычислить среднее арифметическое отрицательных и среднее арифметическое положительных элементов массива X. Элементы мас- сива вычисляются по формуле Xi = 3 i -10 ×cos(i), где i = 1, 2, …, 20.

4. Переписать положительные элементы массива X в массив Y и подсчитать их количество. Элементы массива X вычисляются по фор-

муле Xi = 3 i -1 ×sin(i), где i = 1, 2, …, 20.

5. Переписать отрицательные элементы массива X в массив Y и подсчитать их количество. Элементы массива X вычисляются по фор-

муле Xi = 3 i -10 ×sin(i - 0,5), где i = 1, 2, …, 20.

6. Определить максимальный элемент массива X и его порядковый номер. Элементы массива вычисляются по формуле

Xi = i -10 ×tg(i), где i = 1, 2, …, 10.

7. Определить минимальный элемент массива X и его порядковый номер. Элементы массива вычисляются по формуле Xi = (-1)i × (i2 - 2i),

где i = 1, 2, …, 10.

8. Найти максимальный и минимальный элементы массива X и поменять их в массиве местами. Элементы массива вычисляются по формуле Xi = (-1)i × (i2 - 3i), где i = 1, 2, …, 10.

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

X i = i2 + 4i -12,
X i = i2 - 5i + 4,
X i = i2 + 3i + 2,
X i = i2 - 2i - 3,

39

9.Найти количество положительных и отрицательных элементов

в массиве X. Элементы массива вычисляются по формуле

Xi = (-1)i ×(i2 -5i + 6), где i = 1, 2, …, 10.

10. Расположить в массиве Y сначала положительные, а затем от- рицательные элементы массива X. Элементы массива X вычисляются по формуле X i = i2 - 9i + 8, где i = 1, 2, …, 10.

11. Определить сумму элементов массива X, значения которых кратны трем. Элементы массива X вычисляются по формуле

где i = 1, 2, …, 10.

12. Определить сумму элементов массива X, значения которых кратны двум. Элементы массива X вычисляются по формуле

где i = 1, 2, …, 10.

13. Вычислить сумму и количество элементов массива X больших по абсолютной величине заданного числа a, где а >0. Элементы массива вычисляются по формуле X i = i2 -10i +1, где i = 1, 2, …, 10.

14. Найти числа, встречающиеся среди элементов массива X более одного раза. Элементы массива вычисляются по формуле

где i = 1, 2, …, 10.

15. Среди элементов массива X найти максимальный по модулю элемент и его порядковый номер. Элементы массива X вычисляются по формуле Xi = 3 i - 5 ×(sin(i)+ cos(i)), где i = 1, 2, …, 15.

16. Переписать четные элементы массива X в массив Y и подсчи- тать их количество. Элементы массива X вычисляются по формуле

где i = 1, 2, …, 15.

17.Переписать элементы массива X в массив Y в обратном порядке

инайти порядковый номер максимального элемента в массиве Y. Эле-

менты массива X вычисляются по формуле X i = i2 - 4i + 3, где i = 1,

2, …, 10.

18. Среди элементов массива X найти числа, встречающиеся более двух раз. Элементы массива X вычисляются по формуле

X i = i3 - 6i2 + 11i - 6, где i = 1, 2, …, 10.

19. Переписать нечетные элементы массива X в массив Y и подсчи- тать их количество. Элементы массива X вычисляются по формуле

X i = i2 + 4i -12, где i = 1, 2, …, 10.

20.Переписать элементы массива X в массив Y в обратном порядке

инайти порядковый номер минимального элемента в массиве Y. Эле-

менты массива X вычисляются по формуле X i = i3 - 7i - 3, где i = 1, 2, …, 10.

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

Xi = (-1)i × (i2 - 4i + 3),

40

21. Найти число четных положительных элементов в массиве X. Элементы массива X вычисляются по формуле

где i = 1, 2, …, 10.

22. Найти число нечетных положительных элементов в массиве X. Элементы массива X вычисляются по формуле Xi = (-1)i × (i2 + 6i + 5),

где i = 1, 2, …, 10.

23. Найти число нечетных отрицательных элементов в массиве X. Элементы массива X вычисляются по формуле Xi = (-1)i × (i3 - 4(i + 3)),

где i = 1, 2, …, 10.

24. Найти число четных отрицательных элементов в массиве X. Элементы массива X вычисляются по формуле Xi = (-1)i × (i3 - 5i -10),

где i = 1, 2, …, 10.

25. Расположить элементы массива X в порядке возрастания. Элементы массива X вычисляются по формуле Xi = (-1)i × (i3 - 6i2 - 6),

где i = 1, 2, …, 10.

26.

Среди элементов массива целых чисел X найти сумму всех

двузначных чисел. Элементы массива X вычисляются по формуле

X i = (i + j)2 , где i = 1, 2, …, 20.

27.

Среди элементов массива целых чисел X найти сумму и количе-

ство всех нечетных двузначных чисел. Элементы массива X вычисляют-

ся по формуле X i = 10i + i2 , где i = 1, 2, …, 20.

28.

Среди элементов массива целых чисел X найти среднее ариф-

метическое всех четных двузначных чисел. Элементы массива X вычис-

ляются по формуле X i = i3 + i2 +10, где i = 1, 2, …, 20.

29.

Среди элементов массива целых чисел X найти сумму квадра-

тов всех четных двузначных чисел. Элементы массива X вычисляются

по формуле X i = 2i2 + 3i − 5, где i = 1, 2, …, 20.

30.

Среди элементов массива целых чисел X найти сумму квадра-

тов всех нечетных двузначных чисел. Элементы массива X вычисляются по формуле X i = 3i2 − 2i + 10, где i = 1, 2, …, 20.

Контрольные вопросы

1.Как описываются массивы в Паскале?

2.Какой тип может быть базовым типом массива и типом индекса?

3.Как осуществляется ввод и вывод массивов?

4.Какие действия определены над массивами как едиными объек-

тами?

5.Где можно использовать переменные с индексами?

6.Что требуется для совместимости по присваиванию массивов?

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

41

7.Какими способами может быть осуществлен поиск элемента в упорядоченном и неупорядоченном одномерном массиве?

8.Дайте определение массива.

9.Какие типы данных не допустимы для компонентов массива? По-

чему?

10.В каком разделе (разделах) программы допустимо описание дан- ных регулярного типа?

11.Где и как определяется общее число элементов массива?

12.Можно ли размерность массива определить с помощью типа диапазон?

13.Дайте определение индекса. Какие типы данных можно исполь- зовать при описании индекса?

14.Может ли левая граница индексов массива быть меньше правой?

15.Может ли левая граница индексов массива быть равной нулю?

16.Может ли левая граница индексов массива быть отрицательной?

17.Как осуществляется доступ к каждому элементу массива?

18.Когда индекс элемента в массиве совпадает с порядковым номе- ром этого элемента?

19.Что называется базовым типом?

20.Верно ли, что элементами массива могут быть данные любого типа, включая структурированные?

21.Может ли индекс в правильно составленной программе выходить за пределы, определенные типом диапазон?

22.Может ли индекс быть выражением вещественного типа?

23.Может ли индекс быть выражением любого порядкового типа?

24.Какой массив называется одномерным?

25.Верно ли, что одномерный массив соответствует понятию линей- ной таблицы (вектора)?

26.Существуют ли ограничения на размерность массива?

27.Можно ли в описании массива использовать предварительно оп- ределенные константы?

28.В какой последовательности располагаются в памяти элементы одномерного массива?

29.Верно ли, что элементы с большими значениями индекса хранят- ся в больших адресах памяти?

30.Всегда ли работа с массивом сводится к работе с его компонен-

тами?

31.Может ли процедура read(x) ввести весь массив х целиком?

32.Можно ли с помощью стандартной процедуры write(х) вывести весь массив х целиком?

33.Как можно сымитировать работу с массивом переменной длины?

34.Возможно ли следующее описание: var a: array[integer]?

PDF created with FinePrint pdfFactory trial version www.pdffactory.com

42

ЛАБОРАТОРНАЯ РАБОТА № 5

Двумерные массивы, вложенные циклы

Цель работы: расширить практический опыт работы при использо- вании массивов и циклов.

Задание к лабораторной работе

А. Выбрать алгоритм, составить его блок-схему и программу, в ко- торой:

1) разбив отрезки [a; b] и [c; d] соответственно на n и m частей, в точ-

ках xi = a + (i – 1)×h1, yj = c + (j – 1)×h2, где h1 = (b a)/n, h2 = (d c)/m, i = 1, 2, …, n+1, j = 1, 2, …, m+1 вычислить значения элементов aij матрицы

A=||aij||nm по формуле aij = z(xi, yj), где z = z(x, y) – функция, заданная в варианте задания;

2)из элементов матрицы А составить матрицу В так, чтобы в ней элементы строк матрицы А располагались в порядке возрастания;

3)указанным в варианте задания способом найти вектор (матрицу, строку) X;

4)вычислить величину M = X×A×X', где X' – транспонированная мат- рица (вектор-столбец);

5)предусмотреть ввод исходных данных a, b, c, d, n, m:

с клавиатуры;

из файла, предварительно записав исходные данные в текстовый

файл; 6) вывести вычисленные величины на экран и в файл в следующем

виде:

Исходные данные:

z(x,y)=…; a=…; b=…; c=…; d=…; n=…; m=….

Матрица А:

а11 а12 … а1m

…………………….

аn1 аn2 … аnm

Матрица B:

b11 b12 … b1m

…………………….

bn1 bn2 … bnm

Вектор X:

x1 x2… xm

M = …

PDF created with FinePrint pdfFactory trial version www.pdffactory.com