Форум программистов, компьютерный форум CyberForum.ru

Разбить строку на слова из словаря - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Стеки http://www.cyberforum.ru/cpp-beginners/thread281855.html
Помогите разобраться со стеками.Вылетает 3 ошибки при компеляции. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <math.h> #include <fstream> #include <time.h> #include <locale.h> #include <iostream>
C++ Не работает функция в С++ Всем привет! Вот мне надо написать функцию, которая находит максимальное среди трёх введённых чисел. Я вот накинул программку и прошу проверить вас... Заранее благодарен! #include <iostream.h> #include <conio.h> float Max(float, float, float) void main() { clrscr(); float max, x1, x2, x3; cout<<"Enter the three numbers\n"; cin>>x1>>x2>>x3; http://www.cyberforum.ru/cpp-beginners/thread281852.html
C++ Считывание файлов в двумерный массив
Всем привет, просьба помочь с кодом. Есть текстовый файл с разными спецсимволами(@, &, *, % и.т.д.) как считать определенные спецсимволы в массив к примеру @ и & а остальные проигнорировать? Заранее спасибо.
Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими C++
Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими .Если непонятно то визуально выглядит так: введите данные: abdtTfgTGY данные изменены: ABDTTfgtgy Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
C++ Рекурсия. Перебор различных слагаемых. http://www.cyberforum.ru/cpp-beginners/thread281795.html
Решил изучить рекурсию... Если с факториалом и числами Фибоначчи все просто и понятно, то на первой же задаче я впал в ступор=\ Условие: Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий. Требуется написать программу, вычисляющую число лесенок, которое можно построить из N кубиков. Входные данные: Во входном файле INPUT.TXT...
C++ Цепь Маркова Мне надо написать программу, которая будет имитировать работу цепи Маркова. Есть ли готовые алгоритмы? В заранее благодарен. подробнее

Показать сообщение отдельно
zverek56
0 / 0 / 0
Регистрация: 30.01.2013
Сообщений: 3
30.01.2013, 20:25     Разбить строку на слова из словаря
Здравствуйте)
Решаю ту же задачу, но на Delphi.
Не проходит лишь 10 тест. Какая-то внутренняя ошибка программы. Весь день просидел, а понять в чём дело не могу.

Вот полный код. Тест вложен.
Delphi
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
program inf;
 
{$APPTYPE CONSOLE}
 
type
  slova = record                  //тип, содержащий слова с определённым количеством букв
    s: array [1..2005] of string; //сами слова
    k: integer;                   //количество слов с данным количеством букв
  end;
 
var
  m: array [1..25] of slova;     //индекс соответствует количеству букв
  str, st: string;
  N, i, j: integer;
  ok: boolean;
 
function sr(str: string): boolean;   //проверяет наличие слова в словаре
var
  i: integer;
begin
  sr:=false;
  with m[length(str)] do
    for i:=1 to k do
      if (s[i]=str) then
        begin
          sr:=true;
          break;
        end;
end;
 
function f(str: string): string;     //рекурсивная функция, при первом удачном окончании, т.е. символов не осталось, возвращает значение
var
  i: integer;
  st, st1: string;
begin
  //writeln(str);
  st:=''; st1:='';
  for i:=1 to length(str) do
    if (not ok) then
      begin
        st:=st+str[i];
        if sr(st) then
          begin
            //writeln(st);
            st1:=str;
            delete(st1, 1, i);
            if (st1<>'') then f:=st+' '+f(st1)
            else begin ok:=true; f:=st end;
          end;
      end;
end;
 
begin
  //assign(input, 'File1.txt'); reset(input);
  //assign(output, 'File2.txt'); rewrite(output);
  readln(str);
  readln(N);
  for i:=1 to 20 do m[i].k:=0;
  for i:=1 to N do          //сортируем слова в словаре по количеству букв
    begin
      readln(st);
      with m[length(st)] do
        begin
          inc(k);
          s[k]:=st;
        end;
    end;
  ok:=false;
  writeln(f(str));
end.
Вложения
Тип файла: txt Input10.txt (6.2 Кб, 21 просмотров)
 
Текущее время: 05:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru