Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОАиП часть 1. Контрольная работа №2. Вариант 16

.doc
Скачиваний:
15
Добавлен:
01.04.2014
Размер:
75.78 Кб
Скачать

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет заочного, вечернего и дистанционного обучения

Специальность: программное обеспечение

информационных технологий

КОНТРОЛЬНАЯ РАБОТА

ПО ОСНОВАМ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ № 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.