Что такое swap в паскале
Перейти к содержимому

Что такое swap в паскале

  • автор:

Что такое 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]);

Остальные ответы

Похожие вопросы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *