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

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

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

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

(автор - student, добавлено - 15-05-2014, 15:08)

 СКАЧАТЬ:  29.zip [91,62 Kb] (cкачиваний: 19)

 

 

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

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

РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL

НА ТЕМУ: №29

РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ, РЕАЛИЗУЮЩЕЙ РАЗБИЕНИЕ МАССИВА НА ЧАСТИ

 

 

 

 

Оглавление

Оглавление. 2

Введение. 3

Постановка задачи. 5

Описание основных операторов и используемых модулей. 6

Контрольная задача. 13

Задача 2. 17

Задача 16. 20

Задача 30. 22

Приложение. 23

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

 


Введение

Развитие современной техники идёт по пути все большего усложнения конструкции вновь создаваемых изделий. При их создании используются все более сложные технологии и технологические процессы. Процесс проектирования новых изделий требует привлечения и использования новых нестандартных решений.

Одним из наиболее бурно развивающихся направлений новой техники является создание средств вычислительной техники, которые, постепенно, из области непосредственных вычислений стали применяться в процессе решения все более усложняющихся инженерных задач. В настоящее время, процесс проектирования образцов новой техники и разработки новых технологий уже немыслим без использования средств вычислительной техники. Применение этих средств позволяет ускорить и оптимизировать этот процесс значительно.

Язык Pascal считается одним из самых популярных и удобных. Он был создан профессором Виртом, директором Института информатики Швейцарской высшей политехнической школы, и был назван в честь великого французского математика и философа Блеза Паскаля – первого в мире создателя счетно-решающей машины.

По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.» По мнению Вирта, «язык, на котором студент учится выражать свои идеи, существенно влияет на его способ мышления и изобретательность… беспорядок, сопутствующий существующим языкам, непосредственно влияет на стиль программирования студентов.» Сейчас с уверенностью можно говорить о том, что Вирт достиг поставленной перед собой цели.

Хотя миллионы программистов сегодня в мире используют  Pascal для сложных и больших проектов, он был разработан в первую очередь для обучения учащихся в практике современного программирования. И по сей день язык программирования Pascal считается наиболее желательным для тех, кто совершает свои первые шаги в этой области.

Стройность и лаконичность, широкие возможности в области обработки структур данных обусловили популярность языка Pascal. Его реализация Borland Pascal 7.0 отражает все современные тенденции в области объектно-ориентированного программирования.

Каждая программа работает по определенному алгоритму. Это понятие весьма многозначно и имеет множество определений, но всегда обозначает примерно следующее:

Алгоритм - это точное предписание исполнителю совершить определенную последовательность действий для достижения поставленной цели за конечное число шагов.

Термин «Алгоритм» был известен еще в глубокой древности, считается что его ввел арабский мыслитель и математик Аль Хорезми. В современном мире он получил наиболее широкое распространение благодаря бурному развитию вычислительных технологий.


Постановка задачи

Разработка в среде Turbo Pascal программы, реализующей разбиение массива на части.

Задания:

1)          Изучить работу с массивами и элементами массивов. Решить контрольные задачи: №2, 16, 30.

2)          Проанализировать методы разделения массива на несколько частей.

Решить контрольную задачу:

Разделить массив на 2 части, поместив в первую элементы больше среднего арифметического элементов массива, а во вторую – меньше. Части отсортировать по убыванию. Исходный массив сформировать с помощью генератора случайных чисел.

Задача 3

В массиве хранятся данные об осадках за месяц. Найти:

–    среднее количество осадков;

–    максимальное и минимальное количество осадков;

–    количество дней с осадками больше среднего;

–    самую «мокрую» месяца.

Задача 16

Написать программу, определяющую сумму тех элементов, рядом с которыми стоят четные числа (справа и слева).

Задача 30

Составить программу получения в порядке убывания всех делителей данного целого числа.

Описание основных операторов и используемых модулей

     Правила языка Паскаль предусматривают единую для всех программ форму основной структуры:

Program <Имя программы>;
<Раздел описаний>
Begin
<Тело программы>
End. 

Здесь слова Program, Begin и End являются служебными. Правильное и уместное употребление этих слов является обязательным.

