795

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

Курсовая

Информатика, кибернетика и программирование

Система программирования, созданная для повышения качества и скорости разработки программ. Написать, проанализировать работу и программы в среде Turbo Pascal, реализующей сортировку строк матрицы.

Русский

2013-01-06

190.5 KB

29 чел.

АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ

НЕФТЯНОЙ ИНСТИТУТ

КАФЕДРА ИНФОРМАТИКИ

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

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

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

НА ТЕМУ: Разработка в среде Turbo Pascal программы, реализующей нахождение чисел фибоначчи

                                                                выполнил

                                                                       студент Паллыева А.Б.

                                                                группы: 31-91

                                                                проверил: ст.преподаватель

                                                                Ханова И.А.

АЛЬМЕТЬЕВСК 2012

Оглавление

Оглавление 2

ВВЕДЕНИЕ 3

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL 5

Детализация графической части программы 8

Задача №1 8

Задача №2 11

Задача №3 16

Задача №4 21

Заключение ……………………………………………………………………... 24

Список использованной литературы: 25


ВВЕДЕНИЕ

Алгоритмический язык Паскаль был создан в конце 60-х годов профессором Н. Виртом (Швейцария) как специальный язык для обучения программированию. В настоящее время он реализован практически на всех ПЭВМ. Международный стандарт языка Паскаль утвержден в 1982году.

Pascal – один из лучших реальных «учебных» языков программирования – недаром его изучают во многих школах и на начальных курсах большинства технических вузов. Для начала работы с языком программирования нужно уяснить для себя что такое алгоритм, язык программирования, программа; научиться алгоритмическому мышлению и научиться писать свои программы. Особое место в языке Паскаль занимают массивы. Массивом называется совокупность данных, выполняющих аналогичные функции, и обозначаемая одним именем. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным.

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

Турбо Паскаль – это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования – это отражение торговой марки фирмы-разработчика Borland International (США).

Систему программирования Турбо Паскаль называют интегрированной (integration – объединение отдельных элементов в единое целое) средой программирования, т.к. она включает в себя редактор, компилятор, отладчик, имеет сервисные возможности.

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

Для достижения цели поставим следующие задачи:

Изучить язык программирования Turbo Pascal.

Решить контрольные задачи.

Предоставить листинг, алгоритмы и анализ программ.

Проанализировать контрольную программу, реализующую сортировку строк матрицы.


РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL

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

В модуле CRT реализованы специальные процедуры и функции для работы с текстовой информацией на дисплее, позволяющие: управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором.

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

USES   CRT;

USES CRT используем для подключения процедуры

Procedure ClrScr;

Которая, позволяет очистить экран от всей ненужной информации и поместить курсор в левый верхний угол.

Описание констант.

В разделе описаний программы должны быть описаны не только переменные, но и константы, в данной программе константы описаны следующим образом:

Const

N=30;

Где, N=имя константы, 30=ее значение.

Описание переменных.

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

Пример описания переменных:

A:ARRAY[1...N]OF INTEGER;

I,J:INTEGER; P,K:REAL;

где A- целочисленный одномерный массив состоящий из N элементов. I,J– целочисленные переменные, P,K- вещественные переменные.

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

В разделе операторов опишем действия, которые должна выполнить программа согласно выбранного алгоритма. Этот раздел заключен между словами begin и end. В программе может использоваться составной оператор begin end;.

Формирование массива осуществим с помощью генератора случайных чисел randomize и цикла с параметром.

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

Если в форме описания массива задан один индекс, массив называется одномерным, если два индекса – двумерным, если n индексов -  n-мерным. Одномерный массив соответствует понятию линейной таблицы, двумерный – понятию прямоугольной таблицы. В нашем случае массивы являются одномерными.

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

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

С помощью процедуры writeln описываем выводящееся на экран. Write– оператор, который используется для вывода информации на экран. Оператор WriteLn выполняет то же самое действие, но так как у него есть еще окончание Ln, то после вывода на экран нужного сообщения, он дополнительно переводит курсор на следующую строчку.

Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить тот или иной оператор или группу операторов. С помощью условных операторов программируются алгоритмы разветвляющейся структуры.

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


Детализация графической части программы

Задача №1

Дана последовательность чисел, так называемых чисел Фибоначчи. 1,2,3,5,8,12… Вывести все числа Фибоначчи до заданного числа N, вводимого пользователем.

Начало

Ввод N

I=1

J=I

I<=N

I

K=I

I=J

J=K+I

Конец

Листинг программы

uses crt;

var i,j,k,n:integer;

begin

write('N=');

read(n);

i:=1; j:=i;

while i<= n do begin

write(i:3);k:=i;i:=j;j:=k+i; end;readln;readln; end.

Тестирование программы


Задача №2

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

Начало

N=11

I=1,N,1

                                    A[I]=RANDOM(30)

                                                  I=1,N,1

A[I]

                                                              K=0

I=1,N,1

K=K+A[I]

К/N

  1

 

 

1

MIN=A[1]

MAX=A[1]

K=1

J=1

                         I=1,N,1                          2

A[I]>MAX

MAX=A[I]

K=I

A[I]<MIN

MIN=A[I]

J=I


 2

MIN=0

I=1,N,1

A[I]>K/N

INC(MIN)

MIN=0

I=1,N,1

MIN=MIN+A[I]

MAX=MAX*N

MAX*100/MIN

Конец

Листинг программы

uses crt;

const n=11;

var   i,j,k,min,max:integer;

a:array[1..n]of integer;

begin

clrscr;

 randomize;

for i:=1 to  n do

a[i]:=random(30);

writeln('Данные о количестве учеников в классах');

for i:=1 to n do

write(a[i]:3);k:=0;

for i:=1 to  n do

k:=k+a[i];

writeln;

write('Среднее количество учеников',k/n:3:0);min:=0;

for i:=1 to n do

if a[i]>k/n then inc(min);writeln;writeln('Количество классов: ',min);

min:=a[1];max:=a[1];

k:=1;j:=1;

for i:=1 to n do begin

if a[i]>max then begin max:=a[i];k:=i; end;

if a[i]<min then begin min:=a[i]; j:=i;end;end;

writeln('Максимальное количество ',max,' в ',k,' классе');

writeln('Минимальное количество ',min,' в ',j,' классе'); min:=0;

for i:=1  to n do

min:=min+a[i];

max:=max*n;

writeln('Процент увеличения ',max*100/min:3:1,'%'); end.

Тестирование программы


Задача №
3

Определим сумму положительных и количество отрицательных элементов среди элементов, расположенных между первым максимальным и последним по порядку минимальным элементом.

Начало

N=15

I=1,N,1

                                  a[i]=random(25+25)-25

I=1,N,1

A[I]

MIN=A[1]

MAX=A[1]

K=1

J=1

 1
         1

 

I=1,N,1

A[I]>MAX

MAX=A[I]

K=I

A[I]<MIN

MIN=A[I]

J=I

                     3                               J<K

                        I=1,N,1                       2

A[I]>0

MAX=MAX+A[I]

MIN=MIN+1

                                                        2                            3

I=K,J,1

A[I]>0

MAX=MAX+A[I]

INC(MIN)

Конец

Листинг программы

uses crt;

const n=15;

var

i,j,k,min,max:integer;  a:array[1..n]of integer;

begin

clrscr;

randomize;

writeln('Исходный вектор');

for i:=1 to n do

a[i]:=random(25+25)-25;

for i:=1 to  n do

write(a[i]:3);writeln;

max:=a[1];min:=a[1];k:=1;j:=1;

for i:=1 to n do begin

if a[i]>max then begin max:=a[i]; j:=i;end;

if a[i]<=min then begin min:=a[i];k:=i;end; end;

writeln('Мин элемент',min:3,' адрес',k:3,' Макс Элемент',max:3,'     адрес',j:3);

max:=0;min:=0;

if j<k then

for i:=j to k do

if a[i]>0 then max:=max+a[i] else inc(min)

else

for i:=k to j do

if a[i]>0 then max:=max+a[i] else inc(min);

writeln('сумма',max:3,' количество',min:3); end.

Тестирование программы


Задача №4

Дана последовательность ненулевых чисел, проверить чередуются ли в нем положительные и отрицательные элементы. Если чередуются, то вывести 0, иначе номер элемента нарушающего закономерность.

Начало

N=20

I=1,N,1

                                    A[I]=random(5+5)-5

(A[I]<0)OR(A[I]>0)

I=1,N,1

A[I]

I=1

K=1

 1

 1

A[K]>0

(a[i]>0)and(a[i+1]<0)

K=I+1

K=K+1

BREAK

I=I+2

I>=N

K=N

0

                                                              K

           1

         Конец

Листинг программы

uses crt;

const n=20;

var  i,j,k:integer;

a:array[1..n]of integer;

begin

clrscr; randomize;

for i:=1 to n do

repeat

a[i]:=random(5+5)-5;

until (a[i]>0)or(a[i]<0);

