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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2013, 18:07   #1
Alenushka7
Новичок
Джуниор
 
Регистрация: 19.05.2013
Сообщений: 1
По умолчанию Сортировка по алфавиту (паскаль).

Алфавит состоит из 13-ти символов англ.алфавита (q,w,e,r,t,y,u,i,o,p,a,s,d). Имеется список имен (вводим с клавиатуры), который нужно упорядочить по данному алфавиту.


Код:
var
     alpha: array [0..12] of char;
     list: array [0..100] of string;
     name,names,temp: string;
     i,c,j: Integer;
     function alph(var x:char):integer;
     begin
          if x = 'q' then
             alph := 0;
          if x = 'w' then
             alph := 1;
          if x = 'e' then
             alph := 2;
          if x = 'r' then
             alph := 3;
          if x = 't' then
             alph := 4;
          if x = 'y' then
             alph := 5;
          if x = 'u' then
             alph := 6;
          if x = 'i' then
             alph := 7;
          if x = 'o' then
             alph := 8;
          if x = 'p' then
             alph := 9;
          if x = 'a' then
             alph := 10;
          if x = 's' then
             alph := 11;
          if x = 'd' then
             alph := 12;
     end;
     begin
         writeln('введите список имен("end" для завершения)');
         i := 0;
         c := 0;
         while not (name = 'end') do begin
             readln(name);
             if name = 'end' then
ребят, дальше, как я понимаю, нужно упорядочивать с последней буквы имени методом пузырька, но как это сделать, я не знаю..



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 20.05.2013 в 13:44.
Alenushka7 вне форума Ответить с цитированием
Старый 19.05.2013, 18:32   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
const
	ABC = 'qwertyuiopasd';
	SIZE = 1000;

type
	TArr = array [1..SIZE] of string;

procedure ReadArr (var a : TArr; var n : Integer);

var
	i : Integer;

begin
	ReadLn (n);

	for i := 1 to n do
		ReadLn (a[i])
end;

procedure PrintArr (const a : TArr; const n : Integer);

var
	i : Integer;

begin

	for i := 1 to n do
		WriteLn (a[i], ' ')

end;


procedure Swap (var a, b : string);

var
	t : string;

begin
	t := a;
	a := b;
	b := t;
end;


procedure SortArr (var a : TArr; const n : Integer);

function FstStrMore (s1, s2 : string) : Boolean;
var
	i, p1, p2 : Integer;
	
begin
	p1 := Length(s1) - Length(s2);
	
	if p1 <> 0 then begin
		FstStrMore := (p1 > 0);
		Exit
	end;
	
	i := 1;
	
	while (i <= Length(s1)) do begin
		if s1[i] <> s2[i] then begin
			p1 := Pos (s1[i], ABC);
			p2 := Pos (s2[i], ABC);
			FstStrMore := p1 < p2;
			Exit;
		end;
		Inc (i)
	end;
	
	FstStrMore := FALSE
			
end;

var
	i, j : Integer;

begin
	for i := 1 to n-1 do
		for j := 1 to n-i do
			if FstStrMore (a[j], a[j+1]) then
				Swap (a[j], a[j+1]);
end;

var
	a : TArr;
	n : Integer;

begin
	ReadArr (a, n);

	SortArr (a, n);

	PrintArr (a, n)
end.
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cортировка методом Пузырька Андрей77777 Паскаль, Turbo Pascal, PascalABC.NET 1 10.12.2012 15:01
Задача на обработку массива сортировкой "методом пузырька". Death/// Помощь студентам 2 05.11.2012 09:46
Упорядочить по фамилии (методом пузырька) в делфи EDK Помощь студентам 6 10.10.2012 11:05
курсач по С++ на тему сортировок методом пузырька и челночным методом ffocus Фриланс 13 05.01.2010 20:20
Сортировка методом пузырька fygas1991 Общие вопросы C/C++ 5 15.11.2009 21:39