Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2016, 14:09   #1
watovl
Новичок
Джуниор
 
Регистрация: 18.03.2016
Сообщений: 1
По умолчанию pascalABC.NET.При выводе массивов выдаёт нули, в чём ошибка?

Код:
type
  mas=array[1..10,1..10] of integer;
  
procedure init(a:mas; cht:integer);
var
  i,j:integer;
begin
  writeln('Вывод нулевого массива');
  for i:=1 to cht do
    for j:=1 to cht do
      a[i,j]:=1;
end;

procedure vvodmas(a:mas; chr:integer);
var
  M:array of array of integer;
  k,l:integer;
begin
  SetLength(M,chr);
  for var t:=0 to chr-1 do
    SetLength(M[t],chr);
  writeln('Введите ',chr*chr,' элементов');
  for var i:=0 to M.Length-1 do
    for var j:=0 to M.Length-1 do
        read(M[i,j]);
end;

procedure randomarray(a:mas; cht:integer);
var
  i,j:integer;
begin
  writeln('Вывод случайно сгенерированного массива');
  randomize;
  for i:=1 to cht do
    for j:=1 to cht do
      a[i,j]:=random(10);
end;

procedure WriteArray(a:mas; chr:integer);
var
  i,j:integer;
begin
  for i:=1 to chr do
    for j:=1 to chr do
      write(a[i,j],' ');
  writeln;
end;

function RaznostSum(a:mas; chr:integer):integer;
var
  S1,S2,Rz:integer;
begin
  S1:=0;
  S2:=0;
  for var i:=1 to chr-1 do
    begin
      chr:=chr-1;
      for var j:=1 to chr do
        S1:=S1+a[i,j];
  
    end;
end;

var
  m:mas;
  n:integer;
begin
  writeln('Введите размер массива <10');
  read(n);
  init(m,n);
  WriteArray(m,n);
  randomarray(m,n);
  WriteArray(m,n);
  vvodmas(m,n);
  WriteArray(m,n);
end.

Последний раз редактировалось Аватар; 20.03.2016 в 01:08.
watovl вне форума Ответить с цитированием
Старый 20.03.2016, 00:06   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Цитата:
При выводе массивов выдаёт нули, в чём ошибка?
1. Форматируйте свой код. Выделите его и нажмите символ решётки #, который есть в меню окна, где вы набирали текст.

2. Смотрим, например, первую функцию:
Код:
procedure init(a:mas; cht:integer);
...
Можете ли вы объяснить что написано в этом заголовке?
a - параметр, который передаётся в тело функции. Как он туда передаётся, как вы думаете? Какие операции в теле функции можно делать с таким параметром?
Покороче: Скачайте книжку Т.А. Павловская, Программирование на ЯВУ. Паскаль, которая находится тут, рядом (см. литературу). Откройте на стр. 90, Глава 4 и прочитайте.
Затем найдите help по pascalABC.NET и уже в нём прочитайте как передаются параметры в п/п в этой версии Паскаля.
Так думаю, это то, что вам очень не хватает для получения ответа.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.03.2016, 01:06   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

PS: В программе есть и другие ошибки, например см.
Код:
function RaznostSum(a:mas; chr:integer):integer;
Но это следующая тема.
Вот рабочий фрагмент, но на FPC:
Код:
const nn = 10;
type
   mas = array[1..nn, 1..nn] of integer;

procedure init(var a : mas; cht : integer);
var
   i, j : integer;
begin
   writeln('Инициализация массива');
   for i := 1 to cht do
      for j :=1 to cht do
         a[i, j] := 1;
end;

procedure randomarray(var a : mas; cht : integer);
var
   i, j : integer;
begin
   writeln('Инициализация массива случайными числами');
   randomize;
   for i:=1 to cht do
      for j:=1 to cht do
         a[i,j] := random(10);
end;

procedure WriteArray(const a : mas; chr : integer);
var
   i, j : integer;
begin
   for i := 1 to chr do
   begin
      for j := 1 to chr do
         write(a[i, j],' ');
      writeln;
   end;
end;


var m : mas;
      n : integer;
begin
   writeln('Введите размер массива <10');
   readln(n);
   init(m, n);
   WriteArray(m, n);
   randomarray(m, n);
   WriteArray(m, n);
end.
Как-то так, ...
Как-то так, ...

Последний раз редактировалось ViktorR; 20.03.2016 в 01:09.
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при выводе Pasha_Sh Общие вопросы Delphi 7 27.03.2015 19:52
Компилируеться нормально, но при выводе результата выдаёт ошибку. Climber-18 Помощь студентам 11 30.01.2013 21:20
pascalABC.net. При нажатии на кнопку вылетает ошибка на readln barygan Паскаль, Turbo Pascal, PascalABC.NET 4 15.04.2011 22:00
Ошибка при выводе trad Общие вопросы C/C++ 7 15.01.2011 11:32