Пример 6. Составьте блок-схему (рис. 8.7) и напишите программу
решения следующей задачи: дан массив целых чисел. Составьте
новый массив из простых чисел старого массива.
Решение. Как обычно разобьем решение задачи на следующие
подзадачи:
1. Ввод элементов массива с использованием функции
случайных чисел.
2. Вывод элементов массива на экран в строку.
3. Создание нового массива.
Для каждой части задачи создадим процедуру пользователя.
Ввод и вывод элементов массива встречается в каждой задаче
с небольшими изменениями, поэтому в этой задаче блок-схемы для
этих частей не приводятся.
Разберем третью часть задачи.
Сначала отметим, что в исходном массиве не все числа будут
простыми. Если в исходном массиве n элементов, то в новом
массиве элементов будет m <= n. Значит индексы элементов в
новом массиве будут изменяться по-другому, не так, как в старом
массиве. Чтобы создать новый массив, необходимо просмотреть все
элементы старого массива, то есть организовать цикл For i := 1 to n
do Begin … End; a[i] – это элемент старого массива стоящий на i-ом
месте. Нужно определить, является ли этот элемент простым
числом.
Число является простым, если оно имеет только два делителя:
1 и само это число. Чтобы определить, является ли число простым,
напишем специальную подпрограмму. В цикле, приведенном выше,
каждое число a[i] будем отправлять в подпрограмму и из
подпрограммы будем получать ответ, простое это число или нет.
Если число простое, то его нужно отправить в новый массив.
Пусть индексы элементов нового массива будут j. Тогда перед
циклом по I необходимо присвоить j := 0. Как только из
подпрограммы придет сообщение, что число a[i] простое, индекс
j := j + 1 и b[j] := a[i]. Таким образом составится новый массив, в
котором будет j элементов. Массив необходимо вывести на экран,
используя ту же процедуру вывода, что и для старого массива.
128
а)
Do'stlaringiz bilan baham: |