Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal



Скачать 137.08 Kb.
Дата26.07.2014
Размер137.08 Kb.
ТипКурсовая


Федеральное агентство по образованию РФ

ГОУВПО «Воронежский государственный технический университет»


Авиационный факультет

кафедра «Нефтегазового оборудования и транспортировки»

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

по дисциплине информатика

на тему: «Разработка программных средств автоматизации

технических и технологических расчетов в среде Pascal»

Выполнил: студент группы НГД-091

Шайдоров М.А.

Проверил: ассистент Огурцов П.В.

Воронеж 2010

Замечания руководителя
Содержание

Введение...................................................................................................4

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

2.Описание алгоритма.............................................................................8

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

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

5.Структурная схема..............................................................................17

6.Входные и выходные данные...............................................................20

7.Инструкция пользователя...................................................................21

8.Текстовый пример выполнения программы.......................................22

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

Список используемой литературы......................................................23

Введение

Первые сложные многоцелевые вычислительные устройства появились еще в XIX веке. Тогда же возникла необходимость в разработки программ для них, и впервые с такой задачей столкнулась легендарная Ада Лавлейс, работавшая с вычислительной машиной Чарльза Бэббиджа, которая называлась «Машина для исчисления разностей» («Difference Engine»). Но настоящие языки программирования появились все-таки в эпоху электронных вычислительных машин (ЭВМ). Считают, что первый язык программирования – это язык Short Code, появившийся в 1949 году. Программисты, работавшие на первых моделях ЭВМ, вынуждены были программировать в машинных кодах.

Для того чтобы представить, насколько это было «удобно», приведу фрагмент (примерно одну десятую часть!) программы, которая выводит на экран приветствие «Hello, world!»:


457f464c010100010000000000000000200000300010000003d008000340000069800000000000000003400200050000280000160013000600000340000034080000000a0000a0000005000000040000000003000000d400000000d4000080000000000001300000000001300000004000000010000000001000000000000000080000000000000000004f50000000000000000004f50000000000050000010000000000000100000004f8000000014f808000000000000c40000000c800000060000001000000000000000020000000052c00000015200080000000000090000000090000000060000004000006c2f62696c2f2d64696c756e2e786f73312e0000000011000000000011000000000000000000000000000e0000000a00000000000000…
Первыми языками программирования высокого уровня были Фортран, Кобол и Алгол, появившиеся в 50-е годы XX века. Первые два из них «здравствуют» и по ныне – это языки-долгожители, а Алгол стал родоначальником целого семейства языков, в числе которых и Паскаль. В настоящее время на-считывается несколько тысяч языков программирования, большая часть из которых имеет довольно узкую специализацию. Говорят, что, как только появился второй язык программирования, начались бурные споры о том, ка-кой язык лучше! Эти споры идут и поныне, принимая иного характера религиозных войн древности. На рис.1 схематически представлена история создания языков программирования.

Рис.1 - История создания языков программирования

Особое место среди языков программирования занимает АЛГОЛ, первая версия которого явилась в 1958 году. Одним из разработчиков АЛГОЛа был «отец» ФОРТРАНа Джон Бэкус. Название языка ALGorithmic Language подчёркивает то обстоятельство, что он предназначен для записи алгоритмов. Благодаря четкой логической структуре АЛГОЛ стал стандартным средством записи алгоритмов в научной и технической литературе. Последующими версиями языка стали АЛГОЛ 60 и АЛГОЛ 68. АЛГОЛ 68 оказался излишне громоздким, что создавало большие трудности в его реализации. Один из членов комитета, занимавшегося разработкой спецификации, - швейцарский ученый Никлаус Вирт – протестовал против ее принятия. Он оказался прав – АЛГОЛ 68 стал «лебединой песней» некогда самого популярного языка программирования, однако АЛГОЛ дал начало целой ветви языков (рис.0.2). В 1967 году Вирт создал свою версию – АЛГОЛ W. Это было связано с необходимостью найти такой язык программирования, который можно было бы использовать для обучения студентов методам разработки программ, таким как «программирование сверху вниз», «структурное программирование» и т.д. Вирту не понравился ни один из существовавших в то время языков, и в 1968 году он приступил к разработке своего собственного. В 1970 году в мире программирования произошли по крайней мере два великих события – появилась операционная система UNIX и новый язык программирования. Вирт назвал его в честь великого французского математика и религиозного философа XVII века Блеза Паскаля. Паскаль изобрел вычислительное устройство, именно поэтому новому языку было присвоено его имя. Вирт настаивал впоследствии, что название языка должно начинаться с заглавной буквы – как фамилия. Первая версия языка была создана для компьютера CDC 6000.

