Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование алгоритмов со структурой ветвления
Алгоритмическая структура ветвления программируется в PascalABC с помощью условного оператора If <условие> Then <оператор 1> Else <оператор 2>; (полная форма) Кроме того, возможно использование неполной формы условного оператора: If <условие> Then <оператор>; (неполная форма) Если значение условия истина, то будет выполняться <оператор 1> (после Then), если ложно, то <оператор 2> (после Else) для полной формы или сразу следующий оператор после условного для неполной формы (без Else).
Программирование циклов Оператор REPEAT (постусловие) Оператор повтора repeat состоит из заголовка (repeat), тела и условия окончания (until). Ключевые слова repeat, until обозначают "повторяй" и "пока" соответственно. Repeat { Инструкции } until Условие выхода из цикла; Вначале выполняется тело цикла — инструкции, которые находятся между repeat И until, затем проверяется значение Условия выхода из цикла. В ТОМ случае, если оно равно false (ложь), т. е. не выполняется — инструкции цикла повторяются еще раз. Так продолжается до тех пор, пока условие не станет true (истина). Оператор repeat может использоваться для проверки правильности ввода исходных данных. Предположим, что по условию задачи исходное данное должно быть двузначным числом. Программа будет повторять запрос на его ввод до тех пор, пока не получит то, что ей требуется. Рассмотрим соответствующий фрагмент программы: var х: integer; begin ... repeat write('Введите двузначное число '); readln(x); until (x>9)and{x<100); end. Оператор WHILE (предусловие) Оператор повтора while состоит из заголовка и тела цикла. Ключевые слова while и do обозначают "до тех пор, пока" и "выполняй" соответственно. while Условие выполнения цикла do Begin { Инструкции } end; Оператор while аналогичен оператору repeat, НО Проверка Условие выполнения цикла производится в самом начале оператора — если значение условия равно true (истина), то выполняются инструкции цикла, находящиеся между begin И end И снова вычисляется выражение Условие выполнения цикла. Так продолжается до тех пор, пока значение Условие выполнения цикла не станет равно false (ложь). Например, рассмотрим фрагмент программы суммирования чисел от 1 до 10. В данном примере использование всех видов цикла равноценно:
s:= 0; i:= l; while i<=10 do begin s:=s+i; i:=i+l; end; Оператор FOR (цикл с параметром или счетчик) Этот вид оператора цикла называют циклом со счетчиком или циклом с па раметром. В нем важную роль играет переменная-параметр, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу — поэтому ее и называют счетчиком. Инструкцию for можно реализовать двумя способами. Вариант 1 (с увеличением счетчика). for Счетчик:= НачальноеЗначение to КонечноеЗначение do begin { Инструкции } end; Ключевые слова for, do обозначают "для", "выполняй" соответственно. Строка, содержащая for...do, называется заголовком цикла, оператор, стоящий после do образует его тело. Очень часто тело цикла — составной оператор. Если тело цикла представлено одиночным оператором, то begin и end не пишутся. Вариант 2 (с уменьшением счетчика). for Счетчик:= НачальноеЗначение downto КонечноеЗначение do begin { Инструкции } end; Инструкции между begin и end выполняются столько раз, сколько определяет выражение [(НачальноеЗначение – КонечноеЗначение) +1]. Если НачальноеЗначение меньше, чем КонечноеЗначение, то инструкции между begin и end не выполняются ни разу. Например, рассмотрим фрагмент программы вывода на экран первых 10 чисел var i:integer; Begin For i:=1 to 2 do Writeln (I:3); Readln End.
Пример решения задачи Задача: Если стаж работы сотрудника менее 5 лет, то зарплата 1300 рублей, при стаже от 5 до 15 лет – 1800 рублей, при стаже выше 15 лет зарплата повышается с каждым годом на 100 рублей. Построить алгоритм и написать программу, которая вычислит и выводит на экран з/плату каждого из трех сотрудников. 1. Математическое обоснование: ST – стаж работы ZP – зарплата Если ST<5, то ZP =1300 Если 5<=ST<=15, то ZP =1800 Если ST>15, то ZP =1800+(ST-15)*100 I счетчик, конечное значение счетчика =3 Вид алгоритма: ветвления с циклом
2. построение блок-схемы:
3 исполнение алгоритма:
4. программирование Program ZARP; VAR I: integer; {объявление переменной счетчика, целого типа } ST, ZP: real; {объявление переменных стаж работы зарплата, вещественного типа } Begin For i:=1 to 3 do {начало работы счетчика } Begin Writeln (‘ введите ST’); Readln (ST); {ввод данных стаж работы } IF (ST <5) THEN ZP:=1300 {проверка условия } ELSE IF ST >15 THEN ZP:=1800+(ST -15)*100 {проверка условия } ELSE ZP:=1800; Writeln (‘ ZP =’, ZP:6:2); {вывод на экран переменной зарплата } End; Readln End. 5. Запуск на выполнение Меню>run>run
6. Результат работы
Массивы Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе можно использовать массивы Массив представляет собой совокупность данных одного типа с общим для всех элементов именем. Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру (или нескольким номерам — например, для элемента таблицы задается номер строки и столбца). Номера элементов массива иначе называются индексами, а сами элементы массива — переменными с индексами (индексиро ванными переменными). Обратите внимание — данные в массивах сохраняются, как и в случае использования обычных неиндексированных переменных, только до конца работы программы. Для их долговременного хранения программа должна записать данные в файл. Характеристики массива: · тип — общий тип всех элементов массива; · размерность (ранг) — количество индексов массива; · диапазон изменения индекса (индексов) — определяет количество элементов в массиве. Вектор (одномерный массив) — это пример массива, в котором элементы нумеруются одним индексом. Если в массиве хранится таблица значений (матрица), то такой массив называется двумерным, его элементы нумеруются двумя индексами — номером строки и столбца соответственно. В качестве номера (индекса) элемента массива, в общем случае, используется выражение порядкового типа. Наиболее часто индекс — это целая константа переменная типа integer, реже — типа char ИЛИ boolean. обращении к элементу массива индекс указывается в квадратных скобках после имени массива. Например, а[3], b[1,2]. Однако использование элементов массива в качестве обычных переменных не дает существенной выгоды. Массивы ценны тем, что их индексы сами могут быть переменны-I или выражениями, обеспечивая доступ не к одному, а к последовательно- mm элементов. Обработка массивов производится при изменении индексов элементов. Например, в случае использования выражения следующие переменные удобно применять для просмотра в цикле элементов массива: · a[i] — всех элементов; · a[2*i] — элементов, стоящих на четных местах; · a[2*i-1] — элементов, стоящих на нечетных местах.
Предварительное описание типа массива · Описание одномерного массива: Type ИмяТипа = array [ НижняяГраница.. ВерхняяГраница ] of Тип Элементов; Var ИмяМассива: ИмяТипа;
· Описание двумерного массива: Type ИмяТипа = array [ НижняяГраницаИндекс1.. ВерхняяГраницаИндекс1, НижняяГраницаИндекс2.. ВерхняяГраницаИндекс2] of ТипЭлементов; Var ИмяМассива: ИмяТипа;
Например, объявим массив matrix типа matr — двумерный вещественный Массив с maxrow строк И maxcol столбцов: const maxrow=10; maxcol=15; Type matr = array [1..maxrow, 1..maxcol] of real; matrix: matr; с необходимостью применения массивов мы сталкиваемся всякий раз, когда требуется связать, запомнить и использовать в программе ряд родственных величин. Заполнение массива данными Значения элементов массива также можно задать следующими способами: · при вводе данных с клавиатуры; · При помощью датчика случайных чисел; · присваиванием заданных значений; · считывая значения элементов из файла В любом случае для заполнения массива используется цикл. Наиболее удобен цикл for, причем для многомерных массивов применяются вложенные циклы например, "слепой", без использования комментариев, ввод с клавиатуры: · вектора из 5 элементов: for i:=l to 5 do readln(a[i]); · матрицы размером 3x2 (всего потребуется ввести 6 чисел): for i:=l to 3 do for j:=l to 2 do readln (a[i,j]); Вывод массива Вывод значений элементов массива также выполняется в цикле for с использованием операторов write и writeln. Например, вывод вектора из 5 элементов: · в столбец: for i:=l to 5 do writeln(a[i]); □ в одну строку, · через пробел-разделитель: for i:=l to 5 do write(a[i],' '); · или с заданием формата, где под каждый элемент отводится 4 позиции: for i:=l to 5 do write(a[i]:4); Вывод матриц в стандартной форме записи — по строкам и столбцам — выполняется при помощи оператора writeln; (без параметра). Он используется после вывода текущей строки матрицы для перевода курсора в начало следующей строки экрана: for i:=l to n do begin for j:=1 to n do write (a[i,j]:4); writeln; end; Замечание Задание формата вывода помогает расположить матрицу на экране ровными столбцами. Обработка массива Часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значения и номера максимального и минимального элементов, а также изменить значения элементов массива и т. д. При этом для одномерного и двумерного массивов используются аналогичные алгоритмы, но в случае двумерного массива требуются вложенные циклы.
|
|||||||||||||||||||||||
Последнее изменение этой страницы: 2021-06-14; просмотров: 46; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.26.186 (0.027 с.) |