Мобильная версия форумов
Открыть
 −14°C
завтра: −15°C
Погода в Перми
−14°C
вечером−14°C
ночью−16°C
завтра−15°C
Подробно
 66,25
−0.4574
Курс USD ЦБ РФна 19 февраля
66,2470
−0.4574
 74,91
−0.3437
Курс EUR ЦБ РФна 19 февраля
74,9055
−0.3437
PRM.Форум /Компьютеры Интернет Связь / Программирование /

нужна помощь в создании программы

  • 7ZeX

    Анонимный пользователь

    Уважаемые програмисты, у меня возникла такого рода проблема, мне задали домашнее задание по информатике, а я не совсем понял тему. Суть в то что мне нужно сделать программу, которая при вводе числа с клавиатуры(целого числа) считает сумму его чётных делителей и сумму его нечётных делителей, причём сделать это надо чере цикл for. Может быть вы посмотрите и посоветуете(подскажите) как мне её доделать. Я сам уже кое-что сделал а дальше тупик. (Программа находится в прикреплённом файле внутри архива zex.zip) :help.gif:

  • veteran

    Сообщений: 1005

    Паскаль забыл, вот на 1С.

    Процедура Сформировать()


    Делитель = ИсходноеЧисло;

    Если Делитель = 0 Тогда
    Сообщить("На ноль делить нельзя!");
    Возврат
    КонецЕсли;

    СуммаЧетных = 0;
    СуммаНечетных = 0;

    СчетчикЦикла = 0;
    Для СчетчикЦикла = 1 По Число(Делитель) Цикл
    Остаток = ИсходноеЧисло/Делитель;
    Если (Остаток - Окр(Остаток,0,0)) = 0 Тогда
    Если ((Делитель/2) - Окр(Делитель/2,0,0)) = 0 Тогда
    СуммаЧетных = СуммаЧетных + Делитель;
    Иначе
    СуммаНечетных = СуммаНечетных + Делитель;
    КонецЕсли;
    КонецЕсли;
    Делитель = Делитель - 1;
    КонецЦикла;

    Сообщить("СуммаНечетных "+Строка(СуммаНечетных)+" "+"СуммаЧетных "+Строка(СуммаЧетных));

    КонецПроцедуры

    Be too clever by three quarters.

  • гундос

    Сообщений: 16214

    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;

    эгоист - это человек, который думает в первую очередь о себе и только потом обо мне

  • veteran

    Сообщений: 1196

    На C еще короче:миг:
    int i,num=20,s1=0,s2=0;
    for (i = 1; i

  • Господин Уэф!

    Анонимный пользователь

    В ответ на: if (!(num%i)) (i%2)?s1 =i:s2 =i;
    кошмарный язык :безум: :злорадство: :миг:

  • guru

    Сообщений: 4281

    с точки зрения читабельности перл еще страшнее )))

    Non solum oportet, sed etiam necessese est

  • veteran

    Сообщений: 1196

    В ответ на: кошмарный язык
    Любители if всегда могут воспользоваться if'ом. Вы еще на лисп посмотрите как-нибудь:улыб:

  • guru

    Сообщений: 8043

    В ответ на: кошмарный язык :безум: :злорадство: ;)
    Номаный язык, просто оформлено так...

    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;
    }

    "Самый мудрый внешне во всём подобен самому глупому", народная китайская мудрость.

  • 7ZeX

    Анонимный пользователь

    люди вы можете мне НА ПАСКАЛЕ по подробнее написать:-)))

  • activist

    Сообщений: 377

    Можно ещё на питоне.

    [code]
    #!/usr/bin/python

    x = int(raw_input("Input x: "))
    even, odd = 0, 0
    i = 1
    while i

    Исправлено пользователем EvilX (22.09.07 01:45)

  • activist

    Сообщений: 111

    Ну, раз такой расколбас пошел:улыб: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);
    }
    }
    }
    }


    Ожидаем солюшены на астме и брейнфаке:улыб:

  • 7ZeX

    Анонимный пользователь

    Люди, плизз напишите мне эту программу на языке турбо паскаль. Мне срочно надо, у меня незачёт открытый. Кто забыл напоминаю, что мне нужна программа, которая при вводе целого числа с клавиатуры выводит сумму его чётных и сумму его нечётных делителей, причём делается она с использованием цикла(желательно for). Заранее вам спасибо, просто я не совсем понял тему. :help.gif:

  • veteran

    Сообщений: 1196

    Тебе ж на чистом паскале написал человек.

    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.

    Паскаля под рукой нет чтобы отладить, так что если где-то точку с запятой не поставили, постарайся уж сам.

  • guru

    Сообщений: 8043

    Прогнал на 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.

    "Самый мудрый внешне во всём подобен самому глупому", народная китайская мудрость.

  • 7ZeX

    Анонимный пользователь

    Спасибо вам огромное)))Я спасён!

Записей на странице:

Перейти в форум

Модератор: