Xwab
Форумыnavigate_nextДругие языки программирования

Pascal
Сообщения
Solskjaer

Как в паскале посчитать количество элементов в массиве? Заранее спасибо

19 Май 2011, 17:06
Fever

261. кажется никак.
делай так


var N:integer;
begin
write('Введите количество элементов массива: ');
readln(N);
end.

19 Май 2011, 19:05
COOLBOY007

Solskjaer, как вариант, присвоить всем ячейкам n-ное значение, и потом сравнивать значение каждой ячейки с ним.

19 Май 2011, 19:49
M0rbid

Solskjaer, в паскале массивы, обычно, фиксированной емкости. определяющейся при его обьявлении

19 Май 2011, 20:50
_-=UnDeGRoUnD=-_

Помогите сделать задачу с процедурами.
Заполнить массив слч. целыми числами, распечатать, положит. Числа сделать отрицательными и снова распечатать

31 Май 2011, 10:16
COOLBOY007

_-=UnDeGRoUnD=-_, вот: const n=10;
var a: array[1..n] of integer;
i: integer;
procedure read_array;
begin
for i:=1 to n do read(a[i]);
end;
procedure write_array;
begin
for i:=1 to n do write(a[i], ' ');
writeln;
end;
procedure reverse_array;
begin
for i:=1 to n do
 if a[i]>0 then a[i]:=-a[i];
end;
begin
read_array;
write_array;
reverse_array;
write_array;
end.

31 Май 2011, 10:30
_-=UnDeGRoUnD=-_

Что то не пашет  глобальные переменные запрещены

31 Май 2011, 10:36
COOLBOY007

_-=UnDeGRoUnD=-_, эм. Где не пашет? У тебя на компе?

31 Май 2011, 10:45
_-=UnDeGRoUnD=-_

Ну да паскаль BP

31 Май 2011, 10:46
Дмитрий

COOLBOY007, по-моему, в задачи уместно использовать только одну процедуру - вывод массива. Остальные подзадачи встречаются всего единожды, поэтому заводить под них процедуру бессмысленно. И ещё. Если мне не изменяет память, изменять глобальные переменные внутри процедуры - моветон. Вот мой вариант:
const N=30;
type mas=array[1..N] of integer;
var m:mas;
    i:integer;
{Процедура вывода}
Procedure output(a:mas; k:integer);
  var j:integer;
  begin
    WriteLn('Выводим массив:');
    for j:=1 to k do
      Write(a[j],' ');
    WriteLn
  end;
Begin
{Заполняем массив случайными числами от -50 до 50}
  Randomize;
  for i:=1 to N do
    m[i]:=-50+random(101);
{Выводим. В качестве параметров передаем ссылку на массив и размер массива.}
  output(m,n);
{Находим в массиве положительные числа и заменяем на отрицательные}
  for i:=1 to N do
    if m[i]>0 then m[i]:=-m[i];
{Снова выводим}
  output(m,n)
end.

31 Май 2011, 10:47
Ответить на тему