writeln('Вектор');

for i:=1 to n do  write(a[i]:3);writeln;i:=1;k:=1;

if a[k]>0 then  begin  repeat

if (a[i]>0) and(a[i+1]<0) then k:=i+1 else begin k:=k+1;

break;end;i:=i+2; until i>=n;

if k=n then write(0) else write(k);end else write(1); end.

Тестирование программы


Заключение

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

Достоинства:

- Лёгкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим);

- Одинаковое время доступа ко всем элементам;

- Малый размер элементов: они состоят только из информационного поля;

Выполняя данную работу, убеждаешься, что программирование и математика стоят не так уж далеко друг от друга. Программирование в Паскале развивает алгоритмическое мышление. Также данная работа позволила овладеть основными навыками работы в MS Word, что в наше время очень актуально.

Выполняя данную работу, убеждаешься, что программирование и математика стоят не так уж далеко друг от друга. Программирование в Паскале развивает алгоритмическое мышление. Также данная работа позволила овладеть основными навыками работы в MS Word, что в наше время очень актуально.


Список использованной литературы:

 

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

                                                                                  Описание программы


                                                                                                     Задача №2


                                                                                                     Задача №3


                                                                                                     Задача №4


                                                                                                   Заключение


                                                         Список использованной литературы


                                                         Список использованной литературы


23


 

А также другие работы, которые могут Вас заинтересовать

67505. Структура конфликта 3.02 MB
  Структура конфликта Рассматриваемые в лекции вопросы Конфликт: сущность и специфика конфликтного взаимодействия. Структура конфликта: характеристика основных элементов конфликтного взаимодействия. Объективные и личностные элементы конфликта. Конструктивные и деструктивные функции конфликта.
67506. Классификация и параметры сетей 780.5 KB
  Информационно вычислительные сети являются сегодня мощным средством обработки информации. Компонентами Вычислительной сети могут быть ЭВМ и периферийные устройства являющиеся источниками и приемниками данных. ООД и АКД вместе представляют собой Станцию данных или узел сети...
67507. Теоретические основы финансово-коммерческих вычислений 64.5 KB
  Фактор времени в финансово-коммерческих расчетах Российская экономика все более интегрируется в мировую экономику что требует использования финансового инструментария применяемого развитыми странами и международными организациями в финансовой практике. Важность учета фактора времени...
67508. Операции наращения. Простые проценты. Формула простых процентов 223.5 KB
  При использовании простых ставок процентов проценты процентные деньги определяются исходя из первоначальной суммы долга. Схема простых процентов предполагает неизменность базы с которой происходит начисление процентов.
67509. Операции дисконтирования. Сущность дисконтирования 57.5 KB
  Такие ситуации возникают при разработке условий финансовой сделки, или когда проценты с наращенной суммы удерживаются непосредственно при выдаче ссуды. Процесс начисления и удержания процентов вперед, до наступления срока погашения долга, называют учетом, а сами проценты в виде разности наращенной и первоначальной сумм долга дисконтом.
67510. Потоки платежей и финансовые ренты. Сущность потока платежей и основные категории 203 KB
  Потоки платежей являются неотъемлемой частью всевозможных финансовых операций: с ценными бумагами, в управлении финансами предприятий, при осуществлении инвестиционных проектов, в кредитных операциях, при оценке бизнеса, при оценке недвижимости, выборе альтернативных вариантов финансовых операций...
67511. Инфляция в финансово-коммерческих расчетах. Сущность инфляции и необходимость ее учета в количественном анализе 62 KB
  Инфляция это экономическое явление которое возникает вследствие целого комплекса как политических так и социально-экономических событий. Уровень инфляции выступает обобщающим показателем финансово-экономического положения страны. Внешним проявлением инфляции является повышение общего уровня цен...
67512. Типовые приложения финансовой математики. Финансовые функции ЕХСЕL как основа практических расчетов в современных условиях. Сущность финансовых функций 97 KB
  Операции наращения Функции обслуживающие расчеты по операциям наращения позволяют рассчитать будущую стоимость разовой суммы по простым и сложным процентам а также будущее значение потока платежей как на основе постоянной процентной ставки так и на основе переменной процентной ставки.
67513. Кредитные расчеты. Планирование погашения долга. Погашение долга единовременным платежом 129.5 KB
  Количественный анализ долгосрочной задолженности займа применяется для достижения сбалансированности т. адекватности его параметров принятым условиям финансового соглашения путем планирования погашения долга. Планирование погашения долга заключается в определении периодических расходов...