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

Автор работы: Пользователь скрыл имя, 23 Марта 2013 в 17:55, курсовая работа

Описание

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

Содержание

Введение____________________________________________________
3
Циклические алгоритмы на языке Паскаль ____________________
5
Решение циклических алгоритмов___________________________
13
Работа с массивами________________________________________
22
Заключение_________________________________________________
32
Список использованной литературы_________________________

Работа состоит из  1 файл

Курсовая.doc

— 940.00 Кб (Скачать документ)

a:integer;

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

sum:integer;

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

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. Результат работы программы

 

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

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

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

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

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

Program TestProg;

Begin

End.

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

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. Цикл для поиска максимального значения

 

Проверим, больше ли очередной элемент массива, чем  значение в max? Если больше, то запишем это значение в max. Для этой операции в алгоритм программы вводим следующую строку

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

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

Write (‘максимальное значение в массиве:’, max);

 

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

 

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

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

 

Рис. 21. Результат работы программы

 

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

For i:=2 to 10

Begin

End.

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

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

Begin

End;

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

 

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

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

Рис. 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)



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