Автоматизация Теория автоматизации Системы автоматизации Механизм автоматизации Проектирование автоматизации Использование автоматизация Управление автоматизацией Автоматизация - САПР Автоматизация - практика Автоматизация - софт |
|
Двумерный массив - это структура однотипных элементов, расположенных в виде таблицы значений. Такое представление значений соответствует математическому понятию двумерный массив. Каждый элемент в двумерном массиве идентифицируется номером строки и номером столбца, на пересечении которых он расположен. Например, в двумерном массиве А, изображенном на рис. 34, элемент со значением 5 расположен на пересечении третьей строки и второго столбца. Этот элемент будет обозначаться как А(3,2). А элемент А(1,4) имеет значение , равное нулю. Такое представление набора значений позволяет выполнять обработку как отдельных значений в двумерном массиве, так и последовательности значений, расположенных в строках или столбцах.![]() |
![]() |
![]() |
![]() |
для определения элементов выше главной диагонали достаточно использовать условие I
Данный алгоритм содержит два вложенных цикла, каждый из которых относится к циклу с постусловием. ![]() |
переменной К, которая называется счетчиком элементов массива А (рис.16), эта же переменная К определяет количество итераций циклического алгоритма ввода элементов массива. На каждом шаге итерации переменная К(значение номера элемента массива А) изменяется на 1, то есть происходит переход к новому элементу массива.В дальнейшем, при рассмотрении алгоритмов обработки одномерных массивов в целях устранения дублирования алгоритм ввода элементов массива будем заменять одним блоком, подразумевая, что он реализуется по схеме, циклического алгоритма, представленного на ри- сунке 16.
Пример 9. Составить алгоритм определения в одномерном числовом массиве А из N элементов суммы положительных элементов.![]() |
![]() |
![]() |
![]() |
|
Номер элемента массива К |
Значение элемента А (К) |
Номер максимального М |
Значение максимальнго А(М) |
Проверка А(К)>А(М) |
||
|
1 |
3 |
1 |
3 |
Нет |
||
|
2 |
7 |
1 |
2 |
3 |
7 |
да |
|
3 |
0 |
2 |
7 |
нет |
||
|
4 |
9 |
2 |
4 |
7 |
9 |
да |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||
![]() |
|||
![]() |
|
К |
Входной массив А(К) |
M |
М=2 |
Р |
S |
A(P) А(6) |
Q |
А(S) А(3) |
Выходной массив А(К) |
|
|
1 |
5 |
0 |
Нет |
1 |
0 |
0 |
4 |
1 |
5 |
|
|
2 |
0 |
1 |
Нет |
4 |
0 |
4 |
2 |
0 |
||
|
3 |
4 |
3 |
4 |
0 |
0 |
3 |
0 |
|||
|
4 |
-3 |
4 |
-3 |
|||||||
|
5 |
-7 |
5 |
-7 |
|||||||
|
6 |
0 |
2 |
Да |
6 |
6 |
4 |
||||
|
7 |
-2 |
7 |
-2 |
|||||||
|
8 |
-4 |
8 |
-4 |
|||||||
|
9 |
0 |
3 |
Нет |
9 |
0 |
![]() |
![]() |
| К | А(К) | К=N | А(К)=" " | М>МАХ | М | МАХ | S | НОВОЕ S | |||||||||
| 1 | Д | Нет | Нет | 1 | 0 | 1 | 1 | ||||||||||
| 2 | у | Нет | Нет | 2 | |||||||||||||
| 3 | л | Нет | Нет | 3 | |||||||||||||
| 4 | " " | Нет | ДА | Да | 0 | 3 | 3 | 4 | |||||||||
| 5 | т | Нет | Нет | 1 | |||||||||||||
| 6 | е | Нет | Нет | 2 | |||||||||||||
| 7 | п | Нет | Нет | 3 | |||||||||||||
| 8 | л | Нет | Нет | 4 | |||||||||||||
| 9 | ы | Нет | Нет | 5 | |||||||||||||
| 10 | й | Нет | Нет | 6 | |||||||||||||
| 11 | " " | Нет | ДА | Да | 0 | 6 | 10 | 11 | |||||||||
| 12 | в | Нет | Нет | 1 | |||||||||||||
| 13 | е | Нет | Нет | 2 | |||||||||||||
| 14 | т | Нет | Нет | 3 | |||||||||||||
| 15 | е | Нет | Нет | 4 | |||||||||||||
| 16 | р | Да | Нет | Нет | 5 |
![]() |
![]() |
![]() |
![]() |
|||||
![]() |
![]() |
||||

