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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2013, 18:57   #1
Руслан56
Пользователь
 
Регистрация: 07.10.2013
Сообщений: 30
По умолчанию

Нужно напечатать программы процедуры и функции с параметрами.Паскаль


1)Дано натуральное число. Верно ли, что произведение нечетных цифр данного числа меньше некоторого заданного числа.
2)Составьте программу получения в порядке убывания всех делителей данного числа.
3)Задано целое число N. Найти ближайшее к нему совершенное число.

То что написал, но требуют что бы процедуры и функции были написаны с параметрами:

1)
Код:
program pro1;
procedure max;
var
   a, i: integer;
   p: real;
begin
     writeln('Введите число');
     readln(a);
     p := 1;
     for i := 1 to a do begin
                        if (i mod 2 <> 0) then p := p * i;
                        end;
     writeln('произведение нечетных чисел = ', p);
     if (p < a) then writeln('Произведение меньше')
                else writeln('Произведение больше введенного числа');
end;

begin max;
end.
2)
Код:
program pro2;
function max:integer;
var
   a,i: integer;
begin
     writeln('Введите число');
     readln(a);
     for i:=a downto 1 do if a mod i = 0 then writeln('=', i);
end;
begin max();
end.
3)
Код:
program pro2;
procedure max;
var
   sum: longint;
   a,i: integer;
begin
     writeln('Введите число');
     readln(a);
     for i:=a downto 1 do if a mod i = 0 then sum:=sum+i ;
     writeln ('совершенное число = ', sum);
end;
begin max;
end.

Последний раз редактировалось Stilet; 15.11.2013 в 21:56.
Руслан56 вне форума Ответить с цитированием
Старый 15.11.2013, 21:11   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Руслан56 Посмотреть сообщение
1)Дано натуральное число. Верно ли, что произведение нечетных цифр данного числа меньше некоторого заданного числа.
Ответ на вопрос верно ли ... - или Истина, или Ложь.
Так и напрашивается создать функцию, возвращающую значение логического типа.
И использовать данное натуральное и некоторое заданное числа в качестве входных параметров.
Код:
function fmax(aNatur,Zadan:Integer):Boolean;
var p:Integer;
begin
 // здесь вычисляется произведение p
 fmax:=p<Zadan;
end;
Или как процедуру:
Код:
procedure max(aNatur,Zadan:Integer;var Verno_Li:Boolean);

Последний раз редактировалось type_Oleg; 15.11.2013 в 21:16.
type_Oleg вне форума Ответить с цитированием
Старый 15.11.2013, 22:12   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

#3 Бросилось в глаза..
Нет инициализации sum..
И что за задача? Совершенное число - это число, которое равно сумме всех своих делителей (не сщитая само число).. А то что Вы делаете - ересь..

#2
Цитата:
begin max();
end.
А max функция? Чур меня, чур
Poma][a вне форума Ответить с цитированием
Старый 16.11.2013, 09:15   #4
Руслан56
Пользователь
 
Регистрация: 07.10.2013
Сообщений: 30
По умолчанию

Исправил третью
Код:
program pro3;

var
   sum: longint;
   a,i: integer;
begin
     writeln('Введите число');
     readln(a);
     for i:=1 to a div 2 do if a mod i=0  then sum:=sum+i ;
     writeln ('Совершенное число ', sum);
end.
Первую пробую прописать. Он пишет неверное количество фактических параметров. Вторую и третью я не знаю как прописать с параметрами, постоянно какие то ошибки
Руслан56 вне форума Ответить с цитированием
Старый 16.11.2013, 12:18   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Исправил третью
допишите иницилизацию sum!
Код:
rogram pro3;

var
   sum: longint;
   a,i: integer;
begin
     writeln('Введите число');
     readln(a);
     sum := 0;
     for i:=1 to a div 2 do if a mod i=0  then sum:=sum+i ;
....

Цитата:
Первую пробую прописать. Он пишет неверное количество фактических параметров.
угу. точно так. Вы почитайте книжки/погуглите, как описываются процедуры/функции.
грубо говоря это должно выглядеть так:
Код:
function ИмяФункции( перечень формальных параметров) : возвращаемый_тип;
описание типов/переменных
begin
    ..... тут тело функции. в нём обязательно должно быть 
             присвоение возвращаемого значения: ИмяФункции  := результат;
end;
когда вызывается функция, то в неё нужно передавать фактические параметры, которые по количеству, порядку указания и типу должны в точности соответствать перечню формальных параметров! допускается функция без параметров, тогда, разумеется, её нужно вызывать так же без параметров!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание программы через процедуры. Руслан56 Помощь студентам 7 09.11.2013 12:54
Решить через процедуры и функции Richik123 Паскаль, Turbo Pascal, PascalABC.NET 0 11.04.2012 14:49
Двумерная матрица. Решение Через Процедуры и функции. poseidonLOST Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2010 21:19
СИ++ написание программы с использованием функции student555 Помощь студентам 0 28.06.2010 17:31
Написание программы с использованием функции Ветас Помощь студентам 5 08.11.2009 14:31