Цикл с постусловием блок схема примеры

Цикл с постусловием блок схема примеры

Главная > Реферат

Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

Рис. 5.4. Блок-схема циклов с предусловием и постусловием

Пример 5.5. Построить таблицу значений функции y=x 3 на интервале [1;3] с шагом 0,1.

Задачу решим двумя способами: используя цикл с предусловием и цикл с постусловием. Составим алгоритмы решения данной задачи в виде псевдокода и в виде блок-схемы.

1. Определить начальное значение x=1.

2. Пока x≤3 делать.

2.1. Вычислить y=x 3 .

2.2. Вывести значения x и y.

2.3. Увеличить x на величину шага.

Цикл с предусловием

1. Определить начальное значение x=1.

2. Повторить действия.

2.1. Вычислить y=x 3 .

2.2. Вывести значения x и y.

2.3. Увеличить x на величину шага.

пока не выполнится условие x>3

Цикл с постусловием

В задачах часто встречаются алгоритмы, содержащие циклы для вычисления суммы и подсчета количества элементов, удовлетворяющих некоторому признаку.

Пример 5.6. Вычислить = слаг 1 +слаг 2 +…+слаг N

Алгоритм на псевдокоде:

3. Для i= 1, N, 1 повторить:

3.1. S = S + слагаемое.

Сформулируем правило суммирования :

начальное значение суммы S = 0;

в теле некоторой циклической конструкции выполнить команду: S = S + .

Пример 5.7. Подсчет количества элементов. Произведем счет: 1, 2, 3, 4, 5 и т.д., этот процесс является циклическим, так как каждый раз мы со­вершаем одно и то же действие: предыдущее натуральное число увеличиваем на единицу. Обозначив через К — счетчик искомых элементов, легко получить правило счетчика: К = К + 1 (на очередном шаге цикла). Но при первом подсчете должны получить значение К, равное единице, а до начала счета счетчик должен быть пуст, следовательно, начальное значение счетчика равно нулю.

начальное значение счетчика К = 0;

в теле некоторой циклической конструкции выполнить команду: К = К + 1.

5.3.4. Рекурсивный алгоритм

Рекурсивным называется алгоритм, организованный таким образом, что в процессе выполнения команд на каком-либо шаге он прямо или косвенно обращается сам к себе.

Пример 5.8. В качестве примера рассмотрим рекурсивный алгоритм вычисления факториала.

По определению факториал вычисляется как произведение натуральных чисел от 1 до указанного числа, то есть n!=1·2·3·…·n. Так же из определения известно, что 0!=1. Воспользуемся указанными определениями для решения задачи. Решение представим на алгоритмическом языке.

Функция F( арг цел X) : рез цел

Проанализируем работу алгоритма для 3!. Сначала произойдет вызов функции F(3). Это означает, что на первом этапе вычислений X=3. Т.к. X≠0, то F будет вычислена по формуле F=F(2)*3. Другими словами, происходит рекурсивный вызов этой же функции, только значение аргумента новое. На втором этапе вычислений X=2. Т.к. X≠0, то F=F(1)*2. На втором этапе снова произошел вызов функции. На третьем этапе X=1, т.к. X≠0, то F=F(0)*1. И снова рекурсивный вызов функции. На четвертом этапе значение аргумента X=0, тогда F=1. Это значение подставляется на третьем этапе вместо F(0), тогда формула третьего этапа примет вид F=1*1 (значение равно 1). Аналогично, на втором этапе формула вычисления F=1*2 (равно 2), а на первом этапе F=2*3 (значит F=6). Таким образом, результат вычисления F(3) равен 6. Действительно, 3! = 1 · 2 · 3 = 6

6. Языки программирования

и технологии программирования

6.1. Языки программирования

Компьютерная программа представляет собой логически упорядоченную последовательность команд, предназначенных для управления компьютером. Однако, процессор исполняет программы, представляющие собой последовательность чисел и называемые машинным кодом.

