1. Ввести первое число.
2. Пока нет признака конца последовательности выполнять
2.1. Положить число простое
2.2. Для делителя от 2 до ]число/2[ выполнять
если число делится на делитель, то
а) вывести делитель и
б) изменить предположение – «не простое».
2.3. Если число простое, то вывести: "простое число"
2.4. Прочитать следующее число.
3. Закончить.
Программа для этого алгоритма будет иметь вид
Program Dividers;
Const
d=2;
Var
Num, Del,P : Integer;
Begin
Writeln ('Введите число'); { п.1 }
Readln(Num);
{ п.2 }
While Num <>0 Do
Begin
P := 0; { п.2.1 – число простое }
For Del := d To Num Div d Do
Begin
If Num Mod Del=0 Then
Begin
Write(Del);
P := 1; { число не простое }
End;
End;
If P=0 Then{ п.2.3 }
Writeln('Число ',Num,' - простое');
Writeln('Введите число'); { п.2.4 }
Read(Num);
End;
End.
В программе использован оператор While, так как уже первое число может быть нулем и цикл выполнять не нужно.
Сведем основные операторы языка Паскаль и описатели данных в табл. 2 и 3 соответственно.
Основные операторы языка Паскаль Таблица 2
| Название
| Общий вид
| Действие
| Пример записи
|
| 1. Присваивания
| Переменная = выражение;
| Значение выражения записывается на место переменной
| X:= 0;
Y:=A/B+C*D;
|
| 2. Ввода
| Read(список);
Readln(список);
| Перепись данных с устройства ввода в ОП. Readln – переход на новую строку
| Read (X,Y,A);
|
| 3. Вывода
| Write(список);
Writeln(список);
| Перепись данных из ОП на устройство вывода. Writeln - переход на новую строку
| Write ('X=',X:8:5.);
|
| 4. Условный
| If Условие Then
Оператор1
Else
Оператор2;
| Ветвление (выполнение оператора1 или оператора2)
| If X>0 Then
Y := Sqrt(X)
Else
Y :=Sqr(X);
|
| 5. Выбора
| Case Выражение Of
Значение1 : Оператор1;
. . . . . .
ЗначениеN : ОператорN;
End;
| Ветвление по N направленям
| Case Month Of
3..5 : Writeln(' Весна');
6..8 : Writeln(' Лето');
End;
|
| 6. Цикла со счечиком (For)
| For Пар.:= Н.З. To К.З. Do
Оператор 1;
For Пар.:= Н.З.Downto К.З. Do
Оператор 1;
| Выполнение оператора1 n раз:
n = кон.знач. – нач.знач.+1
Выполнение оператора1 n раз:
n = нач.знач. – кон.знач.+1
| S := 0;
For I := 1 To 20 Do
S := S+I;
|
| 7. Цикла с постусловием
| Repeat
Операторы
Until Условие;
| Выполнение операторов пока условие "ложно". Выполняется не менее 1 раза.
| Num:= 1;
Repeat
Num := Num*2;
Until Num>1000;
|
| 8. Цикла с предусловием
| While Условие Do
Оператор1;
| Выполнение оператора 1 пока условие "истинно".
| Num := 1;
While Num<1000 Do
Num := Num*2;
|
| 9. Заголовок программы
| Program Имя;
| Начало программы
| Program Pr1;
|
| 10. Начало блока операторов
| Begin
| Обозначение начала блока
| Begin
|
| 11. Конец блока, программы
| End;
End.
| Обозначение конца блока или программы
| End;
End.
|
Таблица 3.