Компьютерный форум

Компьютерный форум (http://pchelpforum.ru/index.php)
-   Программирование (http://pchelpforum.ru/forumdisplay.php?f=17)
-   -   Pascal процедура (http://pchelpforum.ru/showthread.php?t=99772)

GrizZzly) 29.06.2012 14:53

Pascal процедура
 
Здравствуйте, помогите пожалуйста составить процедуру, которая заполняет массив всеми нечетными числамами от a до b с параметром - массивом. Собственно, я написал так
Код:

  1 const
  2  a= 3;
  3  b= 71;
  4 type
  5  t= array of integer;
  6 procedure pro(ar:array of integer);
  7 var
  8  i,j,k :integer;
  9 begin
 10  k:=0;
 11  j:=0;
 12  for i:= a to b do begin
 13    if odd(i)=true then inc(k);
 14  end;
 15  setlength(ar,(k-1));
 16  for i:=a to b do begin
 17          if  odd(i)=true then begin
 18              ar[j]:=i;
 19              inc(j);
 20              write(ar[i], ' ');
 21          end
 22  end
 23 end;
 24 var
 25  mas:t;
 26 begin
 27  pro(mas);
 28 end.

при компиляции выдает ошибку
Compiling pro.pas
pro.pas(15,21) Error: Type mismatch
pro.pas(27,9) Warning: Variable "mas" does not seem to be initialized
pro.pas(29) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted

Заранее благодарен.

Pavlucha 29.06.2012 18:40

Мой вариант:
Код:

const
  csize=1000;
type
  tarray=array [1..csize] of integer;
var
  a,b,n:integer;

procedure pro(var amas:tarray);
begin
  for n:=1 to csize do begin
    if a mod 2=0 then
      inc(a);
    amas[n]:=a;
    a:=a+2;
    if a>b then break;
  end;
end;

var mas:tarray;
    i:integer;
begin
  writeln('Введите начальное и конечное значение');
  readln(a,b);
  pro(mas);
  for i:=1 to n do
    write(mas[i],' ');
  readln
end.


GrizZzly) 29.06.2012 20:57

на самом деле просто ar:t в процедуре, а выделение массива из 1001 эл-та для меня не подходит

Pavlucha 29.06.2012 21:01

Цитата:

Сообщение от GrizZzly) (Сообщение 876646)
выделение массива из 1001 эл-та для меня не подходит

почему это?У тебя он вообще никак не обозначен,а это ошибка.и что такое setlength?


Текущее время: 09:00. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2007-2016, PCHelpForum.ru.