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

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

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

 
 Ответить  Открыть новую тему 
> Решение через функции записать через процедуры
kvadrat
сообщение 20.05.2008 20:22
Сообщение #1


Пионер
**

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

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


Условие:
Прикрепленное изображение

Вот решение задчи через функции:
program searsdfg;
uses crt;
function f1(x:real):real;
begin
f1:=x*x*x;
end;
function f2(x,y,z:real):real;
begin
if (x>y) and (x>7) then f2:=x;
end;
function f3(x,y:real):real;
begin
if x>y then f3:=x;
end;
function f4(y:real):real;
begin
f4:=y*y*y;
end;
var x,y,c:real;
begin
clrscr;
writeln('x=?');
readln(x);
writeln('y=?');
readln(y);
c:=(f1(x)+(x+f4(y))*sqrt((x*f4(y))+f1(x))/(f2(x,x*y,x+y)+f3(x,x*y)));
writeln;
writeln('c=',c:2:2);
readln;
end.


Как переделать решение так чтобы вместо функций были использованы процедуры? И пожалуйсто объясните как это делается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dream-x
сообщение 20.05.2008 20:56
Сообщение #2


Пионер
**

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

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


Дружище проверь все условия они у тебя лажовые очень я бы даже сказал... дай нормальное условие задачи и что за функция max ее можно как угодно написать?... Короче дай нормальное задание!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kvadrat
сообщение 20.05.2008 21:47
Сообщение #3


Пионер
**

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

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


max(x,xy,x+y) означает найти наибольшее из перечисленных в скобках чисел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 20.05.2008 22:17
Сообщение #4


Профи
****

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

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


function max(x,y:real):real;
begin
if x>y then max:=x
else max:=y
end;
А вызов
max(max(x,y),z)


Сообщение отредактировано: Client - 20.05.2008 22:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kvadrat
сообщение 20.05.2008 22:27
Сообщение #5


Пионер
**

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

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


Нет вы меня непоняли, задача в первом посте решена верно, только нужно переделать её так чтоб она была решена не функциями а процедурами. вместо function должны быть procedure
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dream-x
сообщение 20.05.2008 23:36
Сообщение #6


Пионер
**

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

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


Цитата(kvadrat @ 20.05.2008 23:27) *

Нет вы меня непоняли, задача в первом посте решена верно, только нужно переделать её так чтоб она была решена не функциями а процедурами. вместо function должны быть procedure

Да неверно она решена ты что... Может я чего не втягиваю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.05.2008 0:07
Сообщение #7


Гость






Цитата
задача в первом посте решена верно
Ты думаешь?

Цитата
function f3(x,y:real):real;
begin
if x>y then f3:=x;
end;
А если условие не выполняется, что вернется из функции?
 К началу страницы 
+ Ответить 
dream-x
сообщение 21.05.2008 13:37
Сообщение #8


Пионер
**

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

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


Цитата(volvo @ 21.05.2008 1:07) *

Ты думаешь?

А если условие не выполняется, что вернется из функции?

Volvo вот я и говорю о том же там бред написан...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kvadrat
сообщение 21.05.2008 19:14
Сообщение #9


Пионер
**

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

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


Аха дейсвительно ошибся.
Вот правильная задача через функции (уже провереная), необходимо записать её через процедуры. (так чтобы и в том и в том решении с одинаковыми даными выводило одинаковый ответ).
program rsdfew;
uses crt;
function f1(x:real):real;
begin
f1:=x*x*x;
end;
function f2(x,y,z:real):real;
begin
if (x>y) and (x>z) then f2:=x;
if (y>x) and (y>z) then f2:=y;
if (z>x) and (z>y) then f2:=z;
end;
function f3(x,y:real):real;
begin
if x>y then f3:=x else f3:=y;
end;
function f4(y:real):real;
begin
f4:=y*y*y;
end;
var x,y,c:real;
begin
clrscr;
writeln('x=?');
readln(x);
writeln('y=?');
readln(y);
c:=(f1(x)+(x+f4(y))*sqrt((x*f4(y))+f1(x))/(f2(x,x*y,x+y)+f3(x,x*y)));
writeln;
writeln('c=',c:2:2);
readln;
end.


Вот попытка записать через процедуры но увы ответы не совпадают с предыдущим решением:

program rsdfew;
uses crt;
procedure p1(x:real; var f1:real );
begin
f1:=x*x*x;
end;
procedure p2(x,y,z:real; var f2:real);
begin
if (x>y) and (x>z) then f2:=x;
if (y>x) and (y>z) then f2:=y;
if (z>x) and (z>y) then f2:=z;
end;
procedure p3(x,y:real; var f3:real);
begin
if x>y then f3:=x else f3:=y;
end;
procedure p4(y:real; var f4:real);
begin
f4:=y*y*y;
end;
var f1,f2,f3,f4,z,x,y,c:real;
begin
clrscr;
writeln('x=?');
readln(x);
writeln('y=?');
readln(y);
p1(x,f1);p2(x,y,z,f2);p3(x,y,f3);p4(y,f4);
c:=(f1+(x+f4)*sqrt((x*f4)+f1)/(f2+f3));
writeln;
writeln('c=',c:2:2);
readln;
end.


Помогите исправить ошибки плиз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dream-x
сообщение 22.05.2008 13:15
Сообщение #10


Пионер
**

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

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



program rsdfew;
uses crt;
var f1,f2,f3,f4:real;
procedure p1(q:real; var f1:real );
begin
f1:=q*q*q;
end;
procedure p2(q,w,e:real; var f2:real);
begin
if (q>w) and (q>e) then f2:=q;
if (w>q) and (w>e) then f2:=w;
if (e>q) and (e>w) then f2:=e;
end;
procedure p3(q,w:real; var f3:real);
begin
if q>w then f3:=q else f3:=w;
end;
procedure p4(w:real; var f4:real);
begin
f4:=w*w*w;
end;

var
x,y,z,c:real;
begin
clrscr;
writeln('x=?');
readln(x);
writeln('y=?');
readln(y);
p1(x,f1);
p2(x,x*y,x+y,f2);
p3(x,x*y,f3);
p4(y,f4);
c:=(f1+(x+f4)*sqrt((x*f4)+f1)/(f2+f3));
writeln;
writeln('c=',c:2:2);
readln;
end.


Вот теперь ответы сходятся, только я не проверял правильные ли ответы smile.gif ...

Сообщение отредактировано: dream-x - 22.05.2008 13:20
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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