ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКЕ» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: №17 РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ВСТАВКИ НУЛЯ ПОСЛЕ ГРУППЫ ОДИНАКОВЫХ ЭЛЕМЕНТОВ
(автор - student, добавлено - 26-04-2014, 12:34)
СКАЧАТЬ:
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКЕ» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: №17 РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ВСТАВКИ НУЛЯ ПОСЛЕ ГРУППЫ ОДИНАКОВЫХ ЭЛЕМЕНТОВ
ОглавлениеОглавление. 2 Введение. 3 Постановка задачи. 4 Описание основных операторов и используемых модулей. 5 Блок-схема. 12 Программа. 13 Приложение. 15 Список литературы.. 16
ВведениеЯзык Pascal считается одним из самых популярных и удобных. Он был создан профессором Виртом, директором Института информатики Швейцарской высшей политехнической школы, и был назван в честь великого французского математика и философа Блеза Паскаля – первого в мире создателя счетно-решающей машины. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.» По мнению Вирта, «язык, на котором студент учится выражать свои идеи, существенно влияет на его способ мышления и изобретательность… беспорядок, сопутствующий существующим языкам, непосредственно влияет на стиль программирования студентов». Сейчас с уверенностью можно говорить о том, что Вирт достиг поставленной перед собой цели. Хотя миллионы программистов сегодня в мире используют Pascal для сложных и больших проектов, он был разработан в первую очередь для обучения учащихся в практике современного программирования. И по сей день язык программирования Pascal считается наиболее желательным для тех, кто совершает свои первые шаги в этой области. Стройность и лаконичность, широкие возможности в области обработки структур данных обусловили популярность языка Pascal. Его реализация Borland Pascal 7.0 отражает все современные тенденции в области объектно-ориентированного программирования.
Постановка задачиДан целочисленный массив размера N. Вставить после каждой его серии элемент с нулевым значением. Назовем серией группу подряд идущих одинаковых элементов, а длиной его серии – количество этих элементов (длина серии может быть равна 1). Для отладки программы исходный массив сформировать с помощью генератора случайных чисел.
Описание основных операторов и используемых модулей1) Заголовок программы состоит из зарезервированного слова program, за которым следует название самой программы. Имя программы не должно совпадать с именами переменных или других объектов программы. Заголовок программы несет чисто смысловую нагрузку и может отсутствовать, однако рекомендуется всегда его записывать для быстрого распознавания нужной программы среди листингов других программ.
Формат: program <имя >;
2) Раздел указания подключаемых модулей.
Этот раздел состоит из зарезервированного слова uses и списка имен подключаемых стандартных и пользовательских библиотечных модулей. Модуль имеет имя, при упоминании которого в разделе uses можно получить доступ к каждой из находящихся в нем процедур и функций.
Формат: uses <имя 1>, <имя 2>,…;
В программе этот раздел может быть описан только однократно и непосредственно после заголовка программы. Модуль Crt – обеспечивает управление дисплеем (текстовым режимом экрана и звука) и клавиатурой компьютера.
3) Раздел описания констант.
В этом разделе производится присваивание идентификаторам констант постоянных значений. Раздел начинается зарезервированным словом const, за которым следует ряд выражений, отделяющихся друг от друга точкой с запятой.
Формат: const <идентификатор> = <значение>;
После того как константа определена, ей нельзя присвоить какое-либо другое значение. Следует обратить внимание на то, что при определении констант применяется знак = (равенства), а не := (присваивание).
4) Раздел описания переменных начинается зарезервированным словом var, за которым следует список переменных, двоеточие и тип данных. Формат: Var < идентификатор 1, идентификатор 2,…> : <тип>; В данной программе использовались 2 целочисленных типа: byte (0..255) и integer (-32767..32766) 5) Функция random возвращает случайное число, удовлетворяющее условию 0<=x<=диапазон. Тип аргумента и результата – целочисленный. Если необходимы случайные числа из диапазона a<=x<b - используется выражение random(b-a)+a. Если параметр диапазон не указан, то random возвращает число в диапазоне 0<=x<1. Тип результата – вещественный. Если необходимы вещественные числа из диапазона a<=x<b, нужно задать его при помощи random*b+a. Перед первым обращением к функции random необходимо с помощью вызова процедуры Randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа.
6) Процедура вывода Write.
Вывод данных – передача информации после обработки из оперативной памяти на внешнее устройство (экран, принтер, файл на диске). Обеспечивает вывод числовых данных, символов, строк и булевских значений.
Формат: Write (а1, а2, а3, …,аn) ; Writeln; Writeln (а1, а2, а3, …,аn) ;
где а1, а2, а3, …,аn – выражение типа integer, byte, real, char, boolean. В операторах вывода имеется возможность записи выражения, определяющего ширину поля вывода для каждой выводимой переменной или константы: Write(y1:n:m, y2:n:m, …); Writeln(y1:n:m, y2:n:m, …); где y1, y2,… - выражение, переменная или константа; n – определяет общую ширину поля вывода; m – определяет место под дробную часть. Если заданное n мало, при выводе ширина поля будет увеличена, если мало m – то производится округление. Кроме того, в операторах вывода можно задавать количество пробелов. Для этого необходимо записать оператор вывода в виде: Write (‘ ‘ : q); где q — константа целого типа, указывающая число пробелов.
7) Оператор присваивания.
Оператор присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам — оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, стоящей в левой части.
Формат: идентификатор := выражение;
8) Составной оператор.
Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками begin и end.
Формат: begin Оператор1; Оператор2; … OпеpaтoрN; end;
9) Условный оператор If.
Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить тот или иной оператор или группу операторов. С помощью условных операторов программируются алгоритмы разветвляющейся структуры.
Формат: if <условие> then < оператор1> else < оператор2>; где if, then, else – зарезервированные слова (обозначают если, то, иначе соответственно); <условие> - произвольное выражение логического типа; <оператор1>, <оператор2> - любые операторы языка Паскаль.
Условный оператор работает по следующему алгоритму: вначале вычисляется выражение <условие>. Если результат - true (истина), то выполняется <оператор1>, а <оператор2> пропускается. Если результат - false (ложь), наоборот <оператор1> пропускается, а выполняется <оператор2>. Часть оператора, стоящая после служебного слова else, может отсутствовать. Тогда при значении true условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается.
Формат: If < условие > then < оператор>;
Один оператор if может входить в состав другого оператора if. В этом случае говорят о вложенности операторов.
Пример: if Условие1 then if Условие2 then Оператор1 else Оператор2;
10) Оператор цикла for.
Оператор повтора for часто называют оператором цикла с параметром (или цикла со счетчиком), так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу – поэтому ее и называют счетчиком. Оператор повтора for применяется в случаях, когда число повторений заранее известно. Оператор повтора for состоит из заголовка (строка, содержащая for…do ) и тела цикла. Формат: for < параметр цикла >:=А to B do < оператор >; где for, do – зарезервированные слова (обозначают "для", "выполняй" соответственно); А и В – выражения, определяющие соответственно начальное и конечное значение параметров цикла; < оператор > - тело цикла.
Если требуется выполнить после do несколько операторов, они обрамляются операторными скобками begin и end, образуя тем самым составной оператор. Может быть так, что A>B. Тогда шаг цикла должен быть не 1, а -1. В таких случаях цикл принимает следующий вид: for < параметр цикла >:=А downto B do < оператор >; где A>B. В таких случаях вместо to используется downto. Примеры: for i := 1 to 10 do writeln(random(10)); Этот цикл выдаст 10 случайных чисел на экран, каждое в отдельной строке. for i :=10 downto 1 do writeln(i); Этот цикл выведет на экран числа 10, 9, 8, …, 1, причем каждое в отдельной строке. 11) Массив.
Массив - это упорядоченная последовательность величин, имеющих один и тот же тип и объединённых одним именем Формат: <имя> : array[n1..n2] of <тип>; Здесь величины n1 и n2 (индексы строки) являются целочисленными константами. Пример описания массивов в разделе констант:
Const i=5; Var S: array[ 1..i,] of integer;
Блок-схема
Программаprogram pr2; const N = 12; var a: array[1..N] of byte; b: array[1..2*N] of byte; i, k: integer; len: integer; lastNum: byte; begin randomize; for i := 1 to N do begin a[i]:= random(10); write(a[i]:4); end; writeln; len := 1; lastNum := a[1]; k := 1; for i := 2 to N+1 do begin b[k] := a[i-1]; k := k + 1; if lastNum = a[i] then len := len + 1 else begin if len > 1 then begin b[k] := 0; k := k + 1; end; len := 1; lastNum := a[i]; end; end; for i := 1 to k-1 do write(b[i]:4); readln; end.
ПриложениеПрограмма в работе. В первой строке выведен исходный массив, во второй - преобразованный. Программа определила три подряд идущие елиницы и вставила после них нулевой элемент.
Список литературы
Похожие статьи:
|
|