Задание 1. а) представим -17₁₀ в обратном коде на 8-битном регистре - запишем число 17₁₀ в двоичной системе: 10001₂ - дополним его слева нулями до 8 знаков: 00010001 - поскольку число отрицательное, инвертируем каждый разряд, т.е. заменяем 0 на 1, а 1 на 0: 11101110 б) представим 22 в обратном коде на 8-битном регистре - запишем число 22₁₀ в двоичной системе: 10110₂ - дополним его слева нулями до 8 знаков: 00010110 - поскольку число положительное, его не нужно менять. в) выполняем сложение Возник перенос в девятый разряд, которого у нас нет (т.е. фактически произошло переполнение регистра). В этом случае перенос нужно осуществить в младший разряд, т.е. сложить результат с единицей и окончательно получим 00000101
Задание 2. а) представим -17₁₀ в дополнительном коде на 8-битном регистре - запишем число 17₁₀ в двоичной системе: 10001₂ - дополним его слева нулями до 8 знаков: 00010001 - поскольку число отрицательное, инвертируем каждый разряд, т.е. заменяем 0 на 1, а 1 на 0: 11101110 - прибавляем единицу в младший разряд: 11101111 б) представим 22 в дополнительном коде на 8-битном регистре - запишем число 22₁₀ в двоичной системе: 10110₂ - дополним его слева нулями до 8 знаков: 00010110 - поскольку число положительное, его не нужно менять. в) выполняем сложение Возник перенос в девятый разряд, которого у нас нет (т.е. фактически произошло переполнение регистра). При суммировании в дополнительном коде переполнение игнорируется, поэтому результат не меняется.
// PascalABC.NET 3.2, сборка 1478 от 10.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('Введите текст, завершив его точкой:'); var p:=Pos('.',s); if (p>0) and (p<s.Length) then s:=s[:p+1]; Writeln('Количество предложений равно ',s.ToWords('!').Count) end.
Пример Введите текст, завершив его точкой: Тест 1!тестовое №2!Тест3.Тест4! Количество предложений равно 3
Если считать, что текст гарантированно завершается точкой, то можно упростить код программы до одного оператора:
begin Writeln('Количество предложений равно ', ReadlnString('Введите текст, завершив его точкой:').ToWords('!').Count) end.
Объяснение:
Program raschet;
Var m,n,S:integer;
Begin
Write('количество порций мороженого ');
Readln(n);
Write('количество плиток шоколада ');
Readln(m);
S:=45*n+66*m;
Write('Итоговая стоимость= ',S);
End.