Ответы на тему Запись вспомогательных алгоритмов на языке Паскаль


Учебник по Информатике 9 класс Босова

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.

Презентация: http://metodist.lbz.ru/authors/informatika/3/files/eor9/presentations/9-2-4.ppt


2. Для чего нужна подпрограмма?

Подпрограмма нужно для записи вспомогательных алгоритмов в языках программирования.


3. В чем основное отличие процедур и функций?

В процедурах на выходе ничего не возвращает, а функция возвращает результат своей работы.


4. Напишите программу наименьшего общего кратного следующих четырех чисел: 36, 54, 18 и 15, используя процедуру вычисления наибольшего общего делителя двух чисел.

В разработке...


5. Напишите программу перестановки значений переменных в порядке возрастания. Используйте процедуру swap.

program z5;
procedure swap (var x,y: integer);
var m: integer;
begin
m:=x;
x:=y;
y:=m
end;

var a, b, c: integer;
BEGIN
Writeln('Введите значения a, b, c');
Readln(a, b, c);
if a>b then swap (a, b);
if a>c then swap (a, c);
if b>c then swap (b, c);

writeln (a, ' ', b, ' ', c);
END.


6. Видоизмените программу сортировки массива выбором так, чтобы в ней использовалась процедура выбора наибольшего элемента массива.

program z6;
var A:array[1..10] of integer;
i, k, max: integer;

BEGIN //Случайным образом присвоим значения элементам массива и выведем его на экран
for i:=1 to 10 do A[i]:=random(50);
write ('Массив: ');
for i:=1 to 10 do write(A[i], ' ');

//Здесь будем сравнивать значения из массива и найдем максимальное
max:=A[1];
for i:=2 to 10 do
if A[i]>max then max:=A[i];
writeln;
writeln ('Наибольшее значение в массиве:', max);
END.


7. Напишите программу вычисления выражения с факториалами.

program z7;
var res, i, n:integer;
function fac(n:integer): integer;
var p, i: integer;
begin
p:=1;
for i:=2 to n do
p:=p*i;
fac:=p;
end;

BEGIN
res:=0;
write ('Введите n ');
readln (n);
for i:=1 to n do res := res + fac(i);
writeln ('Сумма факториалов равна ', res);
END.


8. Напишите программу вычисления выражения:
s = x^3 + x^5 + x^n, где x и n вводятся с клавиатуры вручную. Используйте подпрограмму вычисления степени.

program z8;
var n, n1, x, r, res, i: integer; //В программе у нас будут только целые числа, i - счетчик

//Процедура вычисления степени
procedure stepen (var a,b: integer; var z: integer);
var i:integer;
begin
z:=1;
for i:=1 to b do z:=z*a;
end;

BEGIN
res := 0;
write ('Введите n = ');
readln (n);
write ('Введите x = ');
readln (x);

for i:=1 to n do begin //Цикл, где вычисляется x в степени от 1 до n b полученный результат добавляется в res, который изначально равен 0
stepen (x, i, r); //Процедура
res := res + r;
end;

writeln ('Результат: ', res); //Вывод на экран полученный результат
END.


9. Напишите функцию, которая вычисляет длину отрезка по координатам его концов. С помощью этой функции напишите программу, вычисляющую периметр треугольника по координатам его вершин.

Комментарий к ответу: В функции мы используем формулу вычисления длины отрезка по ее координатам: квадратный корень из суммы (x2-x1)^2 и (y2-y1)^2. В программе вначале вводим координаты точек вершин треугольника, затем ищем длину каждого отрезка с помощью функции dlina. Находим периметр P, сложив три полученных результата и выводим его округлив до сотых. Программа содержит вычисление корня, поэтому мы использовали вещественный тип данных.

program z9;
var x1, x2, x3, y1, y2, y3, P, AB, BC, AC: real;

//Функция вычисления длины отрезка
function dlina (var x1,y1,x2,y2: real): real;
begin
dlina:=sqrt(sqr(x2-x1) + sqr(y2-y1));
end;

BEGIN
writeln('Приветствую, введите координаты вершин треугольника.');
write('x1 = '); read(x1);
write('y1 = '); read (y1);
write('x2 = '); read(x2);
write('y2 = '); read (y2);
write('x3 = '); read(x3);
write('y3 = '); read (y3);
Writeln ('Координаты: A[', x1, ';', y1, ']; B[', x2, ';', y2, ']; C[', x3, ';', y3, '];');
AB := dlina(x1, y1, x2, y2);
BC:= dlina(x2,y2,x3,y3);
AC:= dlina(x1,y1,x3,y3);
P:=AB+BC+AC;
Writeln ('Периметр равен ', P:0:2);
END.


10. Напишите функцию, вычисляющую площадь треугольника по целочисленным координатам его вершин. С помощью этой функции вычислите площадь четырехугольника по координатам его вершин.

В разработке...