Здавалка
Главная | Обратная связь

Задания для самостоятельного выполнения



Задание 1 (программа_5_1)

Модифицировать программу 3_2 для вычис­ления функций F1(x) и F2 (x) с применением опе­ратора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.

 

Задание 2 (программа_5_2)

Начертить структурную схему алгоритма, написать и отладить прог­рамму для одной из следующих задач.

1. Вычислить приближенное значение z = arctg x и сравнить с

x - x3/3 + x5/5 - ... + (-1)nx2n+1/(2n+1) + ... (|х|<1), прекращая вычисления, когда очередной член по абсолютной величине бу­дет меньше eps = 0.00001.

2. Вычислить y = x - x2/2 + x3/3 - ... + (-1)n-1xn/n + ... с точностью eps = 0.00001,

где |x|<1. Сравнить результат с вычисленным через стандартную функцию значением y = LN(1+x).

3. Вычислить y = 1 + x/1! + x2/2! + ... + xn/n! + ... с точностью eps = 0.00001 и сравнить результат с вычисленным через стандартную функцию значением
y = ЕXP(x).

4. Вычислить y = sin x = x - x3/3! +x5/5! -...+ (-1)nx2n+1/(2n+1)!+... с точностью eps = 0.00001.

5. Вычислить y = 1 - x2/2! + x4/4! - ... + (-1)nx2n/(2n)! + ... с точностью
eps = 0.0001 и сравнить результат с вычисленным через стандартную функцию значением y = cos (x).

6. Найти произведение цифр заданного натурального числа.

7. Определить число, получаемое выписыванием в обратном порядке цифр заданного натурального числа.

8. Определить номер первого из чисел sin x, sin(sin x), sin(sin(sin x)), ... , меньшего по модулю 10-3.

9. Дана непустая последовательность различных целых чисел, за которой следует нуль. Определить порядковый номер и величину наиболь­шего среди отрицательных чисел этой последовательности.

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

11. Дана непустая последовательность положительных целых чисел, за которой следует отрицательное число (это признак конца последова­тельности). Вычислить среднее геометрическое этих чисел.

12. Дана непустая последовательность ненулевых целых чисел, за которой следует нуль. Определить, сколько раз в этой последователь­ности меняется знак.

13. Числа Фибоначчи (fn) определяются формулами

f0 = f1 = 1; f n = f n-1 + f n-2 при n = 2,3,... .

Вычислить сумму всех чисел Фибоначчи, которые не превосходят 1000.

14. Дана непустая последовательность положительных вещественных чисел х1, х2, х3,..., за которыми следует отрицательное число. Вычис­лить величину
х1 + 2х2 + ... + (N-1)xN-1 + N хN, где N заранее не известно.

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

16. Определить, есть ли среди цифр заданного числа одинаковые цифры.

17. Определить, является ли заданное натуральное число палиндромом, т. е. таким, десятичная запись которого читается одинаково слева направо и справа налево.

18. Вычислить наименьшее общее кратное натуральных чисел a и b.

19. Дано число L. Определить первый отрицательный член последовательности х1, х2, х3,..., где х1 = L, xi = tg(xi-1).

20. Определить, является ли заданное натуральное число совершенным, т.е. равным сумме всех своих (положительных) делителей, кроме самого этого числа (например, совершенное число 6 = 1 + 2 + 3).

СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ

Массивы данных

Массивыупорядоченная структура однотипных данных, хранящихся в памяти последовательно. Массив обязательно имеет размеры. Описывается в разделе TYPE или VAR следующим образом:

Type <имя_типа> = array [диапазон_индексов] of <базовый_тип>;

или

Var <имя_переменной> : array [ диапазон_индексов] of <базовый_тип>;

Отметим, что в разделе Type разделителем служит символ “=”, а в разделе переменных var – двоеточие “ : ” .

Пpимер: TYPE

array10 = array [1..10] of integer;

array11 = array [11..22] of real;

VAR

V:array[-3..2] of char; {массив из 6 элементов}.

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

Например:

TYPE DIAP = 1..100;

VECTOR = array [DIAP] of real;

При записи сложных массивов индексы разных диапазонов могут при­надлежать разным типам. Например:

VAR V: array [0..10 , 'A'..'C' ] of real;

В качестве значений диапазона могут использоваться идентификато­ры, если их значения определены выше. Например:

CONST

K=10; L=5;

VAR

A: ARRAY [1..K] OF INTEGER;

B,С: ARRAY[1..K,1..L] OF REAL;

Массивы хранятся в памяти как сплошные последовательности компо­нентов, причем быстрее изменяется дальний правый индекс.

Обращение к элементу массива в программе производится указанием имени массива и индексов, заключенных в квадратные скобки:

<имя> [ <индексы> ].

Пример:

A[1] := 1; B[8,5] := В[8,1] + B[8,2]; V[1,'B'] := 3.5; .

В данном типе определена единственная операция присваивания. Мож­но присваивать целиком весь массив лишь массиву того же типа и размерности, например: B := С.

Операции сравнения в массивах производятся только поэлементно.

Обнуление одновременно всех элементов массива выполняется в цикле

FOR I :=1 TO K DO A[I] := 0.

Разрешается объявлять массивы, где базовыми элементами служат также массивы, например:

TYPE

VECTOR = array[1..5] of real;

MATRIX = array[1..10] of VECTOR;

что эквивалентно следующему способу описания:

MATRIX = array[1..10] of array[1..5] of real;

или

MATRIX=array[1..10, 1..5] of real;

 

Типизированные константы-массивы

В качестве типизированных констант можно использовать массивы. В константах-массивах список констант разделяется запятыми и зак­лючается в круглые скобки:

CONST vector : array[0 ..4] of byte = ( 0, 1, 2, 3, 4 );

массив символов может быть описан следующей записью:

CONST vec : array[-1..2] of char = ( 'a' , 'b' , 'c' , 'd' );

При объявлении многомерных констант-массивов список констант, соответствующих каждому измерению, заключается в дополнительные круглые скобки и отделяется от соседних списков запятыми. Самый внутренний список констант связывается с изменением самого правого индекса масси­ва. Например:

CONST

matr: array[1..2, 1..4] of byte = ((0,1,2,3),(4,5,6,7));

cub: array[0..1, 1..2,1..3] of byte = (((0,1,2),(3,4,5)),

((6,7,8),(9,10,11)));







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.