О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКЕ» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: №17 РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ ВСТАВКИ НУЛЯ ПОСЛЕ ГРУППЫ ОДИНАКОВЫХ ЭЛЕМЕНТОВ

(автор - student, добавлено - 26-04-2014, 12:34)

СКАЧАТЬ:  project2.zip [33,98 Kb] (cкачиваний: 23)

 

 

КУРСОВАЯ РАБОТА

ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКЕ»

РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК 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.

 

 


Приложение

Программа в работе.

В первой строке выведен исходный массив, во второй - преобразованный.

Программа определила три подряд идущие елиницы и вставила после них нулевой элемент.

 

 


Список литературы

  1. Немнюгин С.А., Перколаб Л. Изучаем Turbo Pascal. СПб.: Питер, 2003.
  2. Рапаков Г.Г., Ржеуцкая С.Ю. TURBO PASCAL для студентов и школьников. СПб.: БХВ - Петербург, 2004.
  3. А.Ф.Иванов, О.Н.Потапова, Салихова Г.Л. Методическое пособие по дисциплине «Информатика». Раздел: Основы алгоритмического языка Pascal. Альметьевск: АГНИ, 2007.
  4. Иванов А.Ф., Потапова О.Н., Салихова Г.Л. Информатика. Раздел: Word для начинающих: Лабораторный практикум для студентов вузов. Альметьевск, АлНИ 2003.
  5. Миронова К.В. «Учимся программировать: Turbo Pascal», Киев:  BHV, «Ирина» 2001г.

 

 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!