Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2205 Прог на ЯВУ Павлов.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.91 Mб
Скачать

Выполнение лабораторной работы

Для выполнения работы необходимо:

  • формализовать задачу;

  • разработать алгоритм решения задачи;

  • составить блок-схему алгоритма;

  • выбрать и обосновать представление входных, промежуточных и выходных данных;

  • произвести кодирование;

  • разработать набор тестов, на которых будет проверяться программа;

  • продемонстрировать работу программы на наборе тестов;

  • оформить работу и отчитаться по ней.

Методические указания к выполнению лабораторной работы

Задание

Дано целое число N >2. Сформировать и вывести целочисленный массив размера N, содержащий N первых элементов последовательности чисел Фибоначчи Fk:

F1 = 1, F2 = 1, FK = FK−2 + FK−1, K = 3,4,...

Выполнение

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

Этап 1. Формализация. Задача заключается в генерации значений последовательности Фибоначчи и помещении их в элементы массива. Генерация новых элементов последовательности проводится по рекуррентному соотношению FK = FK−2 + + FK−1 (элемент равен сумме двух предыдущих элементов). Первый и второй элементы равны 1.

Третий элемент: F3 = F2 + F1 =1 + 1 = 2.

Четвёртый элемент: F4 = F3 + F2 = 2 + 1 = 3.

Пятый элемент: F5 = F4 + F3 = 3 + 2 = 5.

И т.д.

Для генерации это соотношение помещается внутрь цикла. Для вывода элементов массива также используется цикл.

Этап 2. Декомпозиция. Производим декомпозицию задачи — выделяем действия. Определяем, что для решения задачи необходимо выполнить следующие действия:

1. Ввести количество элементов N.

2. Присвоить первому и второму элементу в качестве значений единицу.

3. В цикле от 3 до N по рекуррентному соотношению рассчитать значение элемента.

4. Присвоить значение элементу массива.

5. В цикле от 1 до N вывести значения элементов массива на экран.

Этап 3. Алгоритмизация. Составляем алгоритм решения задачи. Используем для записи алгоритма форму блок-схемы.

Блок-схема алгоритма выглядит следующим образом:

Этап 4. Кодирование. Переводим разработанный алгоритм на язык программирования — составляем программу. Новым в задании является описание и использование массива. Для него в языках программирования предусмотрены специальные ключевые слова.

Язык программирования Pascal

Описание типа массива в Pascal задается следующим образом:

<имя типа> = array [ <сп.инд.типов> ] of <тип>;

Здесь <имя типа> - правильный идентификатор; array, of - зарезервированные слова {массив, из); <сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;<тип> - любой тип Pascal.

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:

var

a,b : array [1..10] of Real;

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

В Pascal можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:

var

a,b : array [1..5] of Single;

begin

а := b;

end.

После этого присваивания все пять элементов массива а получат те же значения, что и в массиве b.

Над массивами не определены операции отношения. Нельзя, например, записать

if а = b then ...

Сравнить два массива можно поэлементно, например:

var

a,b : array [1..5] of Single;

eq : Boolean;

i : Byte;

begin

eq := True;

for i := 1 to 5 do

if a[i] <> b[i] then eq := False;

if eq then begin

end;

end.

Руководствуясь блок-схемой, записываем алгоритм на языке Pascal:

begin // начало программы

// сообщение пользователю о цели программы

writeln('Programma generiruyushaya N chisel posledovatelnosti Fibonachi.');

// сообщение пользователю о необходимости ввода переменной

write('Vvedite N: ');

readln(N); // ввод переменной

// присваиваем первым двум элементам в качестве значений единицу

F[1]:=1;

F[2]:=1;

// рассчитываем значения элементов последовательности Фибоначчи

for i := 3 to N do // заголовок цикла

begin // начало группы операторов, выполняемых в цикле

F[i]:=F[i-1]+F[i-2];

end; // конец группы операторов, выполняемых в цикле

// выводим массив на экран

for i := 1 to N do // заголовок цикла

begin // начало группы операторов, выполняемых в цикле

writeln(F[i]); // вывод числа

end; // конец группы операторов, выполняемых в цикле

readln; // задерживаем закрытие консольного окна

end. // конец программы

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]