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

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

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

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


Пионер
**

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

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


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

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


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


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






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


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


Пионер
**

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

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


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

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


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


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


Гость






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

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


Пионер
**

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

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


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

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


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 байт ) Кол-во скачиваний: 162


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 ...


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


Пионер
**

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

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


агаааа...

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

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

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


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


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


Гость






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


Пионер
**

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

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


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

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


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

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

 





- Текстовая версия 24.12.2024 1:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name