-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 127
1

Удалить все знаки препинания из строки

10.04.2016, 19:55. Показов 3762. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. С клавиатуры, или из самой программы, или из файла в строковую переменную вносится некоторый текст. Это предложение на английском языке. Программа редактирует английское предложение так, что не оставляет в нем ни одного знака препинания. Ни точки, ни запятой, и тире, ни прочих знаков не должно быть. Мало того, между двумя соседними словами должно быть не более одного пробела.

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

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

4. Эта программа на входе имеет «очищенный» массив слов предложения, заданного в первой задаче. Однако в исходном массиве могут встречаться повторяющиеся слова. Задача программы – из исходного массива сделать массив неповторяющихся слов.

5. Наконец, эта программа должна сортировать массив слов по алфавиту.

Все программы можно попробовать реализовать в модуле как методы строкового объекта. Значение всех этих программ – облегчение перевода английского текста путем создания небольшого вспомогательного словаря. Не секрет, что современные автоматические переводчики не всегда улавливают семантику текста, его смысл.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2016, 19:55
Ответы с готовыми решениями:

Удалить из строки все знаки препинания
Дана строка символов ( 2-3 строки ) в файле F1. Составить функцию , удаляющую из строки все ...

Удалить из введенной строки все знаки арифметических операций: ‘+-*/’
Удалить из введенной строки все знаки арифметических операций: ‘+-*/’.

Строки: удалить знаки препинания
Дана строка символов. Удалить из неё все знаки препинания. заранее спосибо Добавлено через 9...

дана строка символов, удалить из неё все знаки препинания
uses crt; var s:string; i:integer; const z:string='.,;:!?()'; begin clrscr; writeln('введите...

3
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
11.04.2016, 08:41 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
type sar=array of string;
var
  s:string;
  a,b:sar;
  i,j,k:integer;
  ok:boolean;
procedure split(delimeter:string;s:string;var sr:sar);
var
  cnt, i:integer;
  t:string;
procedure additem;
begin
 if t<>'' then begin
  inc(cnt);
  SetLength(sr,cnt);
  sr[cnt-1]:=t;
  t:='';
 end;
end;
begin
  cnt:=0;t:='';
  for i:=1 to length(s) do
    if pos(s[i],delimeter)=0 then t:=t+s[i] else additem;
    additem;
end;
procedure printarray(s:string;t:sar);
var
  i:integer;
begin
  writeln(s);
  for i:=low(t) to high(t) do writeln(t[i]);
  readln;
end;
begin
  write('Введите строку:');readln(s);
  Split('.,- :;',s,a);
  s:='';
  for i:=low(a) to high(a) do s:=s+a[i]+' ';
  writeln('1)',#10,#13,s); readln;
  printarray('2)',a);
  writeln('3)');
  for i:=low(a) to High(a) do writeln(lowercase(a[i][1])+copy(a[i],2,length(a[i])));
  readln;
  k:=1;
  setlength(b,k);
  b[0]:=a[0];
  for i:=low(a) to high(a) do begin
    ok:=true;
    for j:=low(b) to high(b) do
     if upcase(a[i])=upcase(b[j]) then begin
       ok:=false;
       break;
     end;
     if ok then begin
       k:=k+1;
       Setlength(b,k);
       b[k-1]:=a[i];
     end;
   end;
   printarray('4)',b);
  for i:=low(a) to high(a)-1 do
    for j:=i to high(a) do
      if (upcase(a[i])>upcase(a[j])) then begin
        s:=a[i];
        a[i]:=a[j];
        a[j]:=s;
      end;
  printarray('5)',a);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,076
Записей в блоге: 1
11.04.2016, 14:17 3
Joy,
объедините (4) и (5), тем более, что они и в исходной задаче объединены, избавитесь от полного перебора при поиске дубликатов.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
12.04.2016, 12:09 4
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
type sar=array of string;
var
  s:string;
  a,b:sar;
  i,j,k:integer;
  ok:boolean;
procedure split(delimeter:string;s:string;var sr:sar);
var
  cnt, i:integer;
  t:string;
procedure additem;
begin
 if t<>'' then begin
  inc(cnt);
  SetLength(sr,cnt);
  sr[cnt-1]:=t;
  t:='';
 end;
end;
begin
  cnt:=0;t:='';
  for i:=1 to length(s) do
    if pos(s[i],delimeter)=0 then t:=t+s[i] else additem;
    additem;
end;
procedure printarray(s:string;t:sar);
var
  i:integer;
begin
  writeln(s);
  for i:=low(t) to high(t) do writeln(t[i]);
  readln;
end;
begin
  write('Введите строку:');readln(s);
  Split('.,- :;',s,a);
  s:='';
  for i:=low(a) to high(a) do s:=s+a[i]+' ';
  writeln('1)',#10,#13,s); readln;
  printarray('2)',a);
  writeln('3)');
  for i:=low(a) to High(a) do writeln(lowercase(a[i][1])+copy(a[i],2,length(a[i])));
  readln;
   k:=0;
  for i:=low(a) to high(a) do begin
    for j:=i to high(a) do
      if (upcase(a[i])>upcase(a[j])) then begin
        s:=a[i];
        a[i]:=a[j];
        a[j]:=s;
      end;
    if (k=0) or (a[i]<>b[k-1]) then begin
      k:=k+1;
      setlength(b,k);
      b[k-1]:=a[i];
    end;
  end;
  printarray('4)',b);
  printarray('5)',a);
end.
0
12.04.2016, 12:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2016, 12:09
Помогаю со студенческими работами здесь

Дана строка символов, удалить из неё все знаки препинания
uses crt; var s:string; i:integer; const z:string='.,;:!?()'; begin clrscr; writeln('введите...

Требуется найти все знаки препинания в строке вводимой пользователем и вывести их на экран и их количество
Требуется найти все знаки препинания в строке вводимой пользователем и вывести их на экран и их...

Множества. Дана строка. Вывести по одному разу все знаки препинания, входящие в строку
Дана строка. Вывести по одному разу все знаки препинания, входящие в строку

Между всеми словами текста устранить все знаки препинания и оставить по одному пробелу
Между всеми словами текста устранить все знаки препинания и оставить по одному пробелу. Вывести на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru