Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
tany
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 50
#1

Напечатать слова по алфавиту, указав для каждого из них число его вхождений в последовательность - Free Pascal

17.01.2012, 16:37. Просмотров 713. Ответов 4
Метки нет (Все метки)

Дана непустая последовательность слов, в каждом из которых от 1 до 12 строчных латинских букв; между словами - пробел, за последним словом - точка. Напечатать эти слова по алфавиту, указав для каждого из них число его вхождений в эту последовательность.

помогите пожалуйста(если можно с комментариями к коду) очень нужно. без этой задачи экзамен не поставят(((
http://www.cyberforum.ru/pascal/thread888119.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2012, 16:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Напечатать слова по алфавиту, указав для каждого из них число его вхождений в последовательность (Free Pascal):

Найти все различающиеся слова, указав для каждого их них число его вхождений в последовательность
пусть дана последовательность, содержащая от 1 до 30 слов в каждом из которых 1...

Вывести все различные слова, указав для каждого из них число его вхождений в последовательность
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1...

Вывести различные слова, указав для каждого из них число вхождений в последовательность
Дана последовательность до 30 слов в каждом из которых от 1 до 5 символов,...

Для каждого слова напечатать его характеристику: само слово, количество в нем символов
Задали задачу сделать в С++ и паскале. Помогите сделать в паскале, кому не...

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

4
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
18.01.2012, 17:00 #2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Готово. ...А динамические структуры учи

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program project;
{$mode Objfpc} {$H+}
 
uses
Crt, SysUtils, FileUtil;
type
  List_T=^Rec_T;
  Rec_T=record
    un:List_T;
    st:string[12];
    n:integer;
    end;
var
  n,i:integer;
  t,s:string;
  p,pH,pT:List_T;//p указатель на текущий элемент, pH на первый, pT дополнительный указатель.
 
begin
 
s:='asd asd fgdta asd hfrew csawe caeda a dfws.';    //Сам так сказать набор слов
 
//Запихиваем отдельные слова в записи типа Rec_T находящиеся в "куче"
while pos('.',s)<>0 do begin //если точка еще есть то есть и слова : )
  new(p); //выделяем в динамической распределённой памяти ("куче") место для переменной типа List_T с указателем p
  //Записываем слово и удаляем его и пробел после
  if pos(' ',s)<>0 then begin
  p^.st:=Copy(s,1,pos(' ',s)-1);
  Delete(s,1,pos(' ',s));
  end else begin
    p^.st:=Copy(s,1,pos('.',s)-1);  //записываем последнее слово и удаляем точку
  Delete(s,pos('.',s),1);
    end;
 
  //Передвигаем указатель на последний элемент и обновляем указатели хранящиеся в элементах.
  if pH=nil then
  begin
    p^.un:=nil;
    pH:=p;
  end else
  begin
    p^.un:=pH;
    pH:=p;
  end;
 
  //Сортируем каждый новый элемент
  pT:=pH^.un;
  p:=pH;
  while pT<>nil do begin
    if p^.st>pT^.st then begin //сравниваем веществинную часть элемента p и следующего за ним. И если ВЧ элемента p меньше меняем значения вещественных частей местами.
      t:=p^.st;
      p^.st:=pT^.st;
      pT^.st:=t;
 
      p:=pT;                   //двигаем указатели на сравниваемые элементы на один вниз.
      pT:=p^.un;
    end else break;            //т.к дальше элементы отсортированы то проверять дальше не имеет смысла, выходим из цикла.
  end;
end; //Заканчеваем создание динамического списка
 
//Находим количество вхождений каждого слова в тексте. по другому не смог реализовать
p:=pH;
while p<>nil do begin
  pT:=pH;
  n:=0;
  while pT<>nil do begin
      if p^.st=pT^.st then inc(n);
      pT:=pT^.un;
  end;
  p^.n:=n;
  p:=p^.un;
end;
 
//Выводим весь список на экран
p:=pH;
while p<>nil do begin
  write(p^.st); write('-'); writeln(p^.n);
  p:=p^.un;
end;
 
 
writeln(UTF8ToConsole('Для выхода нажмите любую клавишу'));
readkey;
end.
1
tany
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 50
18.01.2012, 17:33  [ТС] #3
прости за дурацкий вопрос, а где находится модуль FileUtil?

Добавлено через 19 минут
спасибо огромное))) очень очень выручил)))
0
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
18.01.2012, 17:35 #4
Уберите из uses FileUtil, а в строке 83 замените writeln(UTF8ToConsole('Для выхода нажмите любую клавишу')); на writeln('Press any key');
1
tany
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 50
18.01.2012, 17:38  [ТС] #5
да спасибо я так и сделала уже)))))))
0
18.01.2012, 17:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 17:38
Привет! Вот еще темы с решениями:

Дана последовательность слов, напечатать все слова, предварительно преобразовав каждое из них
Дана последовательность слов. напечатать все слова, предварительно преобразовав...

2. Дана целочисленная последовательность. Определить количество вхождений каждого числа в последовательность
Написал программу var a,c:array of integer; count,i,p,u: integer; begin...

Определить количество вхождений каждого числа в последовательность
Дана целочисленная последовательность. Определить количество вхождений каждого...

Напечатать все слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву
1) Программа. Дан текстиз строчных русских букв, закоторым следует точка....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru