|
#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 Vera,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. |