Я, в основном, программы на С++ пишу, но из школы про Паскаль кое-что помню (в смысле, попытаюсь написать на Паскале).
Program A1;
var a,b,c,i:integer;
begin
write('Enter the a: ');
read(a);
writeln('Enter the b: ');
read(b);
с:=0;
for i:=1 to a Do
c:=c+b;
writeln('a*b=',c:5:0);
end.
Объясняю (начинаю сразу с цикла for): что значит произведение двух натуральных чисел а и b - это означает, сложить b с самим собой по а раз (можно и наоборот). Например, a=5, b=3. Переменную с=0 будем складывать с b.
i=1 c=5+0;
i=2 c=5+5;
i=3 c=10+5; //c=15
Вот и есть ответ: 5*3=15.
Program MyProject;
{$APPTYPE CONSOLE}
var
p:int64;
a:integer;
i:2..10;
begin
a:=1+2;
p:=a;
i:=2;
while i<10 do begin
i:=i+1;
a:=a+i;
p:=p*a;
end;
Write(p)
end.
Var
i, sum, beg:integer;
str:string;
begin
sum:=0;
beg:=1;
readln(str);
for i:=1 to Length(str) do
if str[i]='+' then
begin
sum:=sum+StrToInt(Copy(str, beg, i-beg));
beg:=i+1;
end;
sum:=sum+StrToInt(Copy(str, beg, Length(str)));
writeln(sum);
end.
a) risunok, cherteji; b) tablitza, grafic,shema c) formula;
Рассматриваем однобайтное представление целых чисел. Старший (левый) разряд знаковый, остальные семь хранят число в дополнительном двоичном коде.
У положительного числа в знаковом разряде 0, у отрицательного единица.
Для положительного числа прямой, обратный и дополнительный коды совпадают.
У отрицательного числа в обратном коде все биты, кроме знакового, инвертируются. Для получения дополнительного кoда число в обратном коде арифметически увеличивается на 1.
Чтобы получить для отрицательного числа прямой код, нужно инвертировать все его биты, кроме знакового, а затем арифметически увеличить код на 1.