Язык программирования 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 Все материалы защищены законодательством РФ.
|