Двумерные массивы Паскаля

Автор работы: Пользователь скрыл имя, 26 Января 2011 в 21:35, лекция

Краткое описание

Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.

Содержимое работы - 1 файл

Двумерные массивы Паскаля.docx

— 23.71 Кб (Скачать файл)

Procedure vvod ( var m : matrix );

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

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

Procedure print ( m : matrix );

И вновь для  реализации вложенных циклов внутри процедуры нам потребуются счетчики, пусть они называются так же –  k и h . Алгоритм вывода матрицы на экран был описан выше, воспользуемся этим описанием.

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

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 .

Факториал в  Паскале

 Факториал  - произведение натуральных чисел  от единицы до заданного числа.  Имеет условное обозначение в  виде восклицательного знака.  n!=1*2*3*...*n (Например: 3!=1*2*3=6).

В 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); 

может как-то так 
 

Информация о работе Двумерные массивы Паскаля