С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 5
1

Рекурсия: подсчет количества цифр в тексте файла

14.10.2013, 10:01. Показов 1800. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите рекурсивную функцию без параметров, подсчитывающую количество цифр в тексте, заданном во входном файле (текст заканчивается точкой).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
14.10.2013, 10:01
Ответы с готовыми решениями:

Рекурсия: подсчет количества цифр в данном тексте
во входном файле задан символьный текст, за которым следует точка. Описав подходящую рекурсивную...

Рекурсия: подсчет количества четных цифр числа (на С)
Написать рекурсивную функцию считывающую количество четных цифр числа. Плохо понял рекурсию...

Рекурсия: подсчет количества цифр натурального числа
Написать рекурсивную функцию вычисления количества цифр натурального числа.

Подсчет количества цифр в тексте
С клавиатуры вводится строка. Составить программу, которая подсчитывает количество цифр в тексте;...

11
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
14.10.2013, 12:14 2
darena5991, вперед! Мы в вас верим!
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
14.10.2013, 15:02 3
Цитата Сообщение от Sakralbar Посмотреть сообщение
darena5991, вперед! Мы в вас верим!


Начало как-то так
Java
1
2
3
4
5
public int myRecFunc(){
    if('.' == c)
           return 0;
    else
         что-то + myRecFunc();
Дальше мы в вас верим, чуть чуть осталось дописать)))
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,965
14.10.2013, 15:05 4
Адскому заданию - адское решение!
Java
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
package easybudda.examples.recursivedigitscounter;
 
import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.JOptionPane;
 
public class RecursiveDigitsCounter {
    private FileReader input = null;
    
    int digitsCount() throws IOException {
        int ch = input.read();
        return ( ch == -1 || ch == '.' ) ? 0 : ( ( Character.isDigit(ch) ) ? 1 : 0 ) + digitsCount();
    }
    
    RecursiveDigitsCounter(File inputFile) {
        try {
            input = new FileReader(inputFile);
            JOptionPane.showMessageDialog(null, "Found " + digitsCount() + " digits before first point or end of document.");
        }
        catch ( IOException ioe ) {
            JOptionPane.showMessageDialog(null, "Не удалось прочитать файл!", "Всё погибло!", JOptionPane.ERROR_MESSAGE);
            System.exit(1);
        }
        finally {
            if ( input != null ) {
                try {
                    input.close();
                }
                catch ( IOException closeException) {
                    JOptionPane.showMessageDialog(null, "Неудачно файл закрылся!", "Ваще всё плохо!", JOptionPane.ERROR_MESSAGE);
                    System.exit(1);
                }
            }
            
        }
    }
    
    public static void main(String[] args) {
        JFileChooser chooser = new JFileChooser();
        chooser.setFileFilter(new FileNameExtensionFilter("Text document", "txt"));
        if ( chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION )
            new RecursiveDigitsCounter(chooser.getSelectedFile());
    }
 
}
А вообще последнее, для чего бы пришло в голову использовать рекурсивную функцию, это как-раз подсчёт чего-либо в файле. Если только цель - доказать, что стек не резиновый...
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
14.10.2013, 15:15 5
Java
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
public class Test {
    private static char c = '.';
    private static int index = 0;
    private static String text = null;
    
    public static void main(String[] args) {
        text = "aa1s1a2.";
        c = 'a';
        int count = MyRecFunc();
        System.out.println(count);
    }
    
    private static boolean isDigit(char c) {
        return c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5'
                || c == '6' || c == '7' || c == '8' || c == '9';
    }
    
    
    private static int MyRecFunc(){
        if(c == '.')
            return 0;
        else{
            c = text.charAt(index++);
            if(isDigit(c))
                return 1 + MyRecFunc();
            else
                return MyRecFunc();
        }   
    }
}
0
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 5
17.10.2013, 10:14  [ТС] 6
спасибо большое. плохо понимаю рекурсию. тем более в этом задании,не имеющем смысла
0
verylazy
17.10.2013, 10:26
  #7

Не по теме:

Астрологи объявили неделю рекурсии. Количество глупых студентов на форуме увеличено вдвое.

0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
17.10.2013, 14:16 8
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
Java
1
2
3
4
    private static boolean isDigit(char c) {
        return c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5'
                || c == '6' || c == '7' || c == '8' || c == '9';
    }
Я Вам один умный вещь скажу, но Вы не обижайтесь!

1.
Java
1
2
3
    private static boolean isDigit(char c) {
        return c>= '0' && c <= '9';
    }
2. java.lang.Character.isDigit(char)
1
OxomHuK
17.10.2013, 22:04
  #9

Не по теме:

verylazy, фразы начинающиеся словом астрологи это троллинг высокого уровня? или просто поддерживание моды на слова рак, дно, астрологи обьявили?

0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
18.10.2013, 01:18 10
Цитата Сообщение от Skipy Посмотреть сообщение
Я Вам один умный вещь скажу, но Вы не обижайтесь!
Спасибо, я только потом вспомнил, что и так можно
А как же затраты на boxing\unboxing?

Добавлено через 33 секунды
Цитата Сообщение от Skipy Посмотреть сообщение
private static boolean isDigit(char c) {
* * * * return c>= '0' && c <= '9';
* * }
Да - и это верно)
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
18.10.2013, 10:20 11
Цитата Сообщение от Almaz_1993 Посмотреть сообщение
А как же затраты на boxing\unboxing?
Какой еще боксинг, Господь с Вами! Метод статический, char принимает!
0
169 / 66 / 15
Регистрация: 24.03.2013
Сообщений: 467
Записей в блоге: 1
18.10.2013, 12:35 12
Цитата Сообщение от Skipy Посмотреть сообщение
Метод статический, char принимает!
Окай, глупость сказал
0
18.10.2013, 12:35
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
18.10.2013, 12:35
Помогаю со студенческими работами здесь

Рекурсия: подсчет количества цифр в заданном натуральном числе
12Подсчитать количество цифр в заданном натуральном числе. Составить рекуррентную функцию.

Рекурсия: подсчет количества четных элементов в массиве
Написать рекурсивную функцию для подсчета количества четных элементов в массиве.

Рекурсия: подсчет количества положительных чисел в массиве
Заданы массивы А(5), В(11). Определить, в каком массиве больше положительных чисел. Подсчет...

Рекурсия PHP Подсчет количества всех пользователей структуры
Доброе время суток форумчане, Столкнулся с проблемой подсчитать всех пользователей в структуре,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru