07.01.2010, 17:44 | #1 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Pascal, работа с функциями.
скажем мне надо написать прогу с использованием функции y=cosx+ cos2x....cos10x Как она на пишется с функцией? |
07.01.2010, 17:44 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую почитать содержимое этих топиков Задачка с функциями файловой системы ввода-вывода Работа с текстовым файлом, Pascal |
07.01.2010, 18:00 | #2 (permalink) |
Member
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
|
Функции и процедуры-это подпрограммы,имеет структуру очень схожую с программой.
Функции описываются так Function имя(параметр - переменная:тип переменной):тип, в котором функция будет возращать своё значение; var ...; begin ... имя функции :=...; end; Ваш пример(примерно) Код:
var y:real;x:integer; Function s(x:integer):real; Begin s:=cos(x)+cos(x*2)+cos(x*3)+...+cos(x*10); end; Begin read(x); y:=s(x); writeln(y:5:2); End. Последний раз редактировалось DDS; 07.01.2010 в 18:28 |
07.01.2010, 18:08 | #3 (permalink) | |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Цитата:
Я просто что то не очень место её нахожу когда и для чего её втыкать Последний раз редактировалось Dram; 07.01.2010 в 18:11 |
|
07.01.2010, 18:32 | #5 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Лучше так:
Код:
program func1; var y,x:real; i:integer; Function s(xx:real, k:integer):real; Begin s:=cos(xx*k); end; Begin read(x); y:=0; for i:=1 to 10 do y:=y+s(x,i); writeln(y:5:2); End.
__________________
Убить всех человеков! |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
07.01.2010, 18:41 | #7 (permalink) | |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Вот выдержка из моего отчета по практике, краткое описание процедур и функций:
Цитата:
|
|
07.01.2010, 18:48 | #8 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Все правильно, в приведенном примере функция возвращает только одно значение, равное вычисленному s, совпадающему с именем функции. В примере от DDS к функции обращение 1 раз, в моем к функции 10 обращений внутри цикла. В принципе, оба варианта правильные.
__________________
Убить всех человеков! |
07.01.2010, 20:54 | #9 (permalink) | |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Цитата:
разве нельзя написать просто y:=S а если у меня будет не (х) переменная а допустим (z) . Как эта функция вызовется для нескольких переменных? |
|
07.01.2010, 21:03 | #10 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Мы должны передать в функцию значения для вычисления, если же вы напишите без x, это будет неопределенной функцией и может выдать ошибку в вычислениях (тут действует принцип "вассал моего вассала - не мой вассал!").
В моем примере функция как раз вызывается для 2-х переменных, причем имена переменных при описании функции во избежание конфликтов определены отличные от имен переменных в основной программе.
__________________
Убить всех человеков! |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|