IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> String.
Santrex
сообщение 18.12.2004 0:33
Сообщение #21


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Да между словаи пробел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 18.12.2004 0:38
Сообщение #22


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


3. здесь нужно сравнивать каждое слово с каждым и помечать одинаковые...
примерно так
Код

for i:=1 to count-1 do
 for j:=i+1 to count do
   if words[i] = words[j] then
       begin
       equal_words[i]:=1;
       equal_words[j]:=1;
       end;

После этого в массиве equal_words будут стоять единички в ячейках соответствующим одинаковым словам в массиве words.
Далее надо собрать остальные слова в новый массив
Код

for i:=1 to count do
 if equal_words[i]<>1 then
    begin
    new_count:=new_count+1;
    new_words[new_count]:=words[i];
    end;

вот.... вопросья?


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 18.12.2004 0:46
Сообщение #23


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Если между словами всегда один пробел, то разбтвать текст надо примерно так:
Код

count:=1;
for i:=1 to length(s) do // s - текст
  if s[i] = ' ' then
     count:=count+1
    else
      words[count]:=words[count]+s[i];


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Santrex
сообщение 18.12.2004 13:29
Сообщение #24


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Я пробывал делать как ты сказал но у меня не получаеться.Я уже много раз по разному пробывал делать их.И книги листал.Но что то я упускаю или что.Может всетаки ты напишешь эти проги. mellow.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2004 14:53
Сообщение #25


Гость






Santrex
А можно посмотреть, КАК ты их делал? Раз пытался, значит есть исходники... Может, у тебя ошибка в малом, так мы бы исправили... Чего еще раз писать :p2:
 К началу страницы 
+ Ответить 
Santrex
сообщение 18.12.2004 15:25
Сообщение #26


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Это я делал раньше прогу на сортировку.
Раншь вроде сортировала.Но токо все слова, а не с четным колличесвтом букв.
Я потом пробывал переделать и запарол ее.Тперь она вроде не сортирует совсем.Посмотрите что там можно сделать.И можно ли переделать структуру
Program Zadanie2;
USES CRT;
VAR
A : ARRAY [1..10] OF string;
B : ARRAY [1..10] OF INTEGER;
I,N,k,l : INTEGER;
s : string;
BEGIN
CLRSCR;
WRITE ('N=');
READLN (N);
WRITELN ('Введите список слов после кадого Enter:');
FOR I:=1 TO N DO
READLN (A[I]);
WRITELN;
FOR I:=1 TO N DO
B[I]:=LENGTH(A[I]);
FOR I:=1 TO N DO
WRITELN ('В слове',A[ I ],' -',B[ I ],'количесвто символов');
k:=0;
for i:=1 to n do begin
k:=k+1;
end;
writeln;
writeln;
writeln ('ђҐ§г«мв в:');
writeln ('Слова с четным koli4estvom bykv = ',k);

if k mod 2 <> 0 then
while (l<=(n-1)) do begin
for n:=1 to (n-1) do begin
if (a[n] > a[n+1]) then begin
s:=a[n];
a[n]:=a[n+1];
a[n+1]:=s
end;
end;
writeln ('Отсортированный список:');

for l:=1 to n do
write (a[l],' ');
REPEAT UNTIL KEYPRESSED
end;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2004 15:55
Сообщение #27


Гость






Santrex
Теперь она сортирует по возрастанию все слова с четным количеством букв (между словами может быть более одного пробела)...
Код

var
 s, T: string;
 words: array[1 .. 50] of string;
 count, i, j: byte;
begin
 write('s = '); readln(s);
 count := 0;

 for i := 1 to length(s) do
   if s[i] = ' ' then
     begin
       if (length(words[count]) mod 2 = 0) and
          (length(words[count]) <> 0) then
         inc(count)
       else
         words[count] := ''
     end
   else
     words[count] := words[count] + s[i];

 For i := 1 To count Do
   For j := count DownTo i+1 Do
     If words[j - 1] > words[j] Then
       Begin
         T := words[j - 1]; words[j - 1] := words[j]; words[j] := T
       End;
 For i := 1 to count do
   write(words[i], ' ');
 writeln
end.
 К началу страницы 
+ Ответить 
Santrex
сообщение 18.12.2004 16:40
Сообщение #28


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Спасибо.Прога пашет отлично.Но ты можешь обыяснить что такое значение Bute.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2004 16:54
Сообщение #29


Гость






Santrex
Не Bute, а Byte... Это маленькие числа (0 - 255)... При работе со строками лучше использовать Byte, т.к. длина строки все равно ограничена - 255 символов. Но можно смело заменить Byte на Integer - все по-прежнему будет работать...
 К началу страницы 
+ Ответить 
Digitalator
сообщение 18.12.2004 17:20
Сообщение #30


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


volvo, как всегда дал челу прогу, но вот как она работает, я думаю, он так и не понял...


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Santrex
сообщение 18.12.2004 18:19
Сообщение #31


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Почему теперь понял.Но еще надо те 2 проги.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 18.12.2004 18:26
Сообщение #32


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Если понял, то сам напишешь. Если не напишешь - значит не понял.


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Santrex
сообщение 18.12.2004 18:33
Сообщение #33


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Я сказал что я понял смысл этой проги.И вообще я что тут на допросе поняли или не понял.Я просто просил написать 3 проги на минимально понятном языке.И все!Вы я смотрю пишите проги всем не знадвая вопросы понял кто там чего или нет.Если вы хотите просто поговорить так скажите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 18.12.2004 18:38
Сообщение #34


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


"Мы" - это кто?
Я никому проги ТУТ не пишу, смею заметить...

А что непонятного то? Все что нужно я тебе написал, есть какие-то вопросы?

Или можешь подождать пока volvo (или еще кто-нибудь) не принесет тебе все на блюдечке с голубой каемочкой.

Сообщение отредактировано: Digitalator - 18.12.2004 18:39


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Santrex
сообщение 18.12.2004 18:41
Сообщение #35


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Ну тогда подожду.Что ж мне еще делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2004 12:40
Сообщение #36


Гость






Santrex
По образу и подобию моей первой программы написана вторая (для удаления одинаковых слов):
Код

var
 s, T: string;
 words: array[1 .. 50] of string;
 count, i, j: integer;
 was: boolean;
begin
 write('s = '); readln(s);
 count := 1;

 for i := 1 to length(s) do
   if (s[i] = ' ') or (s[i] = '.') then
     begin
       was := false;
       if length(words[count]) <> 0 then
         for j := 1 to count - 1 do
           was := was or (words[j] = words[count]);

       if (not was) and (length(words[count]) <> 0) then
         inc(count)
       else
         words[count] := ''
     end
   else
     words[count] := words[count] + s[i];

 For i := 1 to count do
   write(words[i], ' ');
 writeln
end.
 К началу страницы 
+ Ответить 
Santrex
сообщение 19.12.2004 21:16
Сообщение #37


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


Большое спасибо тебе Volvo.Очень признателен за содействие.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Сталкер
сообщение 9.05.2007 21:14
Сообщение #38


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Для чего нужно T: string в последнем коде?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
samec
сообщение 10.05.2007 5:38
Сообщение #39


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской
Реальное имя: Юра

Репутация: -  1  +


Цитата(Сталкер @ 10.05.2007 1:14) *

Для чего нужно T: string в последнем коде?

ни для чего. Можешь спокойно убрать эту переменную.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 12:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"