нужна помощь в создании программы
3463
14
Уважаемые програмисты, у меня возникла такого рода проблема, мне задали домашнее задание по информатике, а я не совсем понял тему. Суть в то что мне нужно сделать программу, которая при вводе числа с клавиатуры(целого числа) считает сумму его чётных делителей и сумму его нечётных делителей, причём сделать это надо чере цикл for. Может быть вы посмотрите и посоветуете(подскажите) как мне её доделать. Я сам уже кое-что сделал а дальше тупик. (Программа находится в прикреплённом файле внутри архива zex.zip)
Паскаль забыл, вот на 1С.
Процедура Сформировать()
Делитель = ИсходноеЧисло;
Если Делитель = 0 Тогда
Сообщить("На ноль делить нельзя!");
Возврат
КонецЕсли;
СуммаЧетных = 0;
СуммаНечетных = 0;
СчетчикЦикла = 0;
Для СчетчикЦикла = 1 По Число(Делитель) Цикл
Остаток = ИсходноеЧисло/Делитель;
Если (Остаток - Окр(Остаток,0,0)) = 0 Тогда
Если ((Делитель/2) - Окр(Делитель/2,0,0)) = 0 Тогда
СуммаЧетных = СуммаЧетных + Делитель;
Иначе
СуммаНечетных = СуммаНечетных + Делитель;
КонецЕсли;
КонецЕсли;
Делитель = Делитель - 1;
КонецЦикла;
Сообщить("СуммаНечетных "+Строка(СуммаНечетных)+" "+"СуммаЧетных "+Строка(СуммаЧетных));
КонецПроцедуры
Процедура Сформировать()
Делитель = ИсходноеЧисло;
Если Делитель = 0 Тогда
Сообщить("На ноль делить нельзя!");
Возврат
КонецЕсли;
СуммаЧетных = 0;
СуммаНечетных = 0;
СчетчикЦикла = 0;
Для СчетчикЦикла = 1 По Число(Делитель) Цикл
Остаток = ИсходноеЧисло/Делитель;
Если (Остаток - Окр(Остаток,0,0)) = 0 Тогда
Если ((Делитель/2) - Окр(Делитель/2,0,0)) = 0 Тогда
СуммаЧетных = СуммаЧетных + Делитель;
Иначе
СуммаНечетных = СуммаНечетных + Делитель;
КонецЕсли;
КонецЕсли;
Делитель = Делитель - 1;
КонецЦикла;
Сообщить("СуммаНечетных "+Строка(СуммаНечетных)+" "+"СуммаЧетных "+Строка(СуммаЧетных));
КонецПроцедуры
var i, s1, s2: integer;
value: integer;
s1 := 0; s2 := 0;
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;
value: integer;
s1 := 0; s2 := 0;
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;
На C еще короче
int i,num=20,s1=0,s2=0;
for (i = 1; i
int i,num=20,s1=0,s2=0;
for (i = 1; i
Mad_Dollar
guru
с точки зрения читабельности перл еще страшнее )))
mx
veteran
кошмарный языкЛюбители if всегда могут воспользоваться if'ом. Вы еще на лисп посмотрите как-нибудь
Сейчас читают
Просветление.
252805
1000
Жалость.
3874
56
Как вы приводите себя в порядок с утра?
28621
105
tpi
guru
кошмарный язык ;)Номаный язык, просто оформлено так...
int i, count = 20;
int even = 0, odd = 0;
for(i = 1; i <= count / 2; i++){
if(count % i == 0)
if(i % 2) even += i;
else odd += i;
}
EvilX
activist
Можно ещё на питоне.
[code]
#!/usr/bin/python
x = int(raw_input("Input x: "))
even, odd = 0, 0
i = 1
while i
[code]
#!/usr/bin/python
x = int(raw_input("Input x: "))
even, odd = 0, 0
i = 1
while i
Ну, раз такой расколбас пошелC# (.NET):
Ожидаем солюшены на астме и брейнфаке
using System;
namespace AmountDividers
{
class Program
{
static void Main()
{
int Count = 0;
int Odd = 0;
int Even = 0;
try
{
Console.WriteLine("Please enter a whole number:");
Count = int.Parse(Console.ReadLine());
for(int i = 1; i <= Count / 2; i++)
{
if(Count % i == 0)
{
if ((i%2) != 0)
{
Even += i;
}
else
{
Odd += i;
}
}
}
Console.WriteLine(string.Format("Amount of even dividers: {0}", Even));
Console.WriteLine(string.Format("Amount of odd dividers: {0}", Odd));
}
catch (FormatException e){
Console.WriteLine(e.Message);
}
}
}
}
Ожидаем солюшены на астме и брейнфаке
Люди, плизз напишите мне эту программу на языке турбо паскаль. Мне срочно надо, у меня незачёт открытый. Кто забыл напоминаю, что мне нужна программа, которая при вводе целого числа с клавиатуры выводит сумму его чётных и сумму его нечётных делителей, причём делается она с использованием цикла(желательно for). Заранее вам спасибо, просто я не совсем понял тему.
Тебе ж на чистом паскале написал человек.
Как считать число с клавиатуры и вывести результат не знаешь, чтоли? И begin с end'ом не знаешь куда дописать?
Паскаля под рукой нет чтобы отладить, так что если где-то точку с запятой не поставили, постарайся уж сам.
var i, s1, s2: integer;
value: integer;
s1 := 0; s2 := 0;
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;
Как считать число с клавиатуры и вывести результат не знаешь, чтоли? И begin с end'ом не знаешь куда дописать?
var i, s1, s2: integer;
value: integer;
begin
s1 := 0; s2 := 0;
write('Введи число: '); readln(value);
for i := 1 to value div 2 do
if (value mod i) = 0 then
if (i mod 2) = 0 then s1 := s1+i
else s2 := s2+i;
writeln('Сумма четных делителей: ', s1, ' Сумма нечетных делителей: ', s2);
end.
Паскаля под рукой нет чтобы отладить, так что если где-то точку с запятой не поставили, постарайся уж сам.
Прогнал на Free Pascal и отформатировал.
program main;
var
i, even, odd: integer;
count: integer;
begin
even := 0;
odd := 0;
write('Введи число: ');
readln(count);
for i := 1 to count div 2 do
if (count mod i) = 0 then
if (i mod 2) = 0 then even := even + i
else odd := odd + i;
writeln('Сумма четных делителей: ', even, ' Сумма нечетных делителей: ', odd)
end.