Благодаря своей честности, логичности и другим особенностями Паскаль надолго занял свою нишу, являясь прекрасным языком для обучения программированию. Паскаль использовался и для разработки серьезных программ-приложений. Шутили, что Вирт разработал игрушку, но многие отнеслись к ней слишком серьезно. В 1975 году вновь два события стали вехами в истории программирования – Билл Гейтс и Пол Ален заявили о себе, разработав свою версию бейсика, а Вирт и Йенсен выпустили классическое описание языка «Pascal User Manual and Report».

Впоследствии появились различные версии языка и его расширения. Наиболее известным расширением стал пакет Турбо Паскаль фирмы Borland, появившейся в 1983 году и сразу ставший событием в мире компьютерных технологий. Первое упоминание о нем содержалось в рекламе, опубликованный в журнале BYTE, а сам пакет предназначался для операционной системы CD/M. В начале 1984 года он был перенесён в сферу MS-DOS и приобрел огромную популярность. С тех пор появилось несколько версий Турбо Паскаля.

Рис.2 — Развитие языков программирования

Фирма Borland/ Inprise завершила линию продуктов Турбо Паскаль и перешла к выпуску системы визуальной разработки для Windows – Delphi. Не смотря на это, Турбо паскаль сохраняет свое значение отличного языка для первого знакомства с миром «серьезного» программирования. Это связано как с его четкой логической структурой, так и с теми возможностями, которые позволяют использовать Турбо Паскаль для решения разнообразных задач. Среди них вычисления и обработка данных, компьютерная графика, работа со звуком, системное программирование. Турбо Паскаль позволяет применять приемы объектно-ориентированного программирования, которое стало одной из ведущих современных технологий программирования.

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

Дана последовательность чисел a из n элементов. Составить программу поиска двух наибольших по модулю значений элементов. Элементы, расположенные между двумя найденными максимальными, разделить на найденный элемент с большим номером, если он находится в первой половине последовательности. В противном случае оставить последовательность без изменения. Начальные, найденные значения элементов, их индексы и преобразованную последовательность напечатать в строку.
2. Описание алгоритма

Алгоритм решения задачи состоит из двух частей:



  • поиск двух наибольших по модулю значений элементов;

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

Поиск двух наибольших по модулю значений элементов.

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

Нахождение 2 наибольших по значению элементов массива.

Переменные:

а — массив, состоящий из n элементов;

Max1 - первый из 2 наибольших по значению элементов;

Max2 – второй из 2 наибольших по значению элементов;

n — количество элементов;

i — индексы элементов массива;

t,j – переменные, используемые для запоминания индексов максимальных элементов массива.

Расчет:

...Max1:=-1;



For i:=1 to n do

begin


If a[i]>Max1 then

begin


Max1:=a[i];

t:=i


end

end;


Max2:=-1;

For i:=1 to n do

begin

If (a[i]>Max2) and (i<>t) then



begin

Max2:=a[i];

j:=i;

end


end;...

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

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

Преобразование массива.

Переменные:

Max1 - первый из 2 наибольших по значению элементов;

Max2 – второй из 2 наибольших по значению элементов;

n — количество элементов;

i — индексы элементов массива;

t, j – переменные, используемые для запоминания индексов максимальных элементов массива;

а — массив, состоящий из n элементов.

Расчет:

...If (t>j) and (t<=n/2) then



begin

For i:=j+1 to t-1 do

a[i]:=a[i]/a[t]

end;