|
Имя поля: Город |
Имя поля: Количество жителей |
|
Тип поля: Строка символов |
Тип поля: Число |
|
Значение: Москва |
Значение: 8 578 676 |
![]() |
![]() |
| а) Цикл с постусловием б) Цикл с предусловием Рис. 10. Виды циклических алгоритмов Классическим примером циклического алгоритма служит алгоритм для вычисления степени числа Y=X? . Этот алгоритм может быть реализован на основе операции умножения. Табличное представление такого алгоритма, отражающего зависимость У от Х при изменении показателя степени n от 1 до 3, представлено в табл.3. В этой таблице показанны также реккурентные соотношения между У и Х, определяющие как на каждом шаге зависит значение У от значения Х и от значения У, вычисленного на предыдущем шаге. Таблица 3.Реккурентные соотношения при вычислении Y=X? |
||||||
|
n |
Y |
Реккурентные соотношения |
||||
|
|
||||||
|
1 |
Y[1]=X |
Y=X |
||||
|
2 |
Y[2]=X*X или Y[2]=Y[1]*X |
Y=X*X или Y=Y*X |
||||
|
3 |
Y[3]=X*X*X или Y[3]=Y[2]*X |
Y=X*X*X или Y=Y*X |
||||
Пример 5. Пусть требуется составить алгоритм вычисления суммы ряда S=x+x^2+x^3+…+x^n. Решение. Исходные данные для алгоритма это переменные x и n. На каждом шаге будем вычислять очередной член суммы Y и прибавлять его к предыдущему значению суммы S.Для этого используем реккурентную формулу вычисления степени Х (см. таблицу 3) Y=Y*Х, тогда сумма ряда на каждом шаге итерации будет вычисляться по формуле S=S+Y. Количество итераций K изменяется от 1 до n и равно количеству членов ряда. Начальное значение суммы ряда S равно 0. На рис. 12 представлен циклический алгоритм с предусловием для вычисления заданной суммы ряда. Пример 6. Требуется составить алгоритм получения на отрезке [-15,15] множества значений функции Y= SIN(X) в виде таблицы значений (X,Y) при изменении аргумента Х по формуле X[k]=X[k-1]+h, где h=1,5. Решение. Такие задачи относят к задачам табулирования функций. Из
|
||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Фрагменты блок-схем алгоритмов | Назначение | Соответствующие фрагменты программ на языке Паскаль | ||||||||||||
![]() | Начало и конец алгоритма | Begin End | ||||||||||||
| Блок обработки, в нем вычисляются новые значения или производится вызов подпрограммы. | X: =A+B | ||||||||||||
![]() x "> | Ввод исходных данных или вывод результатов. | Read (x, y) Write (x, y) | ||||||||||||
![]() ![]()
![]() ![]()
_ _ + | Ветвление полное. Если значение переменной a больше b, то выполняется x=a , иначе x=b. | If a>b then X: =a else X:=b | ||||||||||||
![]() ![]() ![]()
_ _ _ + | Ветвление неполное. Если значение переменной a больше b, то выполняется x=a. | If a>b then x:=a | ||||||||||||
![]() ![]()
![]() ![]() ![]()
![]()
![]() _ + + | Цикл с предусловием. Пока значение условия i<6 истино выполняется тело цикла, то есть действия К=К+1 и i=i+2. Переменная i определяет количество повторений и называется счетчиком цикла. | i: =1; While i<6 do Begin K: =K+1; i: =i+2; End; Write(K); | ||||||||||||
![]() ![]() ![]() ![]()
![]() - + _ + | Цикл с постусловием. Пока значение условия i>6 ложно выполняется тело цикла, то есть действия К=К+1 и i=i+0,1.Переменная i определяет количество повторений в цикле и называется счетчиком цикла. |
i: =1; Repeat K: =K+1; i: =I+0.1; Until I>6; Write(K); |
||||||||||||
![]() ![]() ![]()
![]() ![]() ![]()
+ |
Цикл с постоянным приращением счетчика. В этом цикле изменение счетчика цикла i происходит только на единицу. Пока значение счетчика цикла меньше или равно 6 Выполняется тело цикла, то есть действия K=K+S и i=i+1. |
For i: =1 to 6 do K: =K+S; Write(K); |



