Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АлгАПЭ_Кубарев_методичка_лаба_1_2012 для печати...doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
247.81 Кб
Скачать

4 Список литературы, рекомендуемой для подготовки к лабораторной работе

1. Вирт Н. Алгоритмы и структуры данных: Пер. с англ. – 2-е изд., испр. - СПб.: Невский Диалект, 2001. – 352 с.: ил.

2. Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ: Справочник. – М.: Наука, гл.ред.физ.-мат. лит., 1987. – 240 с.

3. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М: МЦНО, 1999 – 960 с., 263 ил.

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

5. Бьерн Страуструп. Язык программирования С++. Специальное издание. Спб.: Невский диалект. — 2004 г. — 1104 с.

6. ГОСТ 19.701-90 (ИСО 5807-85) ЕСПД. Схемы алгоритмов, программ, данных и систем: Условные обозначения и правила выполнения. М.: Государственный комитет СССР по управлению качеством продукции и стандартам. — 1990 г.

Приложение а

Варианты заданий для лабораторных работ

Вариант 1

1. Дана последовательность чисел Фибоначчи, определяемая соотношениями: u[0]=1, u[1]=1,u[2]=1,u[n]=u[n-1]+u[n-2], n>2. Проверить, будет ли u[5k] (k=1,2,...) делиться на 5.

2. Найти несколько простых чисел Фибоначчи (до сих пор неизвестно, конечно или бесконечно число всех простых чисел Фибоначчи).

3. Написать программу упорядочивания массива методом Дж. фон Неймана, которая заключается в следующем: 1) если n = 1 (n — количество элементов в массиве), то массив упорядочен; 2) если , то разбиваем массив на две части: начало и хвост, причем число элементов начала либо равно числу элементов хвоста (если n четное), либо отличается от последнего на 1 (если n нечетное). Далее упорядочиваем начало и хвост (число элементов уменьшилось вдвое), а затем сливаем их методом следующей задачи.

4. Даны два числа M и N и два упорядоченных массива A[M] и B[N] образовать из этих элементов упорядоченный массив C[K].

Указание. Эта задача должна быть выполнена за M+N действий. Возьмем из А и В по первому элементу. Меньший из них занесем в С и заменим следующим из того же массива. Снова выберем меньший из двух, занесем в С и т.д. После каждого сравнения в С добавляется элемент — значит, сравнений будет меньше, чем M+N. Необходимо позаботиться также о том, чтобы программа работала верно, и при исчерпании одного из массивов.

5. В массиве Х[N] каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы и, наконец, все двойки (дополнительного массива не заводить!).

6. Элементы вещественного массива X[N] вычисляются по формуле X[n]=1/n!, n=1,...,N.

Написать программу вычисления элементов массива:

a) с использованием процедуры вычисления факториала;

b) без использования процедуры.

Вариант 2

1. Целое неотрицательное число М задано массивом своих двоичных цифр a[0],a[1],...,a[n-1], т.е. , где a[i] = 0 или a[i] = 1, i = 0,1,2,...,n-1. Напечатать массив двоичных цифр числа М+1.

Указание. Будем просматривать числа a[0], a[1],..., заменяя единицы на нули до первого нуля — его заменим единицей и на этом прекратим замену чисел. Надо только учесть, что ответ может содержать n+1 число, а не n как в условии.

2. Для заданного целого числа m найти среди первых чисел Фибоначчи хотя бы одно, делящееся на m.

3. Найти НОД(GCD)(U[m],u[n]), где u[m] и u[n] — числа Фибоначчи, используя формулу GCD(u[m],u[n]) = u[GCD(m,n)].

4. Построить массив p[1]=2, p[2],...,p[n], где p[1]=2, p[2]=3, ...,p[n] - n-е простое число.

5. Найти число Фибоначчи, обладающее несколькими собственными делителями. Например, для u[19] такими делителями будут числа 37 и 113, для u[27] — числа 53 и 109 и т.д.

6. Задан целочисленный массив A[N]. Найти все элементы, делящиеся на 3.