Применение программных комплексов для решения инженерных задач
Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет транспорта»
Кафедра «Информационные технологии»
Курсовая работа
ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»
на тему
“Применение программных комплексов для решения инженерных задач”
Выполнил
студент группы УД-22 доцент
Сазанович К. В.
Проверил: Иоффе Л. А.
Гомель 2010
Содержание
Введение
Раздел 1. Решение задачи средствами Паскаль
1.1 Алгоритм решения задачи, выданной преподавателем
1.2 Программа решения задачи на языке Паскаль
1.3 Результаты решения задачи
Раздел 2. Решение задачи средствами Microsoft Excel
Раздел 3.Решение задачи в среде MathCAD
Заключение
Литература
Введение
Внедрение и широкое использование средств вычислительной техники является одним из главных факторов ускорения научно-технического прогресса в нашей стране. Стремительно возрастает роль ЭВМ в во всех областях человеческой деятельности. Без использования быстродействующих ЭВМ немыслимо решение задач интенсификации экономического развития ведущих отраслей народного хозяйства.
Темпы научно-технического прогресса, усиление роли науки в значительной степени определяются качеством и номенклатурой средств вычислительной техники и их программным обеспечением. Именно развитие этих средств обеспечивает успехи в автоматизации производственных процессов, в разработке новых технологий, в повышении эффективности труда и управления, в совершенствовании системы образования и в ускорении подготовки кадров.
Интенсивное развитие вычислительной техники, ее проникновение во все сферы человеческой деятельности ставит перед специалистами задачу широкого распространения компьютерной грамотности и использования ЭВМ в учебном процессе, в том числе в системе высшего образования.
Широкое и многообразное применение ЭВМ предъявляет все более высокие требования в их программному обеспечению. Разработка программ и программных комплексов приобретает характер индустриального производства. Значение программного обеспечения трудно переоценивать, т.к именно программы определяют и создают «интеллект» компьютера. В то же время процесс создания программ относится к одной из наиболее сложных сфер творческой деятельности человека, требующий больших усилий и специальной технологии разработки.
При составлении программ применяются различные языки программирования, среди которых Pascal занимает особое место. Отражая основные концепции структурного программирования, язык Pascal быстро завоевал популярность среди специалистов.
В данной курсовой работе необходимо научиться решать транспортные задачи средствами Pascal, Ms Excel, MathCad.
Раздел 1. Решение задачи средствами Паскаль
1.1 Алгоритм решения задачи, выданной преподавателем
Блок-схема процедуры name
Блок-схема процедуры vvod
Блок-схема процедуры sum_strok
Блок-схема процедуры schit
Блок-схема процедуры vivodfie
инженерная задача паскаль excel mathcad
Блок-схема процедуры Sum_po_stolbcam_bez_MC
Блок-схема процедуры Max_perevozka
Блок-схема процедуры Umengruz
Блок-схема процедуры Sum_stolbzov
Блок-схема программы на языке Паскаль
1.2 Программа решения задачи на языке Паскаль
Program perevozki;
uses crt;
const n=10;
Type Mas=array[1..n,1..n]of real;
Var i,j,k:byte;
S:real;
A:mas;
f1,f2:text;
sum_po_strokam:array[1..n] of real;
sum_po_stolscam:array[1..n] of real;
sum_po_stolscam_bez_MC:array[1..n] of real;
max:real;
jmax:byte;
imax:byte;
Reg:array[1..n] of string;
Procedure name;
begin
for i:=1 to n do
begin
Writeln('введите название i-региона ');
read(Reg[i]);
end;
end;
{ввод таблицы грузоперевозок в регионах РБ}
Procedure vvod(n:byte; var A:mas);
begin
reset(f1);
for i:=1 to n do
begin
for j:=1 to n do
read(f1,A[i,j]);
readln(f1);
end;
close(f1);
end;
{вывод таблицы грузоперевозок по пунктам в файл f2}
Procedure Vivodvfile(n:byte; A:Mas);
begin
writeln(f2,' _________________________________________________________________');
writeln(f2);
write(f2, ' ');
for i:=1 to n do
write(f2,Reg[i]:7,' ');
writeln(f2);
writeln(f2,' _________________________________________________________________');
for i:=1 to n do
begin
write(f2, Reg[i]:12,' ');
for j:=1 to n do
write(f2,A[i,j]:8:1);
writeln(f2);
end;
writeln(f2,' _________________________________________________________________');
writeln(f2);
end;
{вывод данной программы}
Procedure Schit (n:byte; A:Mas);
begin
write(' ');
for i:=1 to n do
write( reg[i]:10);
writeln;
writeln;
for i:=1 to n do
begin
write(reg[i]:10,' !') ;
for j:=1 to n do
write(A[i,j]:10:1);
write(' !') ;
writeln;
writeln();
end;
end;
{определение количества грузов, перевозимых в местном сообщение в регионах РБ}
Function diag(n:byte; A:Mas):real;
var i,j:byte;s:real;
begin
s:=0;
for i:=1 to n do
s:=s+A[i,i];
diag:=s;
writeln('Cумма количества грузов, перевозимых в местном сообщении по всем регионам равна ', s);
writeln;
end;
{нахождение итогов по регионам вывоза грузов}
Procedure Sum_strok(n:byte;A:Mas);
begin
for j:=1 to n do
sum_po_strokam[i]:=0;
for j:=1 to n do
for i:=1 to n do
sum_po_strokam[j]:=sum_po_strokam[j]+A[i,j];
for i:=1 to n do
writeln(sum_po_strokam[j]:19:1);
writeln();
writeln(f2,'Итоги количества грузов прибыло из регионов');
write(f2,' ');
for j:=1 to n do
write(f2,Reg[j]:7,'/');
writeln();
for j:=1 to n do
write(f2,sum_po_strokam[j]:8:1);
writeln(f2);
end;
{нахождение итогов количества грузов отправленных в регионы}
Procedure Sum_stolbzov(n:byte;A:Mas);
begin
for i:=1 to n do
sum_po_stolscam[i]:=0;
for i:=1 to n do
for j:=1 to n do
sum_po_stolscam[i]:=sum_po_stolscam[i]+A[i,j];
for i:=1 to n do
writeln(sum_po_stolscam[i]:19:1);
writeln();
writeln(f2,'Итоги количества грузов отправленных в регионы ');
write(f2,' ');
for i:=1 to n do
write(f2,Reg[i]:7,'/');
writeln();
for i:=1 to n do
write(f2,sum_po_stolscam[i]:8:1);
writeln(f2);
end;
{Сумма столбцов без местного сообщения}
Procedure Sum_po_stolbcam_bez_MC(n:byte;A:mas);
Begin
for j:=1 to n do
sum_po_stolscam_bez_MC[j]:=sum_po_strokam[j]-A[j,j];
writeln('Сумма по столбцам таблицы без учета грузов, перевозимых в местном сообщении');
for i:=1 to n do
writeln(reg[j]:18, ' ',sum_po_stolscam_bez_MC[j]:8:1);
writeln();
writeln(f2,'Итоги количества грузов прибывших из регионов');
write(f2,' ');
for j:=1 to n do
write(f2,Reg[j]:7,'/');
writeln();
for j:=1 to n do
write(f2,sum_po_stolscam_bez_MC[j]:8:1);
writeln(f2);
end;
{нахождение регионов, между которыми установлена максимальная перевозка груза}
Procedure Max_perevozka(n:byte;A:mas);
begin
max:=sum_po_stolscam_bez_MC[1];
imax:=1;
for i:=1 to n do
if sum_po_stolscam_bez_MC[i]>max then
begin
max:=sum_po_stolscam_bez_MC[i];
imax:=i;
k:=imax;
end;
Writeln('в регионе',' ' , Reg[imax],' установлена минимальная перевозка, которая составляет',' ', max:5:0 ,' ','тонн');
writeln(f2);
writeln (f2,'регионы, между которыми установлена минимальная перевозка груза - ',Reg[imax]);
writeln(f2);
end;
{по региону прибытия минимального груза, все размеры прибытия груза уменьшить на 10%}
Procedure Umengruz(n,k:byte; var A:mas);
begin
for i:=1 to n do
A[i,k]:=(A[i,k])*0.9;
Writeln('------------------------------------------------------------------------------');
writeln('Новый объём груза, прибывшего в регион, ',Reg[k],' будет составлять');
writeln;
end;
{главная программа}
begin
writeln(' к у р с о в а я р а б о т а в а р и а н т - 6 ');
Writeln;
Writeln('Индивидуальное задание:');
Writeln('Определить регионы(исключая местное сообщение)между которыми установлена максимальная перевозка(корреспонденция)груза ');
Writeln('По региону, прибытия данного груза, все размеры прибытия уменьшить на 10%!');
Writeln;
assign(f1,'D:\sazan.txt');
assign(f2,'D:\sazan2.txt');
{открытие файла для записи}
rewrite(f2);
name;
writeln(f2,' Курсовая работа Сазановича К.В.');
{вызов процедуры VVOD заполнения таблицы грузоперевозок в регионах РБ}
vvod(n,A);
{вызов процедуры Schit вывода таблицы грузоперевозок в регионах РБ}
writeln(' исходная таблица перевозок грузов');
writeln;
Schit(n,A);
Writeln(f2, ' исходная таблица перевозок грузов');
vivodvfile(n,A);
Writeln(f2);
Writeln('итоги по регионам прибытия грузов');
Sum_strok(n,A);
Writeln('итоги по регионам вывоза грузов');
Sum_stolbzov(n,A);
writeln('сумма количества грузов в местном сообщении по всем регионам ',diag(n,A),' тонн');
writeln(f2,' ');
writeln(f2,'сумма количества грузов в местном сообщении по всем регионам ',diag(n,a),'тонн');
{вызов процедуры Min_perevozka }
Sum_po_stolbcam_bez_MC(n,A);
Max_perevozka(n,A);
Umengruz(n,k,A);
Schit(n,A);
writeln(f2,' Таблица грузоперевозок в регионах');
writeln(f2,' (таблица после корректировки объёмов прибытия грузов в пункт - ',Reg[k],')');
vivodvfile(n,A);
Writeln('Работу выполнил Сазановича К.В.');
Writeln(f2, 'Курсовую работу выполнил Сазановича К.В.');
{закрытие файла f2}
close(f2); end.
1.3 Результаты решения задачи
Курсовая работа Сазановича К.В.
Исходная таблица перевозок грузов
Итоги количества грузов прибыло из регионов
Итоги количества грузов отправленных в регионы
сумма количества грузов в местном сообщении по всем регионам 445тонн
Итоги количества грузов прибывших из регионов
регионы, между которыми установлена минимальная перевозка груза - 9
Раздел 2. Решение задачи средствами Microsoft Excel
Исходная таблица
При помощи функции “СУММ(ячейка1:ячейка2)” мы высчитали суммы столбцов, суммы столбцов без местного сообщения и суммы строк. Таблица приведена ниже:
Таблица с формулами
При помощи функций “ИНДЕКС”, “ПОИСКПОЗ” и “МАКС” находим следующие значения в расчетах:
Таблица с формулами
После нахождения максимального региона уменьшаем максимальный столбец на 10% и получаем таблицу:
Таблица в формулах
При построении использовались гистограммы с группировкой, отображающие количество отправленного и принятого груза в каждом регионе до и после уменьшения грузопотока в регионе с максимальным местным сообщением.
Раздел 3.Решение задачи в среде MathCAD
Введем исходную матрицу перевозок
Исходная таблица
Найдем сумму по строкам
Найдем сумму по столбцам
Найдем сумму количества грузов, перевозимого в местном сообщении по всем регионам
Найдем количество груза ввозимого без местного сообщения
Найдем максимальный регион:
Уменьшим максимальный регион на 10%:
Выведем измененную таблицу:
Для того, чтобы не вводить матрицу вручную, а взять из файла используем функцию READPRN(“<путь к файлу>”).
Для нахождения максимального количества грузов в местном сообщении использовалась функция max.
Заключение
Выполнив курсовую работу, я ознакомился с основными типами языка Паскаль, структурой программы, алгоритмами решения, работой с циклическими операторами, массивами, процедурами и т.д. Приобрел навыки в решении задач на языке программирования Паскаль, составлении блок-схем, печати программ, работы в MS Excel, MathСad. Особое внимание в данной курсовой работе уделено операторам языка Паскаль. При помощи этого языка программирования решена задача, при тестировании получены и приведены результаты, которые затем совпали с результатами решения задачи в других приложениях.
После проработки ряда учебных и периодических изданий, а также решения практической задачи научился работать с файлами в среде языка программирования Паскаль, создавать решения программ для преобразования матриц и работы с файлами по условию задачи.
В программе MathCad научился производить различные операции над матрицами при помощи формул, арифметических выражений и т.д.
В оболочке MS Excel получены навыки по работе с таблицами, формулами, графиками и диаграммами.
Литература
Борисенко, М.В. Компьютерные информациооные технологии / М.В.Борисенко; М-во образования Респ. Беларусь, Белорус. гос. ун-т трансп. – Гомель: БелГУТ,2008. – 296 с.
Бородич, Ю.С., Вальвачев, А.Н., Кузьмич, А.И. Паскаль для персональных компьютеров / Бородич, Ю.С., Вальвачев, А.Н., Кузьмич, А.И. – Минск: ВШ, 1991. – 365с.
Гораев, О.П., Текстовый процессор MS Word: практикум по компьютерным технологиям/ О.П. Гораев. Гомель : БелГУТ, 2003. – 68 с.
Гораев, О.П., Лыч Ю.П. Операционная система Windows. Операционные оболочки: практикум по компьютерным технологиям / О.П. Гораев, Ю.П. Лыч. Гомель : БелГУТ, 2003. – 67 с.
Гораев, О.П., Лыч Ю.П. Электронные таблицы MS Excel: практикум по компьютерным технологиям / О.П. Гораев, Ю.П. Лыч. Гомель : БелГУТ, 2003. – 67 с.
Информатика. Базовый курс / под ред. С.В. Симоновича. СПб. : Питер, 2006. 640 с.
Комягин, В.Б. Современный самоучитель работы на ПК. Быстрый старт / В. Б. Комякин, А.О. Коцюбинский. М. : Триумф, 2004. 400 с.
Курбатова, Е.А. Microsoft Excel 2003. Краткое руководство / Е. А. Курбатова. – Издательский дом «Вильямс», 2005. – 288 с.
Леонтьев, В. . Новейшая энциклопедия персонального компьютера / В. П. Леонтьев М. : ОЛМА-ПРЕСС Образование, 2005. 734 с.
Лыч, Ю.П. Электронные таблицы : учеб. пособие / Ю. П. Лыч. – Гомель: БелГУТ, 2000. – 123 с.
Максимова, А. П. Информатика : учеб.-практ. курс /А. П. Максимова. – Минск : ТетраСистемс, 2005. 128 с.
Основы информатики : учеб. пособие / А. Н. Морозевич [и др.] ; под общ. ред. А.Н. Морозевича. – Минск : БГЭУ, 2003 – 560 с.
Степанов, А. Н. Информатика : учеб. для вузов / А. Н. Степанов. – 4-е изд. – СПб. : Питер, 2005. 684 с.
Турбо Паскаль 70; Киев : Торгово-издательское бюро,1996.
Шибут, М.С. Технологии работы с текстами и электронными таблицами (Word, Excel) / М.С. Шибут; под ред. И. Ф. Богдановой. – Минск : Молодёжное научное общество, 2000. – 144 с.
Шушкевич, Г.Ч. Введение в Mathcad 2000 : учеб. пособие / Г. Ч. Шушкевич, С.В. Шушкевич. – Гродно : ГрГУ, 2001. – 140 с.
17 Н.А. Рогачёва, М. В. Борисенко Т. Н. Литвинович «Информатика. Програмирование на языке Паскаль» 1 и 2 часть, Гомель 2004.