If (tbegin


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

a[i]:=a[i]/a[j]

end;...

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



Program Massiv;

Label F;


Const k=50;

var


i,j,n,t: integer;

Max1, Max2: real;

a: array [1..k] of real;

begin


Max1:=0;

Max2:=0;


F: writeln ('Vvedite kollichestvo elementov posledovatelnosti');

readln (n);

If n>50 then goto F;

For i:=1 to n do

begin

writeln ('Vvedite ',i,' element massiva');



readln (a[i]);

a[i]:=abs(a[i]);

end;

For i:=1 to n do



begin

write ('a[',i,']=',a[i]:2:2,' ');

end;

writeln;


Max1:=-1;

For i:=1 to n do

begin

If a[i]>Max1 then



begin

Max1:=a[i];

t:=i

end


end;

Max2:=-1;

For i:=1 to n do

begin


If (a[i]>Max2) and (i<>t) then

begin


Max2:=a[i];

j:=i;


end

end;


If (t>j) and (t<=n/2) then

begin


For i:=j+1 to t-1 do

a[i]:=a[i]/a[t]

end;

If (t

begin

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

a[i]:=a[i]/a[j]

end;


For i:=1 to n do

begin


write ('a[',i,']=',a[i]:2:2,' ');

end;


writeln;

writeln ('a[',t,'] = Max1=',Max1:2:2);

writeln ('a[',j,'] = Max2=',Max2:2:2);

writeln;


readln;

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

Program Massiv; (имя программы)

Label F; (раздел описания меток)

Const k=50; (раздел описания констант)

var (раздел описания переменных)

i,j,n,t: integer; (описание целочисленных

переменных)

Max1, Max2: real; (описание дробных

переменных)

a: array [1..k] of real; (описание дробных переменных

типа массив)

begin (начало раздела операторов)

Max1:=0; (операция присваивания

значения переменной)

Max2:=0; (операция присваивания

значения переменной)

F: writeln ('Vvedite

kollichestvo elementov

posledovatelnosti'); (начало метки, вывод

сообщения на экран)

readln (n); (считывание размерности массива)


If n>50 then goto F; (условие, при котором массив

с заданным пользователем

количеством элементов

будет создан)

For i:=1 to n do (цикл по заполнению массива)

begin (начало цикла)

writeln ('Vvedite ',i,'

element massiva'); (заполнение массива вручную)

readln (a[i]); (обработка введенных данных)

a[i]:=abs(a[i]); (вычисление модуля каждого

элемента)

end; (конец цикла)

For i:=1 to n do (цикл по выводу массива на

экран)

begin (начало цикла)



write ('a[',i,']=',a[i]:2:2,' '); (вывод массива на экран)

end; (конец цикла)

writeln; (оператор переноса курсора

на следующую строку)

Max1:=-1; (операция присваивания

значения переменной)

For i:=1 to n do (цикл поиска Max1)

begin (начало цикла с предусловием)

If a[i]>Max1 then (условие поиска Max1)

begin (начало цикла в цикле)

Max1:=a[i]; (присваивание переменной

значения максимального

элемента массива)

t:=i (присваивание переменной

индекса максимального

элемента массива)

end (конец цикла в цикле)

end; (конец цикла)

Max2:=-1; (операция присваивания

значения переменной)

For i:=1 to n do (цикл поиска Max2)

begin (начало цикла с

предусловием)

If (a[i]>Max2) and (i<>t) then (условие поиска Max2)

begin (начало цикла в цикле)

Max2:=a[i]; (присваивание переменной

значения 2 максимального

элемента массива)

j:=i; (присваивание переменной

индекса максимального

элемента массива)

end (конец цикла в цикле)

end; (конец цикла)

If (t>j) and (t<=n/2) then (условие преобразования

цикла)

begin (начало цикла)



For i:=j+1 to t-1 do (цикл с предусловием по

преобразованию массива)

a[i]:=a[i]/a[t] (преобразование элементов

массива в зависимости

от условия)

end; (конец цикла)

If (t

цикла)


begin (начало цикла)

for i:=t+1 to j-1 do (цикл с предусловием по

преобразованию массива)

a[i]:=a[i]/a[j] (преобразование элементов

массива в зависимости

от условия)

end; (конец цикла)

For i:=1 to n do (цикл по выводу массива на

экран)

begin (начало цикла)



write ('a[',i,']=',a[i]:2:2,' '); (вывод массива на экран)

end; (конец цикла)

writeln; (оператор переноса курсора

на следующую строку)

writeln ('a[',t,'] = Max1=',

Max1:2:2); (вывод значения элемента

на экран)

writeln ('a[',j,'] = Max2=',

Max2:2:2); (вывод значения элемента

на экран)

writeln; (оператор переноса курсора

на следующую строку)

readln; (обработка данных)

end. (конец раздела операторов)


5. Структурная схема







6. Входные и выходные данные

К входным данным программы относятся:


  1. k — максимальное количество элементов массива;

  2. n - количество элементов массива;

  3. а — массив, заполняемый вручную.

Выходные данные:

    1. а — преобразованный массив;

    2. Max1, Max2 – значения максимальных элементов.

Вид рабочего листа представлен на рис.3

Рис.3 - Вид рабочего листа

7. Инструкция пользователя

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

Для запуска программы будем использовать сочетание клавиш: Ctrl+F9 или в главном меню выбираем команду Run- run. Если программа запустилась, убеждаемся в ее правильности. Для просмотра результатов набираем Alt+F5. Выход из окна просмотра результатов осуществляется с помощью клавишей Esс.

8. Текстовый пример
Рис.4 - Вид рабочего листа
Заключение

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

Прогонка программы на различных исходных данных показала её полную работоспособность.

Результаты работы выводятся в окно просмотра результатов программы.

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

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

1.Алексеев А.П. Информатика 2007. - М.: СОЛОН-ПРЕСС, 2007. - 608с.

2. Бородкин К.В. Информатика. Индивидуальный практикум и курсовое проектирование: Учебное пособие / К.В. Бородкин, А.И. Болдырев, В.В. Бородкин - Воронеж: Воронежский государственный технический университет, 2002. - 76с.





Похожие:

Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconОптимизация контроля в программных проектах разработки больших систем
Целью исследования является разработка метода построения оптимального набора контрольных точек для программных комплексов автоматизации...
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconРазработка линейных программ и их реализация и тестирование в среде программирования Pascal
Цель работы: Закрепление знаний об интегрированной среде; составление, ввод и выполнение простейшей линейной программы
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconВводная лекция Термином вычислительная машина
Термином вычислительная машина будем обозначать комплекс технических и программных средств, предназначенный для автоматизации подготовки...
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconП ринципы автоматизации расчетов общей прочности судов методом модуль-элементов
Ммэ, который является одной из разновидностей мкэ. Особенности процедур расчетов по ммэ позволяют создать полностью автоматизированный...
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconТест «Язык программирования Pascal. Ввод-вывод данных. Ветвление. Циклы»
Какая комбинация клавиш используется для запуска программы на выполнение в среде Turbo Pascal?
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconРазработка методики программных расчетов поддержки принятия решений по управлению состоянием окружающей среды и снижению риска для здоровья населения в связи с загрязнением атмосферного воздуха выбросами промышленных предприятий и тэц

Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconСети передачи данных. Методы доступа
...
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconТребования к функциям и техническим параметрам автоматизированной системы расчетов, предназначенной для автоматизации расчетов за услуги связи, оказываемые по картам оплаты услуг связи
В автоматизированной системе расчетов обеспечивается идентификация карты оплаты услуг связи по ее инвентарному номеру
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconИспытания программных средств на наличие компьютерных вирусов
Настоящий стандарт распространяется на испытания программных средств (ПС) и их компонентов, цели которых обнаружить в этих пс и устранить...
Разработка программных средств автоматизации технических и технологических расчетов в среде Pascal iconПрограмма Microsoft Excel. Ее применение для разработки электронных таблиц. Разработка электронной таблицы для автоматизации выполнения практической работы
Курсовую работу по теме Обзор средств для автоматизации геодезических вычислений. Программа Microsoft Excel. Ее применение для разработки...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org