Вот калькулятор, с выводом в конце программы всех введённых пользователем действий и чисел var a: integer; b,c: real; begin writeln('введите действие. 1 - сложение; 2 - вычитание; 3 - умножение; 4 - деление; 5 - корень квадратный; 0 - выход'); readln(a); while a < > 0 do begin
if a = 1 then begin writeln('выбрано сложение'); writeln('введите первое слагаемое'); readln(b); writeln('введите второе слагаемое'); readln(c); writeln('результат: ',b+c); end; if a = 2 then begin writeln('выбрано вычитание'); writeln('введите уменьшаемое'); readln(b);
writeln('введите вычитатель'); readln(c); writeln('результат: ',b-c); end; if a = 3 then begin writeln('выбрано умножение'); writeln('введите первый множитель'); readln(b); writeln('введите второй множитель'); readln(c); writeln('результат: ',b*c); end; if a = 4 then begin
writeln('выбрано деление'); writeln('введите делимое'); readln(b); writeln('введите делитель'); readln(c); if c = 0 then writeln ('делитель не должен быть равен нулю')else writeln('результат: ',b/c); end; if a = 5 then begin writeln('выбран квадратный корень'); writeln('введите
подкоренное выражение'); readln(b); if b < 0 then writeln ('подкоренное выражение должно быть неотрицательным')else writeln ('результат: ',sqrt(b)); end; writeln('введите действие. 1 - сложение; 2 - вычитание; 3 - умножение; 4 - деление; 5 - корень квадратный; 0 - выход'); readln(a);
end; end.
n, a, b, c, d, s, p: integer;
begin
Write('Введите натуральное четырехзначное число: ');
Readln(n);
if (n > 9999) or (n < 1000) then Writeln('Число должно быть четырехзначным')
else begin
a := n div 1000; d := n mod 10; n := (n div 10) mod 100;
b := n div 10; c := n mod 10;
s := a + b + c + d;
p := a * b * c * d;
Writeln('Сумма цифр равна ', s, ', а их произведение равно ', p)
end
end.
Тестовое решение:
Введите натуральное четырехзначное число: 2345
Сумма цифр равна 14, а их произведение равно 120
var
a, b: integer;
procedure proc(var a: integer; b: integer);
begin
b := 4; a := 6; b := a + b
end;
begin
a := 2; b := 3;
proc(a, b);
Writeln(a, ' ', b)
end.
Описаны две целочисленные переменные a и b. Им присваиваются значения 2 и 3 соответственно. Затем следует вызов процедуры proc, в которую эти переменные передаются в качестве параметров.
На входе в proc получаем a=2, b=3. Далее b получает значение 4, а получает значение 6 и затем b получает значение суммы a+b, т.е. 4+6=10. На этом работа процедуры завершается. Поскольку параметр процедуры a имеет описатель var, то в основную программу вернется значение, которое a имело внутри процедуры (т.е. 6). Значение b=10 действует только внутри процедуры и в основную программу не вернется.
Следовательно, в основной программа значение а поменяется на 6, а значение b сохранится прежним (3).
В результате на выходе будет строка:
6 3