Лабораторная работа № 9. Процедуры в языке Pascal Вариант №9
Описание работы
Работа пользователя И. Нестеров
I. Дана программа, решающая определенную задачу.
Проделать следующую работу: исполнить алгоритм при 2-3 наборах данных. Записать исходные данные, промежуточные данные и результат работы для каждого из выбранных наборов значений величин. Сформулировать условие задачи, которую решает данная программа. Указать, какую (ие) подзадачу (и) решает (ют) процедура (ы) в программе.
Примечание. При формулировании условия задачи в качестве образцов формулировки взять те задачи, которые вы решаете. В частности, из условия однозначно должно быть понятно, что дано и что требуется получить.
procedure pr(n: integer; var p, k: integer);
begin
p := 1;
k := 0;
while n <> 0 do
begin
if n mod 2 = 1
then
begin
if n mod 10 < 5 then p := p * (n mod 10);
k := k + 1
end;
n := n div 10
end;
end;
var
n, p, kol: integer;
begin
write('n? ');readln(n);
pr(n, p, kol);
writeln('Произведение ', p);
writeln('Количество ', kol)
end.
Задание 2. Дана программа, содержащая синтаксические и алгоритмические ошибки и/или пропуски. Указать строки, содержащие эти ошибки и их содержание. Исправить их. Если есть пропуски, заполнить их. Представить правильный вариант программы.
Вычислить сумму квадратов элементов набора данных, полученных случайным образом.
procedure solution(n: byte; var __: integer);
var
i: byte;
a: integer;
begin
s := 1;
for i := 1 to n do
begin
a := -10 + random(21);
write(a:5);
s:=s+sqrt(a)
end;
writeln
end;
var
n: byte;
p: integer;
begin
randomize;
write('n? ');
readln(n);
solution(n, p);
writeln(___)
end.
Задание 3. Решить задачу с использованием процедур. Указать выделенные подзадачи, решаемые процедурами.
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
an=3^n*n!/(2n)!
Задание 4. Решить задачу с использованием процедур. Указать выделенные подзадачи, решаемые процедурами.
На отрезке [2; n] найти все натуральные числа, сумма цифр которых при умножении числа на a не изменится.
Проделать следующую работу: исполнить алгоритм при 2-3 наборах данных. Записать исходные данные, промежуточные данные и результат работы для каждого из выбранных наборов значений величин. Сформулировать условие задачи, которую решает данная программа. Указать, какую (ие) подзадачу (и) решает (ют) процедура (ы) в программе.
Примечание. При формулировании условия задачи в качестве образцов формулировки взять те задачи, которые вы решаете. В частности, из условия однозначно должно быть понятно, что дано и что требуется получить.
procedure pr(n: integer; var p, k: integer);
begin
p := 1;
k := 0;
while n <> 0 do
begin
if n mod 2 = 1
then
begin
if n mod 10 < 5 then p := p * (n mod 10);
k := k + 1
end;
n := n div 10
end;
end;
var
n, p, kol: integer;
begin
write('n? ');readln(n);
pr(n, p, kol);
writeln('Произведение ', p);
writeln('Количество ', kol)
end.
Задание 2. Дана программа, содержащая синтаксические и алгоритмические ошибки и/или пропуски. Указать строки, содержащие эти ошибки и их содержание. Исправить их. Если есть пропуски, заполнить их. Представить правильный вариант программы.
Вычислить сумму квадратов элементов набора данных, полученных случайным образом.
procedure solution(n: byte; var __: integer);
var
i: byte;
a: integer;
begin
s := 1;
for i := 1 to n do
begin
a := -10 + random(21);
write(a:5);
s:=s+sqrt(a)
end;
writeln
end;
var
n: byte;
p: integer;
begin
randomize;
write('n? ');
readln(n);
solution(n, p);
writeln(___)
end.
Задание 3. Решить задачу с использованием процедур. Указать выделенные подзадачи, решаемые процедурами.
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
an=3^n*n!/(2n)!
Задание 4. Решить задачу с использованием процедур. Указать выделенные подзадачи, решаемые процедурами.
На отрезке [2; n] найти все натуральные числа, сумма цифр которых при умножении числа на a не изменится.