Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2009, 14:02   #11
Алексеййй
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 10
По умолчанию

Ну например вводим 4 строки
stroka1: privet
stroka2: kak dela?
stroka3: normalno a tu?
stroka4: axaxax
stroka3>stroka2>stroka1=stroka4
Алексеййй вне форума Ответить с цитированием
Старый 21.04.2009, 15:31   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Алексеййй, ну это тоже не сложно. После сортировки последовательно выводите эти "stroka3>stroka2" и т.д., делая дополнительно сравнивание.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 21.04.2009, 17:15   #13
Алексеййй
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 10
По умолчанию

А можно поподробнее
Алексеййй вне форума Ответить с цитированием
Старый 21.04.2009, 17:37   #14
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А можно поподробнее
А что там подробнее-то рассказывать?
Выводите первую строку.
Затем цикл от 2 до N. Если текущая строка меньше предыдущей, то выводим '>' и текущую строку. Если равны, то '=' и текущую строку.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.04.2009, 22:14   #15
Алексеййй
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 10
По умолчанию

Код:
program d;
uses crt;
const n=4;
var
s : array[1..10] of string;
i,j : integer;
t : string;

begin
clrscr;
for i:=1 to n do
 readln(s[i]);

 for i:=n-1 downto 1 do
  for j:=1 to i do
   if length(s[j])>length(s[j+1]) then
    begin
    t:=s[j];
    s[j]:=s[j+1];
    s[j+1]:=t;
    end;

writeln('-----------');
for i:=1 to n do
 writeln(s[i]);

readln;
end.
вот у меня получилось таково, но всё равно не пойму как туда впихнуть массив что бы потом выводилось с > или = ошибки выдает... чёто криво делаю а что непойму.
Алексеййй вне форума Ответить с цитированием
Старый 28.04.2009, 22:28   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
uses crt;
const n=4;
var
s : array[1..10] of string;
mas : array[1..10] of integer;
i,j,tmp : integer;
t : string;

begin
clrscr;
for i:=1 to n do
 begin
 readln(s[i]);
 mas[i]:=i;
 end;

 for i:=n-1 downto 1 do
  for j:=1 to i do
   if length(s[j])<length(s[j+1]) then
    begin
    t:=s[j];
    s[j]:=s[j+1];
    s[j+1]:=t;
    tmp := mas[j];
    mas[j] := mas[j+1];
    mas[j+1] := tmp;
    end;

writeln('-----------');
for i:=1 to n do
 writeln(s[i]);
writeln;
write('s',mas[1]);
for i:=2 to n do
 begin
 if length(s[i])=length(s[i-1]) then write(' = ')
 else write(' > ');
 write('s',mas[i]);
 end;

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.04.2009, 23:26   #17
Алексеййй
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 10
По умолчанию

Ух ну прям шикарно, интересно поможет мне это или выгонят уже но всё равно спасибо

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

Последний раз редактировалось Stilet; 06.05.2009 в 10:18.
Алексеййй вне форума Ответить с цитированием
Старый 04.05.2009, 00:58   #18
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
подскажите хотябы идейку как сравнить строки так чтобы например сравнивались таким образом 1 с 2, 1 с 3, 1 с 4 потом 2 с 3, 2 с 4 и 3 с 4, типо все друг с другом и вывести надо которые равны
Код:
for i:=1 to 3 do
 for j:=i+1 to 4 do
  { сравнение строки i со строкой j }
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 00:15   #19
Алексеййй
Пользователь
 
Регистрация: 19.04.2009
Сообщений: 10
Вопрос

Код:
uses crt;
var
g,i,k:integer;
stroka: array[1..20] of string;
begin
clrscr;
for i:=1 to 4 do begin
readln(stroka[i]);
end;
clrscr;
for i:=1 to 3 do begin
for g:=i+1 to 4 do begin
if length(stroka[i])=length(stroka[g]) then
begin write('stroka[',i,']=stroka[',g,']');
writeln;
end;
end;
end;
readln;
end.
программа работает, но хотелось бы чтоб наверняка кое-что в ней подправить только не знаю как...
всё хорошо когда например равны 1 с 2 строкой и 3 с 4 ну или любые 2 пары или одна пара... выводит строка1= строке2 и строка 3=строке 4
но если равны три или четыре строки тогда выводит 1=2 1=3 2=3
как сделать так что бы в таких случаях выводилось просто 1=2=3 ????
Алексеййй вне форума Ответить с цитированием
Старый 06.05.2009, 12:33   #20
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
как сделать так что бы в таких случаях выводилось просто 1=2=3 ????
Примерно так.
Код:
uses crt;
var
g,i,k:integer;
stroka: array[1..20] of string;
mn : set of 1..10;
b : boolean;
begin
clrscr;
mn := [];
for i:=1 to 4 do begin
readln(stroka[i]);
end;

for i:=1 to 3 do
 begin
 b := false;
 if i in mn then continue;
 for g:=i+1 to 4 do
  begin
  if g in mn then continue;
  if length(stroka[i])=length(stroka[g]) then
   begin
   if not b then
    begin
    b := true;
    write('stroka[',i,']');
    end;
   include(mn,i);
   include(mn,g);
   write(' = stroka[',g,']');
   end;
  end;
  writeln;
 end;
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка строк матрицы aurora_87 Общие вопросы C/C++ 3 23.04.2009 12:29
Сортировка строк в TStringGrid dimon000 Общие вопросы Delphi 6 03.07.2008 12:59
Сортировка строк sheva75 Microsoft Office Excel 3 06.02.2008 05:00