Писать программы в машинных кодах очень сложно и в конце 50-х годов придумали символический язык ассемблер, близкий к машинному. Ассемблер стал первым полноценным языком программирования.

Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически пере­вести такую программу в машинный код пока невозможно.

Языки программирования – это формальные искусственные языки. Как и естественные языки, они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

Алфавит — разрешенный к использованию набор символов, с помощью которого могут быть образованы слова и величины данного.

Синтаксис – система правил, определяющих допустимые конст­рукции языка программирования из букв алфавита.

Семантика — система правил однозначного толкования каждой языковой конструкции, позволяющих производить процесс обработки данных.

Взаимодействие синтаксических и семантических правил определяет основные понятия языка, такие как операторы, идентификаторы, константы, переменные, функции, процедуры и т.д. В отличие от естественных, язык программирования имеет ограниченный запас слов (операторов) и строгие правила их написания, а правила грамматики и семантики, как и для любого формального языка, явно однозначно и четко сформулированы.

Языки программирования, ориентированные на команды процессора и учитывающие его особенности, называют языками низкого уровня . «Низкий уровень» не означает неразвитый, имеется в виду, что операторы этого языка близки к машинному коду и ориентированы на конкретные команды процессора. Языком самого низкого уровня является ассемблер.

Читайте также:  Ошибка не удалось подключиться к камере android

Языки программирования, имитирующие естественные, обладающие укрупненными командами, ориентированные «на человека», называют языками высокого уровня .

Языки программирования работают с переменными различных типов. Рассмотрим подробнее некоторые из них.

Реальные данные, которые обрабатывает программа, – это целые и вещественные числа, символы и логические величины. Эти простые типы данных называют базовыми. Все данные, обрабатываемые компьютером, хранятся в ячейках памяти компьютера, каждая из которых имеет свой адрес. Для того чтобы не следить за тем, по какому адресу будут записаны те или иные данные, в языках программирования используется понятие переменной, позволяющее отвлечься от адреса ячейки памяти и обращаться к ней с помощью имени (идентификатора).

Переменная — есть именованный ячейка памяти, которая может изменять свое значение. Имя переменной указывает на значение, а способ ее хранения и адрес остаются скрытыми от программиста. Кроме имени и значения, переменная имеет тип, определяющий, какая информация находится в памяти. Тип переменной задает:

используемый способ записи информации в ячейки памяти;

необходимый объем памяти для ее хранения.

Если переменные присутствуют в программе, на протяжении всего времени ее работы – их называют статическими . Переменные, создающиеся и уничтожающиеся на разных этапах выполнения программы, называют динамическими .

Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Значения констант изменять нельзя.

Для повышения производительности и качества работы необходимо иметь данные, максимально приближенные к реальным аналогам. Тип данных, позволяющий хранить вместе под одним именем несколько переменных, называется структурированным .

Массивом называется упорядоченная совокупность однотипных величин, имеющих общее имя, элементы которой адресуются порядковыми номерами (индексами). Элементы массива в памяти компьютера хранятся по соседству, одиночные элементы простого типа такого расположения данных в памяти не предполагают.

Работа с элементами массива происходит поэлементно. Например, ввод элементов одномерного массива осуществляется поэлементно, обычно элементы вводятся в порядке возрастания их индексов. Для двумерного массива необходимо соответственно указать два индекса.

6.2. Компиляторы и интерпретаторы

Основу каждой системы программирования составляет транслятор . Это программа, переводящая текст на языке программирования в форму, пригодную для исполнения (на другой язык). Такой формой обычно являются машинные команды, которые могут непосредственно исполняться компьютером. Различают несколько видов трансляторов: компиляторы , интерпретаторы , конверторы .

Компилятор , обрабатывая исходную программу, создает эквивалентную программу на машинном языке, которая называется также объектной программой, или объектным кодом.

Интерпретатор , распознавая, как и компилятор, исходную программу, не формирует машинный код в явном виде. Для каждой операции, которая может потребоваться при исполнении исходной программы, в программе-интерпретаторе заранее заготовлена машинная команда или команды. «Узнав» очередную операцию в исходной программе, интерпретатор выполняет соответствующие команды, потом – следующие, и так всю программу. Интерпретатор – это переводчик и исполнитель исходной программы.

