Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31

Разработать программу, подсчитывающую количество слов

03.07.2013, 09:24. Показов 3286. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать программу, подсчитывающую количество слов в заданном тексте. Вывести в текстовый файл выделенные слова в порядке возрастания длины слова.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.07.2013, 09:24
Ответы с готовыми решениями:

Написать программу подсчитывающую количество счастливых билетов
1. Билет называется «счастливым», если в его номере сумма первых трех цифр равно сумме последних трех. Написать программу, подсчитывающую...

Напишите программу, подсчитывающую количество букв во введенном с клавиатуры слове
Напишите программу, подсчитывающую количество букв во введенном с клавиатуры слове. Ввод осуществляйте в цикле while do. Выход из программы...

Разработать программу подсчитывающую количество лежащих в пределах элементов массива Е из 9 чисел
Разработать программу подсчитывающую количество лежащих в пределах элементов массива Е из 9 чисел. Значения элементов массива рассчитать по...

31
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
03.07.2013, 17:55
выглядит как ТЗ, наработки есть? Слова чем разделены? Пробовать писать сами будет? Я подскажу)
0
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
04.07.2013, 07:48  [ТС]
Текст разделен пробелом. Наработок нету по программе))
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
04.07.2013, 09:39
нужно объявить тип записи с двумя полями. Первое слово, второе будет длина слова. объявить то сможешь я думаю) затем запускаем цикл до тех пор пока длинна текста не нулевая например
Pascal
1
while length(text)>0 do
дальше нужно скопировать часть текста до первого пробела - что и будет твоим словом и записать в массив твоего типа в поле для слово, а в другое записать его длину например так
Pascal
1
2
a[i].slovo:=Copy(text,1,pos(' ',text)-1);
a[i].dlina:=length(a[i].slovo);
после чего нужно данное слово вместе с пробелом удалить из текста, например вот так
Pascal
1
2
delete(s,1,pos(' ',text));
inc(i)
и закрываем цикл. Далее нужно отсортировать данный массив записей по полю dlina. Есть множество алгоритмов сортировки Сортировки вот тут ребята постарались не на шутку, чего там только нет. Так сказать на любой вкус и цвет). Ну например можно выбрать сортировку обменом, самую простую
Pascal
1
2
3
4
5
6
7
8
for i:=1 to n-1 do
                          for j:=1 to n-1 do
                          if a[j].dlina>a[j+1].dlina then
                          begin
                          x:=a[j];
                          a[j+1]:=a[j];
                          a[j]:=x;
                          end;
где n - количество записей, а х - это переменная типа твоей записи)
и затем в цикле выводишь полученный массив. Вроде все.
1
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
09.07.2013, 10:14  [ТС]
можешь программу полностью написать? Текст можешь выбрать любой!
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 10:32
мб вместе напишем, не охота самому. Я буду давать тебе задания а ты делать, если что-то не получится я буду поправлять, помогать, объяснять. Сначала объяви тип записи с двумя полями одно integer другое string
0
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
09.07.2013, 10:40  [ТС]
А что если начать программу так:
Pascal
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
function Seps(As_Arg: Char): Boolean;
begin
     Seps := As_Arg in
      [#0..#$1F, ' ', '.', ',', '?', ':', ';', '(', ')', '/', '\'];
end;
 
function WordCount(CText: string): Longint;
var Ix: Word;
    Work_Count: Longint;
begin
     Work_Count := 0;
     Ix         := 1;
     while Ix <= Length(CText) do
     begin
          while (Ix <= Length(CText)) and (Seps(CText[Ix])) do
             Inc(Ix);
          if Ix <= Length(CText) then
          begin
               Inc(Work_Count);
               while (Ix <= Length(CText)) and (not Seps(CText[Ix])) do
                  Inc(Ix);
          end;
     end;
     WordCount := Work_Count;
end;
var s:string;
BEGIN
     writeln('Enter the text');
     readln(s);
     writeln;
     write('Count of words in the text:');
     writeln(WordCount(s));
     ReadLn;
END.
 
Тут конешно текст вводишь сам!
 
[size="1"][color="grey"][I]Добавлено через 6 минут[/I][/color][/size]
type t = record
    a: integer;
    b: string;
    end;
Вот начал, что дальше?
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 10:44
теперь надо создать текстовый файл в папке с программой и назвать его text.txt а так же объявить переменную для работы с текстовым файлом и объявить одномерный массив записей твоего типа, а также две целочисленные переменные, которые будем использовать как счетчики
0
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
09.07.2013, 10:58  [ТС]
где то так)

Pascal
1
2
3
4
5
6
7
8
type t = record
a: integer;
b: string;
end;
var
  TextFile: Text;
  c: array[1..100] of string;
  d,e: integer;
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 11:04
Цитата Сообщение от Abzhanovk Посмотреть сообщение
c: array[1..100] of string
Pascal
1
c: array[1..100] of t
вот так.
Теперь нужно объявить переменную строкового типа в которой мы будет хранить считываемые строки. После этого следует подключиться к текстовому файлу и открыть его в режиме чтения
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
09.07.2013, 11:11
Цитата Сообщение от Joker_vad Посмотреть сообщение
и открыть его в режиме чтения
Зачем? Текст по условию читается не из файла, в файл пишутся
выделенные слова в порядке возрастания длины слова.
Правда что значит выделенные я не понял.
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 11:17
ну откуда текст берется тоже не сказано, будет браться из файла и писаться в другой файл. Ну выделенные наверно все таки все слова текста)
0
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
09.07.2013, 11:28  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
type t = record
a: integer;
b: string;
end;
var
  f: Text;
  c: array[1..100] of t;
  d,e: integer;
  s:string;
  begin
  Assign(f, 'text.txt');
  reset (f);
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 11:30
теперь нужно в цикле(while) читать построчно(readln) текст из файла и записывать в переменную S цикл заканчивается когда достигнут конец файла)
0
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
09.07.2013, 11:55  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
type t = record
a: integer;
b: string;
end;
var
  f: Text;
  c: array[1..100] of t;
  d,e: integer;
  s:string;
  begin
  Assign(f, 'text.txt');
  reset (f);
  while not eof (f) do begin
        read (f);
        write(f,s);
    end;
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 12:02
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type t = record
a: integer;
b: string;
end;
var
f: Text;
c: array[1..100] of t;
d,e: integer;
s:string;
begin
Assign(f, 'text.txt');
reset (f);
while not eof (f) do begin
readln (f,s);
end;
обрати внимание read читает посимвольно, readln построчно, в нашем случае
теперь смотри мой первый пост, нам нужно в строке искать позицию пробела и в записывать в массив записей в поле слово - выделенное слово, а в поле длина - длину выделенного слова, если смотреть на мой первый пост то вместо text будет S
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
09.07.2013, 12:05
Abzhanovk, Может до тебя когда-то дойдет что нужно код в теги PASCAL нужно обрамлять, или я это за тебя до смерти буду делать?
0
Эксперт 1С
 Аватар для Joker_vad
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,922
09.07.2013, 12:06
Puporev,Жаль у меня прав нет я бы тебе помог
0
0 / 0 / 1
Регистрация: 14.06.2013
Сообщений: 31
09.07.2013, 12:24  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type t = record
a: integer;
b: string;
end;
var
  f: Text;
  c: array[1..100] of t;
  d,e: integer;
  s:string;
  i:integer;
  begin
  Assign(f, 'text.txt');
  reset (f);
  while not eof (f) do begin
        readln (f,s);
   end;
   c[i].a:=Copy(s,1,pos(' ',s)-1);
   c[i].b:=length(c[i].slovo);
Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
Abzhanovk, Может до тебя когда-то дойдет что нужно код в теги PASCAL нужно обрамлять, или я это за тебя до смерти буду делать?
Не понял тебя!) что значит обрамлять?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
09.07.2013, 12:40
Цитата Сообщение от Abzhanovk Посмотреть сообщение
Не понял тебя!) что значит обрамлять?
А ты сравни как выглядит этот твой код и код от Joker_vad или правленый мной..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.07.2013, 12:40
Помогаю со студенческими работами здесь

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

Составить программу подсчитывающую количество положительных и отрицательных чисел из введенных пяти
Составить программу подсчитывающую количество положительных и отрицательных чисел из введенных пяти

Составить программу, подсчитывающую среднее количество путевок, проданных на курорты в каждом месяце, и определяющую месяц, в которых продажи в средн
Составить программу, подсчитывающую среднее количество путевок, проданных на курорты в каждом месяце, и определяющую месяц, в которых...

Составить программу, подсчитывающую количество "счастливых" чисел, если сумма трех цифр равна n.
Помогите составить программу: Шестизначное число называется &quot;счастливым&quot;, если сумма первых трех цифр равна сумме трех последних. ...

Разработать программу для подсчета слов в строке
Всем привет! Помогите создать программу для подсчета слов ,длинной 5 символов,в строке. Спасибо!)


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru