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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2014, 14:23   #1
Алексей 1994
 
Регистрация: 11.02.2014
Сообщений: 5
Сообщение Написание програм с использованием подпрограмм.

1.Найти сумму нечетных делителей натурального числа.
2.Найти сумму целых чисел из промежутка от 1 до 200, у которых ровно 5 делителей.
3.Вывести на печать сто простых чисел.
Данные задачи уже решены, но требуется их написать с использованием подпрограмм (процедуры или функции). Вот собственно в этом и затрудняюсь. Прошу помочь с этим!
1.
Код:
var
n,i,s: integer;
begin
Write(' Ââåäèòå íàòóðàëüíîå ÷èñëî:');
Readln (n);
Writeln( ' Íå÷¸òíûå äåëèòåëè: ');
for i:=1 to n div 2 do
if  (odd(i)) and ( n mod i=0) then
begin
Inc ( s,i);
Write (i, ' ');
end;
Writeln;
Writeln( 'Ñóììà íå÷¸òíûõ äåëèòåëåé:',s);
end.
2.
Код:
var i,j,s,k:integer;
begin
writeln('×èñëà îò 1 äî 200, èìåþùèå 5 äåëèòåëåé:');
s:=0;
for i:=1 to 200 do
begin
k:=0;
for j:=1 to i do
if i mod j=0 then k:=k+1;
if k=5 then
begin
write(i,' ');
s:=s+i;
end;
end;
writeln;
write('Èõ ñóììà=',s);
readln
end.
3.
Код:
var a,b:integer;
begin
b:=0;
writeln('Ñòî ïåðâûõ ïðîñòûõ ÷èñåë : ');
for a:=0 to 10000 do
begin
if (a mod 2 <> 0)or(a=2) then
begin
if (a<>1) then
begin
write(a:3);
b:=b+1;
end;
if (a mod 33=0)or(a mod 67=0)or(a mod 99=0)or(a mod 131=0) then
writeln;
b:=b+1;
end;
if a>=100 then break;
end;
end.

Последний раз редактировалось Stilet; 11.02.2014 в 14:33.
Алексей 1994 вне форума Ответить с цитированием
Старый 12.02.2014, 12:31   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

ну если все задачи решены верно, просто придумываешь название функции, передаешь ей числа как параметры, и получаешь на выходе результат, а в основном теле программы просто вызываешь их.
fbus вне форума Ответить с цитированием
Старый 19.02.2014, 15:46   #3
Алексей 1994
 
Регистрация: 11.02.2014
Сообщений: 5
По умолчанию Я новичок в этом деле...

Можете наглядно показать, как программа выглядит с использованием подпрограмм.
К примеру вот эта:Найти сумму нечетных делителей натурального числа.
Код:
Var n, i, s: integer;
Begin
writeln ('Введите натуральное число');
readln(n);
s := n;
writeln('Нечётные делители:');
for i := 1 to n div 2 do
  if (n mod i) = 0 then begin
    write(i,'  ');
    s := s + i;
  end;
writeln(n);
writeln('Сумма нечётных делителей: ',s);
End.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.02.2014 в 16:00.
Алексей 1994 вне форума Ответить с цитированием
Старый 19.02.2014, 16:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну, во-первых, у вас программа неверно написана.
нужно иницилизировать сумму НУЛЁМ и считать только НЕЧЁТНЫЕ делители!
Код:
  writeln ('Введите натуральное число');
  readln(n);
  s := 0;
во-вторых, в Паскале есть два вида подпрограмм: процедуры и функции.
Вам какой вариант нужен?

вот, например, с помощью функции:
Код:
function GetSumOddDividers(NN : integer) : integer;
Var i, ss : integer;
begin
  ss := 0;
  for i := 1 to NN do
    if odd(i) and (NN mod i = 0) then ss := ss + i;
  GetSumOddDividers := ss;
end;

Var n : integer;
Begin
  writeln ('Введите натуральное число');
  readln(n);
  writeln('Сумма нечётных делителей: ',GetSumOddDividers(n));
End.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскаль с использованием подпрограмм Julichka1k Помощь студентам 2 06.02.2012 19:47
Обработка массивов с использованием подпрограмм фалькон Паскаль, Turbo Pascal, PascalABC.NET 4 08.03.2011 18:43
Составление програм с использованием процедур ChelseaFan Помощь студентам 2 25.11.2010 12:14
Программирование с использованием подпрограмм. Александр181189 Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2010 17:13