Форум программистов, компьютерный форум, киберфорум
Наши страницы

Free Pascal

Войти
Регистрация
Восстановить пароль
 
tany
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 50
#1

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

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

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

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

Напечатать все различные слова, указав для каждого из них число его вхождений - Pascal
Обработка текста. Задана фраза - последовательность, содержащая от 1 до 35 слов, в каждом из которых от 1 до 5 строчных латинских букв;...

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

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

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

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

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

4
PolarFoG
NPC
151 / 145 / 10
Регистрация: 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 / 10
Регистрация: 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
Привет! Вот еще темы с ответами:

Дана последовательность слов, напечатать все слова, предварительно преобразовав каждое из них - Pascal
Дана последовательность слов. напечатать все слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова все...

2. Дана целочисленная последовательность. Определить количество вхождений каждого числа в последовательность - Pascal
Написал программу var a,c:array of integer; count,i,p,u: integer; begin for i:=1 to 10 do begin read(p); a:=p; end;

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

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


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

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

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