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

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

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

ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: Разработка в среде Turbo Pascal программы, реализующей нахождение чисел Фибоначчи

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

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

 

 

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

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

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

НА ТЕМУ:

 

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

 

 

 

Содержание

Условие задачи ..... 4

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

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

Задача 5 ... 13

Задача 18 ... 16

Задача 21 . . 18

Заключение .... 20

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

Приложение к задаче 5... 22

Приложение к задаче 18 ... 23

Приложение к задаче 21 ... 24

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

 

 


План-график выполнения курсовой работы.

№п./п.

Этапы выполнения курсовой работы

Срок выполнения

1

Выдача задания

7.02.08

2

Подбор и изучение литературы

8.02.08 - 15.03.08

3

Разработка курсовой работы

3.04.08

4

 

 

Представление курсовой работы руководителю

 

 

 

4.05.08

5

Доработка курсовой работы

13.05.08

6

Защита курсовой работы

15.05.08

 

 


Условие задачи

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

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

Дана целочисленная матрица размера M*N, элементы которой могут принимать значения от 0 до 100. Различные строки матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих строках. Найти количество строк, похожих на первую строку данной матрицы.

2) Решить задачи:

Задача 5. Массив состоит из элементов, соответствующих количеству учеников разных классов школы. Найти:

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

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

–    количество классов, имеющих учеников больше среднего количества;

–    на сколько процентов увеличилось бы количество учеников школы, если бы все классы имели столько же учеников, что и в классе с максимальным количеством.

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

Задача 21. Пусть дано натуральное число n. Исключить из записи этого числа цифры 3 и 7, оставив прежним порядок остальных цифр. Например, из числа 3171507377 должно получится число 1150.

 


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

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 – зарезервированные слова (обозначают "для", "выполняй" соответственно);

А и В – выражения, определяющие соответственно начальное и конечное значение параметров цикла;

< оператор > - тело цикла.

Цикл while 

В отличие от цикла for, в цикле while заранее неизвестно сколько раз проработает цикл. Вместо задания параметров счетчика, там задается условие, при котором цикл будет продолжать работать. Если условие будет равно false, то цикл прервет свою работу.

Формат:

while <условие> do оператор;

В качестве оператора может выступать также и составной оператор.

 

 

 

Числа Фиббоначи

Числа Фиббоначи представляют собой такой ряд:

0, 1, 1, 2, 3, 5, 8, 13…

Каждое следующее число образовано суммой предыдущих:

1 = 0+1;

2 = 1+1;

3 = 2+1;

5 = 3+2;

8 = 5+3;

Алгоритм вычисления чисел Фиббоначи, меньших заданного числа N, можно реализовать в виде несложного цикла, показанного ниже.

В программе тип переменных a,b,c был выбран word, т.к. числа Фиббоначи только положительные, и в данном случае умещаются в диапазон 0..65535.

 

 

 


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

Блок-схема

 

Программа

Uses Crt;

Const n=10000;

Var a,b,c: Word;

Begin ClrScr; a:=1; b:=1; Write(a,' '); Write(b,' ');

      While (a+b)<n do

        Begin

        c:=b;

        b:=b+a;

        a:=c;

        Write(b,' ')

        End;

      Readln

End.

 

Задача 5

Массив состоит из элементов, соответствующих количеству учеников разных классов школы. Найти:

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

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

–    количество классов, имеющих учеников больше среднего количества;

–    на сколько процентов увеличилось бы количество учеников школы, если бы все классы имели столько же учеников, что и в классе с максимальным количеством.


Блок-схема


 

Uses Crt;

Const n=10;

Var i: byte; a: array[1..n] of byte; s: Word; k,max,min: byte;

Begin ClrScr; Randomize; s:=0; max:=0; min:=100; k:=0;

      For i:=1 to n do

        Begin

        a[i]:=Random(11)+20;

        Write(a[i]:3)

        End;

      WriteLn;

      For i:=1 to n do s:=s+a[i];

      Write(Round(s/n));

      For i:=1 to n do

        Begin

        If a[i]>max then max:=a[i];

        If a[i]<min then min:=a[i]

        End;

      WriteLn;

      For i:=1 to n do If a[i]=max then Write(i:3);

      WriteLn;

      For i:=1 to n do If a[i]=min then Write(i:3);

      WriteLn;

      For i:=1 to n do If a[i]>(s/n) then Inc(k);

      WriteLn(k);

      Write(Round((n*max-s)/s*100));

      Readln

End.

 

 

Задача 18

 

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

 



Uses Crt;

Const n=15;

Var a,b: array[1..n] of shortint; i,j: byte;

Begin ClrScr; Randomize; j:=0;

      For i:=1 to n do

        Begin

        a[i]:=Random(21)-5;

        Write(a[i]:4)

        End;

      WriteLn;

      For i:=1 to n do

        If a[i]>0 then

          Begin

          Inc(j);

          b[j]:=a[i]

          End;

      For i:=1 to n do

        If a[i]<0 then

          Begin

          Inc(j);

          b[j]:=a[i]

          End;

      For i:=1 to n do Write(b[i]:4);

      ReadLn

End.

 

Задача 21

Пусть дано натуральное число n. Исключить из записи этого числа цифры 3 и 7, оставив прежним порядок остальных цифр. Например, из числа 3171507377 должно получится число 1150.

 



Uses Crt; 

Const n=10;

Var a: array[1..n] of byte; i: byte;

Begin ClrScr; Randomize;

      For i:=1 to n do

        Begin

        a[i]:=Random(10);

        Write(a[i])

        End;

      Writeln;

      For i:=1 to n do If (a[i]<>3) and (a[i]<>7) then Write(a[i]);

      ReadLn

End.

 

Заключение

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

Язык pascal является одним самых перспективных языков. При широкой функциональности, он относительно прост в изучении по сравнению с другими языками.

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

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

В приложении представлены результаты работы программ в виде снимков экрана.

 

 


Приложение  

 

 

 

Приложение к задаче 5

 

 

Приложение к задаче 18

 

  

 

 

 

Приложение к задаче 21

 

  

 

 

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

 

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

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


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