ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: «РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ПОИСКА ЭЛЕМЕНТОВ МАССИВА, КРАТНЫХ ЗАДАННОМУ ЧИСЛУ»
(автор - student, добавлено - 10-04-2014, 12:21)
СКАЧАТЬ:
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: «РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ПОИСКА ЭЛЕМЕНТОВ МАССИВА, КРАТНЫХ ЗАДАННОМУ ЧИСЛУ»
Оглавление:
Постановка задачи…………………………………………………………………………..3 Модуль и операторы……………………………………………………………………….4 Блок-схема……………………………………………………………………………………..11 Листинг программа………………………………………………………………………..12 Список литературы………………………………………………………………………...16 Приложение…………………………………………………………………………………...17
Постановка задачи
Разработка в среде Turbo Pascal программы поиска элементов массива, кратных заданному числу. Дан массив размера N.
Для отладки программы исходный массив сформировать с помощью генератора случайных чисел.
Модуль и операторы.
Модуль Crt – обеспечивает управление дисплеем (текстовым режимом экрана и звука) и клавиатурой компьютера. Раздел описания переменных начинается зарезервированным словом var, за которым следует список переменных, двоеточие и тип данных. Блок операторов В программе на Паскале этот блок является самым основным, т.к. именно здесь с предварительно описанными величинами выполняются действия, позволяющие получить результат, ради которого составлялась вся программа. Раздел операторов начинается зарезервированным словом BEGIN затем следуют операторы, отделенные друг от друга точкой с запятой завершает раздел зарезервированное слово END с точкой. Слова BEGIN и END – аналог открывающей и закрывающей скобок в арифметических выражениях and логическое и (умножение) – принимает истинное значение, только если оба операнда истины or логическое или (сложение) – принимает истинное значение, если хотя бы одно из операндов истинно
Функция random(диапазон) возвращает случайное число, удовлетворяющее условию 0<=x<=диапазон. Тип аргумента и
результата – word. Если необходимы случайные числа из диапазона a<=x<b - используется выражение random(b-a)+a. Если параметр диапазон не указан, то random возвращает число в диапазоне 0<=x<1. Тип результата – real (см. п.3.2). Если нам необходимы вещественные числа из диапазона a<=x<b, мы можем задать его при помощи random*b+a. Перед первым обращением к функции random необходимо с помощью вызова процедуры Randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа. Процедура чтения Read обеспечивает ввод числовых данных, символов, строк для их последующей обработки. Процедура чтения Readln аналогична Read. Единственное отличие состоит в том, что если в программе несколько процедур Readln, то после считывания значений переменных для одной процедуры Readln, данные для следующей процедуры будут считываться с начала новой строки. Инструкция Readln при вводе с клавиатуры предпочтительней Read, т.к. полностью освобождает буфер клавиатуры – рабочую область памяти, в которой временно хранятся введенные с клавиатуры символы. Инструкция Read оставляет в буфере клавиатуры код клавиши Enter, которой завершает процесс. Процедура Readln без переменных обычно записывается в конце программы и служит для создания паузы, которая длится до нажатия
клавиши Enter. В противном случае по окончании программы окно с текстом программы закроет экран с полученным результатом. Инструкции Write и Writeln предназначены для вывода констант различных типов, значений переменных или выражений. Число параметров – произвольное. Данные выводятся на экран. Из констант наиболее часто выводятся строки текста (строковые константы заключаются в апострофы). Если в конструкции вывода записано выражение, оно сначала будет вычислено, а затем выполнен вывод полученного результата. Процедура Writeln аналогична Write, отличие заключается в том, что после вывода последней переменной из списка, курсор автоматически переходит в начало новой строки. Инструкция Writeln без параметров переводит курсор в начало следующей строки, что позволяет, например, отделять результаты работы программы друг от друга пустыми строками. Write(y1:n:m, y2:n:m, …); Writeln(y1:n:m, y2:n:m, …); где y1, y2,… - выражение, переменная или константа; n – определяет общую ширину поля вывода; m – определяет место под дробную часть. Оператор присваивания можно считать основным оператором языка Паскаль, т. к. именно в нем выполняются практически все действия по обработке данных. Оператор присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам — оператор
предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, стоящей в левой части. идентификатор := выражение; Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками begin и end.
Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить тот или иной оператор или группу операторов. <оператор2>. Условный оператор if
Формат: if <условие> then < оператор1> else < оператор2>; где if, then, else – зарезервированные слова (обозначают если, то, иначе соответственно); <условие> - произвольное выражение логического типа; <оператор1>, <оператор2> - любые операторы языка Паскаль.
Условный оператор работает по следующему алгоритму: вначале вычисляется выражение <условие>. Если результат - true (истина), то выполняется <оператор1>, а <оператор2> пропускается. Если результат - false (ложь), наоборот <оператор1> пропускается, а выполняется Часть оператора, стоящая после служебного слова else, может отсутствовать. Тогда при значении true условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается. В условном операторе логические выражения могут содержать несколько отношений и/или логических переменных, связанных операциями and, or, not. Каждое простое условие в логическом выражении обязательно заключается в скобки. Операторы повторения (циклы) предусматривают выполнение некоторых операторов несколько раз. Оператор повтора for часто называют оператором цикла с параметром, так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной, которая на каждом шаге цикла автоматически изменяет свое значение ровно на единицу – поэтому ее и называют счетчиком.
Оператор повтора for состоит из заголовка (строка, содержащая for…do ) и тела цикла. Если требуется выполнить после do несколько операторов, они обрамляются операторными скобками begin и end, образуя тем самым составной оператор. Массив - это упорядоченная последовательность величин, имеющих один и тот же тип и объединённых одним именем. Число элементов массива задаётся при описании и в процессе выполнения программы не меняется. Имя массива образуется аналогично имени любой другой величины. Отдельные величины, составляющие массив, называются элементами массива. При обращении к элементу массива, необходимо указывать его имя, а в квадратных скобках его индексы. Для работы с массивами как единым целым используется имя массива без указания индекса в квадратных скобках. Массив может участвовать только в операциях отношения "равно и не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть тождественны по структуре или иметь одинаковые типы индексов и одинаковые типы компонентов. Элементы массива могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat,
входить в качестве параметров в операторы Read, Write, им можно присваивать любые значения, соответствующие их типу. Индексы массива должны быть целого типа, и индексы могут иметь как положительные, так и отрицательные значения, а также индексы могут быть нулями. Если элемент массива имеет только один индекс, массив называется одномерным, если два индекса - двухмерным.
Блок-схема
Листинг программа.program p1; uses Crt; const K = 3; N = 20; var i, j : integer; f1, f2 : integer; t, min, min_i : integer; a : array[1..N] of integer; begin Randomize; ClrScr;
for i := 1 to N do begin a[i] := random(30)+1; write( a[i]:4 ); end; writeln; writeln;
f1 := -1; for i := 1 to N do if a[i] mod K = 0 then begin f1 := i; break; end;
if f1 = -1 then begin writeln( 'Net chisel kratnyh ', K ); readln; halt; end;
for i := N downto 1 do if a[i] mod K = 0 then begin f2 := i; break; end;
writeln( 'Proverka kratnosty na ', K ); writeln( 'Pervoe chislo : ', a[f1], ' (nomer', f1, ')' ); writeln( 'Poslednee chislo: ', a[f2], ' (nomer', f2, ')' );
if f2 - f1 < 3 then begin writeln( 'Nevosmozhno uporyadochit' ); readln; halt; end;
min := a[f1+1]; min_i := f1+1; for i := f1+1 to f2-1 do begin for j := i to f2-1 do if a[j] < min then begin min := a[j]; min_i := j; end; t := a[i];
a[i] := a[ min_i ]; a[ min_i ] := t; min := 100; end;
writeln( 'Uporyadochenniy massiv: ' ); for i := 1 to N do write( a[i]:4 );
readln; end.
Список литературы.
Похожие статьи:
|
|