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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 17:50   #31
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а ну да. End забыл еще один дописать к процедуре а.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2014, 17:58   #32
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А-а-а ну да. End забыл еще один дописать к процедуре а.
где именно? в конце самой процедуры?дописывают , выдает вот что
Program1.pas(8) : Имя функции используется для определения другого типа объекта (не функции)
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 18:18   #33
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

ааааааааааааааааууууууушшшкиииии
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 20:18   #34
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

форумчане ))))плиз на помощь
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 20:26   #35
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

поменяла имя функции
Код:
Program b6;
Uses crt;
const n=3;
Var
A,L,Lt: array[1..n,1..n] of real;
B,X,y: array[1..n] of real;m,sum:real;

procedure p;
{Блок ввода-вывода}
Begin 
For i:=1 to n do For j:=1 to m do A[i,j]:=-1/(i+j);
For i:=1 to n do Begin
 Sum:=0;
 For j:=1 to m do Sum:=sum+a[i,j];
 B[i]:=sum;
End;
End;
procedure b;
var i : integer;
Begin
Writeln('Результат:');
For i:=1 to n do
Begin
Write('x',i,'=');
Writeln(X[i]);
End;
End;

{Конец блока ввода-вывода}
Begin
ClrScr;

a;b;

if a[1,1]<0 then
Begin
for j:=1 to n do
a[1,j]:=-a[1,j];
b[1]:=-b[1];
end;

b;

end.
пишет теперь ошибку : Program1.pas(11) : Неизвестное имя 'i' описываю в цикла i: real и пробовала integer все равно этаже ошибка



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 20:57.
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 21:03   #36
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ужас!
Извините, но, похоже, программирование это не ваше!

смотрите.
что у Вас в программе обозначают идентификаторы a и b (или A и B - Паскаль регистр букв не различает)
Цитата:
Код:
Var
  A,L,Lt: array[1..n,1..n] of real;
  B,X,y: array[1..n] of real;
тут Вы их объявляете как массивы (это правильно!)

и тут, неожиданно:
Цитата:
Код:
procedure b;
Как прикажете Паскалю Вас понять? B - это массив или процедура?!

дальше:
Цитата:
Код:
a;b;
вызов процедур a и b
процедуры с именем a нет (вы её переименовали в p).
насчёт b я уже выше писал..

Похоже, что то, что Вы не понимаете, что Вам надо сделать в программе, Вы пытаетесь так же в коде и написать. Но Паскаль не потерпить неоднозначности. Он такой код компилировать не будет!

UPDATED
А! Извините, я увидел пример кода от Stilet. Это его фокусы с процедурами a и b, которые имеют те же имена, что и массивы.
Но он код писал прямо тут на форуме, в браузере, ещё и особо не разбираясь, что за задачу Вы, собственно, решаете.
Поэтому ему простительно ошибаться...

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 21:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2014, 21:49   #37
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ужас!
Извините, но, похоже, программирование это не ваше!

смотрите.
что у Вас в программе обозначают идентификаторы a и b (или A и B - Паскаль регистр букв не различает)

тут Вы их объявляете как массивы (это правильно!)

и тут, неожиданно:

Как прикажете Паскалю Вас понять? B - это массив или процедура?!

дальше:
вызов процедур a и b
процедуры с именем a нет (вы её переименовали в p).
насчёт b я уже выше писал..

Похоже, что то, что Вы не понимаете, что Вам надо сделать в программе, Вы пытаетесь так же в коде и написать. Но Паскаль не потерпить неоднозначности. Он такой код компилировать не будет!

UPDATED
А! Извините, я увидел пример кода от Stilet. Это его фокусы с процедурами a и b, которые имеют те же имена, что и массивы.
Но он код писал прямо тут на форуме, в браузере, ещё и особо не разбираясь, что за задачу Вы, собственно, решаете.
Поэтому ему простительно ошибаться...
уважаемый , Мегамодератор !не могли бы Вы исправить программу ?
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 22:10   #38
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от now2 Посмотреть сообщение
уважаемый , Мегамодератор !не могли бы Вы исправить программу ?
Вы шутите?

Вы предлагаете мне написать решение системы алгебраических уравнений разложением Холецкого?!
Или Вам только заполнение матриц A и B нужно сделать.
Если только заполнение - то помогу, это очень просто.

А вот если нужно найти решение X через метод Холецкого... то тут всё гораздо хуже!
Вы вот сюда ходили?
http://www.exponenta.ru/educat/class...e_5/theory.asp
там есть разобранный пример решения матрицы разложением
http://www.exponenta.ru/educat/class...xample.asp#ex2

Попробуйте заполнить массивы A и B заданными в данном примере числами.
Выведите полученные матрицы LL и LLt
сравните с теми, что получены в статье.
Дальше найдите массив Y
сравните его с тем, что получен в статье.
ну и дальше уже проще - найдите собственно массив решений X


p.s. простите, но пары часов на подобные "развлечения" у меня нет...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.05.2014, 22:16   #39
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы шутите?

Вы предлагаете мне написать решение системы алгебраических уравнений разложением Холецкого?!
Или Вам только заполнение матриц A и B нужно сделать.
Если только заполнение - то помогу, это очень просто.

А вот если нужно найти решение X через метод Холецкого... то тут всё гораздо хуже!
Вы вот сюда ходили?
http://www.exponenta.ru/educat/class...e_5/theory.asp
там есть разобранный пример решения матрицы разложением
http://www.exponenta.ru/educat/class...xample.asp#ex2

Попробуйте заполнить массивы A и B заданными в данном примере числами.
Выведите полученные матрицы LL и LLt
сравните с теми, что получены в статье.
Дальше найдите массив Y
сравните его с тем, что получен в статье.
ну и дальше уже проще - найдите собственно массив решений X


p.s. простите, но пары часов на подобные "развлечения" у меня нет...
давайте заполение A и В хоть
now2 вне форума Ответить с цитированием
Старый 29.05.2014, 22:24   #40
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию

как для этой проги описание a и b cделать?
Код:
program kursovaya;
uses crt;
const p=10;
type mattype=array[1..p,1..p] of double;
mattype1=array[1..p] of double;
{Процедура для вывода матрицы на экран}
procedure writemat (var a:mattype; n,m:byte);
var i,j:byte;
begin
writeln;
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:7:3,' ');
writeln
end;
end;
{Процедура для ввода значений элементов матрицы}
procedure inputmat (var a:mattype;var d:mattype1; var n:byte);
var i,j:byte;
begin
writeln;
write ('Введите размер матрицы = ');
readln(n);
writeln;
writeln('Введите матрицу:');
writeln;
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
writeln;
writeln('Введите свободные коэффициенты:');
writeln;
for i:=1 to n do
readln(d[i]);
writeln;
end;
{Процедура получения двух треугольных матриц, произведение которых равно исходной матрице}
procedure getBnC(var a,b,c:mattype; n:byte);
var k,i,a1,j:byte;
begin
for k:=1 to n do
for i:=1 to n do
begin
if k=i then c[k,i]:=1
else c[k,i]:=0;
b[k,i]:=0;
end;
for a1:=1 to n do
begin
if a1=1 then
begin
for i:=1 to n do
b[i,1]:=a[i,1];
for i:=2 to n do
c[1,i]:=a[1,i]/b[1,1];
end
else
begin
k:=a1;
for i:=a1 to n do
begin
b[i,k]:=a[i,k];
for j:=1 to k-1 do
b[i,k]:=b[i,k]-b[i,j]*c[j,k];
end;
i:=a1;
for k:=i+1 to n do
begin
c[i,k]:=a[i,k];
for j:=1 to i-1 do
c[i,k]:=c[i,k]-b[i,j]*c[j,k];
c[i,k]:=c[i,k]/b[i,i];
end;
end;
end;
end;
procedure otvet(var b,c:mattype; d:mattype1; n:byte);
var x,y,s:mattype1;
i,j,k:byte;
w,q:double;
y1,x1:mattype;
begin
for i:=1 to n do
if i=1 then y[i]:=d[i]/b[i,i]
else
begin
w:=0;
for k:=1 to i-1 do
begin
y1[i,k]:=w+b[i,k]*y[k];
w:=y1[i,k];
end;
y[i]:=(d[i]-w)/b[i,i];
end;
for i:=n downto 1 do
if i=n then x[i]:=y[i]
else
begin
q:=0;
for k:=i+1 to n do
begin
x1[i,k]:=q+c[i,k]*x[k];
q:=x1[i,k];
end;
x[i]:=y[i]-q;
end;
writeln;
writeln('Ответ X:');
writeln;
for i:=1 to n do
writeln('x[',i,']= ',x[i]:1:4);
writeln;
end;
{Основная программа}
var a,a1,c,b:mattype;
d:mattype1;
n:byte;
begin
clrscr;
writeln ('метод Холецкого ');
InputMat(a,d,n); {Ввод матрицы A }
getBnC(a,b,c,n);{ Получение треугольных матриц B u C}
Writeln('Матрица B: ');
writemat(b,n,n);
readln;
Writeln('Матрица C: ');
writemat(c,n,n);
otvet(b,c,d,n);
readln;
end.


________
ВЫ ЧТО, НЕ ПОНИМАЕТЕ, ЧТО КОД НА ФОРУМЕ НУЖНО ОФОРМЛЯТЬ????!!!

Исходный код программы нужно ОБЯЗАТЕЛЬНО оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)

Не забывайте об этом!!!!!


Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.05.2014 в 22:56.
now2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа выдает ошибку. Паскаль Тетрадь Помощь студентам 0 29.03.2014 16:12
почему выдает ошибку паскаль? Program3.pas(30) : Встречено 'and', а ожидался оператор Julia1 Паскаль, Turbo Pascal, PascalABC.NET 13 08.02.2014 21:28
выдает ошибку ВрединкаИринка Общие вопросы Delphi 2 18.06.2012 20:46
выдает ошибку (C++) Carter Помощь студентам 2 10.03.2012 17:37
Написал прогу в паскаль в ответ после запуска выдает ошибку.Что не так? sawel23 Паскаль, Turbo Pascal, PascalABC.NET 5 27.05.2010 15:37