Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Delphi

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 121, средняя оценка - 4.76
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
#1

Ошибка: Not enough actual parameters - Delphi

17.01.2010, 21:39. Просмотров 16149. Ответов 22
Метки нет (Все метки)

при компиляции выдаёт ошибку "Not enough actual parameters" в функции перед x[i,j], подскажите как исправить
вот код функции
Delphi
1
2
3
4
5
6
function sumstr (x:matrix; i,n:integer):integer;
var j:integer;
begin
  for j:=1 to n do
    sumstr:=sumstr+x[i,j];
end;
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2010, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка: Not enough actual parameters (Delphi):

ошибка Not enough actual parameters - Delphi
выскакивает ошибка Not enough actual parameters в конце при вызове функции Vopros. Подскажите как можно єто исправить, а то у меня что то...

Ошибка [Error] Unit1.pas(69): Not enough actual parameters - Delphi
Помогите, пожалуйста, разобраться почему вылетает ошибка Unit1.pas(69): Not enough actual parameters при компиляции. Ошибка вылетает в...

E2035 Not enough actual parameters. не могу понять в чем ошибка - Delphi
не могу понять в чем ошибка Unit1.pas(38): E2035 Not enough actual parameters procedure TForm1.Image1Click(Sender:...

Not enough actual parameters - Delphi
выдает ошибку Unit1.pas(38): Not enough actual parameters к строке a:=strtofloat(form1.StringGrid1.Cells); в чем может быть дело? ...

too many actual parameters - Delphi
Всем привет. При создание аудиоплеера у меня возникла проблема. При компилировании выдает ошибку: too many actual parameters. Нажимая...

Too many actual parameters - Delphi БД
unit Unit2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Snoopy
1912 / 1069 / 90
Регистрация: 06.12.2008
Сообщений: 2,802
17.01.2010, 21:42 #2
Данная фраза говорит о том, что Вы не передаете в функцию соответствующих параметров
представьте весь код
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
17.01.2010, 21:44  [ТС] #3
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
program magic_sqr;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
type
matrix=array[1..100,1..100] of integer;
 
function sumstr (var x:matrix; i,n:integer):integer;
var j:integer;
begin
  for j:=1 to n do
    sumstr:=sumstr+x[i,j];
end;
var i,j,n:integer;
    matr:matrix;
 
procedure Input (n:integer; var x:matrix);
var i,j:integer;
begin
writeln ('Введите элементы массива');
writeln;
for i:=1 to n do
  for j:=1 to n do
    begin
      write ('a[',i,',',j,'] = ');
      readln (x[i,j]);
      writeln;
    end;
end;
 
procedure Output (n:integer; x:matrix);
var i,j:integer;
begin
  writeln ('Исходная матрица');
  writeln;
    for i:=1 to n do
    begin
      for j:=1 to n do
        write (x[i,j],' ');
        writeln
    end;
end;
 
begin
SetConsoleCP (1251);
SetConsoleOutputCP (1251);
  writeln ('Введите n');
  readln (n);
Input (n, matr);
Output (n, matr);
writeln;
for i:=1 to n do
  writeln (sumstr (matr,i,n,));
readln;
end.
0
Snoopy
1912 / 1069 / 90
Регистрация: 06.12.2008
Сообщений: 2,802
17.01.2010, 22:07 #4
еще задание напишите
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
17.01.2010, 22:12  [ТС] #5
уже не надо) разобрался)) заменил на это
Delphi
1
2
3
4
5
6
7
8
function sumstr (x:matrix; i,n:integer):integer;
var j,res:integer;
begin
res:=0;
  for j:=1 to n do
    res:=res+x[i,j];
  sumstr:=res;
end;
0
Страдалецъ
Тимуровец
443 / 286 / 14
Регистрация: 10.09.2009
Сообщений: 963
17.01.2010, 22:31 #6
Правильнее так:
Delphi
1
2
3
4
5
6
7
function sumstr (x:matrix; i,n:integer):integer;
var j: integer;
begin
 Result := 0;
 for j := 1 to n 
 do Result := Result + x[i,j];
end;
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
17.01.2010, 22:43  [ТС] #7
Цитата Сообщение от Страдалецъ Посмотреть сообщение
Правильнее так:
Delphi
1
2
3
4
5
6
7
function sumstr (x:matrix; i,n:integer):integer;
var j: integer;
begin
 Result := 0;
 for j := 1 to n 
 do Result := Result + x[i,j];
end;
просто у нас препод не любит такую запись, с Result'ом))

Добавлено через 3 минуты
Цитата Сообщение от Snoopy Посмотреть сообщение
еще задание напишите
задание: над определить является ли заданная матрица магическим квадратом или нет.

Добавлено через 1 минуту
вот готовый код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program magic_sqr;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
type
matrix=array[1..100,1..100] of integer;
 
var i,n:integer;
    matr:matrix;
    IsMagic:boolean;
 
function sumstr (x:matrix; i,n:integer):integer;
var j,res:integer;
begin
res:=0;
  for j:=1 to n do
    res:=res+x[i,j];
  sumstr:=res;
end;
 
function sumcol (x:matrix; j,n:integer):integer;
var i,res:integer;
begin
res:=0;
  for i:=1 to n do
    res:=res+x[i,j];
  sumcol:=res;
end;
 
procedure Input (n:integer; var x:matrix);
var i,j:integer;
begin
writeln;
writeln ('Введите элементы массива');
writeln;
for i:=1 to n do
  for j:=1 to n do
    begin
      write ('a[',i,',',j,'] = ');
      readln (x[i,j]);
      writeln;
    end;
end;
 
