Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.05.2011, 22:10
мистер фримэн мистер фримэн вне форума
Прохожий
 
Регистрация: 14.05.2011
Сообщения: 7
Репутация: 10
По умолчанию ошибка в функций

Задание 4: Создать процедуру, вычисляющую количество заданных элементов(чисел) в одномерном массиве.
Задание 5: Создать функцию, вычисляющую количество заданных элементов (чисел)в одномерном массиве.

задание 4 и 5 я решил сделать сразу вместе, через процедуру получилось сделать а вот через функцию никак, выдает ошибку

Код:
procedure chisla (var n:integer; a:array of integer);
begin
 n:=length(a);
 end;

procedure TForm1.Button1Click(Sender: TObject);
 var
 i,n,x:Integer;
    a:array of integer;
begin
  setlength(a,0);
 for i:=0 to StringGrid1.ColCount-1 do
 try
 n:=strtoint(StringGrid1.Cells[i,0]);
 setlength(a,length(a)+1);
 a[high(a)]:=n;
 except
end;
  chisla(x,a);
  label1.Caption:=inttostr(x);
end;


  function chisla2(n:integer):integer;
 var
 i,l,x:Integer;
    a:array of integer;
begin
  setlength(a,0);
 for i:=0 to 100 do

 try
 l:=a[i];
 setlength(a,length(a)+1);
 a[high(a)]:=l;
 except
end;
  n:=a[high(a)];
  result:=n
  end;


 procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:=inttostr(chisla2(n));
end;

end.

вот сама лаба:
Новая папка (2).rar
Ответить с цитированием
  #2  
Старый 30.05.2011, 22:17
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

во первых n надо объявить
Код:
procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
begin
Label1.Caption:=inttostr(chisla2(n));
end;

потом,
begin
  setlength(a,0);
 for i:=0 to 100 do
 try
 l:=a[i];
 setlength(a,length(a)+1);
Админ: Не забываем про оформление кода!

вы пытаетесь переменной l присвоить значение несуществующего номера массива (длинну массива сделали 0)

Последний раз редактировалось Admin, 30.05.2011 в 22:42.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter