IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Табличный вывод!, забыл как делать
punkska
сообщение 20.02.2006 23:00
Сообщение #21


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


Цитата
1. этой строчкой в функции until ((next) < eps) or (n=100)

может быть можно регулировать сходимость ряда, изменяя количество нулей .... как вам такая мысль?
что предложите


я хотел сказать что может стоит изменить E:=0.001 вот... тем самым мы уменьшаем кольчество повторений...
хотя может ты про это и подумал....


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
punkska
сообщение 27.02.2006 11:37
Сообщение #22


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


Lab1.pas
Program Lab1;
Uses crt;
{$F+}
{$I global.inc}
{$I func.inc}
{$I inout.inc}
Begin
CLRSCR;
Writeln('Laba1');
Writeln('+--------------+');
Inc(A);
Out(A);
Writeln('+--------------+');
Writeln('THE END.');
readln;
END.


func.inc
function Y(x: real): real;
const eps = 0.0001;
var
s, next: real;
n: integer;
begin
next := 1;
s := next; n := 1;
repeat
inc(n);
next := next*(n-1)*x/n;
s := s + next;
until (next) < eps;
Y:= s
end;

function Y2(x: real): real;
const eps = 0.0000001;
var
s, next: real;
n: integer;
begin
next := 1;
s := next; n := 1;
While (next) < eps do
Begin
inc(n);
next := next*(n-1)*x/n;
s := s + next;
end;
Y2:= s
end;


global.inc
Type mas = Array [1..5] of real;
Var
i: integer;
A: mas;


inout.inc

procedure Inc(var A:mas);
Var
i:integer;
begin
for i:=1 to 5 do
Begin
Writeln('Vvedite ',i,' -bIU* X');
readln(A[i]);
end;
end;

{ procedure out(A:mas);
Var
i:integer;
begin
Writeln('X Cymma P9IDA');
for i:=1 to 5 do
Writeln('X=',A[i],' ',y(A[i]));
readln;
end;
}

Procedure out(A:mas);
var
i:integer;
Begin
Writeln('╒══════╤══════════╤══════════╕');

for i:=1 to 5 do
begin
Writeln('│', A[i]:4 ,'│', Y(A[i]):8 ,'│', Y2(A[i]):8 ,'│');
Writeln('╞══════╪══════════╪══════════╡');
end;
Writeln('╘══════╧══════════╧══════════╛');
end;


программа прерываеться после ввода данных и указывает на ошибку 205 в первой функции! помогите отладить программу!

ну наверно нужно из функций вычеркнуть EPS и записать строчку Const eps=0.00001; в глобал.inc

Действительно если епс перенести работает)))
тока таблица!!! кривая! помогите настроить чтоб красиво было unsure.gif


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
No matter
сообщение 27.02.2006 11:53
Сообщение #23


Гость






Ты вообще ответы читаешь?
Writeln('│', A[i]:4:2 ,'│', Y(A[i]):8:3 ,'│', Y2(A[i]):8:3 ,'│');


У тебя же числа ВЕЩЕСТВЕННЫЕ, а не целые! У них формат вывода другой.
 К началу страницы 
+ Ответить 
punkska
сообщение 27.02.2006 12:05
Сообщение #24


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


ВОТ прикрепил программу! вроде и таблицу рисует!
есть ошибки!
с чем связана такая большая разница между функциями y and y2 ?
как улучшить табличный вывод?
последняя ячейка получаеться пустой...как бы её удолить..

Сообщение отредактировано: punkska - 27.02.2006 12:06


Прикрепленные файлы
Прикрепленный файл  Laba1.rar ( 936 байт ) Кол-во скачиваний: 122


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
No matter
сообщение 27.02.2006 12:37
Сообщение #25


Гость






punkska, внимательно глянь на программу, которую ты привел в предыдущем посте... У тебя в циклах While и Repeat одинаковые условия, а ведь по идее цикл While выполняется пока условие истинно, а Repeat - пока оно ложно.

То есть, у тебя 2 совершенно разных вычисления производятся.
 К началу страницы 
+ Ответить 
punkska
сообщение 27.02.2006 12:42
Сообщение #26


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


give_rose.gif Спасибо! теперь обе колонки одинаковы!
Спасибо всем!! всё сделал!!!!

Сообщение отредактировано: punkska - 27.02.2006 12:57


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
punkska
сообщение 27.02.2006 20:27
Сообщение #27


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


НЕТ НЕ ВСЁ! =((((
в программе много поменял...проверьте
Не могу понять как передать функцию ввиде параметра..ФАК читал...вроде всё так сделал
Laba.pas
Program Lab1;
Uses crt;
{$F+}
{$I global.inc}
{$I func.inc}
{$I inout.inc}
Begin
CLRSCR;
Writeln('Laba1');
Inc(n,A);
CLRSCR;
root(n,A,Y,Res);
root(n,A,Y2,Res2);
Out(n,A);
Writeln('THE END.');
readln;
END.


global.inc
Const eps=0.0001;  n=5;
Type mas = Array [1..n] of real;
ftype = function (Var x:real):real;
Var
Res,Res2,A: mas;
y,y2:ftype;


func.inc
function Y(x: real): real;
var
s, next: real;
n: integer;
begin
next := 1;
s := next; n := 1;
repeat
inc(n);
next := next*(n-1)*x/n;
s := s + next;
until (next) < eps;
Y:= s
end;

function Y2(x: real): real;
var
s, next: real;
n: integer;
begin
next := 1;
s := next; n := 1;
While (next) > eps do
Begin
inc(n);
next := next*(n-1)*x/n;
s := s + next;
end;
Y2:= s
end;


inout.inc
 procedure Inc(var A:mas; n:integer);
Var
i:integer;
begin
for i:=1 to n do
Begin
Writeln(' Vvedite X[',i,']');
readln(A[i]);
end;
end;



Procedure out(A:mas; n:integer);
var
i:integer;
Begin
Writeln('ЙННННННЛННННННННННННЛНННННННННННН»');
Writeln('є',' X ','є',' Y(x) ','є',' Y2(x) ','є');
Writeln('МННННННОННННННННННННОНННННННННННН№');
for i:=1 to (n-1) do
begin
Writeln('є', A[i]:6:2 ,'є', Res[i]:12:5 ,'є', Res2[i]:12:5 ,'є');
Writeln('МННННННОННННННННННННОНННННННННННН№');
end;
Writeln('є', A[n]:6:2 ,'є', Res[n]:12:5 ,'є', Res2[n]):12:5 ,'є');
Writeln('ИННННННКННННННННННННКННННННННННННј');
end;

procedure root(n:integer; A:mas; Y:ftype; Res:mas);
var
i:integer;
Begin
for i:=1 to n do
Res[i]:=Y(A[i]);
end;
end;


Проблема возникла с функцией root и передачи в неё функций Y and Y2


Прикрепленные файлы
Прикрепленный файл  Laba1.rar ( 1018 байт ) Кол-во скачиваний: 141


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.02.2006 20:43
Сообщение #28


Гость






punkska,
Первое: ты не должен объявлять переменную функционального типа (то, что ты делаешь в GLOBAL.INC:
Var
Res,Res2,A: mas;
y, y2:ftype; { <-- Это не нужно... }
)

Второе: сама процедура Root - ты явно забыл там Begin
procedure root(n:integer; A:mas; Y:ftype; Res:mas);
var
i:integer;
Begin
for i:=1 to n do begin { <-- Здесь }
Res[ i ]:=Y(A[ i ]);
end;
end;

Третье: в основной программе ты должен поменять местами аргументы Inc и Out, потому что ты первым должен передавать массив, и только потом - N
Четвертое: Заголовки функции в описании типа и при реализации не должны различаться, а у тебя:

// ...
Type
mas = Array [1..n] of real;
ftype = function (Var x:real):real; { <-- Обрати внимание на Var !!! }

// ...

function Y(x: real): real; { <-- Где Var ? }
var ...


Вроде, все...
 К началу страницы 
+ Ответить 
punkska
сообщение 27.02.2006 20:58
Сообщение #29


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


агаааа...

ну ещё в процедуру вывода надо вписать res:mas; res2:mas;

всё* исправил но в таблице одни нули....что-то я не то сделал
код приклепляю

Сообщение отредактировано: punkska - 27.02.2006 21:00


Прикрепленные файлы
Прикрепленный файл  Laba1.rar ( 1022 байт ) Кол-во скачиваний: 127


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.02.2006 21:04
Сообщение #30


Гость






procedure root(n:integer; A:mas; Y:ftype; VAR Res:mas);
Без Var не пойдет smile.gif
 К началу страницы 
+ Ответить 
punkska
сообщение 27.02.2006 21:07
Сообщение #31


Пионер
**

Группа: Пользователи
Сообщений: 139
Пол: Мужской

Репутация: -  0  +


Цитата
Без Var не пойдет

yes2.gif good.gif give_rose.gif огромное спасибо!!!! Тебе надо памятник при жизни ставить...в виде кошки штоль...


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 20:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"