Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 316; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.86.172 (0.014 с.) |