<h2>Задание </h2>
Сложить E43C и D15A в шестнадцатеричной системе счисления
<h2>Решение</h2>
Записываем два числа в столбик и складываем по разрядам. Первым действием складываем C и A. Вспомним, какие числа содержит в себе шестнадцатеричная система счисления: от 0 до 9, а также буквы A, B, C, D, E и F, соответственно равные 10, 11, 12, 13, 14 и 15. Итак, складываем C и A: 12 + 10 = 22. Так как мы работаем в шестнадцатеричной системе счисления, то происходит переполнение разряда (аналогия - в нашей, десятичной системе счисления такое переполнение происходит, когда мы складываем, например, 5 и 6: 5 + 6 = 11 - происходит переполнение нашей системы и мы включаем десятки). Нужно разложить 22 на сумму числа и 16. 16 + 6 = 22. Записываем под этими разрядами 6 и ставим точечку над следующим разрядом. Переходим к следующему: 3 + 5 = 8. Переполнения нет. А у нас ещё точечка: 8 + 1 = 9. Записываем под этими разрядами 9. Переходим к следующему: 4 + 1 = 5. Записываем. Следующий (последний): E + D = 14 + 13 = 27 = 16 + 11. 11 в шестнадцатеричной системе счисления - это B. Единичку записываем в следующий разряд (а поскольку его нет - в самое начало получившегося числа).
<h2>Ответ</h2>
1B596
Program1; Uses crt;
var a: integer;
begin clrscr;
Writeln('введите число");
Readln(a);
if a>0 then Writeln('a-положительное');
if a<0 then Writeln('a-отрицательное');
if a=0 then Writeln('a=0');
Readln;
End.
Только я вот не понял, зачем фотка прикреплена к вопросу?..
Немного теории:
Любой доступ к элементу массива, осуществляемый с помощью операции индексирования может быть осуществлен при помощи указателей.
Имя массива хранит адрес его нулевого элемента. Поэтому адрес любого i элемента массива можно представить как (x+i), где x - указатель на первый элемент массива. А его значение как *(x+i)
Подобные операции верны для любого типа и размера массивом, так как при прибавлении к указателю целого числа, он "сдвигается" не на i байтов, а на i элементов этого типа.
int a[]={7,8,9}; - инициализация массива.
int b*=a - в этой строчке ошибка. Правильно: int *b=a; - объявляем указатель на нулевой элемент массива.
b++; - операция постфиксного инкремента(так как значение b в этой строчке нигде не используется, то данное выражение равносильно b=b+1). Теперь в b находится адрес первого элемента массива.
*(b+1)=*b - присваиваем второму элементу массива значение первого элемента(эта запись равносильна a[2]=a[1])
b[1] равносильно a[2] (не забываем, что в b[0] теперь адрес первого элемента, а не в нулевого. Адрес нулевого элемента будет в b[-1], а второго элемента - в b[1]).
В итоге значение b[1] равно 8
Ответ: 8
var chastnoe,cifra,x,y:integer;
begin
y:=237;
cifra:=(y div 100);//получаем первую цифру числа 237
chastnoe:=(y mod 100);//находим число получившееся после деления
x:=chastnoe*10+cifra;//находим число Х
writeln(x);//выводим
end.
program raf105;
var
i,n: integer;
begin
write('Введите число: ');
readln(n);
write('Чётные: ');
for i:=1 to n do
if i mod 2 = 0
then write(i,' ');
writeln;
write('Нечётные: ');
for i:=1 to n do
if i mod 2 <> 0
then write(i,' ');
end.
<h3><u>PascalABC 3.4.2</u></h3>