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

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

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

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


Новичок
*

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

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


Да между словаи пробел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Новичок
*

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

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


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


Гость






Santrex
А можно посмотреть, КАК ты их делал? Раз пытался, значит есть исходники... Может, у тебя ошибка в малом, так мы бы исправили... Чего еще раз писать :p2:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Новичок
*

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

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


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


Гость






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


Бывалый
***

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

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


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


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


Новичок
*

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

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


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


Бывалый
***

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

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


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


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


Новичок
*

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

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


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


Бывалый
***

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

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


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

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

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

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


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


Новичок
*

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

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


Ну тогда подожду.Что ж мне еще делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Новичок
*

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

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


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


Новичок
*

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

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


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


Бывалый
***

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

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


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

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

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

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

 





- Текстовая версия 23.04.2024 16:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name