Имя программы выбирается программистом самостоятельно в соответствии с правилами построения идентификаторов.

     Все объекты, не являющиеся зарезервированными в Паскале, наличие которых обусловлено инициативой программиста, перед первым использованием в программе должны быть описаны.

Раздел описаний может состоять из пяти подразделов:
     1. Описание меток (Label).
     2. Описание типов (Type).
     3. Описание констант (Const).
     4. Описание переменных (Var).
     5. Описание процедур и функций (Procedure, Function).

Алфавит языка

Алфавит языка Паскаль составляют:
     1) буквы латинского алфавита;
     2) арабские цифры;
     3) специальные знаки.

.         конец программы, разделение целой и дробной частей вещественного числа (десятичная точка), разделение полей в переменной типа Record;

,             разделение элементов списков;..    указание диапазона;

:             используется в составе оператора присваивания, а также для указания формата вывода в операторе Writeln;

;             отделяет один раздел программы от другого, разделяет операторы;

'             используется для ограничения строковых констант;

-+*/()     арифметические знаки (используются по своему назначению);

< >         знаки отношений;

=            используется в составе оператора присваивания, в разделах описаний констант и типов, используется как знак отношения (равно);

{ }          ограничение комментариев в программе;

[ ]           заключают в себе индексы элементов массивов;

_            символ подчеркивания используется также как любая буква, например, в идентификаторах - вместо пробела;

$            обозначение директивы компилятора, обозначение шестнадцатеричного числа.

Идентификаторы

Имена операторов, переменных, констант, типов величин, имя самой программы назначаются программистом и называются в Паскале идентификаторами. Существуют правила, которым должны отвечать все идентификаторы:

–    идентификатор должен быть уникальным, то есть одним и тем же именем разные объекты не могут быть названы;

–    идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);

–    идентификатор может состоять только из символов латинского алфавита, цифр и знака подчеркивания ("_");

–    идентификатор не может начинаться с цифры.

Раздел описания констант

В этом разделе производится присваивание идентификаторам констант постоянных значений. Раздел начинается  зарезервированным словом const, за которым следует ряд выражений, отделяющихся друг от друга точкой с запятой.

Формат:

const <идентификатор> = <значение>;

После того как константа определена, ей нельзя присвоить какое-либо другое значение. Следует обратить внимание на то, что при определении констант применяется знак = (равенства), а не := (присваивание). 

Раздел описания переменных. Типы

Переменная в Паскале - именованный участок памяти для хранения данных определенного типа. Значение переменной (информация в соответствующих ячейках памяти) в ходе выполнения программы может быть изменено.

К базовым типам относятся:

–    тип целых чисел – Integer;

–    тип "длинных" целых чисел - Longint;

–    тип действительных (вещественных) чисел (то есть - с дробной частью) – Real;

–    тип неотрицательных целых чисел от 0 до 255 – Byte;

–    тип неотрицательных целых чисел от 0 до 65535 – Word;

–    символьный тип – Char;

–    строковый тип – String;

–    логический тип – Boolean.

Раздел описания переменных начинается зарезервированным словом var, за которым следует список переменных, двоеточие и тип данных. 

Формат:

   var < идентификатор 1, идентификатор 2,…>  :  <тип>;

Основные операторы и функции

Оператор присваивания

Самым простым действием над переменной является занесение в нее величины соответствующего типа.

Формат:      <Имя переменной> := <Выражение>;

Функция random

Возвращает случайное число, удовлетворяющее условию 0<=x<=диапазон. Тип аргумента и результата – целочисленный. Если необходимы случайные числа из диапазона a<=x<b - используется выражение random(b-a)+a.

Если параметр диапазон не указан, то random возвращает число в диапазоне 0<=x<1. Тип  результата – вещественный. Если необходимы вещественные числа из диапазона a<=x<b, нужно задать его при помощи  random*b+a.

Перед первым обращением к функции random необходимо с помощью вызова процедуры Randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа.

Процедура вывода 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 — константа целого типа, указывающая число пробелов.

Составной оператор.

Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками 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, образуя тем самым составной оператор.

Массив.

Массив - это упорядоченная последовательность величин, имеющих один и тот же тип и объединённых одним именем