procedure Output (n:integer; x:matrix);
var i,j:integer;
begin
  writeln ('Исходная матрица:');
   for i:=1 to n do
    begin
      for j:=1 to n do
        write (x[i,j],' ');
        writeln
    end;
end;
 
begin
SetConsoleCP (1251);
SetConsoleOutputCP (1251);
  writeln ('Введите n');
  readln (n);
Input (n, matr);
Output (n, matr);
writeln;
IsMagic:=false;
for i:=1 to n do
  if sumstr (matr,i,n) = sumcol (matr,i,n) then
    IsMagic:=true
  else break;
if IsMagic then
  writeln ('Квадрат - магический!')
else
  writeln ('Квадрат - не магический!');
readln;
end.
0
Страдалецъ
Тимуровец
443 / 286 / 14
Регистрация: 10.09.2009
Сообщений: 963
17.01.2010, 22:46 #8
Оригинально. Не использовать встроенные средства языка - это не только неправильно, но и вредно. Одно дело - не знать об этом, другое умышленно избегать этого. В результате вырабатывается привычка постоянно изобретать велосипед и сильно увеличивает время написания кода.
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
17.01.2010, 22:47  [ТС] #9
Цитата Сообщение от Страдалецъ Посмотреть сообщение
Оригинально. Не использовать встроенные средства языка - это не только неправильно, но и вредно. Одно дело - не знать об этом, другое умышленно избегать этого. В результате вырабатывается привычка постоянно изобретать велосипед и сильно увеличивает время написания кода.
согласен, но... препод старой закалки и с ней не поспоришь..(
0
Страдалецъ
Тимуровец
443 / 286 / 14
Регистрация: 10.09.2009
Сообщений: 963
17.01.2010, 22:47 #10
Зачем-же вы передаете в качестве параметра массив, если он является у вас глобальной переменной и виден из любой процедуры внутри этого модуля?
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
17.01.2010, 23:00  [ТС] #11
т.е я могу вместо
Delphi
1
2
3
4
5
6
7
8
function sumstr (x:matrix; i,n:integer):integer;
var j,res:integer;
begin
res:=0;
  for j:=1 to n do
    res:=res+x[i,j];
  sumstr:=res;
end;
писать это?

Delphi
1
2
3
4
5
6
7
8
function sumstr (i,n:integer):integer;
var j,res:integer;
begin
res:=0;
  for j:=1 to n do
    res:=res+matr[i,j];
  sumstr:=res;
end;
Добавлено через 8 минут
проверил.. и правда... списал бы на то, что я ток на первом курсе, но я должен был это знать...)

тогда код принимает такой вид:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program magic_sqr;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
type
matrix=array[1..100,1..100] of integer;
 
var i,n:integer;
    matr:matrix;
    IsMagic:boolean;
 
function sumstr (i,n:integer):integer;
var j,res:integer;
begin
res:=0;
  for j:=1 to n do
    res:=res+matr[i,j];
  sumstr:=res;
end;
 
function sumcol (j,n:integer):integer;
var i,res:integer;
begin
res:=0;
  for i:=1 to n do
    res:=res+matr[i,j];
  sumcol:=res;
end;
 
procedure Input (n:integer);
var i,j:integer;
begin
writeln;
writeln ('Введите элементы массива');
writeln;
for i:=1 to n do
  for j:=1 to n do
    begin
      write ('a[',i,',',j,'] = ');
      readln (matr[i,j]);
      writeln;
    end;
end;
 
procedure Output (n:integer);
var i,j:integer;
begin
  writeln ('Исходная матрица:');
   for i:=1 to n do
    begin
      for j:=1 to n do
        write (matr[i,j],' ');
        writeln
    end;
end;
 
begin
SetConsoleCP (1251);
SetConsoleOutputCP (1251);
  writeln ('Введите n');
  readln (n);
Input (n);
Output (n);
writeln;
IsMagic:=false;
for i:=1 to n do
  if sumstr (i,n) = sumcol (i,n) then
    IsMagic:=true
  else break;
if IsMagic then
  writeln ('Квадрат - магический!')
else
  writeln ('Квадрат - не магический!');
readln;
end.
0
Страдалецъ
Тимуровец
443 / 286 / 14
Регистрация: 10.09.2009
Сообщений: 963
17.01.2010, 23:07 #12
Можете и n тоже по той-же причине исключить из параметров.
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
17.01.2010, 23:12  [ТС] #13
Цитата Сообщение от Страдалецъ Посмотреть сообщение
Можете и n тоже по той-же причине исключить из параметров.
логично... но какие параметры мне тогда передавать в процедуры?
0
Страдалецъ
Тимуровец
443 / 286 / 14
Регистрация: 10.09.2009
Сообщений: 963
18.01.2010, 00:20 #14
Если в этом нет необходимости, то зачем перегружать код?
0
STL1te
7 / 6 / 0
Регистрация: 08.12.2009
Сообщений: 105
18.01.2010, 11:06  [ТС] #15
требует препод..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2010, 11:06
Привет! Вот еще темы с ответами:

ошибка: Not enough actual parameters - Delphi
у меня массив панелей, называется Blocks. for J:= Low(Blocks) to High(Blocks) do begin Blocks := TPanel.Create; ...

Ошибка Too Many actual parameters - Delphi
Возникла проблемка. Не понимаю. ... function TCheckFileFolder.CopyFile(Path1, Path2 : string): boolean; begin result :=...

Ошибка: Not enough actual parameters - Delphi
Не могу никак освоить процедуры, в ютубах процедуры пишут так же, в чем ошибка если в процедуру поставить ввод и вывод все равно та же...

Ошибка Not enough actual parameters - Delphi
Помогите разобраться в чем ошибки Unit4.pas(54): Not enough actual parameters Unit4.pas(59): ';' expected but '.' found ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.01.2010, 11:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru