Учебная работа. Курсовая работа: Создание программы циклической структуры. Работа с массивами

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Курсовая работа: Создание программы циклической структуры. Работа с массивами



Негосударственное образовательное учреждение

высшего проф образования

Столичный технологический институт «ВТУ»




Факультет техники и современных технологий

Кафедра Информатики и автоматизации

КУРСОВАЯ РАБОТА

по дисциплине Программирование на языке высочайшего уровня

на тему:

«Создание программки повторяющейся структуры. Работа с массивами
»

Уровень образования бакалавриат

Направление Информатика и вычислительная техника

Профиль (либо магистерская программка) Сети ЭВМ и телекоммуникации

Выполнил (а):

Студент (ка) __2__ курса

Форма обучения заочная

Фельзинг Владимир Александрович

Москва 2011

Оглавление

Введение____________________________________________________


3



1. Циклические методы на языке Паскаль ____________________


5



2. Решение повторяющихся алгоритмов___________________________


13



3. Работа с массивами________________________________________


22



Заключение_________________________________________________


32



Перечень использованной литературы____________________________


34




Введение

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

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

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

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

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

Так Краснов С.В. в собственной книжке «Программирование на языке высочайшего уровня Turbo Pascal » разглядывает вопросцы разработки программки[8,c.2], уделяя огромное внимание главным понятиям, операторам ввода и вывода данных, составлению программ, реализующих ветвление, циклические процессы, работе с массивами, процедурами и записями. Понятия циклов и их главные условия внедрения, использования и ограничения, что дозволяет безошибочно действовать при разработке программки.

В собственной книжке «Программирование на языке Паскаль» Перминов О.Н. выложил детализированное и формальное изложение всех конструкций языка[11,c.3], а приведенные примеры изложены легкодоступным языком с внедрением разных приемов программирования. Тщательно расписаны циклические методы, все их разновидности с приведение подробных примеров, что дозволяет свободно ориентироваться в большенном потоке инфы, избрать для собственной работе конкретно то, что необходимо для заслуги поставленной цели.

1.
Циклические методы на языке Паскаль

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

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

положить в кастрюлю 1 ложку сахара;

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

В кастрюле 0 ложек сахара.

Положить в кастрюлю 1 ложку сахара.

Если в кастрюле меньше 10 ложек сахара, повторить п.2.

Схематично этот метод представлен на рисунке 1.

Рис.
1
.
Схема метода

Разобраться во всем многообразии циклов легко, отличие только в том понятно ли нам количество повторений, если да, то перед нами арифметический цикл [5]for (цикл «ДЛЯ», цикл со счетчиком), а если нет, то это итерационный цикл.

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

цикл while-do (цикл «ДО», цикл с предусловием);

цикл repeat-until (цикл «ПОКА», цикл с постусловием).[6]

Подробнее эти виды циклов будут рассмотрены ниже.

Рис. 2. Повторяющийся метод

Данный цикл также именуется итеративным. Блок-схема метода цикла представлена на рисунке 2.

Синтаксис:

for <счетчик цикла>:=<изначальное

for <счетчик цикла>:=<изначальное

Данный цикл исполняется до того времени, пока переменная — счетчик цикла не выходит за данные пределы.[4,c.40] При всем этом на каждой итерации цикла счетчик возрастает на 1 (to) либо миниатюризируется на 1 (downto). При всем этом может быть внедрение значения счетчика, к примеру, для расчетов снутри цикла. За пределами цикла сохранение крайнего значения счетчиком цикла не гарантируется.

Выход из цикла делается, если на очередной итерации

Рис. 3. Итеративный цикл

Данный цикл именуется также циклом с предусловием. Блок-схема метода цикла представлена на рисунке 3.

Синтаксис:

while (условие) do <оператор>;

Данный цикл исполняется до того времени, пока условие поистине. Как условие становится неверным, выполнение цикла прерывается. Если условие неверно вначале[1], цикл не будет выполнен никогда.

Рис. 4. Цикл с вступлением

Данный цикл именуется также циклом с постусловием. Блок-схема метода цикла показана на рисунке.

Синтаксис:

repeat

<операторы>

until (условие);

Данный цикл исполняется до того времени, пока условие неверно. Как условие становится настоящим, выполнение цикла прерывается. Если условие поистине вначале, цикл будет выполнен один раз. Следует направить внимание, что система repeat-until делает роль операторных скобок, потому снутри нее может быть размещение нескольких операторов.

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

Операторы break и continue вызываются снутри циклов.

Оператор break прерывает выполнение цикла и передает управление последующему за циклом оператору (см. рис. 6).

Оператор continue прерывает текущую итерацию цикла и передает управление последующей итерации цикла (repeat-until) [7,c.25], либо условию, предыдущему данной для нас итерации (for, while-do)(см. рис. 7).

Следует увидеть, что при использовании break для выхода из цикла for счетчик цикла не портится.

Рис. 6. Цикл с о
ператором break

Рис. 7. Цикл с
оператором continue

время от времени нужно выполнение 1-го цикла снутри другого. Таковая система именуется вложенными циклами (см. набросок 8).

Допускается вложение всех типов циклов друг в друга[2,c.10], также можно вкладывать неограниченное количество циклов.

Рис. 8. Один цикл снутри другого

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

2.
Решение повторяющихся алгоритмов

Графическое отличие повторяющихся алгоритмов мы разглядели, сейчас попробуем сделать метод на примере цикла While-do.

Для организации ввода чисел нужна переменная. Объявим ее, добавив в окно программки [19]

var a:integer;

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

mult:integer;

В нашем случае для цикла while-do нужен счетчик. Объявим переменную count, для что добавим в текст программки

count:integer;

Проинициализируем счетчик.[15] Для этого в программке возникает последующая строчка

count:=1;

Итог занесенных с трок мы лицезреем на рисунке 9.

Рис. 9. Введение счетчика в программку

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

mult:=1;

Переменная инициализируется единицей, а не нулем,[9,c.203] т.к. мы будем перемножать числа, а не ложить.

Организуем цикл while-do. Для этого сделаем в программке строчку

while count<11 do

больше не производится. Нам нужно прекращение выполнения цикла опосля 10-й итерации.

Организуем операторные скобки, для что введем доп строчку в программку

begin

Введем окончание повторяющейся составляющей

end;

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

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

write(‘Введите ‘,count,’-ое

Итог данных строк мы лицезреем на рисунке 10.

Рис. 10. Ввод данных с клавиатуры

Запросим переменную с клавиатуры. Для этого введем в строчку ввода

readln(a);

Увеличим счетчик на 1[3,c.82]. Для этого введем с клавиатуры

count:=count+1;

Добавим приобретенное

mult:=mult*a;

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

writeln(‘Произведение чисел равно: ‘,mult);

Дошли до пт проверки программки. Для пуска программки выберем пункт меню «Run» смотрите набросок 11.

Рис. 11. Пуск программки

Запустим программку, введем произвольные числа в спектре от 1 до 5 и поглядим итог на рисунке 12

Рис. 12. Итог программки

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

Решим задачку: нужно запросить с клавиатуры 10 чисел и отыскать их среднее арифметическое.

Для организации цикла for-to нужно внедрение переменной-счетчика.[14,c.56] Объявим такую переменную. Для этого сделаем строку и добавим её в программку

var count:integer;

Начало написания программки смотрите на рисунке 13

Рис. 13. Введение счетчика в программку

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

a:integer;

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

sum:integer;

Переменная, отвечающая за суммирование, обязана быть проинициализирована перед внедрением, набросок . Установим

sum:=0;

Рис. 14. Ввод суммирующего элемента

Организуем цикл для ввода 10-ти значений от юзера. Для этого вводим в программку строчку

for count:=1 to 10 do

Потому что мы собираемся употреблять в цикле несколько операций, то нужно поставить операторные скобки. Вводим последующую строчку

begin

…введите доп строчку, окончания данного задания

end;

Водим с клавиатуры еще одно

readln(a);

В итоге наш метод смотрится последующим образом, набросок 15. Продолжим запись программки.

Рис. 15. Ввод еще одного значения

Но юзер должен осознать, что за данные ему нужно вводить.

Write (‘Введите ‘, count, ‘-тое

Не забудем в каждой итерации цикла прибавить новое

sum:=sum+a;

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

Writeln (‘Среднее арифметическое:’, sum/10);

Запустим программку, щелкнув пункт меню «Run», набросок 16.

Рис. 16. Пуск программки

нужно юзеру ввести 10-ть значений (от 1 до 10). Итог работы программки видно на рисунке 17

Рис. 17. Итог работы программки

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

3.
Работа с массивами

Массив — упорядоченный набор данных для хранения данных 1-го типа, идентифицируемых при помощи 1-го либо нескольких индексов. В простом случае массив имеет постоянную длину и хранит единицы данных 1-го и такого же типа.[1]

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

Начнем запись программки

Program TestProg;

Begin

End.

Для начала нам нужно найти массив для хранения 10 введенных юзером значений. Для этого введите в программку строчку

var a:array[1..10] of integer;

Обработка массивов весьма нередко делается с помощью цикла for. Для внедрение данного цикла нужно найти переменную-счетчик.

i:integer;

Ввод данных с клавиатуры будет осуществляться в цикле for. Добавим в программку данный цикл. Для этого введем строчку

for i:=1 to 10 do

Потому что в теле цикла будет составной оператор, набросок 18 то введем последующее:

Begin

End;

Рис. 18. Составной оператор цикла

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

Write (‘Введите’,i,’-ый элемент’);

Запросим i-ый элемент у юзера. Для этого введите строчку

readln(a[i]);

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

max:integer;

Инициализируем переменную числом 0. Для этого введите строчку в программку

max:=0;

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

For i:=1 to 10

Begin

End;

Рис. 19. Цикл для поиска наибольшего значения

Проверим, больше ли очередной элемент массива, чем

if (a[i]>max) then max:=a[i];[16]

Выведем юзеру итог выполнения программки, набросок 20.

Write (‘наибольшее

Рис. 20. Готовая программка по поиску наибольшего значения

Запустим программку, для что щелкнем по меню Run для открытия меню.

сейчас, введя по запросу 10 чисел, в качестве результата получим наибольшее из этих значений, набросок 21.

Рис. 21. Итог работы программки

Сейчас мы имеем программку, которая запрашивает у юзера 10 чисел с клавиатуры и заполняет ими массив. сейчас нужно организовать цикл обработки значений массива[10], начиная со 2-го

For i:=2 to 10

Begin

End.

Организуем проверку 2-ух примыкающих значений массива. Для этого в метод добавим условие с составным оператором (рис. 22).

If (a [i-1]>a[i]) then

Begin

End;

Рис. 22. Цикл со составным оператором

Если условие производится, присвоим x меньшее из 2-ух значений. Введите в строчку ввода

x:=a[i];

Присвоим переменной j номер элемента, размещенного перед рассматриваемым. Для этого введите в строчку ввода

j:=i-1;

Организуем цикл, набросок 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. Поиск значения большего х

Организуем цикл вывода упорядоченного массива в консоль.[12] Для этого введем в активную область последующий блок.

For i:=1 to 10 do

Begin

End;

Выведем очередной элемент на экран, набросок 25

Writeln (I,’-ый элемент:’, a[i]);

Рис.25. Вывод данных на экран

Запустим программку. Для что щелкнем меню «Run» и выберем в открывшемся меню пункт «Run».[17]

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

Рис. 26. Ввод данных в программку

Опосля ввода значений программка упорядочит массив и выведет его на экран, набросок 27

Рис. 27. Итог работы программки.

Заключение

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

цикл for (цикл «ДЛЯ», цикл со счетчиком, тут значения обязаны иметь порядковый тип, т.к. один при каждой итерации цикла);

цикл while-do (цикл «ДО», цикл с предусловием будет производиться до того времени пока выражение воспринимает настоящее

цикл repeat-until (цикл «ПОКА», цикл с постусловием ведет себя обратно циклу «ДО», т.е. пока выражение неверное тело цикла длится, как логическое выражение станет настоящим, цикл закончится).

Нами были рассмотрены примеры использования циклов, а так же мы узнали, что тело цикла с постусловием постоянно производится хотя бы один раз, а вот тело цикла с предусловием быть может так и не выполнено[18], данный факт нужно учесть при написании программки.

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

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

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

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

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

Перечень использованной литературы

1. Богатырев Р. журнальчик «Мир ПК » выпуск №4/2001 от 17.04.2001, с.58

2. Вылиток А.А., Матвеева Т.К. Динамические структуры данных. Задание практикума. язык Паскаль. // Учебно-методическое пособие. – М.: Издательский отдел Факультета ВМиК МГУ им. М.В. Ломоносова, 2005. – с. 8-20.

3. Грогоно П. Программирование на языке Паскаль. — М.: мир, 1982. — с. 108

4. Зверева О.М., Саблина Н.Г. Среда Турбо Паскаль 7.0. Реализация простых алгоритмов: Конспект лекций. часть 1. — Екатеринбург: Изд-во УМЦ-УПИ, 2004. — с.112

5. Игошина Л.В. Программирование на языке высочайшего уровня. Рабочая программка дисциплины. — Пенза: ПГУ, 2004. — с.5

6. Йенсен К., Вирт Н. Паскаль. Управление для юзера и описание языка.//Пер. с англ. и предисл. Д.Б.Подшивалова — М.: деньги и статистика,1989. — с. 151

7. Ключарев А.А., Матьяш В.А., Щекин С.В. Структуры и методы обработки данных: Учебное пособие — СПбГУАП. СПб,2003 – с. 21-30

8. Краснов С.В. Программирование на языке высочайшего уровня TURBO PASCAL: Учебное пособие. — Ульяновск: УлГТУ, 2004. — с.27-31

9. Моргун А. Н. Программирование на языке Паскаль (Pascal). Базы обработки структур данных. — М.: Диалектика, 2005. — с. 576

10. Максимова Т.М. Программирование на языках высочайшего уровня: Методические указания к выполнению курсового проекта. — СПб.: ГУАП, 2005. — с.27

11. Перминов О.Н. Программирование на языке Паскаль:Справочник.– М.: Радио и связь, 1998. – с.243-304

12. Подвальный С.Л., Холопкина Л.В., Носачева М.П. Программирование на языке Паскаль: практикум — 2008, с.24

13. Рубенкинг Н.Дж. Турбо Паскаль для Windows: в 2-х томах. Пер. с англ.. — М.: мир, 1993. – с.78

14. Сулейманов Р.Р. Методика решения учебных задач средствами программирования//Методическое пособие – М: 2010, с. 112

15. Трофимов С.П. Программирование на языке высочайшего уровня: Рабочая программка дисциплины. — Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2005. — с.12

16. Шумова Е.О., Рачева Н.В. Программирование на языке высочайшего уровня: Методические указания к курсовой работе. — СПб.: СЗТУ, 2002. — с.36

17. Пахомова
А.В. Методическое пособие «Программирование на языке Turbo Pascal.- URL: HTTP://tp7.info/metod_uk2.php (дата воззвания: 03.06.2011)

18. Учебник
Turbo Pascal 7.0 — CибГУТИ, 2011 [электрический ресурс] — URL: HTTP://pascal.guti.ru/fornext.html (дата воззвания: 14.07.2011)

19. Программирование. Динамические списки Pascal.//веб-сайт посвященный языку программирования Turbo Pascal — 2010 [электрический ресурс] — URL: HTTP://www.pascal.helpov.net/index/dynamic_lists_pascal_programming (дата воззвания: 08.07.2011)

20. Программирование на языке высочайшего уровня TURBO PASCAL: Учебное пособие. — 2004 [электрический ресурс] — URL: HTTP://www.doklad.ref24.ru/works/62792.html (дата воззвания: 21.06.2011)

]]>