Очень часто записи в таблицах бывают упорядочены по какому-то правилу. Например,
- в телефонных справочниках — в алфавитном порядке фамилий абонентов;
- в расписании движения поездов — в порядке времени отправления;
- в таблице футбольного чемпионата — по возрастанию номеров мест, которые занимают команды.
Процесс упорядочения записей в таблице называется сортировкой.
Для выполнения сортировки должна быть указана следующая информация:
а) по значению какого поля производить сортировку;
б) в каком порядке сортировать записи (по возрастанию или убыванию значений поля).
В команду выборки можно добавить параметры сортировки, в соответствии с которыми будут упорядочены строки в итоговой таблице. В таком случае формат команды выборки становится следующим:
.выбрать ‹список выводимых полей›
где ‹условия выбора›
сортировать ‹ключ сортировки›
по ‹порядок сортировки›
Ключом сортировки называется поле, по значению которого производится сортировка.
Возможны два варианта порядка сортировки: по возрастанию значений ключа и по убыванию значений ключа.
Отсортируем записи таблицы «Погода» по убыванию значений влажности. Для этого нужно отдать команду:
.выбрать все сортировать ВЛАЖНОСТЬ по убыванию
В результате выполнения этой команды будет получена таблица 3.6.
Таблица 3.6. Таблица «Погода», отсортированная по убыванию влажности
11110001
Объяснение:
Ближайшая степень двойки к исх.числу - 128(2^7). Чисел в двоичном представлении значит будет 8(седьмая степень двойки плюс нулевая), на 8 позиции будет 1. Вычитаем из 241 128, получаем 113. Поступаем аналогично, ближайшая степень - 64(2^6), на 7 позиции будет 1. 113-64=49. Ближайшая степень 32(2^5). на 6 позиции 1. 49-32=17. ближайшая степень 16(2^4). на 5 позиции 1. 17-16=1. ближайшая степень 1(2^0). на 1 позиции единица. Теперь выставляем единицы на нужные позиции и получаем
11110001
function Summa(a,b:integer):string;
var a1,b1:integer;
begin //находим сумму первого числа
a1:=(a div 1000)+((a div 100)mod 10)+((a mod 100)div 10)+(a mod 10);
//находим сумму второго числа
b1:=(b div 1000)+((b div 100)mod 10)+((b mod 100)div 10)+(b mod 10);
//выясняем что больше
if a1>b1 then
Result:='Сумма цифр левого числа больше. Оно равно: '+IntToStr(a1)
else
Result:='Сумма цифр правого числа больше. Оно равно: '+IntToStr(b1);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin //Выполнение и вывод результата функции через нажатие кнопки
Label1.Caption:=Summa(StrToInt(Edit1.Text),StrToInt(Edit2.Text));
end;