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

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

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

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


Пионер
**

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

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


необходимо вывести для 5 или больше значений X значение сходимости ряда
Program Lab0;
Uses crt;
{$F+}
{SI global.inc}
{SI func.inc}
{SI inout.inc}
Begin
CLRSCR;
Writeln('Laba1');
Writeln('+--------------+');
Writeln('+--------------+');
Writeln('THE END.');
readln;
END.

func.inc
function Y(x: double): double;
const eps = 0.0000001;
var
s, next: double;
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;


как выводиться информация ввиде таблице в данном случае ?? можно ли функцию в виде параметра передовать? что-то совсем всё забыл(


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


Гость






Можно... Читай здесь:
FAQ: Процедурные типы
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


что-то я совсем всё забыл((( norespect.gif вот если такие процедуры написать они будут работать? не судите строго wacko.gif

inout.inc
  procedure inс(A:mas);
Var
i:integer;
begin
for i:=1 to 5 do
Writeln('Vvedite',i,' -bIU* X');
readln(A[i]);
end;

procedure out(var 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;


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


Гость






Только наоборот: при вводе массива добавить var в заголовок процедуры (иначе будешь получать все время нулевой массив, или мусор - зависит от компилятора), а при выводе - var необязателен...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


если в глобал.inc
ввести
Type mas = Array [1..5] of real;
Var
i:intefer;

а в программе Inc(A); то почему пишет что А- это неизвестый индефикатор (номер 3 ошибка) ??

volvo, give_rose.gif огромное спасибо!


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


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Цитата(punkska @ 19.02.2006 23:40) *


а в программе Inc(A); то почему пишет что А- это неизвестый индефикатор (номер 3 ошибка) ??



Может это от того, что A описан внутри процедуры, а не программы?


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

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

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


даже если в варе описать, что A:mas ошибка остаёться =(


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


Пионер
**

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

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


 Program Lab1;
Uses crt;
Type mas = Array [1..5] of real;
Var
i:integer;
A: mas;
function Y(x: double): double;
const eps = 0.0000001;
var
s, next: double;
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;
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;

Begin
CLRSCR;
Writeln('Laba1');
Writeln('+--------------+');
Inc(A);
Out(A);
Writeln('+--------------+');
Writeln('THE END.');
readln;
END.


так работет, но вывод не происходит ....выдаёт 205 ошибку! подскажит, пжалуйста


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


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Ошибка в ф-и y(x:double), практически никогда не выполняется исловие next < eps

Если ошибки в вычислениях нет, то можно сделать так :

function Y(x: double): double;
const eps = 0.001;
var
s, next: double;
n: integer;
begin
next := 1;
s := next; n := 1;
repeat
inc(n);
next := next*(n-1)*x/n;
s := s + next;
until ((next) < eps) or (n=100); {<--------}
Y:= s
end;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

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

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


klem4 , спасибО! Помогло!

тока почему при разделение на файлы программе не нравиться
Цитата
а в программе Inc(A); то почему пишет что А- это неизвестый индефикатор (номер 3 ошибка) ??


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


Гость






Заархивируй файлы именно так, как они у тебя разделены и не работают, и присоедини... Посмотрим...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Кстати, советую поменять название своей ф-и ... inc - всетаки в паскале уже есть, и ты его используешь мнежду прочим помимо использования "своего" inc.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

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

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


название процедуры изменил( что-то не вышло(


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


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


Гость






klem4, ну и что? Он же использует встроенный Inc ДО описания своего... Видимость процедур функций никто не отменял... Рукописный Inc в это время просто не виден, никаких проблем возникать не должно (если не менять процедуры местами)

punkska
Так ты же ничего не подключаешь!
{SI ...}
поменяй на
{$I ...}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Пионер
**

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

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


give_rose.gif спасибо!!!
надо было так облажаться))) lol.gif


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


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


А я и не говорил что ошибка из-за этого, просто это имхо не красиво так делать ... ;)


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Пионер
**

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

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


для порядка и ясности напишу задание

Составить алгоритм модулю для вычисления y(x)=x/2+2*x^2/3+3*x^3/4+...
вычислить пока очередной член ряда а н-ое > E
вычислить для 5 значений x


ПРЕАОДОВАТЕЛЬ был взбешон и не доволен

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

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

2. табличный вывод norespect.gif Я совсем забыл как он делаеться ! НО почитав хелп нашёл полезную инфу

по ней составил простую программу

program znaki;
uses crt;
var
i: integer;
Begin
for i:=179 to 219 do write(i,' ',chr(i),' ');
readkey;
end.


в начале начал писать таблицу циклами что0то типо for i:=1 to 15 do writeln(chr(205)); wr//(chr(187));чуть крыша не поехала!!! wacko.gif таблица не получалась)

потом вспомнил что таблицу можно рисовать через врайтлн а сами знаки -ЗАЖАВ АЛЬТ + НОМЕР СИМВОЛА!

но таблица не получаеться ровной! как сделать чтоб y(x) занимал заданное количество клеток y(x):6 не получаеться(
что тут посоветуете?

3. необходимо написать эту же функцию тока с пред условие! что это значит? он про чикл мне говорил???


2. пункт

возможно написать универсальный модуль для построение таблиц??? может его на форуме уже писали!?
Преподователь сказал что это ОЧЕНЬ сложно и он будет ОЧЕНЬ большим!!


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


Гость






Цитата
для порядка и ясности напишу задание
А вот это надо было делать еще в САМОМ ПЕРВОМ сообщении... Ты этого не сделал, получил от преподавателя "на орехи"... В следующий раз будешь писАть задание сразу.

Сходимость ряда ТЫ регулировать не можешь, ряд у тебя задан раз и навсегда... Делай вот так, например (ввод данных организуешь сам...):
const
eps = 0.0001;
n = 5;
x: array[1 .. n] of double =
(0.1, 0.5, 0.75, 1.25, 3.75);

var
s, next: double;
i, j: integer;

begin
for i := 1 to n do
if x[i] < 1 then begin

s := 0;
next := 1; j := 1;
repeat

inc(j);
next := next * x[i];
s := s + j * next / succ(j);

until (j * next / succ(j)) < eps;
writeln('x = ', x[i]:10:5, ' s = ', s:10:5)

end
else writeln('x = ', x[i]:10:5, ' ряд расходится !!!');

end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Пионер
**

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

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


Цитата
' ряд расходится !!!'

а не кажеться что это не верно?
ведь нужно найти сумму !! а не выяснить сходимость ряда. Или я не прав?
чему-то y всегда будет равен ..плю любом x

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


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


Гость






Да, но не забывай, что тебе нужно находить сумму, ПОКА
Цитата
очередной член ряда а н-ое > E
... Будет ряд расходящимся - условие не выполнится никогда... Я предпочитаю дать сообщение и закончить программу корректно, а не получать Run-Time Errors... Но, впрочем, делай как знаешь...
 К началу страницы 
+ Ответить 

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

 





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