Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор цикла с последующим условиемСодержание книги
Поиск на нашем сайте
Цикл с последующим условием используется в тех случаях, когда заранее неизвестно число повторений цикла. Общий вид оператора: Repeat Оператор 1; Оператор2; … Оператор N; until условие; Здесь repeat, until – зарезервированные слова; условие - выражение логического типа. Оператор цикла с последующим условием действует следующим образом. Операторы циклической части выполняются повторно до тех пор, пока значение логического выражения ложно. Если логическое выражение принимает значение истина, то цикл прекращает свою работу и управление передается на следующий оператор. Если логическое выражение сразу имеет значение истина, то цикл повторяется один раз. Если в операторах цикла не предусмотрено изменение логического выражения и оно все время имеет значение ложь, то цикл будет бесконечным.
Пример. Составить программу нахождения суммы сходящегося ряда с точностью е. Расчет суммы закончить, когда слагаемое по модулю станет меньше заданной точности. В качестве значения е можно взять 0.1, или 0.01, или 0.001.
В данном примере необходимо составить рекуррентную формулу, позволяющую каждое следующее слагаемое вычислять через предыдущее. N! – это выражение равно 1·2·3·…·n. Рекуррентная формула представлена ниже.
Var s, x, y, e: real; n: integer; Begin WriteLn(‘введите х, е'); ReadLn(x, e); s:= x; (*первоначальная сумма*) n: = 0; y:= x; (*первое слагаемое*) Repeat n:= n + 1; y:= y *x * x / (2 * n * (2 * n + 1)); s:= s + y; until abs(y) <= e; WriteLn(‘сумма= ’,s:12:5,’ при n= ‘,n,’ y=’,y:12:5); End. Вложенные циклы. Циклы могут быть вложены один в другой. При использовании вложенных циклов необходимо соблюдать следующие правила: – счетчики вложенных циклов должны быть разными; – вложенный цикл должен полностью находиться внутри внешнего цикла; – счетчик внутреннего цикла меняется быстрее счетчика внешнего цикла. Ввод – вывод числовых матриц. Ввод элементов матриц можно осуществлять по одному элементу, по элементам строк, всех элементов. Пусть даны три матрицы А, В, С. Var a: array [1..2, 1..3] of real; c, b: array [1..3, 1..2] of integer; i, j: integer; Begin (*Ввод элементов матрицы по одному элементу*) WriteLn (‘Ввод матрицы В по одному элементу’); for i:= 1 to 3 do for j:= 1 to 2 do Begin Write(‘введите элемент матрицы b[’, i, ‘,’,j,’]’); ReadLn (b[i, j]); end; …
При выполнении данной группы операторов на экран будет выведено: Ввод матрицы В по одному элементу
Затем необходимо ввести, например, следующие данные: 3 Enter 5 Enter -67 Enter …
(*Вывод матрицы С по строкам,*) WriteLn (‘матрица с’); for i:=1 to 3 do Begin for j:=1 to 2 do Write (c[i, j]:3,’ ‘); WriteLn; end; На экране, например, может быть выведено следующее:
Матрица С 5 7 -12 –34 8 2
Примеры программ, где используются вложенные циклы. Пример. В вещественной матрице А (2, 3) найти сумму целых и произведение элементов с дробной частью. Var a: array [1..2, 1..3] of real; s, p: real; i, j: integer; Begin WriteLn (‘введите а(2,3)’); for i:= 1 to 2 do for j:= 1 to 3 do Read (a[i, j]); ReadLn; s:= 0; p:= 1; for i:= 1 to 2 do for j:= 1 to 3 do if trunc (a[i, j]) = a[i, j] then s:= s+a[i, j] Else p:= p * a[i, j]; WriteLn (‘Матрица а’); for i:= 1 to 2 do Begin for j:= 1 to 3 do Write (a[i, j]:10:3, ‘ _’); WriteLn; end; WriteLn(‘s= ’, s:10:1, ‘ p= ’, p:10:2); ReadLn; End.
Пример. В символьной матрице А(4, 5) определить, в какой строке больше всего * и сколько их. Var a: array [1...4, 1..5] of char; max, i, j, k, n: integer; Begin WriteLn (‘ввод а(4, 5)’); for i:= 1 to 4 do for j:= 1 to 5 do ReadLn (a[i, j]); max:= 0; k:= 0; for i:= 1 to 4 do Begin n:= 0; for j:= 1 to 5 do if a[i, j] = ’*’ then n:= n+1; if max < n then Begin max:=n; k:=i; end; end; WriteLn (‘max= ’,max,’ строка= ’, k); WriteLn (‘матрица а’); for j:=1 to 4 do WriteLn (a[i]); end. Пример. Составить программу умножения матрицы на матрицу (А=В*С). Var a, b, c: array [1..3, 1..3] of real; i, j, k: integer; Begin WriteLn (‘Ввод b(3,3)’); for i:= 1 to 3 do for j:= 1 to 3 do Read (b[i, j]); ReadLn; WriteLn (‘Ввод c(3,3)’); for i:= 1 to 3 do for j:= 1 to 3 do Read (c[i, j]); ReadLn; for i:= 1 to 3 do for j:= 1 to 3 do Begin a[i, j]:= 0; for k:= 1 to 3 do a[i, j]:= a[i, j] + b[i, k] * c[k, j]; end; WriteLn (‘ Матрица а’); for i:= 1 to 3 do Begin for j:= 1 to 3 do Write (a[i, j]:5:1,’_’); WriteLn; end; End.
Операторы break и continue. Для гибкого управления циклическими операторами for, while и repeat используются две процедуры: break – реализует немедленный выход из цикла; управление передается оператору стоящему сразу за концом цикла; continue – обеспечивает досрочное завершение очередного прохода цикла; управление передается в самый конец циклического оператора.
Методы сортировки
Сортировка – упорядочивание элементов списка, последовательности или массива в соответствии с каким-либо признаком. Если упорядочивается числовая последовательность, то ее можно отсортировать по возрастанию или убыванию, если символьная – то в прямом или обратном алфавитном порядке. Одной из наиболее часто встречающихся в программировании задач является сортировка массива по возрастанию или убыванию. В общем случае, когда элементы массива представляют собой неупорядоченную последовательность, можно воспользоваться тремя основными алгоритмами сортировки: – сортировка методом пузырька; – сортировка методом поиска минимума (максимума); – сортировка вставками. Наиболее простой является сортировка методом пузырька.
|
||||||||||
|
Последнее изменение этой страницы: 2017-02-05; просмотров: 399; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.136 (0.007 с.) |