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

Вывести предложения состоящие из заданного количества слов

10.02.2016, 17:51. Показов 4648. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем здравствуйте. "Написать программу, которая считывает текст из файла выводит на экран
только предложения, состоящие из заданного количества слов." Помогите с этой задачей. Делала, но ничего толком не получилось. Буду очень благодарна. НА Си шарпе
ОБЯЗАТЕЛЬНО НУЖНО ЗАКРЫВАТЬ ФАЙЛ (например, f.Close())
вот предоставляю коды из методички (но они не по моей задаче). Это как пример.
//Построчное чтение текстового периода
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
using System;
using System.IO;
namespace ConsoleApplication1
{ class Class1
 { static void Main()
{ try
 { StreamReader f=new StreamReader ("text.txt");
 string s;
 long i=0;
 while((s=f.ReadLine()) != null)
 Console.WriteLine("{0}: {1}", ++i, s);
 f.Close();
 }
 catch (FileNotFoundException e)
 { Console.WriteLine(e.Message);
 Console.WriteLine("Проверьте правильность имени файла!");
 Console.ReadKey();
 return; }
 catch (Exception e)
 { Console.WriteLine("Error:" + e.Message);
 Console.ReadKey(); return; } } }}
 
 
 
//ЧТЕНИЕ ТЕКСТОВОГО ФАЙЛА
using System;
using System.IO;
namespace ConsoleApplication1
{ class Class1
 { static void Main()
{ try
 { StreamReader f=new StreamReader ("text.txt");
 string s=f.ReadToEnd();
 Console.WriteLine(s);
 f.Close();
 }
 catch (FileNotFoundException e)
 {
 Console.WriteLine(e.Message);
 Console.WriteLine("Проверьте правильность имени файла!");
 Console.ReadKey();
 return; }
 catch (Exception e)
 {
 Console.WriteLine("Error:" + e.Message);
 Console.ReadKey();
 return; } } }}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2016, 17:51
Ответы с готовыми решениями:

Вывести предложения, состоящие из заданного количества слов
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.

Вывести на экран предложения, состоящие из заданного количества слов
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов. ...

Вывести на экран предложения, состоящие из заданного количества слов
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов. ...

17
91 / 90 / 37
Регистрация: 05.08.2011
Сообщений: 428
10.02.2016, 18:56

Не по теме:


Код программы в тег [ CSHARP ][ /CSHARP ]