Конвертор – транслятор, переводящий программу не в машинный код, а на другой язык программирования.

6.3. Системы программирования

Процесс создания программы включает:

Составление исходного кода программы на языке про­граммирования.

Этап трансляции, необходимый для создания объектного кода программы.

Построение загрузочного модуля, готового к исполнению.

Все перечисленные выше действия требуют наличия специальных программных средств. Совокупность этих программных средств входит в состав системы программирования:

Текстовый редактор (необходимый для создания и редактирова­ния исходного кода программы на языке программирования).

6.4. Классификация и обзор языков программирования

Современное состояние языков программирования можно представить в виде следующей классификации (рис. 6.1).

Рис. 6.1. Классификация языков программирования

Процедурное программирование есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на этом языке, представ­ляет собой последовательность команд, определяющих алгоритм решения задачи. Основной командой является команда присвоения, предназначенная для определения и изменения содержимого памяти компьютера. Фундаментальная идея процедурного программирования – использование памяти компьютера для хранения данных. Функционирование программы сводится к последовательному вы­полнению команд с целью преобразования исходного состояния памяти, т.е. программа производит пошаговое преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Примеры таких языков: Фортран, Кобол, Алгол, BASIC, Паскаль (Pascal), АДА, С (Си).

Суть функционального программирования определяется как «способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени функции, а единственным правилом композиции – оператор суперпозиции функций. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления». Первым таким языком стал Лисп

Концепция логического программирования базируется на поня­тии отношение. Логическая программа – это совокупность аксиом и правил, определяющих отношения между объектами и целью. Пролог – это язык логического программирования.

Основой объектно-ориентированного программирования (ООП) является понятие объект. Его суть состоит в том, что объект объеди­няет в себе структуры данных и характерные только для него проце­дуры (методы) их обработки. Языками ООП являются: Смолток, С++, Java, Visual Basic, Delphi, С++ Builder, Visual С++, VBA.

Читайте также:  Как защитить файл excel от копирования

Языки программирования баз данных отличаются от алгоритмических языков своим функциональным назначением. При работе с базами данных (БД) наиболее часто выполняются следующие операции: создание, преобразование, удаление таблиц в БД; поиск, отбор, сортировка по запросам пользователя; добавление новых записей или модификация существующих; удаление записей и др. Для обработки больших мас­сивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL

Появление и активное развитие компьютерных сетей стало причиной создания многочисленных версий популярных языков программирования , адаптированных для использования в сети . Отличительные особенности, присущие сетевым языкам: они являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки получили название скрипт-языков. Например, HTML, Perl, Tcl/Tk, VRML.

Для моделирования существуют специальные языки – языки моделирования . При моделировании систем применяются формальные способы их описания – формальные нотации, с помощью которых можно представить объекты и взаимосвязи между ними в системе. Такие системы называют CASE-системами.

6.5. Этапы решения задач на компьютере

Компьютер предназначен для решения разнообразных задач: научно-технических, инженерных, разработки системного программного обеспечения, обучения, управления производственными процессами и т.д. В процессе подготовки и решения на компьютере научно-технических задач можно выделить следующие этапы:

Постановка задачи – формулируется цель решения задачи, подробно описывается ее содержание; проводится анализ условий, при которых решается поставленная задача, выявляется область определения входных параметров задачи.

Формальное построение модели задачи – предполагает построение модели с характеристиками, адекватными оригиналу, на основе какого-либо его физического или информационного принципа; анализируется характер и сущность величин, используемых в задаче.

Построение математической модели задачи – характеризуется математической формализацией задачи, при которой существующие взаимосвязи между величинами выражаются с помощью математических соотношений. Как правило, математическая модель строится с определенной точностью, допущениями и ограничениями.

Выбор и обоснование метода решения – модель решения задачи реализуется на основе конкретных приемов и методов решения. В большинстве случаев математическое описание задачи трудно перевести на машинный язык. Выбор и использование метода решения позволяет свести решение задачи к конкретному набору машинных команд. При обосновании метода решения рассматриваются вопросы влияния различных факторов и условий на конечный результат, в том числе на точность вычислений, время решения задачи на компьютере, требуемый объем памяти и др.

Построение алгоритма – на данном этапе составляется алгоритм решения задачи, в соответствии с выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, определяется последовательность выполнения этих блоков.

Составление программы – алгоритм решения переводится на конкретный язык программирования.

Отладка программы – процесс устранения синтаксических и ло­гических ошибок в программе. Иногда данный этап называют тестированием программы.

Решение задачи на компьютере и анализ результатов . Теперь программу можно использовать для решения поставленной задачи. Первоначально выполняется многократное решение задачи на компьютере для различных наборов исходных данных. Получаемые результаты анализируются специалистом, поставившим задачу. Разработанная программа поставляется заказчику в виде готовой к исполнению машинной программы. К ней прилагается документация, включающая инструкцию по эксплуатации.

В задачах другого типа некоторые этапы могут отсутствовать. Например, проектирование программного обеспечения не требует построения математической модели.

Все приведенные этапы тесно связаны между собой. Например, анализ результатов может привести к необходимости внесения изменений в программу, алгоритм, метод решения или даже в постановку задачи.

6.6. Принципы программирования

Программа на каком-либо языке программирования может быть разработана в соответствии с одним из перечисленных ниже принципов.

Структурное программирование . Структурное программирование – методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. В соответствии с данной методологией 1)любая программа представляет собой структуру, построенную из трёх типов базовых конструкций: линейная программа, ветвление, цикл; 2) некоторые фрагменты программы (повторяющиеся блоки, либо логически целостные вычислительные блоки) могут оформляться в виде подпрограмм (процедур или функций); 3) разработка программы ведётся пошагово, методом «сверху вниз». Структурный подход обеспечивает создание более понятных и легко читаемых программ, упрощает их тестирование и отладку.

Программирование сверху вниз , когда задача делится на простые, самостоятельно решаемые подзадачи. Затем на основе решенных подзадач выстраивается решение исходной задачи полностью – сверху вниз.

Восходящий метод ( программирование снизу вверх ) работает в обратном направлении: разработчик, начиная с отдельных специальных подпрограмм, постепенно строит на их основе более сложные конструкции и заканчивает самым верхним уровнем программы.

Основным принципом модульного программирования является принцип «разделяй и властвуй». Модульное программирование — это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам. Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Модульные программы значительно легче понимать, а модули могут использоваться как строительные блоки в других программах.

Читайте также:  Майкрософт офис паблишер что это

Основным понятием объектно-ориентированного программирования (ООП) является понятие объект. Объект объединяет в себе структуры данных и характерные только для него процедуры (методы) их обработки. Объединение данных и свойственных им процедур обработки в одном объекте называется инкапсуляцией и является одним из важнейших принципов ООП. Класс есть шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. Следующими важнейшими принципами ООП являются наследование и полиморфизм. Наследование предусматривает создание новых классов на базе существующих и позволяет классу-потомку иметь (наследовать) все свойства класса-родителя. При работе с объектами иерархии «родители – потомки – и т.д.» разрешается задавать одинаковые имена различным по реализации методам, для обработки объектов разных ступеней иерархии. Это явление называется полиморфизм .

Цикл с постусловием (REPEAT-UNTIL)

  • размер шрифта уменьшить размер шрифта увеличить размер шрифта
  • Печать

Цикл с постусловием (REPEAT-UNTIL)

