Автор работы: Пользователь скрыл имя, 23 Марта 2013 в 17:55, курсовая работа
Цель и задачи. Выбрав именно эту работу для курсовой работы, перед нами ставиться задача, научиться работать с циклами, при каких условия необходимо применять тот или иной вид циклической структуры что бы избежать логической ошибки. Так как язык программирования основывается на определенных зарезервированных словах и символах, поставив цель и выучив которые, мы сможем создавать любые базы данных и пользоваться ими, используя законы программирования. Порядок действий и их повторения позволит писать программу понятным для других пользователей языком, при этом научимся высвобождать в памяти программы достаточно места.
Введение____________________________________________________
3
Циклические алгоритмы на языке Паскаль ____________________
5
Решение циклических алгоритмов___________________________
13
Работа с массивами________________________________________
22
Заключение_________________________________________________
32
Список использованной литературы_________________________
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]
Работа с многомерными массивами всегда связана с организацией вложенных циклов, рассмотрим пример написания такого массива.
Начнем запись программы
Program TestProg;
Begin
End.
Для начала нам необходимо определить массив для хранения десяти введенных пользователем значений. Для этого введите в программу строку
var a:array[1..10] of integer;
Обработка массивов очень часто производится при помощи цикла for. Для использование данного цикла необходимо определить переменную-счетчик.
i:integer;
Ввод данных с клавиатуры будет осуществляться в цикле for. Добавим в программу данный цикл. Для этого введем строку
for i:=1 to 10 do
Так как в
теле цикла будет составной
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], этот факт необходимо учитывать при написании программы.
Код любой программы должен быть читаемым. Для того чтобы код был читаемым, он должен удовлетворять некоторым требованиям по форматированию кода и стилю его написания.
Для этого и нужна цикличность программной структуры, при постоянно повторяющейся действенности, мы устанавливает цикл, количество операций, и оперативность программы увеличивается, меньше времени тратиться у программиста на прописывание действия.
Не будем забывать и о вложенных циклах, когда один цикл начинает свою работу, только после того как другой цикл закончил свою. Циклическую программу можно составить и для поиска максимального или минимального значения, в некоторых случаях это удобнее чем использование записи поиска.
С точки зрения преподавания Паскаль универсален, удобен и в изучении, и в использовании. Язык программирования является строго типизированным языком, что позволяет использовать его при написании программ группами, что сейчас очень распространенно. При написании любой, даже самой маленькой программы необходимо помнить что, возможно, кому-то придется с ней работать, для этого при написании нужно учитывать все правила программирования.
Циклические действия окружают нас повсюду, просто многие ни когда не задумывались что их возможно описать, тем более машинным языком, а научившись с вами этим не сложным действиям перед нами открываются границы нового, ведь великое строится по крупинкам
Список использованной литературы
Информация о работе Создание программы циклической структуры. Работа с массивами