Задача 1
Программа на языке Паскаль:
var x, y, b: integer;
begin
write ('Input first number: ');
readln (x);
write ('Input second number: ');
readln (y);
writeln ('x = ', x, ', y = ', y);
writeln ('Changing values... changing values...');
b := x;
x := y;
y := b;
writeln ('x = ', x, ', y = ', y);
readln
end.
Задача 2.
Вывести на экран введенные пользователем данные в полях шириной, заданной по умолчанию, и полях шириной, определяемой пользователем.
Программа на языке Паскаль:
var
fname,sname: string;
age: byte;
f,s,a: byte;
begin
write('Name: ');
readln(fname);
write('Surname: ');
readln(sname);
write('Age: ');
readln(age);
writeln(fname:10,sname:20,age:5);
writeln;
write('Fields for name, surname and age: ');
readln(f,s,a);
writeln(fname:f,sname:s,age:a);
end.
Задача 3.
Получить от пользователя данные, обработать их и вывести на экран
Программа на языке Паскаль:
var
a,b,c,d,sum: integer;
mult: longint;
begin
write('Input number a: ');
readln(a);
write('Input number b: ');
readln(b);
sum:= a+b;
writeln('Sum of the numbers ',a,' and ',b,' is ',sum);
writeln;
writeln('Input below numbers c and d: ');
read(c,d);
mult:= c*d;
writeln('The result of multiplying ',c,' and ',d,' is ',mult);
end.
Задача 4.
Вывести на экран действительное число в различных форматах представления.
Программа на языке Паскаль:
var
a: real;
begin
write('Input real number: ');
readln(a);
writeln('Output without formatting: ',a);
writeln('Output in exponential form: ',a:12);
writeln('Output in exponential form: ',a:7);
writeln('Output in fixet-point: ',a:10:3);
writeln('Output in fixet-point: ',a:12:6);
end.
Задача 5.
Допустим, организации часто требуется красить баки цилиндрической формы. При этом они красят только верхнюю часть и стенки с внешней стороны.
Организации требуется программа, которая бы определяла, сколько банок краски необходимо для покраски того или иного бака.
Алгоритм решения задачи:
Программа должна запрашивать у пользователя следующую информацию:
• диаметр бака;
• высота бака;
• расход краски (площадь поверхности, которую можно покрасить одной банкой краски).В результате программа должна выдавать количество требуемых банок. При получении дробного числа округление должно всегда происходить в большую сторону.
Площадь крыши бака (круга) вычисляется по формуле p * d2 /4 (гдеp – число пи, d - диаметр).
Площадь боковой поверхности цилиндра: p * d * h (где h – высота).
Программа на языке Паскаль:
const pi = 3.14;
var
d, h, b: real;
top, wall, q: real;
q_int: integer;
begin
write('Диаметр: ');
readln(d);
write('Высота: ');
readln(h);
write('Окрашиваемая площадь одной банкой: ');
readln(b);
top := pi * sqr(d) / 4.0;
wall := pi * d * h;
q := (top + wall) / b;
q_int := trunc(q) + 1;
write('Количество банок: ', q_int);
readln
end.
428₁₀ = 4*10² + 2*10¹ + 8*10⁰ = 400 + 20 + 8
2376₁₀ = 2*10³ + 3*10² + 7*10¹ + 6*10⁰= 2000 + 300 + 70 + 6
В самой записи числа степени основания системы опускаются, и записываются только множители.
Практически любое число может быть записано в любой системе счисления.
Однако, для систем счисления, в основании которых лежат числа, большие 10, необходимо ввести обозначения для коэффициентов 10; 11; 12; 13 и т.д. Например, в шестнадцатеричной системе счисления в качестве коэффициентов при степени основания системы используются числа от 0 до 15. Для 10 вводится обозначение А, для 11 - В, для 12 - С и т.д.
Число 332 в шестнадцатеричной системе счисления будет выглядеть так :
332₁₀ = 1*16² + 4*16¹ + 12*16⁰ = 14С₁₆
Двоичная система счисления имеет в своем основании число 2, и все числа представляются в виде суммы последовательно убывающих степеней числа 2 с множителями 0 и 1.
Например,
332₁₀ = 1*2⁸ + 0*2⁷ + 1*2⁶ + 0*2⁵ + 0*2⁴ + 1*2³ + 1*2² + 0*2¹ + 0*2⁰ =
= 101001100₂
Таким образом, для перевода числа из десятичной системы счисления в двоичную необходимо взять ближайшую к данному числу степень двойки:
2⁰ = 1
2¹ = 2
2² = 4
2³ = 8
2⁴ = 16
2⁵ = 32
2⁶ = 64
2⁷ = 128
2⁸ = 256 и т.д.
Допустим, нам нужно перевести число 82 в двоичную запись.
Ближайшая степень двойки - 2⁶ = 64
Поэтому пишем:
82₁₀ = 1*2⁶ + ...
Так как 82 - 64 = 18, то пятой степени двойки в записи нет
(2⁵ = 32, а у нас только 18). Поэтому дальше пишем 0*2⁵
82₁₀ = 1*2⁶ + 0*2⁵ + ...
Следующая степень двойки - 2⁴ = 16. Пишем далее 1*2⁴
82₁₀ = 1*2⁶ + 0*2⁵ + 1*2⁴ + ...
У нас осталось 2. Это 2¹ = 2, поэтому ни 2³ = 8, ни 2² = 4 в записи нет.
82₁₀ = 1*2⁶ + 0*2⁵ + 1*2⁴ + 0*2³ + 0*2² + 1*2¹ + ...
Число составлено:
82 = 64 + 0 + 16 + 0 + 0 + 2 = 82
Однако, осталась последняя степень двойки, - нулевая, которую в записи числа необходимо отобразить: 0*2⁰
82₁₀ = 1*2⁶ + 0*2⁵ + 1*2⁴ + 0*2³ + 0*2² + 1*2¹ + 0*2⁰
Теперь записываем в ряд множители, стоящие перед степенями двойки:
82₁₀ = 1010010₂
Это и есть число 82, записанное в двоичной системе счисления.
Есть другой перевода числа из десятичной записи в двоичную Для этого его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке:
82 : 2 = 41 : 2 = 20 : 2 = 10 : 2 = 5 : 2 = 2 : 2 = 1
82 40 20 10 4 2
--- ---
0 1 0 0 1 0
Теперь записываем результат и остатки в обратном порядке:
82₁₀ = 1010010₂
PS. Все перечисленные системы счисления являются позиционными, в отличие от непозиционной (например, римской системы счисления). То есть от положения цифры в записи числа зависит величина, которую эта цифра обозначает: в числе 10 единица обозначает количество десятков, а в числе 1000 та же единица обозначает количество тысяч.
// Внимание! Если программа не работает, обновите версию!
uses NumLibABC;
begin
var (num,denom):=ReadInteger2('Числитель и знаменатель 1-й дроби:');
var f1:=Frc(num,denom);
(num,denom):=ReadInteger2('Числитель и знаменатель 2-й дроби:');
var f2:=Frc(num,denom);
f1.Print; Write('* '); f2.Print; Write('= '); (f1*f2).Print
end.
Примеры
Числитель и знаменатель 1-й дроби: 4 9
Числитель и знаменатель 2-й дроби: 3 8
4/9 * 3/8 = 1/6
Числитель и знаменатель 1-й дроби: 32432424 10213133
Числитель и знаменатель 2-й дроби: 23123 12313123
32432424/10213133 * 23123/12313123 = 749934940152/125755562844359
Числитель и знаменатель 1-й дроби: 15 2
Числитель и знаменатель 2-й дроби: 8 15
15/2 * 8/15 = 4