Формат:

<имя> : array[n1..n2] of  <тип>;

Здесь величины n1 и n2 (индексы строки) являются целочисленными константами.

Пример описания двумерных массивов в разделе констант:

Const i=5; Var S: array[ 1..i,] of integer;

 

 

Контрольная задача

Блок-схема

 


Программа

program pkontr;

const

  M = 15;

var

  a,b,c: array[1..M] of byte;

  t: byte;

  avg: real;

  i, j, bi, ci: integer;

begin

  randomize;

  writeln('Массив а:');

  for i := 1 to M do

  begin

    a[i] := Random(50);

    avg := avg + a[i];

    write(a[i]:3);

  end;

  writeln;

  avg := avg / M;

  bi := 1;

  ci := 1;

  for i := 1 to M do

  begin

    if a[i] > avg then

    begin

      b[bi] := a[i];

      bi := bi + 1;

    end

    else

    begin

      c[ci] := a[i];

      ci := ci + 1;

    end;

  end;

for i := 1 to bi-1 do

  for j := i+1 to bi-1 do

  begin

    if  b[i] < b[j] then

    begin

      t := b[i];

      b[i] := b[j];

      b[j] := t;

    end;

  end;

  for i := 1 to ci-1 do

  for j := i+1 to ci-1 do

  begin

    if  c[i] < c[j] then

    begin

      t := c[i];

      c[i] := c[j];

      c[j] := t;

    end;

  end;

  writeln('Массив b');

  for i := 1 to bi-1 do

    write(b[i]:3);

  writeln;

  writeln('Массив c');

  for i := 1 to ci-1 do

    write(c[i]:3);

  writeln;

  writeln('Среднее арифметическое: ', avg:4:2);

  readln;

end.

 



Задача 2

Блок-схема

 


Программа

program p2;

var

  a : array[1..30] of byte;

  Min, Max, BolSredn, Mokr : byte;

  Dec1, Dec2, Dec3, Sredn : integer;

  i, j :integer;

begin

  Randomize;

  for i := 1 to 30 do

  begin

    a[i] := Random(100);

    write(a[i]:3);

  end;

  writeln;

  for i := 1 to 30 do

    Sredn := Sredn + a[i];

  Sredn := Sredn div 30;

  Min := a[i];

  for i := 1 to 30 do

  begin

    if a[i] > Max then Max := a[i];

    if a[i] < Min then Min := a[i];

    if a[i] > Sredn then BolSredn := BolSredn + 1;

  end;

  for i := 1 to 10 do

  begin

    Dec1 := Dec1 + a[i];

    Dec2 := Dec2 + a[i+10];

    Dec3 := Dec3 + a[i+20];

  end;

  if Dec1 > Dec2 then

  begin

    if Dec1 > Dec3 then

      Mokr := 1

    else

      Mokr := 3;

  end

  else

  begin

    if Dec2 > Dec3 then

      Mokr := 2

    else

      Mokr := 3;

  end;

  writeln('Среднемесячное: ', Sredn);

  writeln('Минимальное: ', Min);

  writeln('Максимальное: ', Max);

  writeln('Больше среднего, дней: ', BolSredn);

  writeln('Самая "мокрая" декада: ', Mokr);

  readln;

end.

 

 


Программа

program ex16;

const

  N = 20;

var

  a: array[1..N] of byte;

  i, summ: integer;

begin

  Randomize;

  for i := 1 to N do

  begin

    a[i]:= random(30);

    write(a[i]:3);

  end;

  writeln;

  for i:= 2 to N-1 do

    if (a[i-1] mod 2 = 0) and (a[i+1] mod 2 = 0) then

      summ := summ + a[i];

  writeln('Сумма элементов: ', summ);

  readln;

end.

 

 

 


Задача 30

Блок-схема

 


Программа

program p30;

var

  n, i: integer;

begin

  write('Введите n: ');

  readln(n);

  write('Делители: ');

  for i := n downto 1 do

    if n mod i = 0 then write(i, ' ');

  readln;

end.

 

 


Приложение

Контрольная задача

  

Задача 2

 


Задача 16

 

Задача 30

 


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

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

 


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


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