ОАиП часть 1. Контрольная работа №2. Вариант 16
.docУЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Факультет заочного, вечернего и дистанционного обучения
Специальность: программное обеспечение
информационных технологий
КОНТРОЛЬНАЯ РАБОТА
ПО ОСНОВАМ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ № 2
Вариант № 16
Контрольная работа № 2.
Вариант № 16.
Тема задания. Для заданного преподавателем варианта составить алгоритм решения задачи, нарисовать алгоритм, используя диаграмму Насси-Шнейдермана. Написать программу на языке Паскаль. Программа должна быть откомментированной в соответствии с принятыми правилами. Предусмотреть простейший вывод на экран входных и выходных данных.
16. Ввести значение R и координаты М точек (Xi1, Xi2) на плоскости. Определить сколько точек попадают в круг радиуса R c центром в начале координат.
Алгоритм с использованием диаграммы Насси-Шнейдермана
I – порядковый номер точки
M – общее количество точек
R – радиус круга
S – количество точек, принадлежащих кругу
Ввод координат точки O (0, 0) |
|||
Ввод величины радиуса R |
|||
Ввод M (количества точек) |
|||
I := 0 |
|||
S := 0 |
|||
I ≤ N |
|||
|
Ввод координат точек (Xi1, Xi2) |
||
I := I + 1 |
|||
OXi := |
|||
OXi ≤ R да нет |
|||
S := S + 1 |
|
||
|
|||
|
|
||
Вывод S |
program Radius;
(*программа вычисляет количество точек, попадающих в круг радиусом R c центром в начале координат*)
uses crt; (*подключение стандартного модуля*)
var
rad:real;
m, s, i, j:integer;
mas:array[1..100,1..2] of integer;
begin
clrscr; (*очистка экрана*)
writeln('Vvedite radius');
write('Radius = ');
readln(rad); (*ввод радиуса*)
writeln('Vvedite kolichestvo');
write('Kolichestvo tochek = ');
readln(m); (*ввод кол-ва точек*)
writeln('Vvedite koordinaty tochek');
for i:=1 to m do (*ввод координат точек*)
begin
writeln('X',i,' :');
for j:=1 to 2 do
begin
if j=1 then
begin
write('x = ');
readln(mas[i,j]);
end
else
begin
write('y = ');
readln(mas[i,j]);
end;
end;
end;
s:=0;
for i:=1 to m do
begin
if rad>=sqrt(mas[i,1]*mas[i,1]+mas[i,2]*mas[i,2]) then (*проверка на входимость точки в круг*)
s:=s+1; (*если точка входит в круг,
то увеличиваем сумму на 1*)
end;
write('Kolichestvo tochek = ',s); (*вывод суммы*)
readkey;
end.