ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: №1 РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ, РЕАЛИЗУЮЩЕЙ ПЕРЕСТАНОВКУ ЭЛЕМЕНТОВ МАССИВА
(автор - student, добавлено - 15-05-2014, 14:29)
СКАЧАТЬ:
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: №1 РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ, РЕАЛИЗУЮЩЕЙ ПЕРЕСТАНОВКУ ЭЛЕМЕНТОВ МАССИВА
СодержаниеВведение. 3 Постановка задачи. 6 Описание основных операторов и используемых модулей. 7 Контрольная задача. 16 Задача 1. 19 Задача 12. 22 Задача 23. 25 Приложение. 27 Список литературы.. 29
План-график работы
Введение Язык программирования Pascal создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык первоначально создавался для целей обучения программированию вообще. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ». По мнению Вирта, «язык, на котором студент учится выражать свои идеи, существенно влияет на его способ мышления и изобретательность… беспорядок, сопутствующий существующим языкам, непосредственно влияет на стиль программирования студентов». Сейчас с уверенностью можно говорить о том, что Вирт достиг поставленной перед собой цели. Язык Паскаль является не только наилучшим языком обучения программированию, дает возможность осуществить простую реализацию его на современных ПЭВМ, использовать его как язык системного программирования, но и является базой для создания более мощных языков.
Описание основных операторов и используемых модулей Алфавит и структура программыСовокупность допустимых в языке PASCAL 7.0 символов образует алфавит, который складывается из букв, цифр и специальных символов. Между группами символов алфавита вставляются разделители. В качестве букв PASCAL 7.0 использует прописные и строчные латинские буквы. Цифрами PASCAL 7.0 могут служить только арабские цифры то 0 до 9. Из букв, цифр и знаков подчеркивания строятся идентификаторы. Написание прописных и строчных букв в идентификаторах не различается: слова VAR, vAR VaR трактуются как одно слово. Длина идентификатора может быть любой, но существенны только первые 63 символа. Начинаться идентификатор должен всегда с буквы и может содержать знаки подчеркивания и цифры в любом другом месте. В понятие специальных символов входят знаки операций, знаки пунктуации и зарезервированные слова. Под знаками операций понимаются как различные арифметические действия (+, -, *, /, >, <, О, <=,>m , @), так и арифметические и логические функции (DIV, MOD, NOT, AND, OR, XOR, IN, SHL, SHR). Множество знаков пунктуации складывается из следующих символов: { } или (* *) Скобки комментария [ ] Выделение индексов массивов и элементов множеств () Выделение списков параметров, атгебраические скобки ' Апостроф := Знак присваивания ; Разделение операторов и объявлений : Отделение переменной или типизированной константы от типа = Отделение идентификатора типа от описания типа или типизированной константы от ее значения , Разделение элементов списка . Разделение границ диапазона, конец программы, отделение целой части от дробной, разделение полей записи $ Знак шестнадцатеричного числа или директива компилятора # Признак кода числа К зарезервированным словам относятся операторы, имена логических и арифметических функций, имена директив. Список зарезервированных слов приводится в приложении. Разделителями служат пробелы, любые управляющие символы и комментарии, которые заключаются в фигурные скобки. Комментарий, в котором за скобкой идет знак $, является директивой компилятора. Все остальные комментарии при компиляции программы игнорируются. Некоторые символы, такие, как &, %, буквы русского алфавита и т. д., можно использовать только в символьных строках и в комментариях. Структура программыВ программе могут быть следующие разделы, каждый из которых, кроме последнего, завершается точкой с запятой: – заголовок программы; – раздел объявления меток; – раздел объявления констант; – раздел объявления типов; – раздел объявления переменных; – тело программы (обязательная часть). Заголовок программы. Заголовок программы необязателен и игнорируется компилятором. Если заголовок присутствует, то он состоит из зарезервированного слова и имени программы, возт можно со списком параметров в круглых скобках. Конец заголовка обозначается точкой с запятой: PROGRAM ONE; Порядок размещения остальных разделов произвольный, программист может создавать несколько одинаковых разделов. Раздел объявления меток. Данный раздел начинается со слова LABEL, за которым следует список меток. Завершается список точкой с запятой: LABEL 4, 77, 90; В программе в качестве меток могут использоваться целые числа без знака. Сама метка ставится в теле программы перед оператором и отделяется от него двоеточием. Раздел объявления констант. Раздел объявления констант вводится для того, чтобы приписать некоторым константам идентификаторы. Эти константы не меняют своего значения во время выполнения программы. Например, целочисленную, действительную и строковую константы можно задать следующим образом: CONST А = 512; В = 'IRDА'; BRIGHTNESS = 0.5; Раздел объявления типов. В PASCAL 7.0 используются стандартные типы данных, но могут быть объявлены и новые типы. Например, для объявления типов, соответствующих году, месяцу и дню, можно написать так: TYPE YEAR = 1900..2200; MONTH = (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC); DAY= 1..31; Раздел объявления переменных. Объявление различных переменных всегда начинается с зарезервированного слова VAR, за ко торым следует список переменных. Для всех переменных обозначается тип, стандартный или ранее объявленный в программе: VAR I, J : INTEGER; L : REAL; STR : STRING; Раздел объявления процедур и функций. Все используемые процедуры и функции должны быть объявлены до начала входа в основную программу. Тело программы. Тело программы обязательно и должно быть заключено между BEGIN и END с точкой. Структура данныхИспользуемые различные типы данных в PASCAL имеют огромное значение при программировании, т. к. определяют способы и алгоритмы обработки этих данных. Определим понятие формально: под типом данных понимается множество допустимых значений переменных, а также совокупность операций над ними. В PASCAL 7.0 можно выделить следующие группы типов: – простые типы; – структурированные типы; – указатели; – процедурные типы; – объекты. Для данной курсовой работы достаточно использовать простые типы, а из структурированных – только массивы. При программировании можно использовать как стандартные типы данных, не требующие предварительного определения, так и определяемые самим программистом. К стандартным типам относятся: – целые типы - SHORTINT, INTEGER, LONGINT, BYTE, WORD; – вещественные типы - REAL, SINGLE, DOUBLE, EXTENDED, COMP; – логические типы BOOLEAN; – символьный тип CHAR; – тип-строка - STRING; – ASCII-строка - PCHAR; – текстовый файл TEXT; – тип-указатель POINTER. Все другие используемые типы должны быть определены либо в разделе объявления типов, либо в разделе объявления переменных или типизированных констант. Раздел объявления типов начинается зарезервированным TYPE, после которого определяются вводимые типы. Определение каждого нового типа начинается с идентификатора типа. За ним следует знак равенства, а далее - само определение, завершающееся точкой с запятой: TYPE <имя типа 1> = <определение типа 1>; <имя типа 2> = <определение типа 2>; ............... <имя типа N> = <определение типа N>; ПРОСТЫЕ ТИПЫ ДАННЫХ Рассмотрим простые типы данных. Простой тип определяет упорядоченные значения переменной. К простым типам относятся: – целые типы; – логический тип; – перечисляемые типы; – тип-диапазон; – символьный тип; – вещественные типы. Все простые типы данных, кроме вещественных, называются порядковыми, и для них определены функции: DEC(N) Уменьшение N INC(N) Увеличение N ORD(N) Порядковый номер N МассивыОн представляет собой заранее известное количество однотипных компонентов, снабженных индексами. Массив может быть одномерным или многомерным. Чтобы задать тип-массив, необходимо использовать зарезервированное слово ARRAY, тип индексов массива и тип компонентов массива. Например, тип одномерного массива целых чисел может быть задан следующим образом: TYPE MAS = ARRAY[1..10] OF INTEGER; VAR M1 : MAS; Тот же самый тип массива может быть задан и при определении соответствующих переменных: VAR М1 : ARRAY[1..10] OF INTEGER; Размерность массива может быть любой, компоненты тоже, только тип индексов должен быть обязательно порядковый и не Longint. В большинстве случаев при задании размеров массивов используются диапазоны. В PASCAL 7.0 тип двумерных массивов описывается так же, как и одномерных. Различие состоит в том, что вы должны указать диапазон для двух индексов массива - положение каждого элемента массива A [I, J] определяется значением строки I и столбца J. Например, описание двумерного массива натуральных чисел размера N х М может быть задано следующей строкой: VAR MAS : ARRAY[1..N, 1..M] OF INTEGER; Основые операторы Оператор присваивания. Оператор присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам — оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, стоящей в левой части. Формат: идентификатор := выражение;
Составной оператор. Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками begin и end. Формат: begin Оператор1; … OпеpaтoрN; end;
Условный оператор 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; Оператор цикла For. Оператор повтора for часто называют оператором цикла с параметром, так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу – поэтому ее и называют счетчиком. Оператор повтора for применяется в случаях, когда число повторений заранее известно. Оператор повтора for состоит из заголовка (строка, содержащая for…do ) и тела цикла. Формат: for < параметр цикла >:=А to B do < оператор >; где for, do – зарезервированные слова (обозначают "для", "выполняй" соответственно); А и В – выражения, определяющие соответственно начальное и конечное значение параметров цикла; < оператор > - тело цикла. Если требуется выполнить после do несколько операторов, они обрамляются операторными скобками begin и end, образуя тем самым составной оператор. Цикл while В отличие от цикла for, в цикле while заранее неизвестно сколько раз проработает цикл. Вместо задания параметров счетчика, там задается условие, при котором цикл будет продолжать работать. Если условие будет равно false, то цикл прекратит свою работу. Перестанова элмементов массива Массивы являются одними из самых удобных структур для хранения и обработки данных. Они позволяют организованно разместить большое количество данных с удобной их дальнейшей обработкой. Одним из элементарных действий над массивами является перестановка элементов.
Контрольная задача Дан одномерный массив. Все его элементы, не равные 0, переписать (сохраняя порядок их следования) в начало массива, а нулевые элементы – в конец массива. Указание – дополнительный массив не создавать. Исходный массив сформировать с помощью генератора случайных чисел. Блок-схема
Программа program prk; uses Crt; const M = 20; var a : array[1..M] of integer; i, j : integer; zc : byte; { Количество нулевых элементов } begin ClrScr; Randomize; writeln('Исходный массив:'); for i := 1 to M do begin a[i] := random(20)-5; if a[i] < 0 then a[i]:=0; write(a[i]:3); end; writeln; for i := 1 to M do if a[i] = 0 then zc := zc+1; i := 1; while zc > 0 do begin if a[i] = 0 then begin zc := zc-1; for j := i to M-1 do a[j] := a[j+1]; a[M] := 0; end; if a[i] <>0 then i := i+1; end; writeln('Измененный массив:'); for i := 1 to M do write(a[i]:3); readln; end. Результат выполнения программы
Задача 1 В массиве хранятся данные о расходе электроэнергии в больнице. Найти: – среднемесячный расход; – максимальный и минимальный расходы; – количество дней с расходом, превышающим средний арифметический; – количество дней, когда расход совпадал.
Блок-схема Программа program pr1; uses Crt; const N = 20; var a : array[1..N] of byte; sr : real; { Средний расход } min, max, od, bs : byte; i, j : integer; f: boolean; begin ClrScr; Randomize; for i := 1 to N do begin a[i]:= Random(50)+100; write(a[i]:4); end; writeln; min := a[1]; for i := 1 to N do begin sr := sr + a[i]; if max < a[i] then max:=a[i]; if min > a[i] then min:=a[i]; end; sr := sr / N; for i := 1 to N do if a[i] > sr then bs := bs + 1; f := true; for i := 1 to N-1 do begin for j:= i+1 to N do begin if a[i]<>0 then if a[i] = a[j] then begin if f = true then begin od := od + 2; f := false; end else od := od + 1; a[j] := 0; end; end; f := true; a[i]:=0; end; writeln('Минимальный расход: ', min); writeln('Минимальный расход : ', max); writeln('Средний расход : ', sr : 4:2 ); writeln('Больше среднего : ', bs); writeln('Одинаковых : ', od); readln; end. Результат выполнения программы
Задача 12 Даны две последовательности по 30 целых чисел в каждой. Написать программу для нахождения наименьшего среди тех чисел первой последовательности, котроые не входят во вторую последовательность (считая, что хотя бы одно такое число имеется).
Блок-схема
Программа program pr12; uses Crt; var a, b : array[1..30] of byte; i, j, min : integer; e : boolean; begin ClrScr; Randomize; writeln('a'); for i := 1 to 30 do begin a[i] := Random(100); write(a[i], ','); end; writeln; writeln('b'); for i := 1 to 30 do begin b[i] := Random(100); write(b[i], ','); end; writeln; min := a[1]; for i := 1 to 30 do begin if a[i] < min then begin e := false; for j := 1 to 30 do if a[i] = b[j] then begin e := true; break; end; if e = false then min := a[i]; end; end; writeln('Наименьший элемент:',min); readln; end.
Результат выполнения программы
Задача 23 Дано четырехзначное число n. Является ли это число перевертышем (палиндромом), как например 6116, 4004, 2222. Блок-схема
Программа program pr23; uses Crt; var n : integer; { Число } a : array[1..4] of byte; { Цифры числа } begin ClrScr; writeln('Введите n: '); readln(n); a[1] := n div 1000; a[2] := (n - a[1]*1000) div 100; a[3] := (n - a[1]*1000 - a[2]*100) div 10; a[4] := (n - a[1]*1000 - a[2]*100 - a[3]*10); if (a[1] = a[4]) and (a[2] = a[3]) then writeln('Число ', n, ' является палиндромом') else writeln('Число ', n, ' не является палиндромом'); readln; end.
Результат выполнения программы
Заключение Важнейшая роль в развитии современного общества в конце XX в. принадлежит информатизации. По характеру и значению для будущего человеческой цивилизации процесс информатизации можно сравнить с переходом человечества от аграрного общества к индустриальному. Подобно тому, как изобретение механического двигателя открыло эру комплексной механизации и автоматизации физического труда, изобретение ЭВМ сделало то же самое в отношении труда умственного. Процесс информатизации и характеризуется использованием информации в качестве общественного продукта, обеспечивающего интенсификацию всех сфер экономики, ускорение научно-технического прогресса, интеллектуализацию основных видов человеческой деятельности и демократизацию общества. В результате внедрения новых информационных технологий значительно изменяются общественно-экономические структуры, формируется гибкое динамичное общество, способное к активной самооценке и выбору целей развития, быстрой и адекватной реакции на изменение внешней и внутренней среды. В данной курсовой работе представлены решения поставленных в условии задач в виде алгоритмов, изображенных в виде блок-схем и реализации в виде программы на языке pascal
Список литературы
Похожие статьи:
|
|