Что такое swap в паскале
Swap (функция)
Навигация
Язык:
Русский
English
Меняет старший и младший байты параметра.
Объявление
Function Swap(X) : (тип параметра);
Режим
Windows, Real, Protected
Замечания
X — выражение типа Integer или Word.
Смотри также
Пример
Язык:
Русский
English
begin
X := Swap ( $1234 ) ; < $3412 >
end .
Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
Для форумов:
Для блогов:
Для Википедии:
Описать процедуру Swap
Описать процедуру Swap(X, Y), меняющую содержимое переменных X и Y (X и Y — вещественные параметры, являющиеся одновременно входными и выходными). С ее помощью для данных переменных A, B, C, D последовательно поменять содержимое следующих пар: A и B, C и D, B и C и вывести новые значения A, B, C, D.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Описать процедуру
Описать процедуру , которая для трех чисел осуществляет пере-распределение значений по правилу.
Описать процедуру ADDLeftDigit
Народ нужна помощь. Описать процедуру AddLeftDigit(D, K), добавляющую к целому положительному.
Описать процедуру SortInc3
Помогите с процедурой Описать процедуру SortInc3(A, B, C), меняющую содержимое переменных A.
Описать рекурсивную процедуру
Описать рекурсивную процедуру (функцию), которая по целому неотрицательному числу n дает n-1 число.
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
uses crt; procedure Swap(var x,y:integer); var b:integer; begin b:=x; x:=y; y:=b; end; var a,b,c,d:integer; begin clrscr; writeln('Введите 4 целых числа:'); readln(a,b,c,d); writeln('Новые значения чисел:'); Swap(a,b); Swap(c,d); Swap(b,c); writeln('a=',a,' b=',b,' c=',c, ' d=',d); readln end.
Что такое swap в паскале
Об этих функциях рассказывалось на лекции 9 (8 рктября 2003), но судя по всему мало кто понял. Объясню на конкретных примерах.
Дано шестнадцатеричное число х целого типа (например, longint — числа этого типа принимают значения от -2147483647 до 2147483647, что практически дает нам гарантию на защиту от переполнения, которое видет к ошибке в программе) вида ### ## , где #-цифра от 0 до F (те. число может выглядеть так: 4FA5D2 или 55).
Шестнадцатеричное число — число записанное комбинацией из 16 цифр (0,1. 9,A,B,C,D), в обычной жизни мы пользуемся десятеричными (используем цифры от 0 до 9).
Тогда «красные» цифры — старший байт аргумента и для их выделения требуется операция hi(x), т.е. следующая программа:
Program Hitest;
var x:longint;
begin
x:=43981;
writeln(hi(x));
end.
Мы присваиваем х десятеричное число 43981, а паскаль переведет его в шестнадцатеричное автоматически. Мы могли бы ввести сразу шестнадцатеричное число, добавив знак доллара перед числом — это указывает Паскалю на ввод шестнадцатеричного числа, т.е. строка присваивания должна была бы выглядеть так:
x:=$ABCD;
В шестнадцатеричном варианте наше число выглядит, как AB CD .
Красные цифры — AB — считаются старшим байтом аргумента, именно они и находятся процедурой hi, т.е. на экране мы увидим 171, т.е. число AB, записанное в десятичной форме..
Синие цифры — младший байт аргумента, для их выведения потребуется операция lo(x). На экране появится десятеричное 205, аналогичное шестнадцатеричному числу CD.;
Операция swap(x) меняет старший и младший байты местами, т.е если в нашей программе заменить hi на swap, то на экране высветится 52651 — десятеричная версия CDAB.
Pascal — Опишите процедуру Swap. Что делает? Примеры. А так же можно ли заменить её чем то?
В Паскале нету встроенной функции Swap. Её обычно пишут вручную как небольшую вспомогательную функцию для того, чтобы менять местами элементы конкретного массива/строки или значения переменных. Например:
Procedure Swap(Var a, b: integer);
Var p: integer;
begin
p := a;
a := b;
b := p;
end;
эту можно использовать, например, так:
swap(a[i],b[i]);
Остальные ответы
Похожие вопросы