![]() |




|
|



А = 1; С = 0![]() |
| Автор | Серия |
Разветвленные алгоритмыРазветвленные алгоритмы в своем составе содержат блок условия и различные конструкции ветвления. Ветвление - это структура, обеспечивающая выбор между альтернативами.
а) ветвление б)неполное ветвление в) многоальтернативный выбор Рис. 4. Структуры ветвления Каждая управляющая структура ветвления имеет один вход и один выход. Ветвления содержат блок условия, в котором записывают логические условия, такие как А >С , X<= Y. В зависимости от значений переменных А,С в управляющей структуре ветвления на рис. 4 а) условие А >С принимает значение "истина" или "ложь" и процесс вычислений включает блок действия Z=A или Z=C. Аналогично происходит и в управляющей структуре неполного ветвления (рис. 4 б)). Только в этом случае , если условие X<= Y истинно, то выполняется действие С=Х, в противном случае никаких действий не выполняется. В управляющей структуре многоальтернативный выбор в блоке условия записывается переменная, в данном случае Х, которая может принимать различные значения (рис. 4в)). Если значение пременной Х совпадет с одним из значений в блоке действия, то выполняется действия , записанные в этом блоке. Например, если Х=1, то выполнится действие У=1. Если значение Х не совпало ни с одним из значений, указанных в блоках справа, то выполняется действие в блоке слева, которого также как и в неполном ветвлении может и не быть. Пример 2.Составить алгоритм нахождения минимального значения из 3-х чисел. Решение. Для определения минимального значения будем использовать проверку пары значений. Визуальные разветвленные алгоритмы приведены на рис.5,6,7. Эти алгоритмы использует для обозначения чисел переменные значения А,В,С и вложенные структуры ветвления.
Рис. 5. Поиск минимального значения из трех чисел A,B,C при помощи двойного сравнения.
Метод последовательного сравнения . Пример 3. Составить алгоритм определения находится ли точка М с координатами Х,У на окружности радиуса R. Решение. Визуальный алгоритм приведен на рис. 8.Для решения в нем используется математическая модель в виде формулы окружности R2 = X2+Y2.
числа из трёх А,В,С. Метод ся ли точка М с координа- сравнения с промежуточной ми Х,У на окружности переменной М. радиуса R. Пример 4. Составить алгоритм определения корней уравнения (X2+B*X+C=0). Решение. При составления этого алгоритма надо рассмотреть случаи, когда уравнение не имеет корней и когда имеется только один корень.Обозначим корни уравнения через переменные Х1,Х2. D - промежуточная переменная для вычисления дискриминанта. Алгоритм вычисления корней уравнения заданного вида приведен на рис. 9.
Словарь основных понятий и терминовАлгоритм – это точно определенная последовательность действий для некоторого исполнителя, выполняемых по строго определенным правилам и приводящих через некоторое количество шагов к решению задачи. Алгоритмизация - процесс составления алгоритмов решения задачи. Альтернатива - это нелинейная управляющая конструкция, не содержащая итерацию. Она предназначена для описания различных процессов обработки информации, выбор которых зависит от значений входных данных. Ветвление - это структура, обеспечивающая выбор между альтернативами. Визуальные алгоритмы - это алгоритмы, представленные графическими средствами, получили название Двумерный массив - это структура однотипных элементов, расположенных в виде таблицы значений. Такое представление значений соответствует математическому понятию двумерный массив. Каждый элемент в двумерном массиве идентифицируется номером строки и номером столбца, на пересечении которых он расположен. Исполнитель алгоритмов определяет элементарные действия, из которых формируется алгоритм. Итерация - это циклическая управляющая структура, которая содержит композицию и ветвление. Она предназначена для организации повторяющихся процессов обработки последовательности значений данных. Композиция (следование) - это линейная управляющая конструкция, не содержащая альтернативу и итерацию. Она предназначена для описания единственного процесса обработки информации. Линейные алгоритмы - алгоритмы,несодержащие блока условия. Они предназначены для представления линейных процессов. Массив - это однородная структура однотипных данных, одновременно хранящихся в последовательных ячейках оперативной памяти. Эта структура должна иметь имя и определять заданное количество данных (элементов). Метод бинарного поиска, который также известен, как метод деления пополам. Сущность этого метода поиска заключается в последовательном определении номера S элемента, расположенного в точке деления упорядоченного массива пополам и сравнении искомого значения Х с этим элементом массива A(s). Если A(s)=Х, то поиск заканчивается. В противном случае возможны две ситуации: если A(s)<Х, то все элементы, имеющие номера с 1 по s также меньше Х, если A(s)>Х, то все элементы, имеющие номера с S по n также больше Х в силу упорядоченности массива по возрастанию значений. Поэтому для дальнейшего поиска половину значений массива можно исключить из рассмотрения. В первом случае - левую, во втором случае - правую половину. Метод структурной алгоритмизации. Этот метод основан на визуальном представлении алгоритма в виде последовательности управляющих структурных фрагментов. Выделяют три базовые управляющие процессом обработки информации структуры: композицию,альтернативу и итерацию.С помощью этих структур можно описать любые процессы обработки информации. Метод парных перестановок сортировки массива основан на принципе сравнения и обмена пары соседних элементов. Процесс перестановок пар повторяется просмотром массива с начала до тех пор , пока не будут отсортированы все элементы , т.е. во время очередного просмотра не произойдет ни одной перестановки. Метод модифицированный простого выбора сортировки основывается на алгоритме поиска минимального элемента. В массиве А(1..n) отыскивается минимальный элемент, который ставится на первое место . Для того, чтобы не потерять элемент , стоящий на первом месте , этот элемент устанавливается на место минимального . Затем в усеченной последовательности, исключая первый элемент, отыскивается минимальный элемент и ставится на второе место и так далее n-1 раз пока не встанет на свое место предпоследний n-1 элемент массива А, сдвинув максимальный элемент в самый конец. Модель - упрощенное представление о реальном объекте, процессе или явлении. Моделирование - построение моделей для исследования и изучения моделируемого объекта, процесса, явления с целью получения новой информации при решении конкретных задач. Одномерный массив - это однородная структура однотипных данных, для получения доступа к его элементам достаточно одной индексной переменной Одномерные символьные масивы - это массивы, составленные из определенной последовательности символов, которые образуют тексты. Переменные данные - это данные, которые изменяют свои значения в процессе решения задачи. Последовательность значений - это набор однотипных величин, которые вводятся и обрабатываются циклически. Постоянные данные - это такие данные, которые сохраняют свои значения в процессе решения задачи (математические константы, координаты неподвижных объектов) и не зависят от внешних факторов. Разветвленные алгоритмы в своем составе содержат блок условия и различные конструкции ветвления. Ветвление - это структура, обеспечивающая выбор между альтернативами. Сортировка - процесс перестановки объектов данного массива в определенном порядке. Целью сортировки являются упорядочение массивов для облегчения последующего поиска элементов в данном массиве. - метод парных перестановок сортировки массива основан на принципе сравнения и обмена пары соседних элементов. Процесс перестановок пар повторяется просмотром массива с начала до тех пор , пока не будут отсортированы все элементы , т.е. во время очередного просмотра не произойдет ни одной перестановки. - модифицированный метод простого выбора сортировки основывается на алгоритме поиска минимального элемента. В массиве А(1..n) отыскивается минимальный элемент, который ставится на первое место . Для того, чтобы не потерять элемент , стоящий на первом месте , этот элемент устанавливается на место минимального . Затем в усеченной последовательности, исключая первый элемент, отыскивается минимальный элемент и ставится на второе место и так далее n-1 раз пока не встанет на свое место предпоследний n-1 элемент массива А, сдвинув максимальный элемент в самый конец. Таблица трассировки - это таблица содержащая столько столбцов, сколько переменных и условий в алгоритме, в ней мы выполняем действия шаг за шагом от начала до конца алгоритма для конкретных наборов входных данных. Циклические алгоритмы являются наиболее распространенным видом алгоритмов, в них предусматривается повторное выполнение определенного набора действий при выполнении некоторого условия. Такое повторное выполнение часто называют циклом. Существуют два основных видов циклических алгоритмов: циклические алгоритмы с предусловием, циклические алгоритмы с постусловием. Они отличаются друг от друга местоположением условия выхода их цикла. Условно-постоянные данные - это такие данные, которые могут иногда изменять свои значения, но эти изменения не зависят от процесса решения задачи, а определяются внешними факторами Сортировка методом парных перестановокСамый простой вариант этого метода сортировки массива основан на принципе сравнения и обмена пары соседних элементов. ![]() Процесс перестановок пар повторяется просмотром массива с начала до тех пор , пока не будут отсортированы все элементы , т.е. во время очередного просмотра не произойдет ни одной перестановки. Для подсчета количества перестановок целесообразно использовать счетчик - специальную переменную В. Если при просмотре элементов массива значение счетчика перестановок осталось равным нулю, то это означает, что все элементы отсортированы (см.рис.29). Рис.29. Алгоритм сортировки методом парных перестановок содержит два цикла, внутренний цикл выделен цветом Сортировка модифицированным методом простого выбораЭтот метод основывается на алгоритме поиска минимального элемента. В массиве А(1..n) отыскивается минимальный элемент, который ставится на первое место . Для того, чтобы не потерять элемент , стоящий на первом месте , этот элемент устанавливается на место минимального . Затем в усеченной последовательности, исключая первый элемент, отыскивается минимальный элемент и ставится на второе место и так далее n-1 раз пока не встанет на свое место предпоследний n-1 элемент массива А, сдвинув максимальный элемент в самый конец. Рассмотрим алгоритмическое решение задачи на примере сортировки некоторого массива значений по возрастанию. В соответствии с вышеописанным методом нам необходимо несколько раз выполнять операции поиска минимального элемента и его перестановку с другим элементом, то есть потребуется несколько раз просматривать элементы массива с этой целью. Количество просмотров элементов массива согласно описанию модифицированного метода простого выбора равно n-1, где n- количество элементов массива. Таким образом, можно сделать вывод, что проектируемый алгоритм сортировки будет содержать цикл, в котором будет выполняться поиск минимального элемента и его перестановка с другим элементом.
Обозначим через i - счетчик (номер) просмотров элементов массива и изобразим обобщенный алгоритм сортировки на рис.27. Рис.27. Обобщенный алгоритм сортировки массива модифицированным методом простого выбора Отметим, что для перестановки элементов местами необходимо знать их порядковые номера, алгоритм перестановки элементов массива был рассмотрен ранее (см. рис. 23). Алгоритмы ввода исходного массива и вывода этого же массива после сортировки изображены на рисунках 16 и 24 соответственно. Алгоритм поиска в массиве минимального элемента и его номера будет аналогичен рассмотренному в примере 10 алгоритму поиска максимального элемента, который представлен на рис.18. Однако, в этом алгоритме будут внесены изменения.Для того, чтобы определить какие изменения следует внести рассмотрим выполнение сортировки данным методом с акцентом на поиск минимального элемента на конкретном примере. Пусть исходный массив содержит 5 элементов (2,8,1,3,7). Количество просмотров согласно модифицированному методу простого выбора будет равно 4. Покажем в таблице 7, как будет изменяться исходный массив на каждом просмотре. Таблица 7. Пример сортировки
![]() Введем следующие обозначения : К- номер минимимального элемента, J - номер элемента массива, М и А(К)- одно и тоже значение минимального элемента массива, i - номер переставляемого с минимальным элемента, А(i)- значение переставляемого элемента. Тогда циклический алгоритм сортировки модифицированным методом простого выбора будет выглядеть следующим образом (рис.28).
В этом алгоритме два цикла, внутренний цикл выделен цветом. Визуальные алгоритмыПри проектировании визуальных алгоритмов используют специальные графические элементы, называемые графически блоками, которые представлены на рис. 2.
Результатом алгоритмизации решения задачи является блок-схема алгоритма, состоящая из некоторой последовательности таких графических блоков.
Рис.2. Основные блоки визуальных алгоритмов Общими правилами при проектировании визуальных алгоритмов являются следующие: В начале алгоритма должны быть блоки ввода значений входных данных. После ввода значений входных данных могут следовать блоки обработки и блоки условия. В конце алгоритма должны располагаться блоки вывода значений выходных данных. В алгоритме должен быть только один блок начала и один блок окончания. Связи между блоками указываются направленными или ненаправленными линиями. Этап проектирования алгоритма следует за этапом формального решения задачи, на котором определены входные и выходные данные, а также зависимости между ними. При построении алгоритмов для сложной задачи используют системный подход с использованием декомпозиции (нисходящее проектирование сверху-вниз). Как и при разработке любой сложной системы, при построении алгоритма используют дедуктивный и индуктивный методы. При дедуктивном методе рассматривается частный случай общеизвестных алгоритмов. Индуктивный метод применяют в случае, когда не существует общих алгоритмических решений. Одним из системных методов разработки алгоритмов является метод структурной алгоритмизации. Этот метод основан на визуальном представлении алгоритма в виде последовательности управляющих структурных фрагментов. Выделяют три базовые управляющие процессом обработки информации структуры: композицию, альтернативу и итерацию.С помощью этих структур можно описать любые процессы обработки информации. Композиция (следование) - это линейная управляющая конструкция, не содержащая альтернативу и итерацию. Она предназначена для описания единственного процесса обработки информации. Альтернатива - это нелинейная управляющая конструкция, не содержащая итерацию. Она предназначена для описания различных процессов обработки информации, выбор которых зависит от значений входных данных. Итерация - это циклическая управляющая структура, которая содержит композицию и ветвление. Она предназначена для организации повторяющихся процессов обработки последовательности значений данных. В соответствии с наличием в алгоритмах управляющих структур композиции, альтернативы и итерации алгоритмы классифицируют на: линейные, разветвленные и циклические алгоритмы. Линейные алгоритмы не содержат блока условия. Они предназначены для представления линейных процессов. Такие алгоритмы применяют для описания обобщенного решения задачи в виде последовательности модулей. Пример линейного алгоритма приведен на рисунке 3.
Рис. 3. Пример линейного визуального алгоритма Задания для самостоятельного выполненияСоставить визуальные разветвленные алгоритмы для следующих задач. 1.Для двух чисел Х,У определить, являются ли они корнями уравнения А*Р^4+D*P^2+C=0 2.Если среди трех чисел А,В,С имеется хотя бы одно четное вычислить максимальное, иначе - минимальное 3.Ввести положительное А>=1. Найти наибольшее из выражений вида 1\А и SIN(A). 4.Ввести два числа . Меньшее заменить полусуммой, а большее - удвоенным произведением. 5.Ввести три числа А,В,С . Удвоить каждое из них , если А>=В>=С, иначе поменять значения А и В. 6.Определить является ли точка с координатами X,Y точкой пересечения диагоналей квадрата со стороной R ,одна вершина которого расположена в начале координат. 7.* Определить значения функции в зависимости от значения аргумента ![]() а*х2 , если х > 10 у= 1/х , если –10 £ х £ 10 Sin(х) , если х < 10 Составить визуальные циклические алгоритмы для следующих задач. 1. Вычислить число в факториале Y=X! 2. Вычислить сумму ряда , общий член которого задан формулой An=(x*n)/n!. 3. При табулировании функции y=cos(x+a) на отрезке [1,10] c шагом h=1 определить сумму значений y , больших p. 4. Подсчитать количество цифр в целом числе Х. 5. Вычислить сумму значений функции у=x^2 на отрезке [1,5] c шагом 1. 6. * Найти минимальное значение функции Y=Sin(X)*X , на отрезке [C,D] с шагом 0.001. Реализовать цикл с постусловием. 7. Протабулировать функцию y=sin(x) на отрезке [1,5] с шагом h=0,5. Вывести предпоследнее положительное значение функции. 8. Определить постановку задачи и составить визуальный алгоритм для этой задачи, если табличное представление ее решения изображено ниже:
9. Составить визуальную и табличную формы алгоритма по его текстовому представлению, а также определить конечное значение S . А) I=0; S=0; В) I=1; S=0; ПОКА I<3 ПОКА I >1 I=I+3 S=S+1/I S=S+I*I I=I-1 ВЫВОД S ВЫВОД S 10. Составить визуальную и текстовую форму представления алгоритма, заданного в табличной форме.
11. Определить является ли данный фрагмент алгоритма циклом, если да, то какого вида и какое действие является телом цикла? 12. * Протабулировать функцию Y=tg(X), при изменении X на отрезке [A,B] с шагом K и определить количество точек разрыва(M) этой функции. 13. Определите местонахождение ошибок в алгоритмическом решении следующей задачи. Найти минимальное значение функции Y=A*X2+Sin(X)*X0,5 , для Х изменяющемся на отрезке [C,D] с шагом 0,01. Составить визуальные циклические алгоритмы для следующих задач обработки последовательности значений. 1. В последовательности чисел подсчитать произведение чисел, кратных 3. 2. В последовательности чисел сравнить ,что больше сумма положительных или произведение отрицательных. 3. В последовательности чисел определить предпоследнее отрицательное число.(При решении введите дополнительную переменную для хранения предпоследнего отрицательного числа). 4. В последовательности целых положительных чисел определить максимальное число (Рекомендуем реализовать такой алгоритм : Вводим Х mах=Х Цикл с постусловием а. Если элемент Х > max то max:=Х (значение этого элемента); б. Вводим новый элемент последовательности Х. Условие выхода из цикла Х=0 ) 5. В последовательности целых чисел определить третье положительное число и подсчитать количество цифр в нем. Составить визуальные циклические алгоритмы и таблицы трассировки для следующих задач обработки одномерных массивов. 1. *В одномерном массиве определить первый отрицательный элемент и его номер. 2. Исключить из массива А1..AN пеpвый отpицательный элемент. 3. Исключить из массива А1..AN пеpвый четный элемент, следующий за максимальным. 4. Дан массив целых чисел a1,..an.Выяснить, какая из трех ситуаций имеет место:все числа a1,..an равны нулю,в последовательности a1,...,an первое ненулевое число-положительное,первое ненулевое число-отрицательное. 5. Дан массив целых чисел a1,..an.Выяснить, какая из трех ситуаций имеет место:все числа a1,..an равны нулю,в последовательности a1,...,an первое ненулевое число-положительное,первое ненулевое число-отрицательное. 6. Даны целые числа a1,..,an.Определить количество целых чисел,входящих в последовательность a1,...,an по одному разу. 7. Даны действительные числа a1,..,an.Требуется найти В равное среднему арифметическому чисел a1,..,an,и наибольшее отклонение от среднего,т.е. max(/a1-b/,/a2-b/,../an-b/). 8. Дан массив действительных чисел a1,...,an.Найти максимальный элемент среди отрицательных элементов и поменять его местами с минимальным положительным. 9. *В одномерном массиве перенести в начало максимальный элемент. 10. Пеpенести в начало одномеpного массива втоpой нулевой элемент. 11. Ввести массив а1,...,а16. Получить новый массив по правилу (а1 + а16, а2+а15,...,а8+а9). Найти минимальный элемент полученного массива. 12. *В одномерном массиве перенести в конец минимальный элемент . 13. Пеpенести в хвост одномеpного массива все отpицательные элементы. 14. Пеpенести в начало одномеpного массива все нечетные элементы. 15. В одномерном массиве найти первую группу повторяющихся элементов. 16. Выполните примеры 10 и 11, реализуя ввод элементов массива в цикле, в котором производится их обработка.
Составить визуальные циклические алгоритмы и таблицы трассировки для следующих задач сортировки одномерных массивов. 1. Ввести массив a1,a2,...,a15. Расположить ненулевые элементы по убыванию. 2. Ввести массив x1,x2,...,x20. Элементы, на нечетных местах, расположить в порядке возрастания, а на нечетных в порядке убывания. 3. Ввести массив a1,a2,...,a15. Требуется упорядочить его по возрастанию абсолютных значений элементов 4. Ввести массив x1,x2,...,x20. Требуется расположить отрицательные элементы в порядке убывания. Составить визуальные циклические алгоритмы для следующих задач обработки упорядоченных одномерных массивов. 1. Ввести упорядоченный по неубыванию массив Х(1) < = Х(2) < =…Х(n). Найти количество различных чисел среди элементов этого массива. 2. Ввести два упорядоченных по возрастанию числовых массива Х(1)<Х(2)<Х(3) <…Х(n) и Y(1) Z(1) < = Z(2) < = … Z(k).Найти одно из этих чисел. 4. Вставить значение Р в упорядоченный неубыванию массив Х(1) < = Х(2) < =…Х(n) так, чтобы упорядоченность не нарушилась. 5. Удалить значение Р в упорядоченный неубыванию массиве Х(1) < = Х(2) < =…Х(n). 6. Соединить два упорядоченных массива Х(1) < = Х(2) < =…Х(n) и Y(1)< =Y(2)< =…Y(m) в массив Z(1) < = Z(2) < = … Z(k), при этом каждый элемент должен входить в массив Z столько раз, сколько раз он входит в массивы Х и Y. Составить визуальные циклические алгоритмы для следующих задач обработки символьных одномерных массивов. 1.Найти и вывести слово , содержащее наибольшее количество гласных букв. 2.В слове , в котором обнаружено наибольшее количество шипящих букв , заменить их на символ "*". 3.Вывести все гласные буквы , содержащиеся в слове наибольшей длины и вывести число повторений каждой этой буквы. 4.Подсчитать количество слов и количество символов во всех словах , отличных от заглавных латинских букв. 5.Вывести все слово , содержащее наибольшее количество цифр и вывести число цифр в каждом слове. 6. Слово с минимальной длиной удалить из данного предложения. 7. В предложении перенести в его конец все, встречающиеся в тексте цифры . 8. В предложении расставить все слова в алфавитном порядке. Составить визуальные циклические алгоритмы для следующих задач обработки двумерных массивов. 1. Ввести двумерный массив А(N,M).Составить визуальный алгоритм замены всех нулевых элементов на минимальный элемент. 2. Ввести двумерный массив А(N.N) . Составить визуальный алгоритм подсчета среднего арифметического значений двумерного массива . Найти отклонение от среднего у элементов первой строки. 3. Ввести двумерный массив А(N,N) . Составить визуальный алгоритм подсчета среднего арифметического значения двумерного массива. Вычислить отклонение от среднего для всех элементов двумерного массива . 4. Ввести двумерный массив А(N,N).Составить визуальный алгоритм замены всех отрицательных элементов на среднее арифметическое значение элементов двумерного массива. 5. Составить визуальный алгоритм нахождения числа строк двумерного массива А(N,N) , количество отрицательных элементов в которых больше Р. 6. Ввести двумерный массив размером 7*4 . Найти наибольший элемент двумерного массива . Удалить строку с максимальным элементом. 7. Ввести двумерный массив размером 7*4. Поменять столбец с максимальным элементом с первым столбцом двумерного массива . 8. Ввести двумерный массив размером 7*7. Найти максимальный элемент двумерного массива , расположенный ниже побочной диагонали. 9. Ввести двумерный массив размером 7*4 . Найти наименьший элемент двумерного массива . Перенести строку , содержащую этот элемент в конец. 10. Ввести двумерный массив размером 7*4.Найти максимальный элемент двумерного массива . Поменять столбец, содержащий этот элемент с последним столбцом двумерного массива . 11. Ввести двумерный массив размером 6*4.Найти минимальный элемент двумерного массива . Переставляя строки и столбцы, добиться того , чтобы он оказался в правом нижнем углу. В данной работе определено местоВ данной работе определено место проектирования алгоритмов при компьютерном решении задач, рассмотрена технология проектирования и способ проверки визуальных алгоритмов, приведено множество примеров и заданий для самостоятельного выполнения, алгоритмическое решение некоторых из них имеются в конце данного учебного пособия. Для проверки полученных знаний можно воспользоваться тесовыми заданиями, представленными в приложении 1. Так как построение алгоритмов предшествует процессу написания программы, то в целях ускорения преобразования алгоритмов в текст программ в приложении 2 приведена таблица соответствия основных алгоритмических структур фрагментам программ, написанных на языке Паскаль. |