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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2010, 18:53   #1
garf_92
Новичок
Джуниор
 
Регистрация: 28.06.2010
Сообщений: 3
По умолчанию добавление процедур и функций

Есть 2 задачи, необходимо добавить в каждую процедуры и функции.
1) Вычислить номер дня в невисокосном году по заданным числу и месяцу.
2) Составить программу для разложения данного натурального числа на простые, множители. Например, 200 = 2^3*5^2.

собственно сами программы:

Код:
program rgz12;
 uses crt;
 var i,n,NumDay,day:integer;
     s:string;
     Month:array[1..12] of integer;
begin
clrscr;
writeln('Введите число месяца');
 readln(day);
writeln('Введите номер месяца');
 readln(n);
  Month[1]:=31;
  Month[2]:=28;
  Month[3]:=31;
  Month[4]:=30;
  Month[5]:=31;
  Month[6]:=30;
  Month[7]:=31;
  Month[8]:=31;
  Month[9]:=30;
  Month[10]:=31;
  Month[11]:=30;
  Month[12]:=31;
FOR i:=1 to n-1 do NumDay:=Month[i]+NumDay;
NumDay:=NumDay+day;
 case n of 1:s:=' января';
           2:s:=' февраля';
           3:s:=' марта';
           4:s:=' апреля';
           5:s:=' мая';
           6:s:=' июня';
           7:s:=' июля';
           8:s:=' августа';
           9:s:=' сентября';
           10:s:=' октября';
           11:s:=' ноября';
           12:s:=' декабря';
 end;
writeln(day,s,' - ',NumDay,' день в году');
readln;
end.
и вторая


Код:
program rgz42;
 uses crt;
 var i,S,t:integer;
     P:real;
     k:array[1..10] of integer;
begin
clrscr;
write('Введите натуральное число');
 readln(S);
write(S,'=');
FOR i:=2 to 7 do begin
                   While (S mod i)=0 do begin
                                          P:=S/i;
                                          S:=trunc(P);
                                          k[i]:=k[i]+1;
                                        end;
                   IF k[i]<>0 then begin
                                     write(i,'^',k[i],'*');
                                     t:=1;
                                   end;
                 end;
IF t=0 then write('простое число') else write(S);
readln;
end.

буду премного благодарен

Последний раз редактировалось Stilet; 29.06.2010 в 10:02.
garf_92 вне форума Ответить с цитированием
Старый 28.06.2010, 19:45   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Собственно, ту часть программы, что решает поставленную задачу и выносите в функцию. А в основной программе оставляйте ввод данных, вызов функции и вывод результата.
Удачи!
Arigato вне форума Ответить с цитированием
Старый 28.06.2010, 19:51   #3
garf_92
Новичок
Джуниор
 
Регистрация: 28.06.2010
Сообщений: 3
По умолчанию

Arigato, а можно на моих примерах проиллюстрировать?)) ну не понимаю я подпрограммы!((
garf_92 вне форума Ответить с цитированием
Старый 28.06.2010, 20:13   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Код:
function имя_функции (параметры): тип_результата;
var локальные_переменные;
begin
  тело_функции;
  имя_функции := результат;
end;
Если все равно не понятно - читайте учебник.
Arigato вне форума Ответить с цитированием
Старый 28.06.2010, 20:33   #5
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Ну и а в чём сложность то?
Вот для первой.
Код:
program rgz12;

uses
  crt;

var
  i, n, NumDay, day: integer;
  s: string;
  Month: array[1..12] of integer;

procedure od(var k, d: integer);
begin
  Month[1] := 31;
  Month[2] := 28;
  Month[3] := 31;
  Month[4] := 30;
  Month[5] := 31;
  Month[6] := 30;
  Month[7] := 31;
  Month[8] := 31;
  Month[9] := 30;
  Month[10] := 31;
  Month[11] := 30;
  Month[12] := 31;
  for i := 1 to k - 1 do
    NumDay := Month[i] + NumDay;
  NumDay := NumDay + d;
end;

function od2(var k: integer): integer;
begin
  case k of
    1: s := ' января';
    2: s := ' февраля';
    3: s := ' марта';
    4: s := ' апреля';
    5: s := ' мая';
    6: s := ' июня';
    7: s := ' июля';
    8: s := ' августа';
    9: s := ' сентября';
    10: s := ' октября';
    11: s := ' ноября';
    12: s := ' декабря';
  end;
end;

begin
  clrscr;
  writeln('Введите число месяца');
  readln(day);
  writeln('Введите номер месяца');
  readln(n);
  od(n, day);
  od2(n);
  writeln(day, s, ' - ', NumDay, ' день в году');
  readln;
end.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 28.06.2010, 21:00   #6
garf_92
Новичок
Джуниор
 
Регистрация: 28.06.2010
Сообщений: 3
По умолчанию

ROMA2PVT, спасибо огромное!

вторая программа написана неверно. нашел другой вариант, тож где то что то неверно( проверьте пожалуйста:

Код:
program rgz12;

uses
  crt;

var    i,N,j,Delitel,l,B,Chastnim:Integer;
   s,Result:string;
function RazlojenieNaProstieMnojiteli(const N:Integer):String;
var
   i,j,Delitel,l,B,Chastnim:Integer;
   s:string;
begin
    Chastnim:=0;
    if N=1 then  Exit;
    B:=N;
    Delitel:=2;
        s:='';

    Repeat
     j:=0;
     for i:=1 to Delitel do
       if Delitel mod i=0 then j:=j+1;
     if j=2 then

      begin
        if B mod Delitel=0 then
         begin
          s:=s+'*'+inttostr (Delitel);
          Chastnim:=B div Delitel;
          while Chastnim mod Delitel=0 do
           begin
            s:=s+'*'+inttostr(Delitel);
            Chastnim:=Chastnim div Delitel;
            if Chastnim mod Delitel=0 then continue else break;
           end;
        end;
       end;
     inc(Delitel,1);
    until Delitel=N;
    delete(s,1,1);
         Result:='='+s;
  end;
  begin
  clrscr;
  write ('Vvedite N'); readln (N);
  RazlojenieNaProstieMnojiteli(N);
  readln;
end.

Последний раз редактировалось Stilet; 29.06.2010 в 10:04.
garf_92 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование процедур и функций! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 15:33
В чём отличие функций от процедур? +Hitman+ Паскаль, Turbo Pascal, PascalABC.NET 3 27.09.2008 13:25
Глобальность функций и процедур rivers Общие вопросы Delphi 5 01.08.2008 20:35
Параметры процедур и функций shurik_7866 Общие вопросы Delphi 8 10.12.2007 19:49