![]() |
|
|
|
|
#1
|
|||
|
|||
|
здравствуйте,помогите пожалуйста с задачами.
1.условие:Определите функцию, подсчитывающую сумму N первых элементов целочисленного массива А. N и массив А передать в качестве параметров. я написала программу,но она не идет,выдает ошибку,когда я обращаюсь к функции,не может предать в качестве параметров массив и целое число((( подскажите пожалуйста,где у меня ошибка- Код:
function sum(a:mas;n:integer):integer; var s,i:integer; begin for i:=1 to n do s:=s+a[i]; form1.memo1.lines.add(inttostr(s)); end; procedure TForm1.Button1Click(Sender: TObject); var a:array of integer; n,m,i,d,s,j:integer; c:extended; begin n:=strtoint(edit1.Text); sum(n); setlength(a,20); i:=1; randomize; while i<>21 do begin c:=random; c:=c*100; d:=round(c); a[i]:=d; stringgrid1.cells[0,i]:=inttostr(a[i]); i:=i+1; end; sum(a); end; Admin: Пользуемся тегами! а вторую вообще не знаю как делать: Поля шахматной доски характеризуются записью Type Pole=record Ver a,b,c,d,e,f,g,h); {вертикальные координаты}Hor:1..8; {горизонтальные координаты} end; Вывести шахматную доску, пометив крестиками все поля, которые «бьет» ферзь, стоящий на поле с координатами Ver и Hor , и ноликами – остальные поля. Последний раз редактировалось Admin, 08.06.2008 в 21:00. |
|
#2
|
|||
|
|||
|
По первой задаче:
Код:
function sum(a : array of Integer{; n : integer}):integer;
var s,i:integer;
begin
//доступ к динамическому массиву с нуля
for i := 0 to high(a) do s := s + a [i];
form1.memo1.lines.add(inttostr(s));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a:array of integer;
n,m,i,d,s,j, c:integer;
// c:extended;
begin
n := strtoint(edit1.Text);
// sum(n); это зачем?
setlength(a, n);
i := 1;
randomize;
for i := 0 to n-1 do begin
// c := random(100);
// c := c * 100;
// d := round(c);
a[i] := random(100); //для целых чисел достаточно указать макс. значение
stringgrid1.cells[0, i] := inttostr(a[i]);
end;
sum(a);
a := nil; //освобожение памяти от ненужного теперь массива
end;Последний раз редактировалось san-46, 09.06.2008 в 08:22. |