Как сделать чтобы проверялся весь столбец - Pascal ABC
Формулировка задачи:
Дан прямоугольный массив А[1..M,1..N]. Получить номера столбцов, элементы которых являются частью последовательности Фибоначчи.
как сделать чтобы проверялся весь столбец
Решение задачи: «Как сделать чтобы проверялся весь столбец»
textual
Листинг программы
uses crt; const n=6; m=4; function fibonachi(chislo:longint):boolean; var i,j,k:integer; begin i:=1; j:=1; k:=1; while k<chislo do begin k:=j+i; i:=j; j:=k; end; fibonachi:=(chislo=1)or(k=chislo); end; var i,j,k,p:integer; a:array[1..n,1..m] of integer; begin writeln('Введите элементы матрицы по столбцам, в том числе столбцы из чисел Фибоначчи'); for j:=1 to m do begin writeln('Столбец ',j); for i:=1 to n do begin write('a[',i,',',j,']='); readln(a[i,j]); end; end; clrscr; writeln('Матрица'); for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; writeln('Номера столбцов из чисел Фибоначчи'); k:=0; for j:=1 to m do begin p:=0; i:=1; while(i<=n)and(p=0) do if not fibonachi(a[i,j]) then p:=1 else i:=i+1; if p=0 then begin k:=1; write(j,' '); end; end; if k=0 then write('Таких столбцов нет'); end.
Объяснение кода листинга программы
- В первой строке кода используется директива
uses crt;
, которая позволяет использовать функции и структуры, определенные в стандартной библиотеке языка Pascal. - Затем определяются две константы
n
иm
, которые задают количество строк и столбцов матрицы соответственно. - Далее определяется функция
fibonachi
, которая принимает целое числоchislo
и возвращает логическое значениеtrue
, если числоchislo
является числом Фибоначчи, иfalse
в противном случае. Внутри функции используются три переменныеi
,j
иk
, которые инициализируются значениями 1, 1 и 1 соответственно. Затем в цикле while, который выполняется до тех пор, покаk
меньшеchislo
, обновляются значения переменныхi
,j
иk
. После завершения цикла проверяется условиеk=chislo
и если оно истинно, то возвращаетсяtrue
, иначе возвращаетсяfalse
. - Далее определяется переменная
a
, которая представляет собой матрицу размеромn
наm
. - В цикле for, который выполняется для каждой строки матрицы, выводится сообщение со столбцом и числами Фибоначчи. Для каждой строки вызывается цикл for, который выполняется для каждого столбца. Если значение элемента матрицы равно числу Фибоначчи, то в
p
устанавливается значение 1, иначе значениеp
остается равным 0. Еслиp
равно 0, то выводится номер столбца, иначе выводится номер строки. - В конце кода выводится сообщение, указывающее, есть ли столбцы, состоящие только из чисел Фибоначчи. Если таких столбцов нет, то выводится соответствующее сообщение.