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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2015, 22:17   #1
Александр0607
Новичок
Джуниор
 
Регистрация: 30.03.2015
Сообщений: 2
Восклицание Входные и выходные данные для процедур Delphi

Всем привет. Ребята, выручайте: есть прога для курсача, препод сказал чтобы в процедурах были заданы собственные входные и выходные данные. Помогите переделать код.
Вот код одной из двух процедур (весь код скину если надо):
....
Код:
matrix = array [1..4,1..4] of real;
vector = array [1..4] of real;

var
Form1: TForm1;
w,vec,xz,x: vector;
z,A: matrix;
eps,d,q: real;
N:integer;

implementation
........
procedure Iteraz( );
var i,j:integer;
xp,xp1:vector;
begin
for i:=1 to 4 do
begin
xp[i]:=0;
end;

for N:=1 to 28 do
begin
for i:=1 to 4 do
begin
xp1[i]:=vec[i];
for j:=1 to 4 do
begin
xp1[i]:=xp1[i]+A[i,j]*xp[j];
end;
end;

for i:=1 to 4 do
begin
xp[i]:=xp1[i];
end;
end;

for i:=1 to 4 do
begin
x[i]:=xp1[i];

end;
end;
.....

Последний раз редактировалось Stilet; 08.04.2015 в 06:51.
Александр0607 вне форума Ответить с цитированием
Старый 07.04.2015, 22:27   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от Александр0607 Посмотреть сообщение
... препод сказал чтобы в процедурах были заданы собственные входные и выходные данные. ...
Мне кажется, это не каприз препода. Просто хорошие мальчики всегда так и делают - все входные и выходные параметры процедуры - передаются в нее и из нее как аргументы. А не через глобальные переменные.
Непонятно, откуда эта мода на использование глобальных переменных. Наверное оттого, не не поняли, зачем вообще нужны процедуры и функции.
type_Oleg вне форума Ответить с цитированием
Старый 07.04.2015, 23:20   #3
Александр0607
Новичок
Джуниор
 
Регистрация: 30.03.2015
Сообщений: 2
По умолчанию

Спасибо, это я понял. А если ближе к сути вопроса?
Александр0607 вне форума Ответить с цитированием
Старый 07.04.2015, 23:55   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Я пытался понять, что делает ваша procedure Iteraz, но пока не понял .
Даже подумал, что ничего не делает, но потом заметил строку
Код:
x[i]:=xp1[i];
.. значит, выход есть.

То есть вам надо, чтобы было как-то так
Код:
procedure Iteraz(A: matrix;vec:vector;var x:vector);

Последний раз редактировалось type_Oleg; 08.04.2015 в 00:01.
type_Oleg вне форума Ответить с цитированием
Старый 08.04.2015, 09:37   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Несколько загадочных слов скажу. Попробуй найти им объяснение и расценивай, как руководство к действию.
  1. Убери все глобальные переменные. Наш препод говорил: "если найду в коде глобальную переменную там, где можно обойтись без неё - получите подсрачник и на пересдачу". Умный дед был, спасибо ему.
  2. Переименуй типы так, чтобы они начинались на "Т". Так надо, просто доверься мне. Потом поймёшь.
  3. Массивы передавай в функции всегда по ссылке (const или var - директивы) - исключишь бесполезное копирование больших объёмов данных и выделения памяти под копии.
  4. Форматируй исходник так, чтобы его было приятно читать (особенно тогда, когда собираешься показать его кому-то, кроме компилятора): программы пишутся для людей.
Да прибудет с тобой Сила!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.04.2015, 10:32   #6
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Наш препод говорил...
У Вас был преподаватель? Я в ступоре... Вот новость, так новость!
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 08.04.2015, 10:57   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
У Вас был преподаватель? Я в ступоре... Вот новость, так новость!
Да, был. в 1996 году, на 1 курсе универа. Читался 1 семест основ программирования на турбопаскале, я туда пиво зарабатывать ходил лабонаписанием, т.к. к тому времени уже 7-й год занимался компами.

Эх, было времечко! 386-е компы, интернет только по телевизору видели и стоил он в месяц 5 стипендий, дискеты, модемы, поляризаторы на лупоглазых 14'' мониках, потом апгрейды, дум, дьябло, delphi-3 под windows-95... Молодость моя...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Pascal (входные-выходные данные) Remi Помощь студентам 1 22.11.2010 13:55
Задача в Pascal (входные-выходные данные) Remi Помощь студентам 3 20.11.2010 22:13
Задача в Pascal (входные-выходные данные) Remi Помощь студентам 0 19.11.2010 20:38
Входные и выходные данные! Awakie Помощь студентам 6 15.11.2010 20:59
Входные и выходные данные allsolovey Общие вопросы C/C++ 1 12.02.2009 20:10