КР1 В6
.pdfБЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет ФНиДО Специальность ПОИТ
Контрольная работа № 1 по дисциплине «Основы алгоритмизации и программирования»
часть 1 Вариант № 6
Выполнил студент: Ковалевский В. В.
Минск 2012
1). Задача.
Для целого числа М найти все простые множители в порядке их возрастания. Одинаковые множители выводить столько раз, сколько они встречаются. (Целое число Х является простым, если оно делится нацело только на единицу и само на себя).
2). На рисунках 1, 2, 3 приведены три способа графического представления алгоритма
Начало
Программа выводит простые множители в порядке возрастания
K=0
I=2
Ввод m
I<=m-1
|
N=m |
|
N mod |
|
|
i = 0 |
|
|
|
K=k+1 |
|
|
N=n div i |
|
K=0 |
i |
|
M<>1 |
||
|
||
|
m |
Конец
Рис.1 Блок-схема по ГОСТ 19.701-90
Начало
Программа выводит простые множители в порядке возрастания
Поиск
чисел
Конец
K=0
I=2
Ввод m
While
I<=m-1
K=0
M<>1
N=m
While N mod i = 0
I=i+1
Вывод m
K=k+1 n= n div i
i
Рис.2 Блок-схема по методу Данке
Программа выводит простые |
||
множители в порядке возрастания |
||
K=0 |
i=2 |
ввод m |
|
I<=m-1 |
|
|
|
N=m |
|
|
N mod i = 0 |
|
|
K = k+1 |
|
|
N = n div i |
|
|
Вывод i |
K=0 |
|
|
M<>1 |
|
|
Нет |
|
Да |
- |
|
Вывод m |
Рис.3 Диаграмма Насси-Шнейдермана |
3). Листинг программы на языке Паскаль
Program Vladislav_Kovalevski_K1_V6; var
i,m,n,k:integer; begin
Write('Vvedite M = '); Readln (m); {Ввод числа м} k:=0;
i:=2;
write ('1 '); {Выводим число 1 -простой множитель} while i <= (m-1) do {Цикл перебирает числа от 2 до m-1}
Begin {и определяет, являются ли они простыми множителями} n:=m;
while n mod i =0 do begin
k:=k+1; n:=n div i; write (i,' ');
end;
i:=i+1;
end;
If (k=0) and (m<>1) then write(m); {если само число простое} readln;
end.