Автор работы: Пользователь скрыл имя, 26 Января 2011 в 21:35, лекция
Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.
Procedure vvod ( var m : matrix );
Для реализации
вложенных циклов в процедуре
нам потребуются локальные
Процедура вывода матрицы на экран называется print , параметром процедуры является матрица, но в этом случае она является входным параметром, следовательно, передается по значению. Заголовок этой процедуры будет выглядеть следующим образом:
Procedure print ( m : matrix );
И вновь для
реализации вложенных циклов внутри
процедуры нам потребуются
Пример программы двумерного массива Паскаля
Program proizvedenie;
Type
Matrix=array [1..10, 1..10] of integer;
Var
A: matrix;
N, m, i, j: byte;
P: integer;
Procedure vvod (var m: matrix);
Var k , h : byte ;
Begin
For i :=1 to n do {переменная n для процедуры является глобальной, а значит «известной»}
For j :=1 to m do {переменная m для процедуры является глобальной, а значит «известной»}
M[i,j]:= random(10);
End;
Procedure print (m: matrix);
Var k, h: byte;
Begin
For i:=1 to n do
begin
For j:=1 to m do
Write (M[i, j]: 4);
Writeln;
end ;
End ;
Begin {начало основной программы}
Writeln (‘Введите размерность матрицы:’);
Readln(N, M);
Vvod(a);
Print(a);
P:=1;
For i:=1 to N do
For j:=1 to M do
If a[i, j]<>0 then p:=p*a[i, j];
Writeln ( p );
End .
Факториал в Паскале
Факториал
- произведение натуральных
В Turbo Pascal факториал находится, как правило, двумя способами: с помощью цикла или с помощью рекурсии.
Вычисление факториала в pascal с помощью цикла
Данный способ
нахождения факториала исключительно
прост. В цикле от 1 до n умножается
число само на себя. При этом необходимо
учитывать условие, что 0!=1. Ниже представлена
реализация программы с помощью цикла
for. Аналогично используются repeat и while.
readln(n);
if (n=0) then writeln('0!=1') else
if (n<0) then writeln('Определяется только для положительных чисел') else
begin
s:=1;
for i:=1 to n do
s:=s*i;
writeln(n,'!='s:0:0);
end;
Рекурсионный способ нахождения факториала в паскале
Найти факториал в pascal можно также посредством вызова функции (с помощью рекурсии).
function fact(x:byte):real;
begin
if x=0 then fact:=1
else fact:=fact(x-1)*x;
end;
if x<0 then begin
c:=(sqrt((x+y)*(x+y)*(x+y)));
for
i:=1 to 10 do sum:=c+c;
fact:=1;
for j:=1 to sum do
fact:=fact*sum;
end;
write(fact);
может
как-то так