А в чём сложность в написании кода программы? Как вариант, считываете весь текст, потом используете Split(/*разделители предложений, например '.','?','!'*/). Получите массив предложений. проходите по массиву опять используете Split, только уже с разделителем пробел. И если длина получившегося массива равна заданной, то выводите.
0
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 6
10.02.2016, 19:01
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            int j; 
            StreamReader f = new StreamReader(@"D:/text.txt");
            string textvalue = f.ReadToEnd();
            Console.Write("How many symbols: ");
            var i = Console.ReadLine(); 
            int.TryParse(i, out j);
            string[] words = textvalue.Split(new char[] { ' ', ',', '.', ':', '\t' });
            foreach (string s in words)
            {
                if (s.Length == j) Console.WriteLine(s);
            }
            f.Close();
            Console.ReadLine();
        }
        
     
    }
}
Допили проверки на корректность ввода.
0
91 / 90 / 37
Регистрация: 05.08.2011
Сообщений: 428
10.02.2016, 19:57
xylen, Ваш код не решает поставленную задачу. Нужно ещё раз Split'ом проходить, уже по предложениям и смотреть сколько слов в предложении. И почему в Split текста входит запятая?
0
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 6
10.02.2016, 20:42
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            int j;
 
            StreamReader f = new StreamReader(@"D:/text.txt");
            string[] textvalue = f.ReadToEnd().Split(new char[] { '.', '?', '!' });
            string[] textvaluetwo = new string[100];
            Console.Write("How many symbols: ");
 
            var i = Console.ReadLine(); 
            int.TryParse(i, out j);
            foreach (var item in textvalue)
            {
                textvaluetwo = item.Split(new char[] { ' ' });
                
                if (textvaluetwo.Length == j)
                {
                    Console.WriteLine(item);
                    
                }
            }
            
            f.Close();
            
            Console.ReadLine();
        }
        
     
    }
}
Допилил через костыли Просто не правильно прочитал условия, думал знаки в словах.
0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
10.02.2016, 20:59  [ТС]
xylen, Т.е.? Это программа уже по моему условию?
0
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
10.02.2016, 21:23
Sveta Bon,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
 
 
class Program
{
    private static void Main(string[] args)
    {
        Regex.Split(File.ReadAllText("file.txt",Encoding.Default), @"(?<=[\.!\?])\s+").ToList().
            ForEach(Console.WriteLine);
        Console.ReadKey();
 
    } 
}
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
10.02.2016, 21:28
kypiwindy, раскажите что в данном случае фильтрует регулярка.
0
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
10.02.2016, 21:45
Цитата Сообщение от MaxSlim Посмотреть сообщение
что в данном случае фильтрует регулярка.
Текст который находиться в файле file.txtразделяем по ?!.
0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
10.02.2016, 21:48  [ТС]
У меня по заданию заданию не сказано ничего про знаки препинания!!
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
10.02.2016, 21:54
Sveta Bon, тогда просто считаете всё с файла, и тупо с помощью Split('.') разделяете предложения. А далее разбираете в for`e каждое предложение, тоже с помощью Split(' ') считаете колво слов, и если их столько сколько нужно, то выводите.
0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
10.02.2016, 22:12  [ТС]
А могли бы Вы эту программу написать? Честно, я вообще не представляю что и писать. Буду очень Вам благодарна
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
10.02.2016, 22:13
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace FilesAndStrings
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите количество слов : ");
            byte counter = byte.Parse(Console.ReadLine());
            StreamReader sr = null;
 
            
            try
            {
                sr = new StreamReader(new FileStream("input.txt", FileMode.Open, FileAccess.Read));
                foreach (string sentence in sr.ReadToEnd().Split('.'))
                {
                    if (sentence.Split(' ').Count() == counter)
                        Console.WriteLine(sentence);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);   
            }
            finally
            {
                sr.Close();
            }
        }
    }
}
Как-то так. Если бы вы привели содержание файла, было бы проще.
0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
10.02.2016, 22:23  [ТС]
MaxSlim,
Вложения
Тип файла: txt input.txt (136 байт, 30 просмотров)
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
10.02.2016, 22:30
Sveta Bon,
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace FilesAndStrings
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите количество слов : ");
            byte counter = byte.Parse(Console.ReadLine());
            StreamReader sr = null;
 
            
            try
            {
                sr = new StreamReader(new FileStream("input.txt", FileMode.Open, FileAccess.Read));
                string sentence = null;
                while((sentence = sr.ReadLine()) != null)
                {
                    if (sentence.Split(' ').Count() == counter)
                        Console.WriteLine(sentence);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);   
            }
            finally
            {
                sr.Close();
            }
            Console.ReadLine();
        }
       
    }
}
2
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
10.02.2016, 22:41  [ТС]
MaxSlim, не подскажите чего у меня так выводит вопросами? спасибо Вам большое

Добавлено через 2 минуты
MaxSlim, Введите количество слов : 2
??????????? ?????????????
0
116 / 115 / 64
Регистрация: 03.06.2013
Сообщений: 582
10.02.2016, 22:46
Это кодировка, она стоит по дефолту, привязана к той что у вас на пк стоит. Англ текст будет хорошо выводиться, а чтобы Sveta Bon,
C#
1
sr = new StreamReader(new FileStream("input.txt", FileMode.Open, FileAccess.Read), Encoding.Default);
1
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
10.02.2016, 22:54  [ТС]
MaxSlim, MaxSlim, большое Вам спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2016, 22:54
Помогаю со студенческими работами здесь

Считать с файла текст и вывести на экран предложения, состоящие из заданного количества слов
Программа считывает с файла текст и выводит на экран только предложения, состоящие из заданного количества слов. Но вот при компиляции...

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

Написать программу, которая вводит текст с клавиатуры, и выводит на экран только предложения, состоящие из заданного количества слов
string text = &quot;word11 word23&quot;; int length = 6; var result = text.Split(new char { ' ' },...

Написать программу, которая вводит текст с клавиатуры, и выводит на экран только предложения, состоящие из заданного количества слов
Здравствуйте, помогите пожалуйста с написанием данной программы:) А то ничего не получается...

Вывести предложения состоящие из заданного количества слов
Выполнить задание используя функции библиотеки для работы со строками и символами. Написать программу, которая считывает текст из файла и...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru