Сделай Сам Свою Работу на 5

Язык программирования 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. // конец программы

 

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



 

Var // объявление переменных

N,i:Integer;

F:array[1..100] of Integer;

 

Реализация программы в среде Delphi выглядит следующим образом:

program prog_lr8;

// указание компилятору создать консольное приложение

{$APPTYPE CONSOLE}

Var // объявление переменных

N,i:Integer;

F:array[1..100] of Integer;

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. // конец программы

 

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

В языке С объявление массива имеет два формата:

 

спецификатор-типа описатель [константное - выражение];

спецификатор-типа описатель [ ];

 

Описатель - это идентификатор массива.

Спецификатор-типа задает тип элементов объявляемого массива. Элементами массива не могут быть функции и элементы типа void.



Константное-выражение в квадратных скобках задает количество элементов массива. Константное-выражение при объявлении массива может быть опущено в следующих случаях:

- при объявлении массив инициализируется,

- массив объявлен как формальный параметр функции,

- массив объявлен как ссылка на массив, явно определенный в другом файле.

В языке С первый элемент массива имеет индекс равный 0.

Пример объявления и инициализации символьного массива:

 

char str[] = "объявление символьного массива";

 

Следует учитывать, что в символьном литерале находится на один элемент больше, так как последний из элементов является управляющей последовательностью '\0'.

 

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

 

scanf("%d",&N); // ввод количества элементов

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

F[0] = 1;

F[1] = 1;

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

for (int i = 2; i < N;i++) // заголовок цикла

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

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

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

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

for (int i = 0; i < N;i++) // заголовок цикла

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

printf("%d\n",F[i]); // вывод числа

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

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

 

// объявление переменных

int N;

int F[100];

Реализация программы в среде С Builder выглядит следующим образом:

 

#pragma hdrstop

// подключение модуля, в котором определены функции ввода и вывода

#include <stdio.h>

#pragma argsused

int main(int argc, char* argv[]) {

// объявление переменных

int N;

int F[100];

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

printf("Programma generiruyushaya N chisel posledovatelnosti Fibonachi.\n");

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

printf("Vvedite N: ");

scanf("%d",&N); // ввод числа

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

F[0] = 1;

F[1] = 1;

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

for (int i = 2; i < N;i++) // заголовок цикла

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

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

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

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

for (int i = 0; i < N;i++) // заголовок цикла

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

printf("%d\n",F[i]); // вывод числа

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

scanf("%d",&N); // задерживаем закрытие консольного окна

return 0;

}

Этап 5. Тестирование и отладка. Проверяем работу программы. Составляем тесты и запускаем по ним программу.

В формализованное решение задачи подставляем параметр N и получаем результаты.

Составляем три теста:

1) N = 3; числа 1, 1, 2;

2) N = 10; числа 1, 1, 2, 3, 5, 8, 13, 21, 34, 55;

3) N = 15; числа 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,89,144,233,377,610.

Запускаем программу и подставляем тестовые переменные:

 

1)

 

2)

 

3)

 

Результаты работы программы совпадают с ожидаемыми результатами — программа работает правильно.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.