Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 02.04.2017, 09:55   #1 (permalink)
Defx
Новичок
 
Регистрация: 06.03.2017
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию С# Найти сумму всех простых чисел, не превосходящих заданного числа n

первая программа работает, но необходимо реализовать программу в базисе схем с процедурами.
вторая программа считает сумму только при N=3, помогите разобраться почему при N>3 отказывается работать программа

Основная программа:

Код:
namespace ConsoleApplication15
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число\n");
            int N = int.Parse(Console.ReadLine());
            int a = 2;
            int S = 0; 
            while (a <= N)
            {
                int p = 1; 

                int i = 2;
                while (i <= a / 2)
                    {
                        if (a % i == 0)
                            {
                                p = 0;
                                break;
                            }
                        i = i + 1;
                    }
                
                if (p==1)
                    {
                        S = S + a;
                    }
                
                a = a + 1;
            }

            Console.WriteLine("Сумма простых чисел " + S);
            Console.ReadKey();
        }
    }
}
Программа в базисе схем с процедурами:

Код:
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число N");
            int N = int.Parse(Console.ReadLine());

            int a = 2;
            int s = 0;
            int p = 0;
            int i = 0;

            int v = F2(a, s, p, i, N);
        }

        static int F2(int a, int s, int p, int i, int N)
        {
            int c;
            int p1;
            int i1;
            if (a <= N)
            {
                p1 = 1;
                i1 = 2;
                c = F3(a, s, p1, i1, N);
            }
            else {
               c = s;
               Console.WriteLine("Сумма простых чисел " + c);
               Console.ReadKey();
            }
            return c;
        }

        static int F3(int a, int s, int p, int i, int N)
        {
            int d;
            p = 1;
            i = 2;
            if (i <= a / 2)
            {
                d = F4(a, s, p, i, N);
            }
            else
            {
                d = F5(a, s, p, i, N);
            }
            return d;
        }

        static int F4(int a, int s, int p, int i, int N)
        {
            int q;
            int h;
            if (a % i == 0)
            {        
               q = F3(a, s, p, i, N);
            }
            else
            {
                h = i + 1;
                q = F5(a, s, p, h, N);
            }
            return q;
        }

        static int F5(int a, int s, int p, int i, int N)
        {
            int f;
            int s1;
            int a1;
            if (p == 1)
            {
               s1 = s + a;
               a1 = a + 1;
               f = F2(a1, s1, p, i, N);
            }
            else
            {
                a1 = a + 1;
                f = F2(a1, s, p, i, N);
            }
            return f;
        }
    }
}
Defx вне форума   Ответить с цитированием

Старый 02.04.2017, 09:55
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я думаю, что проблему решать легче есть набраться больше информации

Найти из всех четырехзначных чисел...
Для заданного ε>0 и заданного Х вычислить сумму ряда
Для заданного ε>0 и заданного x вычислить сумму ряда с точностью ε
Найти произведение чисел, меньших заданного числа b
Задача о выводе на экран простых чисел

Старый 02.04.2017, 10:23   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Эх, так и поленился СИ выучить...
Но, хоть в Сях ни бельмеса не понимаю, но что-то мне не нравится функция F3. А именно присвоение в её теле принудительных значений формальным параметрам p и i. Это так и задумано?
Vladimir_S вне форума   Ответить с цитированием
Старый 02.04.2017, 10:34   #3 (permalink)
Defx
Новичок
 
Регистрация: 06.03.2017
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Сорян, не должно их там быть, забыл удалить, это так экспериментировал, без них результат тот же =(
Defx вне форума   Ответить с цитированием
Старый 02.04.2017, 13:54   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Defx Посмотреть сообщение
Сорян, не должно их там быть, забыл удалить, это так экспериментировал, без них результат тот же =(
Хорошо, тогда еще вопрос.
У Вас зациклен вызов функций: F3 вызывает F4, а F4 вызывает F3. Так и задумано? Попытался отладить Вашу программу, переведя на Паскаль, но на этом моменте транслятор взбунтовался. Не помогает даже перегон функций в модули.
Vladimir_S вне форума   Ответить с цитированием
Старый 02.04.2017, 16:55   #5 (permalink)
Defx
Новичок
 
Регистрация: 06.03.2017
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Возможно и не должно =) вот графовая и линейная форма первой программы, может тут где накосячил =(
Миниатюры
20170402_195013.jpg  
Defx вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:53.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.