Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2010, 14:06   #1
Indigo_best
 
Регистрация: 04.05.2010
Сообщений: 8
По умолчанию маленькая загвоздка

решил задачу, которую дал препод, запустил, все работает. Но она все равно докопалась до моей задачи, хотя на другом факультете парню которому дал списать задачу она ее подписала!

Код:
TYPE mass=array[1..20] of real;
massint=array[1..20] of integer;

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:mass; K1,K2,K3:massint;
n1,n2,n3,n4,i:integer;
procedure SM(x:mass;y,k:integer;s:string;var e,f,g:massint);
var otr,p,o,i1:integer;
begin
Label6.Caption:=Label6.Caption+#13+#13+s;
otr:=0;
p:=0;
o:=0;
for i1:=1 to y do
if x[i1]>0 then p:=p+1
else if x[i1]<0 then otr:=otr+1
else o:=o+1;
Label6.Caption:=Label6.Caption+#13+'Количество отрицательных элементов - '+
IntToStr(otr)+#13+'Количество положительных элементов - '+
IntToStr(p)+#13+'Количество нулевых элементов - '+IntToStr(o);
e[k]:=otr;
f[k]:=p;
g[k]:=o;
end;

begin
n1:=StrToInt(Edit1.Text);
n2:=StrToInt(Edit2.Text);
n3:=StrToInt(Edit3.Text);
n4:=StrToInt(Edit4.Text);
For i:=1 To n1 do
a[i]:=StrToFloat(M1.Cells[i-1,0]);
For i:=1 To n2 do
b[i]:=StrToFloat(M2.Cells[i-1,0]);
For i:=1 To n3 do
c[i]:=StrToFloat(M3.Cells[i-1,0]);
For i:=1 To n4 do
d[i]:=StrToFloat(M4.Cells[i-1,0]);
SM(a,n1,1,'Вектор A',k1,k2,k3);
SM(b,n2,2,'Вектор B',k1,k2,k3);
SM(c,n3,3,'Вектор C',k1,k2,k3);
SM(d,n4,4,'Вектор D',k1,k2,k3);
For i:=1 To 4 do
begin
M5.Cells[i-1,0]:=IntToStr(k1[i]);
M6.Cells[i-1,0]:=IntToStr(k2[i]);
M7.Cells[i-1,0]:=IntToStr(k3[i]);
end;
end;

procedure TForm1.Edit1Change(Sender:TObject);
begin
if Edit1.Text<>''
then M1.ColCount:=StrToInt(Edit1.Text);
end;

procedure TForm1.Edit2Change(Sender:TObject);
begin
if Edit2.Text<>''
then M2.ColCount:=StrToInt(Edit2.Text);
end;

procedure TForm1.Edit3Change(Sender:TObject);
begin
if Edit3.Text<>''
then M3.ColCount:=StrToInt(Edit3.Text);
end;

procedure TForm1.Edit4Change(Sender:TObject);
begin
if Edit4.Text<>''
then M4.ColCount:=StrToInt(Edit4.Text);
end;

end.
говорит мол почему в одном месте у нас массивы к1,к2,к3 написаны как переменная, а в другом как массив

SM(a,n1,1,'Вектор A',k1,k2,k3);
SM(b,n2,2,'Вектор B',k1,k2,k3);
SM(c,n3,3,'Вектор C',k1,k2,k3);
SM(d,n4,4,'Вектор D',k1,k2,k3);


M5.Cells[i-1,0]:=IntToStr(k1[i]);
M6.Cells[i-1,0]:=IntToStr(k2[i]);
M7.Cells[i-1,0]:=IntToStr(k3[i]);

помогите исправить ошибку пожалуста
Indigo_best вне форума Ответить с цитированием
Старый 11.06.2010, 14:59   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Да ты не понял ее вопроса! Она спрашивает почему ты в процедуре описывашь формальные параметры e,f,g:massint как параметры-переменные.

SM(a,n1,1,'Вектор A',k1,k2,k3); тут они выступают как параметры-переменные.
M5.Cells[i-1,0]:=IntToStr(k1[i]); а вот тут - как параметры-значания...
M6.Cells[i-1,0]:=IntToStr(k2[i]);
M7.Cells[i-1,0]:=IntToStr(k3[i]);

Вот если сам писал программу, то и объясни ей чем отличается параметр-значание от параметра-переменной...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 11.06.2010 в 15:05.
Grag вне форума Ответить с цитированием
Старый 11.06.2010, 16:42   #3
Indigo_best
 
Регистрация: 04.05.2010
Сообщений: 8
По умолчанию

писал то сам, даже по ее подсказке, только все равно не понятно в чем разница..

так чем отличается параметр-значание от параметра-переменной?)

Последний раз редактировалось Stilet; 14.06.2010 в 10:13.
Indigo_best вне форума Ответить с цитированием
Старый 12.06.2010, 13:56   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Функция SM принимает массив, а IntToStr одно из целых чисел (значений) массива...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 12.06.2010, 13:58   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Если в функции/процедуре формальный параметр описан как параметр-значение, то внутри процедуры ты работаешь с копией этого значения и изменить его не можешь за пределами видимости процедуры. Если формальный параметр описан как параметр-значение, то внутри ты работаешь со ссылкой на этот параметр и можешь менять его значение как внутри, так и за пределами видимости. А вообще читай теорию, если хочешь заниматься программированием...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 12.06.2010, 18:01   #6
Indigo_best
 
Регистрация: 04.05.2010
Сообщений: 8
По умолчанию

в том то и дело что я не хочу заниматься программированием и моя специальность с ним не связана. Мне надо только сдать экзамен, а для этого я должен исправить какую то неведомую ошибку в этой задаче
Indigo_best вне форума Ответить с цитированием
Старый 12.06.2010, 18:05   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Да нет там у тебя ошибки, просто нужно объяснить раличие параметров-переменных и параметров-значений....
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 13.06.2010, 10:29   #8
Indigo_best
 
Регистрация: 04.05.2010
Сообщений: 8
По умолчанию

она сказала что не будет принимать такую задачу, еще она говорила что то насчет обозначения переменных и значений одной и той же буквой
Indigo_best вне форума Ответить с цитированием
Старый 13.06.2010, 19:54   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
говорит мол почему в одном месте у нас массивы к1,к2,к3 написаны как переменная, а в другом как массив
Хм... До меня что-то не доходит что имелось ввиду...
Цитата:
что то насчет обозначения переменных и значений одной и той же буквой
о___о ?
Цитата:
хотя на другом факультете парню которому дал списать задачу она ее подписала!
Мда... Нужно было просто первым сдавать... =\\
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 13.06.2010, 21:13   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Grag
Если формальный параметр описан как параметр-значение, то внутри ты работаешь со ссылкой на этот параметр и можешь менять его значение
Grag, небольшая описка. Вы дважды написали одно и то же ("параметер-значение"). вместо того, что выделено крассным Вами подразумевалось "Параметер-переменная"


Indigo_best,
1) разберитесь для себя, что такое параметры процедуры/функции!
Чем отличаются такие записи:
procedure Some(x : integer);
procedure Some(var x : integer);
procedure Some(const x : integer);

Цитата:
Сообщение от Indigo_best
что то насчет обозначения переменных и значений одной и той же буквой
а вот тут я, например, не понимаю, о чём речь!

и, кстати, я тоже не вижу никаких ошибок в вашей программе! Ну, я бы три массива для хранения отрицательных, положительных и нулевых элементов заменил на один двухмерный, но это по сути решения НЕ МЕНЯЕТ! Вроде бы абсолютно рабочий код...
Я лично не понимаю, что преподаватель хочет от Вас.

Может быть, Вы на следующий разговор с ней возьмёте диктофон и потом сюда выложите запись её замечаний?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загвоздка в програме. ostego Помощь студентам 2 10.06.2010 21:20
Загвоздка в коде. просто Jus PHP 7 24.03.2010 15:43
Загвоздка Airgolem Microsoft Office Access 11 25.10.2009 00:46
Загвоздка в программе prikolist Общие вопросы C/C++ 6 26.04.2009 21:53
загвоздка с Едитом 4321 Общие вопросы Delphi 3 25.09.2008 12:07