Программы циклической структуры
Определение программы циклической структуры. Характеристика основных видов циклов. Рассмотрение структуры программы на высоком языке программирования Pascal. Формирование, хранение и функционирование массивов данных. Введение счетчика в программу.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.02.2020 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Негосударственное образовательное учреждение высшего образования
Московский технологический институт
Факультет Техники и современных технологий
Кафедра Информатики и автоматизации
Курсовая работа
По дисциплине Программирование на языке высокого уровня
На тему: «Программы циклической структуры. Массивы данных»
Выполнил:
Салов Всеволод Юрьевич
Москва 2018
Актуальность выбранной темы для курсовой работы, обусловлена тем, что программы циклической структуры пользуются большой популярностью, и, так же, как массивы данных используются повсеместно. Изо дня в день в нашей обычной жизни мы вынуждены осуществлять повторяющиеся действия. Мы тратим много наших сил и личного времени на их выполнение. К сожалению, облегчить, либо избежать их, зачастую не представляется возможным. В итоге мы делаем одни и те же действия огромное количество раз. Но век информационных технологий позволил нам с помощью языков программирования облегчить эти действия. Благодаря им мы можем описывать и упрощать множество действий. Теперь нет нужды шаг за шагом описывать повторяющиеся действия, для этого можно воспользоваться циклическими алгоритмами. Проект на данную тему позволит глубже взглянуть на возможности хранения и обработки информации, а так же мы рассмотрим, в каких случаях написание программы циклической структуры поможет эффективно справиться с задачей. Массивы являются удобным и повсеместно используемым способом хранения элементов одного типа данных в едином контейнере для большего удобства и эффективности программирования. Это позволяет уменьшить общее количество имен переменных, в обязательном порядке отслеживаемых. С их помощью мы можем сохранять и манипулировать элементами данных при помощи всего лишь одной переменной. Они незаменимы, когда приходится работать с задачами, связанными с обработкой большого количества значений. Например, таких как создание отсортированных и неотсортированных списков данных, сохранение таблиц данных, а также при решении научно-технических и экономических задач и многого другого. Для облегчения обработки элементов массива очень удобно использовать циклы. Данные, приведенные в проекте, будут полезны для глубокого изучения теоретических основ данной темы для программистов, как начинающего, так и продвинутого уровня.
Объект исследования: циклические структуры и массивы данных.
Предмет исследования: Теория циклических структур и массивов данных.
Цель: изучить структуру циклической программы и массивы данных
Задачи проекта:
1. Проанализировать актуальность работы.
2.Ознакомится с теоретической базой по данной теме.
3. Дать определения программы циклической структуры.
4. Рассмотреть структуру программы на высоком языке программирования Pascal.
5. Изучить, как формируются, хранятся и функционируют массивы данных.
6. Сделать вывод по проекту, соотнести его с поставленными целью и задачами.
Обзор источников. Рассмотрим основные использованные источники.
Так Немнюгин С. А. в своей книге “ Turbo Pascal” рассматривает вопрос разработки программы[16,c.12], уделяя большое внимание основным понятиям, операторам ввода и вывода данных, составлению программ, реализующих ветвление, циклические процессы, работе с массивами, процедурами и записями. Понятия циклов и их основные условия применения, использования и ограничения, что позволяет безошибочно пользоваться при создании программы.
В своей книге “ Паскаль. Программирование на языке высокого уровня” Павловская Т.А. написала детальное и формальное изложение всех конструкций языка[17,c.9], а приведенные примеры изложены доступным языком с использованием различных приемов программирования. Подробно расписаны циклические алгоритмы, все их разновидности с приведение подробных примеров, что позволяет свободно ориентироваться в большом потоке информации, выбрать для своей работе именно то, что нужно для достижения поставленной цели.
Циклические алгоритмы и их виды
Цикл -- разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом. Написание циклического алгоритма позволяет решать любые практические задачи, связанные с реализацией повторяющихся действий.
Последовательность инструкций, предназначенная для многократного исполнения, называется телом цикла. Однократное выполнение тела цикла называется итерацией. Выражение определяющее, будет в очередной раз выполняться итерация, или цикл завершится, называется условием выхода или условием окончания цикла (либо условием продолжения в зависимости от того, как интерпретируется его истинность -- как признак необходимости завершения или продолжения цикла). Переменная, хранящая текущий номер итерации, называется счётчиком итераций цикла или просто счётчиком цикла. Цикл не обязательно содержит счётчик, счётчик не обязан быть один -- условие выхода из цикла может зависеть от нескольких изменяемых в цикле переменных, а может определяться внешними условиями (например, наступлением определённого времени), в последнем случае счётчик может вообще не понадобиться.
Исполнение любого цикла включает первоначальную инициализацию переменных цикла, проверку условия выхода, исполнение тела цикла и обновление переменной цикла на каждой итерации. Кроме того большинство языков программирования предоставляют средства для досрочного завершения цикла, то есть выхода из цикла независимо от истинности условия выхода.
Основные виды циклов
1) Безусловные циклы
Иногда в программах используются циклы, выход из которых не предусмотрен логикой программы. Такие циклы называются безусловными, или бесконечными. Специальных синтаксических средств для создания бесконечных циклов, ввиду их нетипичности, языки программирования не предусматривают, поэтому такие циклы создаются с помощью конструкций, предназначенных для создания обычных (или условных) циклов. Для обеспечения бесконечного повторения проверка условия в таком цикле либо отсутствует (если позволяет синтаксис, как, например, в цикле LOOP…END LOOP языка Ада), либо заменяется константным значением (while true do … в Паскале).
2) Цикл с предусловием
Цикл с предусловием -- цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В большинстве процедурных языков программирования реализуется оператором while, отсюда его второе название -- while-цикл.
3) Цикл с постусловием
Цикл с постусловием -- цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Паскаль этот цикл реализует оператор repeat..until; в С++: do…while.
В трактовке условия цикла с постусловием в разных языках есть различия. В Паскале и языках, произошедших от него, условие такого цикла трактуется как условие выхода (цикл завершается, когда условие истинно, в русской терминологии такие циклы называют ещё «цикл до»), а в С++ -- как условие продолжения (цикл завершается, когда условие ложно, такие циклы иногда называют «цикл пока»)…..
4) Цикл с выходом из середины
Цикл с выходом из середины -- наиболее общая форма условного цикла. Синтаксически такой цикл оформляется с помощью трёх конструкций: начала цикла, конца цикла и команды выхода из цикла. Конструкция начала маркирует точку программы, в которой начинается тело цикла, конструкция конца -- точку, где тело заканчивается. Внутри тела должна присутствовать команда выхода из цикла, при выполнении которой цикл заканчивается и управление передаётся на оператор, следующий за конструкцией конца цикла. Естественно, чтобы цикл выполнился более одного раза, команда выхода должна вызываться не безусловно, а только при выполнении условия выхода из цикла.
Легко видеть, что с помощью цикла с выходом из середины можно легко смоделировать и цикл с предусловием (разместив команду выхода в начале тела цикла), и цикл с постусловием (разместив команду выхода в конце тела цикла).
5) Цикл cо счётчиком
Цикл со счётчиком -- цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. В большинстве процедурных языков программирования реализуется оператором for, в котором указывается счётчик (так называемая «переменная цикла»), требуемое количество проходов (или граничное значение счётчика) и, возможно, шаг, с которым изменяется счётчик.
Неоднозначен вопрос о значении переменной по завершении цикла, в котором эта переменная использовалась как счётчик. Например, если в программе на языке Паскаль встретится конструкция вида:
i := 100;
for i := 0 to 9 do begin
... тело цикла
end;
k := i;
возникает вопрос: какое значение будет в итоге присвоено переменной k: 9, 10, 100, может быть, какое-то другое? А если цикл завершится досрочно? Ответы зависят от того, увеличивается ли значение счётчика после последней итерации и не изменяет ли транслятор это значение дополнительно. Ещё один вопрос: что будет, если внутри цикла счётчику будет явно присвоено новое значение? Различные языки программирования решают данные вопросы по-разному. В некоторых поведение счётчика чётко регламентировано. В других, например, в том же Паскале, стандарт языка не определяет ни конечного значения счётчика, ни последствий его явного изменения в цикле, но не рекомендует изменять счётчик явно и использовать его по завершении цикла без повторной инициализации. Программа на Паскале, игнорирующая эту рекомендацию, может давать разные результаты при выполнении на разных системах и использовании разных трансляторов.
Радикально решён вопрос в языке Ада: счётчик считается описанным в заголовке цикла, и вне его просто не существует. Даже если имя счётчика в программе уже используется, внутри цикла в качестве счётчика используется отдельная переменная. Счётчику запрещено явно присваивать какие бы то ни было значения, он может меняться только внутренним механизмом оператора цикла. В результате конструкция
i := 100;
for i in (0..9) loop
... тело цикла
end loop;
k := i;
внешне аналогичная вышеприведённому циклу на Паскале, трактуется однозначно: переменной k будет присвоено значение 100, поскольку переменная i, используемая вне данного цикла, не имеет никакого отношения к счётчику i, который создаётся и изменяется внутри цикла. Считается, что подобное обособление счётчика наиболее удобно и безопасно: не требуется отдельное описание для него и минимальна вероятность случайных ошибок, связанных со случайным разрушением внешних по отношению к циклу переменных. Если программисту требуется включить в готовый код цикл со счётчиком, то он может не проверять, существует ли переменная с именем, которое он выбрал в качестве счётчика, не добавлять описание нового счётчика в заголовок соответствующей процедуры, не пытаться использовать один из имеющихся, но в данный момент «свободных» счётчиков. Он просто пишет цикл с переменной-счётчиком, имя которой ему удобно, и может быть уверен, что никакой коллизии имён не произойдёт.
Цикл со счётчиком всегда можно записать как условный цикл, перед началом которого счётчику присваивается начальное значение, а условием выхода является достижение счётчиком конечного значения; к телу цикла при этом добавляется оператор изменения счётчика на заданный шаг. Однако специальные операторы цикла со счётчиком могут эффективнее транслироваться, так как формализованный вид такого цикла позволяет использовать специальные процессорные команды организации циклов.
Циклические алгоритмы на языке Pascal
Зачастую необходимо не только выполнить какую-либо последовательность действий, но и повторить ее определенное количество раз. Например, если мы составляем алгоритм приготовления какого-либо блюда, где есть операция «высыпать в тару 15 кружек муки», то мы можем столкнуться с тем, что нам надо выполнить действие «высыпать в тару 1 кружку муки» 15 раз подряд, т.е. наш алгоритм, будет выглядеть следующим образом:
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
высыпать в тару 1 кружку муки;
Такой способ записи не является выгодным, т.к. расходуется больше памяти, а также на это тратиться много времени. Если применить циклы к данной программе, то алгоритм можно сократить, например, так:
В таре 0 кружек муки;
Высыпать в тару 1 кружку муки;
Если в таре меньше 15 кружек муки, повторить п.2.
Схематично этот алгоритм представлен на рисунке 1.
Рисунок 1 - Схема алгоритма
Разобраться во всем разнообразии циклов не сложно, отличие лишь в том известно ли нам количество повторений, если да, то перед нами арифметический цикл[1] for (цикл «ДЛЯ», цикл со счетчиком), если же нет, то это итерационный цикл.
В языке программирования Pascal итерационные циклы подразделяются на два вида алгоритмических циклов:
цикл while-do (цикл «ДО», цикл с предусловием);
цикл repeat-until (цикл «ПОКА», цикл с постусловием).[2]
Рассмотрим подробнее эти виды циклов.
Данный цикл также называется итерационным. Блок-схема алгоритма цикла представлена на рисунке 2.
Рисунок 2 - Циклический алгоритм
Данный цикл также называется итеративным. Блок-схема алгоритма цикла представлена на рисунке 2.
Синтаксис:
for <счетчик цикла>:=<начальное значение> to <конечное значение> do <оператор>;
for <счетчик цикла>:=<начальное значение> downto <конечное значение> do <оператор>;
Данный цикл выполняется до тех пор, пока переменная -- счетчик цикла не выходит за заданные пределы.[3,c.40] При этом на каждой итерации цикла счетчик увеличивается на 1 (to) или уменьшается на 1 (downto). При этом вероятно использование значения счетчика, например, для расчетов внутри цикла. За пределами цикла сохранение последнего значения счетчиком цикла не гарантируется.
Выход из цикла осуществляется, если на очередной итерации значение счетчика цикла вышло за пределы диапазона значений цикла. Таким образом, если для цикла с to указать начальное значение больше конечного, то цикл не отработает ни разу.
Рисунок 3 - Итеративный цикл
Данный цикл называется также циклом с предусловием. Блок-схема алгоритма цикла представлена на рисунке 3.
Синтаксис:
while (условие) do <оператор>;
Данный цикл исполняется до тех пор, пока условие истинно. Как только условие становится ложным, выполнение цикла прерывается. Если условие ложно изначально[4], цикл не будет выполнен ни разу.
Рисунок 4 -Цикл с предисловием
Данный цикл называется также циклом с постусловием. Блок-схема алгоритма цикла показана на рисунке 4.
Синтаксис:
repeat
<операторы>
until (условие);
Данный цикл выполняется ровно до тех пор, пока условие ложно. Как только условие становится истинным, выполнение цикла прерывается. Если условие истинно изначально, цикл будет выполнен один раз. Следует обратить внимание, что конструкция repeat-until выполняет роль операторных скобок, поэтому внутри нее возможно размещение нескольких операторов.
Операторы break и continue вызываются внутри циклов.
Оператор break прерывает выполнение цикла и передает управление следующему за циклом оператору (см. рис. 6).
Оператор continue прерывает текущую итерацию цикла и передает управление следующей итерации цикла (repeat-until) [5,c.25], или условию, предшествующему этой итерации (for, while-do)(см. рис. 7).
Рисунок 5 - Цикл с постусловием
Следует заметить, что при использовании break для выхода из цикла for счетчик цикла не портится.
Рисунок 6 - Цикл с оператором break
Иногда необходимо выполнение одного цикла внутри другого. Такая конструкция называется вложенными циклами (см. рисунок 8).
Рисунок 7 - Цикл с оператором continue
Допускается вложение любых типов циклов друг в друга[2,c.10], а также можно вкладывать неограниченное количество циклов.
Мы рассмотрели блок-схемы и принципы циклических алгоритмов, теперь необходимо составить программы с их применением.
Решение циклических алгоритмов
Мы рассмотрели графическое отличие циклических алгоритмов, теперь создадим алгоритм на примере цикла While-do.
Для организации ввода чисел необходима переменная. Объявим ее, добавив в окно программы [6]
var a:integer;
Для подсчета произведения также необходима переменная. Для того, чтобы объявить ее, добавим следующую строку mult:integer;
В нашем случае для цикла while-do необходим счетчик. Объявим переменную count, для чего добавим в текст программы count:integer;
Проинициализируем счетчик.[7] Для этого в программе появляется следующая строка count:=1;
Результат занесенных с трок мы видим на рисунке 8.
Рисунок 8 - Введение счетчика в программу
Произведем инициализацию переменной, отвечающей за произведение чисел. Для этого введем строку:
mult:=1;
Переменная инициализируется единицей, а не нулем,[8,c.203] т.к. мы будем перемножать числа, а не складывать.
Организуем цикл while-do. Для этого создадим в программе строку
while count<11 do
Значение "11" в качестве граничного результата выбрано в связи с тем, что если условие не выполняется, то и цикл тоже. Нам необходимо остановить выполнение цикла после 10-й итерации.
Организуем операторные скобки, для чего введем дополнительную строку в программу
begin
Введем окончание циклической составляющей
end;
Программы пишутся для пользователей, хорошо разбирающихся в своей предметной области, в которой они используют программу. Пользователи не обязаны понимать, что и как реализовал в этой программе разработчик. Поэтому прикладные программы должны иметь удобный для пользователя интерфейс, снабжаться удобными подсказками, как о запрашиваемых данных, так и о выведенных результатах. Эти подсказки должны быть лаконичны и понятны пользователю.
Необходимо уточнить пользователю, какие данные необходимо ввести с клавиатуры. Для этого вносим в программу строку
write('Введите ',count,'-ое значение:');
Результат заданных строк мы видим на рисунке 9.
Рисунок 9 - Ввод данных с клавиатуры
Запрашиваем переменную с клавиатуры. Для этого введем в строку ввода
readln(a);
Увеличиваем счетчик на 1[9,c.82]. Для этого введем с клавиатуры
count:=count+1;
Добавляем полученное значение к произведению. Для этого введем с клавиатуры
mult:=mult*a;
Добавляем вывод на экран строки результата. Для этого необходимо в программу добавить строку
writeln('Произведение чисел равно: ',mult);
Дошли до пункта проверки программы. Для запуска программы выберем пункт меню «Run» смотрите рисунок 10.
Рисунок 10 - Запуск программы
Запустим программу, введем произвольные числа в диапазоне от 1 до 5 и посмотрим результат на рисунке 11.
Рисунок 11 - Результат программы
Аналогично изложенной программе, создадим алгоритм со вложенным циклом используя цикл for-to.
Решим задачу: необходимо запросить с клавиатуры 10 чисел и найти их среднее арифметическое число.
Для организации цикла for-to необходимо воспользоваться переменной-счетчиком.[10,c.56]Объявляем такую переменную. Для этого создаем строку и добавляем её в программу
var count:integer;
Начало написания программы смотрите на рисунке 12.
Рисунок 12 - Введение счетчика в программу
Для запроса целочисленных данных от пользователя необходима переменная типа integer. Для этого введем строку программы
a:integer;
Для подсчета результата так же необходима переменная. В этой переменной будут суммироваться данные, вводимые пользователем.
sum:integer; циклический программа массив счетчик
Переменная, отвечающая за суммирование, должна быть проинициализирована перед использованием, рисунок . Установим значение переменной, равное 0. Для этого введем в программу строку, рисунок 13.
sum:=0;
Рисунок 13 - Ввод суммирующего элемента
Организуем цикл для ввода 10-ти значений от пользователя. Для этого вводим в программу строку
for count:=1 to 10 do
Так как мы собираемся использовать в цикле несколько операций, то необходимо поставить операторные скобки. Вводим следующую строку
begin
...введите дополнительную строку, окончания данного задания
end;
Водим с клавиатуры очередное значение. Для этого вводим в алгоритм следующую команду
readln(a);
В результате всех этих действий наш алгоритм выглядит следующим образом, рисунок 14. Продолжим запись программы.
Рисунок 14 - Ввод очередного значения
Пользователю необходимо понять, что за данные программа у него запрашивает. Добавляем строку
Write (`Введите `, count, `-тое значение:');
Не забудем в каждой итерации цикла прибавить новое значение к сумме. Для этого добавим строку в программу
sum:=sum+a;
В конце программы выведем результат на экран, следующей строкой
Writeln (`Среднее арифметическое:', sum/10);
Запустим программу, щелкнув пункт меню «Run», рисунок 15.
Рисунок 15 - Запуск программы
Пользователю необходимо ввести 10-ть значений (от 1 до 10). Результат работы программы видно на рисунке 16
Рисунок 16 - Результат работы программы
Мы рассмотрели два варианта написания программы с использованием двух циклов. Как видно из данных примеров необходимо всесторонне подходить к написанию программы, чтобы пользователю было понятно и удобно использовать написанную программу. Для этого и вводим строки позволяющие пользователю получить желаемый результат работы программы.
Массив. Преимущество использования массивов
Массив -- упорядоченный набор данных для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.[4]
Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, а с двумя - двумерными, и т. д. Одномерный массив - нестрого соответствует вектору в математике; двумерный («строка», «столбец») - матрице. Чаще всего применяются массивы с одним или двумя индексами; реже - с тремя; ещё большее количество индексов -встречается крайне редко.
Для лучшего понимания того, что из себя представляет массив давайте рассмотрим рисунок 17
Рисунок 17 - Наглядный пример массива
На рисунке изображен массив целых чисел, глядя на него мы можем понять следующее:
- У каждого массива есть своё имя
- Он может содержать в себе заданное количество элементов. Минимальное значение 1, максимальное же значение ограничено только памятью компьютера.
- Массив может хранить элементы только одного типа. Например, вы не можете хранить в одном массиве переменные типа integer и типа double.
Также к преимуществам массивов относится и то, что не требуется помещать данные в каждый элемент массива и нет надобности сохранять элементы последовательно. Массивы особенно полезны, если нужно обрабатывать целый набор элементов, как если бы это был один элемент. Например, добавить к каждому имени однообразную информацию. Можно выделить ряд достоинств:
- лёгкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим)
- одинаковое время доступа ко всем элементам
- малый размер элементов: они состоят только из информационного поля
-позволяют сократить кол-во инициализированных переменных до минимума
Одномерные и двумерные массивы. Типовые алгоритмы их обработки
Работа с многомерными массивами всегда связана с организацией вложенных циклов, рассмотрим пример написания такого массива.
Начинаем запись программы
Program TestProg;
Begin
End.
Для начала нам необходимо определить массив для хранения десяти введенных пользователем значений. Для этого введите в программу строку
var a:array[1..10] of integer;
Обработка массивов очень часто производится при помощи цикла for. Для использование данного цикла необходимо определить переменную-счетчик.
Рисунок 18 - Составной оператор цикла
i:integer;
Ввод данных с клавиатуры будет осуществляться в цикле for. Добавим в программу данный цикл. Для этого введем строку
for i:=1 to 10 do
Так как в теле цикла будет составной оператор, рисунок 18 то введем следующее:
Begin
End;
Сделаем запрос на ввод очередного элемента. В алгоритм программы добавляем строку
Рисунок 19 - Цикл для поиска максимального значения
Write (`Введите',i,'-ый элемент');
Запросим i-ый элемент у пользователя. Для этого введите строку
readln(a[i]);
Для нахождения максимального значения нам понадобится еще одна переменная, она будет следующая
max:integer;
Инициализируем переменную числом 0. Для этого вводим строку в программу
max:=0;
Организуем цикл для поиска максимального значения, смотрите рисунок 19 . Необходимо перебрать все элементы массива.
For i:=1 to 10
Begin
End;
Проверим, больше ли очередной элемент массива, чем значение в max? Если больше, то запишем это значение в max. Для этой операции в алгоритм программы необходимо добавить следующую строку
if (a[i]>max) then max:=a[i];[11]
Выведем пользователю результат выполнения программы, рисунок 20.
Write (`максимальное значение в массиве:', max);
Рисунок 20 - Готовая программа по поиску максимального значения
Запустим программу, для чего щелкнем по меню Run для открытия меню.
Теперь, введя по запросу 10 чисел, в качестве результата получим наибольшее из этих значений, рисунок 21.
Рисунок 21 - Готовая программа по поиску максимального значения
На данный момент мы имеем программу, которая запрашивает у пользователя 10 чисел с клавиатуры и заполняет ими массив. Теперь необходимо организовать цикл обработки значений массива[12], начиная со 2-го
For i:=2 to 10
Begin
End.
Организуем проверку двух соседних значений массива. Для этого в алгоритм добавим условие с составным оператором (рис. 22).
If (a [i-1]>a[i]) then
Begin
End;
Если условие выполняется, присвоим x наименьшее из двух значений. Введите в строку ввода
x:=a[i];
Присвоим переменной j номер элемента, расположенного перед рассматриваемым. Для этого введите в строку ввода
j:=i-1;
Рисунок 22 - Цикл с составным оператором
Организуем цикл, рисунок 23, для перемещения блока значений, больших x вперед по массиву.
While (j>0 and (a[j]>x) do
Begin
End;
Рисунок 23 - Перемещение блока значений
Передвинем очередное значение вперед по массиву. Для этого введем в программу
a[j+1]:=a[j];
Уменьшим j на 1 для движения к началу массива.[13,c.70]
j:=j-1;
Как только переберем весь блок с значениями больше x, запишем x в конце этого блока. Для этого введем строку, рисунок 24
a[j+1]:=x;
Рисунок 24 - Поиск значения большего x
Организуем цикл вывода упорядоченного массива в консоль.[14] Для этого введем в активную область следующий блок.
For i:=1 to 10 do
Begin
End;
Выведем очередной элемент на экран, рисунок 25
Writeln (I,'-ый элемент:', a[i]);
Рисунок 25 - Вывод данных на экран
Запустим программу. Для чего щелкнем меню «Run» и выберем в открывшемся меню пункт «Run».[15]
Теперь необходимо пользователю ввести значения для вычисления, после этого программа вычислит искомое значение, рисунок 26
Рисунок 26 - Ввод данных в программу
После ввода значений программа упорядочит массив и выведет его на экран, рисунок 27
Рисунок 27 - Результат работы программы
Заключение
В курсовой работе рассмотрены методы обработки одномерных и двумерных массивов натуральных и действительных чисел. Мы выяснили из проведенной работы что отсутствие циклов привело бы к большим затруднениям, память отведенная под программу была бы перегружена, не говоря уже о трудоемкости и быстродействии программы. На протяжении всей работы мы рассматривали разнообразие циклов начиная с арифметического, заканчивая итерационным циклом, который в свою очеред разделился на:
цикл for (цикл «ДЛЯ», цикл со счетчиком, здесь значения должны иметь порядковый тип, т.к. значение переменной цикла увеличивается или уменьшается на один при каждой итерации цикла);
цикл while-do (цикл «ДО», цикл с предусловием будет выполняться до тех пор пока выражение принимает истинное значение, но стоит выражению принять ложное значение, то осуществляется переход к следующему оператору);
цикл repeat-until (цикл «ПОКА», цикл с постусловием ведет себя противоположно циклу «ДО», т.е. пока выражение ложное тело цикла продолжается, как только логическое выражение станет истинным, цикл прекратится).
Нами были рассмотрены примеры использования циклов, а так же мы выяснили, что тело цикла с постусловием всегда выполняется хотя бы один раз, а вот тело цикла с предусловием может быть так и не выполнено, этот факт необходимо учитывать при написании программы.
Этот вопрос очень актуален в наше время, потому что в настоящее время размер обрабатываемых данных постоянно увеличивается
Библиографический список
1. Игошина Л.В. Программирование на языке высокого уровня. Рабочая программа дисциплины. - Пенза: ПГУ, 2004. - с.5
2. Вылиток А.А., Матвеева Т.К. Динамические структуры данных. Задание практикума. Язык Паскаль. // Учебно-методическое пособие. - М.: Издательский отдел Факультета ВМиК МГУ им. М.В. Ломоносова, 2005. - с. 8-20.
3. Зверева О.М., Саблина Н.Г. Среда Турбо Паскаль 7.0. Реализация простейших алгоритмов: Конспект лекций. Часть 1. - Екатеринбург: Изд-во УМЦ-УПИ, 2004. - с.112
4. Богатырев Р. Журнал «Мир ПК» выпуск №4/2001 от 17.04.2001, с.58
5. Ключарев А.А., Матьяш В.А., Щекин С.В. Структуры и алгоритмы обработки данных: Учебное пособие - СПбГУАП. СПб,2003 - с. 21-30
6. Трофимов С.П. Программирование на языке высокого уровня: Рабочая программа дисциплины. - Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2005. - с.12
7. Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. - М.: Диалектика, 2005. -- с. 576
8. Грогоно П. Программирование на языке Паскаль. -- М.: Мир, 1982. -- с. 108
9. Сулейманов Р.Р. Методика решения учебных задач средствами программирования//Методическое пособие - М: 2010, с. 112
10. Шумова Е.О., Рачева Н.В. Программирование на языке высокого уровня: Методические указания к курсовой работе. - СПб.: СЗТУ, 2002. - с.36
11. Максимова Т.М. Программирование на языках высокого уровня: Методические указания к выполнению курсового проекта. - СПб.: ГУАП, 2005. - с.27
12. Рубенкинг Н.Дж. Турбо Паскаль для Windows: в 2-х томах. Пер. с англ.. - М.: Мир, 1993. - с.78
13. Подвальный С.Л., Холопкина Л.В., Носачева М.П. Программирование на языке Паскаль: практикум - 2008, с.24
14. Немнюгин С. А. , Turbo Pascal, СПб.: Питер, 2008
15. Павловская Т.А., Паскаль. Программирование на языке высокого уровня, СПб.: ПИТЕР, 2010
Размещено на Allbest.ru
...Подобные документы
Решение задач, прямо связанных с применением циклов и массивов. Условия применения различных видов циклической структуры. Операторы цикла с предусловием while, постусловием do-while и for. Особенности работы с одномерными и двумерными массивами.
курсовая работа [1,1 M], добавлен 31.08.2019Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.
курсовая работа [1,7 M], добавлен 06.01.2014Составление алгоритмов и написание программ циклической структуры с использованием векторов, указателей и векторов указателей на вектор на языке C++. Статическое и динамическое распределение памяти. Функция ввода и обработки элементов вектора или матрицы.
контрольная работа [210,5 K], добавлен 25.03.2015Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.
курсовая работа [742,6 K], добавлен 03.07.2011Создание программы для обработки структуры данных. Возможность ввода и записи данных на персональном компьютере. Прикладное программирование на языке Turbo Pascal. Свободное редактирование записанных данных с помощью программы, написанной на Turbo Pascal.
лабораторная работа [11,4 K], добавлен 13.05.2011Изучение основных конструкций и способов написания программ на языке Паскаль. Обзор принципов работы и интерфейса написанной программы. Обработка и модификация двумерных массивов. Файловые структуры данных. Текстовые файлы. Элементы машинной графики.
курсовая работа [761,7 K], добавлен 11.03.2015Разработка алгоритма поставленной задачи по обработке числовой информации в среде Turbo Pascal 7.0 с базовым языком программирования Pascal, отладка программы, реализующей разработанный алгоритм. Описание структуры программы, ее вспомогательных процедур.
курсовая работа [668,0 K], добавлен 25.02.2010Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.
курсовая работа [19,5 K], добавлен 19.05.2011Рассмотрение правил записи, способов ввода и вывода, использования функций обработки символьных данных в Pascal. Описание алгоритмизации и программирования файловых структур данных, проектирования структуры файла. Ознакомление с работой данных массива.
курсовая работа [336,2 K], добавлен 27.06.2015Основные сведения о языке программирования Pascal. Листинг программы с комментариями. Диагональ элементов вектора и матрицы. Использование команд ввода-вывода информации. Быстродействие выполнения программы при компиляции. Отражение процессов вычисления.
курсовая работа [1,9 M], добавлен 05.05.2009Условие задачи: составление программы на языке Pascal для определения оптимального маршрута с ближайшим временем отправления, меньшим пребыванием в пути. Решение методом последовательного испытания. Формы представления данных, набора тестов. Результаты.
курсовая работа [22,0 K], добавлен 07.11.2009Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.
курсовая работа [198,1 K], добавлен 03.02.2010Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.
курсовая работа [896,7 K], добавлен 18.05.2014Выбор алгоритма решения задачи. Разработка программы, обеспечивающую эффективную обработку и хранение информации с использованием линейных списков. Написание программы на псевдокоде и на языке программирования высокого уровня. Результаты работы программы.
курсовая работа [2,1 M], добавлен 21.04.2012Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.
курсовая работа [711,4 K], добавлен 27.07.2014Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.
курсовая работа [1,1 M], добавлен 17.03.2015Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.
контрольная работа [360,4 K], добавлен 13.06.2012Описание возможностей языка программирования Turbo Pascal. Написание программы создания файлов с прямым доступом, которая также будет обрабатывать наборы данных с определенными полями и ограничениями. Контрольный пример работы поисковой программы.
курсовая работа [563,6 K], добавлен 22.01.2016Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Характеристика используемой операционной системы, языка программирования. Структура программы на языке Turbo Pascal 7.1. Операторы языка Turbo Pascal. Проведение сортировки записей. Алгоритмы программы и подпрограмм. Причины возникновения ошибок.
курсовая работа [454,1 K], добавлен 13.06.2014