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

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

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

 
 Ответить  Открыть новую тему 
> модули, Провести вычисления. Необходимые для вычислений функции (факториал, во
сообщение
Сообщение #1


Новичок
*

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

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


Провести вычисления. Необходимые для вычислений функции (факториал, возведение в степень и т.д.) описать в модуле.

Вот есть пример кода из учебного пособия:
Описать модуль, содержащий функцию вычисления n!.
Код
unit MyUnit;
interface {раздел объявлений}
function f(n:Integer):Longint;
implementation {раздел реализации}
function f(n: Word): Longint;
var
   i: Integer; {параметр для организации цикла}
   Result: Longint; {вспомогательная переменная используемая как резуль-тат вычислений}
begin
   Result:=1; {0!=1}
   for i:= 1 to n do
   Result:=  Result*i;
   f:= Result; {формирование результата выполнения функции}
end;
begin {раздел инициализации}

end.{конец модуля}


Тут моя программа, условие прикреплено ниже картинкой.
Код
Unit MyUnit1;
interface function f(a,b,c:real):real;
implementation
function f(a,b,c:real):real;
begin
f:=(2*a-b-sin(c))/(5+abs(c));
end;
begin
end.


Подскажите пожалуйста что нужно сделать чтоб ее запустить, чтоб она работала, до меня так и не доходит.. Нужно еще вроде какой то файл создать.
Пишет ошибку при запуске Ctrl + F9
Error: Cannot run a unit
нажимаю Ок и ничего не происходит.

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


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


mea culpa
*****

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

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


Цитата

Тут моя программа, условие прикреплено ниже картинкой.


Это не программа, ты будто ещё раз юнит пишешь. Сохрани юнит куда нужно, потом создай новый проект и в Uses напиши имя модуля, а потом можешь вызывать функции, которые в нём есть, обычным способом. И ещё, почему ты передаёшь в функцию a,b и с? Они тебе известны, их можно записать внутри функции в виде констант. Передавать надо то, что ещё неизвестно и будет дано, то есть s и t.

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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


извиняюсь за мою тупость, но я не понимаю о чем речь..
то есть мне нужно создать новый проект в Turbo Pascal, а затем что?
нужно написать одну строку чтоль: "Uses myunit1" ?
А вас не затруднит помочь исправить, насчет a,b,c?

Сообщение отредактировано: Lis -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


mea culpa
*****

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

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


Про входные параметры беру слова обратно, надо действительно передавать a,b,c, тормознул я. Модуль будет выглядеть примерно так:

unit math;
interface

function fact(n:integer):longint;
function getabc(a,b,c:real):real;

implementation

Function fact(n:integer):longint;
var i:integer;
res:longint;
begin
res:=1;
for i:=2 to n do res:=res*i;
fact:=res;
end;

Function getabc(a,b,c:real):real;
begin
getabc:=(2*a-b-sin©)/(5+abs©);
end;

end.


Далее сохраняешь файл и жмёшь Compile->Build (не забудь в опциях проверить, что установлено Destination Disk). На выходе получишь TPU-файл модуля. Потом создаёшь ещё одну программу, такого содержания:

uses math;
var s,t:real;
begin
writeln(fact(5));
readln(s,t);
writeln(getabc(t,-2*s,1.17)+getabc(2.2,t,s-t));
readln;
end.

, сохраняешь, в папку с ней кидаешь свой модуль (у меня он назывался math.tpu), компилируешь..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Цитата
Далее сохраняешь файл и жмёшь Compile->Build (не забудь в опциях проверить, что установлено Destination Disk). На выходе получишь TPU-файл модуля.

В опциях поставил Destination Disk, затем нажал Compile->Build, а он мне ошибку (там даже путь то не мой какой то)

Вобщем у меня все через ж*пу... если закрыть паскаль, и двойным щелчком запустить файл math.pas (при условии что его открывать с помощью TPC.EXE ), то создается TPU, далее я делаю второй файл, сохраняю его, закрываю паскаль, так же двойным щелчком его запускаю, создается файл с расширением *.exe
его запускаю и там вроде как выводится нужный результат "120".. Спасибо!

мне еще пару примеров так же нужно сделать, не поможете?

Сообщение отредактировано: Lis -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Lis @ 2.07.2010 11:14) *
а он мне ошибку (там даже путь то не мой какой то)
Если хочешь получить помощь, пиши, какая ошибка, точно. Расплывчатые "там даже путь не мой" прибереги для телепатов.

Цитата
еще пару примеров так же нужно сделать, не поможете?
Странный вопрос. Никаких официальных лимитов на помощь у нас нет. Только если они на другую тему, то создавай новые темы и проследи, чтоб все было в соответствии с Правилами (как Форума, так и раздела).

Добавлено через 2 мин.
Да, и еще: используй правильные тэги (правила раздела, п.2)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Цитата(Lapp @ 2.07.2010 12:00) *

Если хочешь получить помощь, пиши, какая ошибка, точно. Расплывчатые "там даже путь не мой" прибереги для телепатов.

Странный вопрос. Никаких официальных лимитов на помощь у нас нет. Только если они на другую тему, то создавай новые темы и проследи, чтоб все было в соответствии с Правилами (как Форума, так и раздела).

Спасибо, да все хорошо, с этой я разобрался, все работает.
Мне еще нужно две так же сделать, они на эту же тему. Тогда я прикреплю их сюда.

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


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


mea culpa
*****

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

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


Цитата
его запускаю и там вроде как выводится нужный результат "120".. Спасибо!


Если бы ты повнимательнее посмотрел на код, то увидел бы, что после вывода 5! программа запрашивает ещё s и t и считает по второй функции.. ;)

Задание №5 я где-то уже видел. Min в задании №5 - я так понимаю, функция нахождения минимального числа из двух данных? Сможешь организовать сравнение двух параметров и по аналогии добавить функцию в модуль?

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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


вот что то мне сделали к 5 задаче, я в математике вообще не шарю(
unit myunit;

function min (x,y:real):real;
function max (x,y:real):real;

var a,b: real;
n: integer;
result: real;

function min (x,y:real):real
begin
if x<=y then min:=x
else min:=y;
end;

function max(x,y:real):real;
begin
if x>=y then max:=x
else max:=y;
end;

begin
write ('a= ');
readln (a);
write ('b= ');
readln (b);
write ('n= ');
readln (n);
result:=0;
x := a;
y := b*n;
result := result+min(x;y)
x := (a-b)^n;
y := (a+b)^n;
result := result-min(x;y)
x := a^(n-1);
y := b^n+1;
result := result+max(x;y);
writeln (result);
end.


Сообщение отредактировано: Lis -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


mea culpa
*****

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

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


И это у тебя компилируется? Паскаль так просто не умеет в степень возводить, только в квадрат (и в 0.5). smile.gif

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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Я.
****

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

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


Unconnected, ^ - Указатель, указывает в какую степень надо поднести lol.gif
x^n = exp(n*ln(x));

Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

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

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


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


Злостный любитель
*****

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

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


А если икс отрицательное? Или ноль?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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