Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2010, 13:44   #1
RemaKos
Новичок
Джуниор
 
Регистрация: 14.11.2010
Сообщений: 1
По умолчанию Задачи на procedure в Паскале

Подскажите пожалуйста,как решить эти 4 задачи,желательно наиболее простым способом.А то мы вчера только начали проходить процедуры и функции,а я ничего не понял.

1). Написать подпрограмму Min(a,b) для нахождения минимального из двух чисел.Вычислить с помощью неё значение выражения z=min(3x,2y)+min(x-y,x+y).

2). Написать подпрогграмму max(a,b) для нахождения максимального из двух чисел.Вычеслить с помощью неё значение выражения z=max(x,2y-x)+max(5x+3y,y).

3). Написать подпрограмму f(x),которая вычесляет значение по следущей формуле: f9x)=x(в кубе)-sin x.Построить таблицу значений функций для отрезка [a,b] с шагом h.

4). Написать подпрограмму,которая выясняет,является ли чётным данное число.Из трёх чисел x,y,z вывести на экран значения тех,которые являются нечётными.
RemaKos вне форума Ответить с цитированием
Старый 14.11.2010, 14:03   #2
SkuLLL
Пользователь
 
Аватар для SkuLLL
 
Регистрация: 13.11.2010
Сообщений: 28
По умолчанию

Мы тоже вчера проходили процедуры и функции. Вот первая задача, но я не проверял ее, если что исправь:
var x,y,z: integer;
procedure MinNumber(a,b: integer; var min: integer);
begin
if a<b then min:=a else min:=b;
end;
begin
writeln('введите x,y ');
readln(x,y);
z:=MinNumber(3*x,2*y)+MinNumder(x-y,x+y);
writeln('z= ',z);
readln;
end.
SkuLLL вне форума Ответить с цитированием
Старый 14.11.2010, 14:08   #3
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

SkuLLL Вас код оформлять не учили?
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 14.11.2010, 14:12   #4
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

Процедура - это просто набор определенных операторов, например, ввод массива.
Функция - подобно математической функции - это некоторое выражение, зависящее от аргумента (аргументов).
Основное их отличие: функция возвращает определенное значение, процедура ничего не возвращает, а просто выполняет свои операторы. Следовательно, если мы используем функцию, то присваиваем какой-либо переменной её значение, а если процедуру - то просто упоминаем её имя в тексте программы.
Код:
MyProcedure(a, b); // процедура
y := MyFunc(x); // функция

То есть, SkuLLL, тебе бы нужно использовать функцию, а не процедуру:
Код:
var x,y,z: integer;

function MinNumber(a, b: integer): integer;
begin 
if a<b then MinNumber:=a else MinNumber:=b;
end;

begin
writeln('введите x,y ');
readln(x,y);
z:=MinNumber(3*x,2*y)+MinNumder(x-y,x+y);
writeln('z= ',z);
readln;
end.

Последний раз редактировалось Риндера; 14.11.2010 в 14:17.
Риндера вне форума Ответить с цитированием
Старый 14.11.2010, 14:15   #5
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Я бы написал функции, а не проедуры, т.к функции возвращают значение, а процедуры нет:
Код:
function min(x,y:real):real ;   //=========макисмум аналогично
begin
if x>y then min:=y else min := x ;
end;

function f(x:real):real;
begin
f:= sqr(x)*x- sin(x);
end;


function chet(x:integer):boolean;
begin
 if x mod 2=0 then   chet:= true else chet:= false
end;
А потом бы вызывал их в программе
Код:
 var x,y,step,left, right: real;
 
 a:array[1..3] of integer;
 
 i:integer;
 
 begin
 readln(x,y);
 writeln('z =',min(3*x,2*y)+min(x-y,x+y));
 
 readln(left,right,step);
 writeln('    x      |     f(x)   ');
 
 while(left<=right) do
  begin
  //=========табулирование=====
  writeln(left,'     |     ',f(left) );
  
  left:=left+step;
 end;
 
 for  i:=1 to 3 do
 readln(a[i]);
 
  for i:=1 to 3 do
    if chet(a[i])=false then writeln('nechet ', a[i],' ');
  end.
Единственный способ стать умнее - играть с более умным противником.

Последний раз редактировалось Sam Gold; 14.11.2010 в 14:18.
Sam Gold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачи на паскале. azon Помощь студентам 10 19.10.2010 20:01
3 задачи в паскале. Nato4ka Помощь студентам 3 11.05.2009 16:12
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. Пищенок Саша Паскаль, Turbo Pascal, PascalABC.NET 5 20.01.2009 13:46