0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 3
1

Работа со строками

25.03.2009, 19:09. Показов 1061. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста помогите в решении 2-задач на строки.
1) Определить сколько раз в строке встречается самое короткое слово.
2) Из символьное строки выбрать те символы, которые встречаются в ней только один раз, в том порядке в котором она встречаются в тексте.

Добавлено через 26 минут 26 секунд
Это код нахождения самого короткого слова, если он понадобиться для решении моей задачи буду только рада.

j:=1;
k:=0;
r:=0;
e:=0;
for i:=1 to length(s) do
begin
if s[i]=' 'then
begin
j:=j+1;
k:=k+1;
end
else
s1[j]:=s1[j]+1; r:=r+1;
end;
dl:=s1[1];
for i:=0 to j do
if s1[i]<dl then
begin
dl:=s1[i];
e:=s1[i];
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2009, 19:09
Ответы с готовыми решениями:

Работа со строками
Помогите пожалуйста, кто в этом шарит... Буду очень признателен и благодарен... Задана строка....

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

Работа со строками
Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести...

Работа со строками!
Дана строка текста. Группы символов, разделенных одним или несколькими пробелами назовём...

7
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
25.03.2009, 19:24 2
А если несколько вариантов самых коротких слов?

Добавлено через некоторое время секунд
Задача 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
program xxx;
var
 a1,a2:array[1..256]of char;
 s:string;
 i,ii,c1,c2:integer;
 v:boolean;
begin
 v:=true;
 readln(s);
 for i:=1 to length(s) do
  if not (s[i] in a1) then for ii:=i to length(s) do begin
   if s[ii]=s[i] then begin
    c1:=c1+1;
    a1[c1]:=s[i];
    break;
    v:=false;
   end;
  end;
  if v then begin
   c2:=c2+1;
   a2[c2]:=s[i];
  end;
 for i:=1 to c2 do write(a2[i]:2);
 readln;
end.
Простой вид
program xxx;
var
a1,a2:array[1..256]of char;
s:string;
i,ii,c1,c2:integer;
v:boolean;
begin
v:=true;
readln(s);
for i:=1 to length(s) do
if not (s[i] in a1) then for ii:=i to length(s) do begin
if s[ii]=s[i] then begin
c1:=c1+1;
a1[c1]:=s[i];
break;
v:=false;
end;
end;
if v then begin
c2:=c2+1;
a2[c2]:=s[i];
end;
for i:=1 to c2 do write(a2[i]:2);
readln;
end.
0
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 3
25.03.2009, 19:26  [ТС] 3
в принципе даже если самое короткое слово состоит к примеру из 3 букв , а в данной строке находятся два разных слова из 3 букв то программа должна посчитать количество всех слов состоящих из трех букв (как пример)

Большое спасибо за код к 2 задачи на почему то странна программа выдает ошибку на 11 строчке [Error] Project1.dpr(18): Operator not applicable to this operand type
((((((
0
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
25.03.2009, 19:32 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
program kkk;
uses crt;
const possible:set of char=['0'..'9','a'..'z','A'..'Z','_'];
var count,i,min,k:integer;
    f:boolean;
    st,buf:string;
    slova:array[1..100]of string;
begin
 min:=9999;
 clrscr;
 readln(st);
 count:=1;
 repeat
  if (st[1]=' ') or (length(st)=0) then while st[1]=' ' do delete(st,1,1)
  else
  begin
   while (st[1]<>' ') and (length(st)>0) do
   begin
    buf:=buf+st[1];
    delete(st,1,1);
   end;
  slova[count]:=buf;
  if length(buf)<min then min:=length(buf);
  buf:='';
  inc(count);
  end;
 until (length(st)=0) and (length(buf)=0);
 
 k:=0;
 for i:=1 to count-1 do if length(slova[i])=min then inc(k);
 writeln(k);
 readln;
end.
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
25.03.2009, 19:50 5
Попробуй вместо array of char сделать array of string[1]
0
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 3
25.03.2009, 20:35  [ТС] 6
Цитата Сообщение от Kidalvь Посмотреть сообщение
Попробуй вместо array of char сделать array of string[1]
усеравно он на эту ошибку ссылается
0
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
25.03.2009, 20:41 7
тогда не знаю.....
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
25.03.2009, 20:46 8
1.Масив а1 объявлен, но не заполнен, там нет ни одного стимвола.
2. С помощью in можно обращаться только к множествам, но не к массивам. Элементы массива можно только сравнивать, например
if s[i]=a[j] then
0
25.03.2009, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2009, 20:46
Помогаю со студенческими работами здесь

Работа со строками
Вводится строка А (&quot;123+225&quot;) сначала нужно определить положение &quot;+&quot; затем складывать 3+5 потом...

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

работа со строками
Помагите написать прогу...буду весьма благодарен... В заданном предложении исключить все слова...

Работа со строками
Всем привет. Можете помочь написать вот такую програмку: Дана строка символов. Преобразовать ее на...


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

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

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