Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 8

Найти период дроби, как исправить ошибку

15.02.2010, 11:59. Показов 3768. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: Дана дробь a / b. Определите её период.
Мой вариант:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
namespace ConsoleApplication1
{
    class Raschet
    {
            private int a;
            private int b;
 
            public Raschet(int a, int b)
            {
                this.a=a;
                this.b=b;
            }
 
            public int Period(out int t)
            {
                double c = a / b;
                string s = Convert.ToString(c);
 
                char[] m = new char[s.Length];
                for (int i = 0; i < m.Length; i++)
                {
                    m[i] = s[i];
                    if (m[i] == ',')
                    {
 
                        t = m.Length - 1 - i;
                        if (t > 10)
                        {
                            Console.WriteLine("Дробь бесконечна");
                            break;
                        }
                        return t;
                    }
                }
                return -1;
            }
    }
 
    class Program
    {
        static void Main()
        {
            int t;
            Raschet r = new Raschet(Convert.ToInt32(Console.ReadLine()) , Convert.ToInt32(Console.ReadLine()) );
            Console.WriteLine(r.Period(out t));
        }
    }
}
Ошибка: "The out parametr 't' must be assignet to before control leves the current method"
Это значит,значение 't' не задано,или что? Подскажите пожалуйста,как исправить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2010, 11:59
Ответы с готовыми решениями:

Найти период и длину периода десятичной дроби.
Здравствуйте. Есть задача, которую необходимо решить с использованием Java: Дано простое число p&gt;5. Определить длину периода...

Найти длину периода и сам период бесконечной степенной дроби по основанию Р
время поджимает, завтра сдавать. препод ни фига не объясняет!!! есть решение, осталось написать прогу на C++. Задача №1 Имеется N...

Определить длину периода десятичной дроби M/N и период данной десятичной дроби M/N
Даны два натуральных числа M и N, M &lt; N. Определить длину периода десятичной дроби M/N и период данной десятичной дроби M/N. Добавлено...

3
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
15.02.2010, 12:17
У тебя метод Period в классе Raschet и так возвращает int значение. Зачем еще ставить ключевое слово out.
Вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Raschet
    {
        private int a;
        private int b;
 
        public Raschet(int a, int b)
        {
            this.a = a;
            this.b = b;
        }
 
        public int Period()
        {
            int t;
            double c = a / b;
            string s = Convert.ToString(c);
 
            char[] m = new char[s.Length];
            for (int i = 0; i < m.Length; i++)
            {
                m[i] = s[i];
                if (m[i] == ',')
                {
 
                    t = m.Length - 1 - i;
                    if (t > 10)
                    {
                        Console.WriteLine("Дробь бесконечна");
                        break;
                    }
                    return t;
                }
            }
            return -1;
        }
    }
 
    class Program
    {
        static void Main()
        {
            Raschet r = new Raschet(Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()));
            Console.WriteLine(r.Period());
        }
    }
Добавлено через 7 минут
Еще необходимо объявить все поля класса и переменные как тип double, а то прога постоянно возвращает -1.

Добавлено через 18 секунд
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Raschet
    {
        private double a;
        private double b;
 
        public Raschet(double a, double b)
        {
            this.a = a;
            this.b = b;
        }
 
        public int Period()
        {
            int t;
            double c = a / b;
            string s = Convert.ToString(c);
 
            char[] m = new char[s.Length];
            for (int i = 0; i < m.Length; i++)
            {
                m[i] = s[i];
                if (m[i] == ',')
                {
 
                    t = m.Length - 1 - i;
                    if (t > 10)
                    {
                        Console.WriteLine("Дробь бесконечна");
                        break;
                    }
                    return t;
                }
            }
            return -1;
        }
    }
 
    class Program
    {
        static void Main()
        {
            Raschet r = new Raschet(Convert.ToDouble(Console.ReadLine()), Convert.ToDouble(Console.ReadLine()));
            Console.WriteLine(r.Period());
            Console.ReadKey();
        }
    }
1
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 8
15.02.2010, 12:25  [ТС]
Спасибо большое, теперь понятно))
0
5 / 5 / 1
Регистрация: 06.02.2010
Сообщений: 33
17.02.2010, 16:13
Помню на олимпиаде была эта задача, и она решалась на С в 10-12 строчек.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2010, 16:13
Помогаю со студенческими работами здесь

Период у дроби
Найти период бесконечной периодической дроби. Если десятичная дробь конечна, её период — цифра 0. Период должен начинаться с той цифры,...

Определить период дроби
Ув. форумчане, помогите определить период дробей 1/7 и 1/17. Подскажите какая используется для этого функция

Определить период дроби
Помогите пожалуйста составить программу. Нужно определить период дроби.

Определить период дроби n/m
Здравствуйте помогоите пожалуйста написать программу, определяющую период дроби n/m, где n и m – натуральные числа, спасибо:)

Определить период десятичной дроби
Составьте программу, определяющую период десятичной дроби m/n(m,n-натуральные числа)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru