Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

как задать длину массива с клавиатуры. pascal

Андрей ... Знаток (279), закрыт 7 лет назад
Дополнен 15 лет назад
program matrix_1;

var n:byte;

const
n=

type
matrix=array[1..n,1..n] of real;
lin_matrix=array[1..n] of real;

procedure indata_n(var n: integer);
{поцедуа ввода длинны масива}
begin
  writeln('введите длинну матицы');
readln(n);
end;

procedure indata_m(var m:matrix ; n:integer);
{поцедуа вода квадатной матицы}
var i,j:integer;
begin
for j:=1 to n do
for i:=1 to n do
begin
writeln('введите ',i,'-й элемкнт стpоки ',j);
readln(m[i,j]);
end;
end;

function min(m:matrix; j:integer):real;
{функция для нахождения минимального числа в стоке}
var i:integer;
k:real;
begin
k:=m[i,j];
for i:=1 to n do
if (k>=m[i,j]) then
k:=m[i,j];
result:=k;
end;

procedure min_el(var m2:lin_matrix;
m:matrix;
n:integer);
{процедура поиска минимальных элементов в страке и занисение их в новый линейный массив соответствующего элемента }
var i,j:integer;
begin
for j:=1 to n do
m2[j]:=min(m,j);
end;

procedure outdata(m2:lin_matrix);
var i :integer;
begin
for i:=1 to n do
writeln ('минимальный эемент соки ',i,'=',m2);
end;

var

m:matrix;
m2:lin_matrix;

begin
indata_n(n);
indata_m(m,n);
min_el(m2,m,n);
outdata(m2);
end.

вот собтвинна сома программа
Лучший ответ
ilyabrin Гуру (4683) 15 лет назад
Имеется в виду динамические массивы?

Для объявления массивов, для которым зарание известен размер, так:

var
a : array [0..2] of string; // массив из трех строк

Если длина задается динамически, то так:

var
a: array of string;
begin
setLength(a, 3); // длина массива теперь установлена с помощью функции SetLength

Остальные ответы
Владимир Весёлый Мудрец (12171) 15 лет назад
Вот так:
readln(n); {здесь ты задаешь длину}
for i:=1 to n do begin {цикл}
writeln ('a',i,'=');
readln(a[ i ]);
res01 Мыслитель (7821) 15 лет назад
ииспользовать для этого целоцисленную переменную например, и заполнить ее данными введеными с клавиатуры например так.

var
n :integer
begin
readln(n);
end.
n-и будет длиной вашего массива. ;)
spin722 Мыслитель (9220) 15 лет назад
На сколько я помню, в паскале динамических массивов нет. Они появились позже - в OBJECT Pascal (DELPHI)
Krab Вark Просветленный (32306) 15 лет назад
Просто задай длину массива с запасом. Или используй динамические переменные:

type t=array[1..10000]of integer; {память не выделяется, размер липовый для обхода контроля за границами массивов}
var p:^t; i,n:integer;
begin
readln(n); getmem(p,n*sizeof(integer)); for i:=1 to n do readln(p^[ i]);
...
freemem(p,n*sizeof(integer));
end.

Так что динамические массивы легко создать и использовать и в Turbo Pascal.
Похожие вопросы