Цикл с постусловием в языке программирования Pascal реализуется с помощью оператора REPEAT. UNTIL.
Синтаксис

  • Условие — это логическое выражение булевского типа (операция отношения или логическая операция)
  • Тело цикла выполняется в любом случае, затем проверяется условие.
  • Инструкции тела цикла (операторы) выполняются в том случае, если значение логического выражения равно false, в противном случае осуществляется выход из цикла
  • Оператор repeat может быть использован для проверки правильности ввода исходных данных
  • Нижняя граница тела цикла определена служебным словом until, поэтому операторные скобки begin и end могут быть опущены (однако если операторы тела цикла заключены в операторные скобки — это не является ошибкой).
  • Операторы repeat и while взаимозаменяемы. То есть, практически любую задачу можно решить как с помощью цикла с постусловием, так и с помощью цикла с предусловием. Использование того или иного цикла зависит от предпочтения программиста.

Блок-схема

Примеры задач на использование цикла с постусловием
Пример №1

Выводится на экран последовательность 20 случайных чисел из промежутка [-10,10]. Определить количество отрицательных чисел больших -5 в данной последовательности.

-10 8 -6 1 7 8 -1 1 -5 -5 5 -9 -4 -5 -7 -9 -10

Количество отрицательных чисел больших -5 равно 2

Пример №2

Определить сумму и количество цифр числа.

Сумма цифр числа равна 15

Количество цифр в числе 5

Пример №3

Вычислить сумму бесконечной последовательности
pi/4=1-1/3+1/5-1/7+. +(-1) n-1 /(2n-1) с точностью до 1e-7.

S = 0.78539821 3.14159285

(Для демонстрации точности вычисления в данной задаче полученная сумма умножается на 4, что дает приблизительное значение числа "пи". Полученное значение числа "пи" сравнивается с выводом встроенной константы Pi.
Примечание: ряд сходится медленно, так что не стоит делать точность больше или eps меньше.)

Все, что необходимо начинающему и опытному программисту


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс — подробно
Линукс — новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей

Цикл с постусловием

Вторая разновидность цикла проверяет условие после выполнения тела цикла. Поэтому правильно будет назвать это условие условием окончания цикла. Цикл такого вида называется циклом с постусловием.

Цикл будет повторяться до тех пор, пока проверка этого условия будет давать результат «ложь» (false), то есть пока условие не выполнено. Даже если условие сразу окажется истинным, цикл выполнится хотя бы один раз.

Описание цикла с постусловием

Блок-схема в общем виде выглядит так (рис. 7.8):

Рис. 7.8. Блок-схема цикла с постусловием

Выполнение цикла продолжается, если проверка логического условия дает результат «ложь». Если логическое условие выполняется, то происходит выход из цикла. Иными словами, если в цикле while проверялось условие продолжения цикла, то в цикле repeat. until — условие окончания.

На языке Паскаль этот тип цикла реализуется так:

Использование циклов repeat и while

Рассмотрим задачу, в которой требуется вводить с клавиатуры числа и подсчитывать их сумму. Сумму необходимо подсчитывать до первого введенного отрицательного числа. Блок-схема алгоритма приведена на рис. 7,9.

Рис. 7.9. Блок-схема алгоритма подсчета суммы вводимых элементов до первого отрицательного числа на базе цикла с постусловием

Пример 7.3. Использование цикла repeat для подсчета суммы вводимых чисел до первого отрицательного числа

Необходимость задать начальное значение переменной А вынуждает нас повторить операторы ввода переменной А дважды — до цикла и внутри него. С этой точки зрения использование while оказывается менее удобным.

Ссылка на основную публикацию
Фотографии купе в поезде
Интересный фотоотчет о поездке на одном из первых рейсов двухэтажных поездов. Смотрим далее, как все устроено внутри таких двухэтажных вагонов...
Уравнение окружности в полярных координатах
Определение: замкнутая плоская кривая, все точки которой одинаково удалены от данной точки (центра О), лежащей в той же плоскости, что...
Уравнение пучка прямых проходящих через точку
Совокупность прямых, проходящих через некоторую точку, называется пучком прямых с центром в этой точке. Если и - уравнения двух пересекающихся...
Фотография с самым большим разрешением в мире
Представляем вашему вниманию нашу подборку самых больших фотографий в мире. Для их просмотра вам будет необходим FlashPlayer. Его можно скачать...
Adblock detector