Разработка алгоритма слежения за расходом технических масел
Опираясь на формы приведенных выходных документов, для получения этой информации можно ввести следующие идентификаторы: С учетом формы входного документа выходную информацию по поставленным в задании вопросам можно представить в виде: Задание: найти для каждого станка сумму использованных масел summa, а затем найти минимальный и максимальный элементы: Minj, maxj — массивы, в которых хранятся… Читать ещё >
Разработка алгоритма слежения за расходом технических масел (реферат, курсовая, диплом, контрольная)
Разработка алгоритма слежения за расходом технических масел
СОДЕРЖАНИЕ ВВЕДЕНИЕ
1.ФУНКЦИОНАЛЬНАЯ СПЕЦИФИКАЦИЯ
1.1 Входные данные
1.2 Выходная информация
1.3 Математическая постановка задачи
2 Программная спецификация
2.1 Список идентификаторов программы
2.2 Распечатка текста программы
2.3 Блок-схема
3. ЭКСПЛУАТАЦИОННЫЕ ПРОЦЕДУРЫ
3.1 Требования к техническому обеспечению
3.2 Требования к подгатовке и предоставлению данных
4. ПРОЦЕДУРЫ ТЕСТИРОВАНИЯ И СОПРОВОЖДЕНИЯ
4.1 Тестовые данные
4.2 Результаты, соответствующие тестовым данным ЛИТЕРАТУРА
ВВЕДЕНИЕ
Деятельность отдельных людей, групп, коллективов и организаций сейчас все в большей степени начинает зависеть от их информированности и способности эффективно использовать имеющуюся информацию. Прежде чем предпринять какие-то действия, необходимо провести большую работу по сбору и переработке информации, ее осмыслению и анализу. Отыскание рациональных решений в любой сфере требует обработки больших объемов информации, что подчас невозможно без привлечения специальных технических средств.
Использование вычислительных технологий в технических расчетах позволило заметно уменьшить количество времени, затрачиваемое на эти процессы. Предположим, нам необходимо было рассчитать значение напряжения на отдельные участки предмета. Если это делать без вычислительных технологий, то необходимо сначала разработать прототип предмета, а потом проводить с ним опыты. При помощи же вычислительных технологий затраты времени, а тем более средств на эти процессы заметно сократятся, так как, например, уже можно не изготавливать прототип предмета, а используя ЭВМ провести необходимые расчеты с помощью определенных программ. Также примером преимущества может служить контроль за каким-либо процессом на некотором предприятии (например, учет инвентаря).
Также примером может послужить медицина. Сложные современные исследования в медицине немыслимы без применения вычислительной техники. К таким исследованиям можно отнести компьютерную томографию, томографию с использованием явления ядерно-магнитного резонанса, ультрасонографию, исследования с применением изотопов.
Количество информации, которое получается при таких исследованиях так огромно, что без компьютера человек был бы неспособен ее воспринять и обработать.
1.ФУНКЦИОНАЛЬНАЯ СПЕЦИФИКАЦИЯ
1.1 Входные данные
Входную информацию можно представить в виде таблицы, имеющей колонки с названиями технических масел, количество фактического и планового расхода масла для каждого станка каждого вида, количества каждого вида масла на складе ГСМ, а также цена единицы для каждого вида масла:
Название масла | Вид станка | Кол-во на складе | Цена 1 единицы | ||||||||||
L | K | ||||||||||||
пл | ф | пл | ф | пл | ф | пл | ф | пл | ф | ||||
M | |||||||||||||
N | |||||||||||||
O | |||||||||||||
P | |||||||||||||
Таким образом, опираясь на принятую форму исходного документа, можно ввести следующие структуры входных данных и их идентификаторов:
программа техническое масло учет
Название масла | Вид станка | Кол-во на складе | Цена 1 единицы | ||||||||||
name1 | namei | ||||||||||||
stanok1 | stanoki | ||||||||||||
пл | ф | пл | ф | пл | ф | пл | ф | пл | ф | ||||
mas1.name | masla111.plan | masla121.fakt | maslail1.fakt | mas1.sklad | mas1.zena | ||||||||
mas2.name | masla112.plan | masla122.fakt | maslail2.fakt | mas1.sklad | mas2.zena | ||||||||
mask.name | masla11k.plan | masla12k.fakt | maslailk.fakt | mas1.sklad | mask.zena | ||||||||
где: mask — массив записей (k=1,m), имеющей поля:
name — наименование масла;
sklad — количество масла хранящегося на складе ГСМ;
zena — цена 1 единицы каждого масла;
maslailk — массив записей (i=1,n;l=1,stanoki;k=1,m), имеющей поля:
plan — плановый расход масла;
fakt — фактический расход масла;
stanoki — количество станков в каждом виде (i=1,n);
namei — массив наименований видов станков (i=1,n).
1.2 Выходная информация
С учетом формы входного документа выходную информацию по поставленным в задании вопросам можно представить в виде:
Задание 1:
Станок с минимальным и максимальным расходом масла
Название масла | Вид станка | ||||||||||
L | K | ||||||||||
пл | ф | пл | ф | пл | ф | пл | ф | пл | ф | ||
M | |||||||||||
N | |||||||||||
O | |||||||||||
P | |||||||||||
min=1 станок вида L | max=2 станок вида К | ||||||||||
Задание 2:
Масла в избытке или в недостатке на складе ГСМ
Название масла | Вид станка | Кол-во на складе | Избыток или недостаток | ||||||||||
L | K | ||||||||||||
пл | ф | пл | ф | пл | ф | пл | ф | пл | ф | ||||
M | избыток | ||||||||||||
N | избыток | ||||||||||||
O | избыток | ||||||||||||
P | недостаток | ||||||||||||
Задание 3:
Список станков в порядке уменьшения стоимости расхода масел для каждого вида оборудования Вид L
Станок | Расходы | |
Вид К
Станок | Расходы | |
Опираясь на формы приведенных выходных документов, для получения этой информации можно ввести следующие идентификаторы:
minj, maxj — массивы, в которых хранятся данные по максимальному и минимальному расходу масла, где при:
j=1 — значение расхода масла;
j=2 — вид станка;
j=3 — номер станка в виде;
rashod — общий расход масла;
stoimostt — расходы для каждого станка в виде (t=1,stanoki; stanoki — количество станков в виде i).
1.3 Математическая постановка задачи
Математически определим последовательность действий:
1 задание: найти для каждого станка сумму использованных масел summa, а затем найти минимальный и максимальный элементы:
for i:=1 to n do
for l:=1 to stanok[i] do
begin
for k:=1 to m do
summa[l]: =summa[l]+masla[i, l, k].fakt;
if summa[l]>max[1] then
begin
max[1]: =summa[l];
max[2]:=i;
max[3]:=l;
end;
if (summa[l]
begin
min[1]: =summa[l];
min[2]:=i;
min[3]:=l;
end;
summa[l]:=0;
end;
2 задание: для каждого вида масла найти разность суммы количества затрачиваемого масла на каждый станок и количества хранящегося на складе ГСМ:
for k:=1 to m do
begin
for i:=1 to n do
for l:=1 to stanok[i] do
rashod:=rashod+masla[i, l, k]. fakt;
if rashod
if rashod>mas[k]. sklad then writeln (mas[k]. name, ' нехватает на складе');
3 задание: произвести сортировку в массиве расходов (stoimostil).
for i:=1 to n do
for l:=1 to stanok[i] do
for l1:=1 to stanok[i] do
if stoimost[i, l]
begin
a:=stoimost[i, l];
stoimost[i, l]:=stoimost[i, l1];
stoimost[i, l1]:=a;
b:=index[l1];
index[l1]:=index[l];
index[l]:=b;
end;
2. Программная спецификация
2.1 Список идентификаторов программы
Используемые переменные:
rashod — переменная в которой сохраняется значение расходов для текущего станка;
stoimostil — - расходы для каждого станка в виде (t=1,stanoki; stanoki — количество станков в виде i).
maxj, minj — массивы, в которых хранятся данные по максимальному и минимальному расходу масла, где при:
j=1 — значение расхода масла;
j=2 — вид станка;
j=3 — номер станка в виде;
namei — массив наименований видов станков (i=1,n);
stanoki — количество станков в каждом виде (i=1,n);
mask — массив записей (k=1,m), имеющей поля:
name — наименование масла;
sklad — количество масла хранящегося на складе ГСМ;
zena — цена 1 единицы каждого масла;
maslailk — массив записей (i=1,n;l=1,stanoki;k=1,m), имеющей поля:
plan — плановый расход масла;
fakt — фактический расход масла.
2.2 Распечатка текста программы.
type
mr=record
fakt, plan: real;
end;
masl=record
name:string;
zena:real;
sklad:real;
end;
var
n, m, i, l, l1,k, b: integer;
rashod, a: real;
stoimost:array[1.10,1.10] of real;
summa:array[1.10] of real;
max, min: array[1.3] of real;
name:array[1.10] of string;
stanok, index: array[1.10] of integer;
mas:array[1.10] of masl;
masla:array[1.10,1.10,1.10] of mr;
begin
rashod:=0;max[1]: =0;
write ('Введите кол-во видов станков n=');
readln (n);
write ('Введите кол-во марок технических масел m=');
readln (m);
writeln ('Название видов станков');
for i:=1 to n do
begin
write ('Вид ', i,' - ');
readln (name[i]);
end;
writeln ('Ввод кол-вa станков по каждому виду');
for i:=1 to n do
begin
write (name[i],'= ');
readln (stanok[i]);
end;
writeln ('Ввод названий масел');
for k:=1 to m do
begin
write (k,' - ');
readln (mas[k]. name);
end;
writeln ('Ввод расхода масел по стакнкам');
for i:=1 to n do
begin
writeln ('Ввод по ', name[i],':');
for l:=1 to stanok[i] do
begin
writeln (l,' станок');
index[l]: =l;
summa[l]:=0;
for k:=1 to m do
begin
writeln ('Масло — ', mas[k]. name);
write (#9,'плановый расход:');
readln (masla[i, l, k]. plan);
write (#9,'фактический расход:');
readln (masla[i, l, k]. fakt);
end;
end;
writeln;
end;
writeln ('Ввод кол-во на складе ГСМ');
for k:=1 to m do
begin
write (mas[k]. name,': ');
readln (mas[k]. sklad);
end;
writeln ('Ввод стоимость единицы масла');
for k:=1 to m do
begin
write (mas[k]. name,': ');
readln (mas[k]. zena);
end;
{ЗАДАНИЕ1}
for i:=1 to n do
for l:=1 to stanok[i] do
begin
for k:=1 to m do
summa[l]: =summa[l]+masla[i, l, k].fakt;
if summa[l]>max[1] then
begin
max[1]: =summa[l];
max[2]:=i;
max[3]:=l;
end;
if (summa[l]
begin
min[1]: =summa[l];
min[2]:=i;
min[3]:=l;
end;
summa[l]:=0;
end;
writeln (max[3]:4:0,' станок ', name[round (max[2])],' потребляет больше всего масел ', max[1]: 8:6);
writeln (min[3]:4:0,' станок ', name[round (min[2])],' потребляет меньше всего масел ', min[1]: 8:6);
readln;
{ЗАДАНИЕ2}
writeln ('Вид масла и его избыток или недостаток');
for k:=1 to m do
begin
for i:=1 to n do
for l:=1 to stanok[i] do
rashod:=rashod+masla[i, l, k]. fakt;
if rashod
if rashod>mas[k]. sklad then writeln (mas[k]. name, ' нехватает на складе');
rashod:=0;
end;
readln;
{ЗАДАНИЕ 3}
writeln ('Список станков в порядке уменьшения стоимости расхода масел');
for i:=1 to n do
begin
writeln ('По ', name[i],':');
writeln ('Станок',#9,'цена');
for l:=1 to stanok[i] do
for k:=1 to m do
stoimost[i, l]: =stoimost[i, l]+masla[i, l, k].fakt*mas[k].zena;
for l:=1 to stanok[i] do
for l1:=1 to stanok[i] do
if stoimost[i, l]
begin
a:=stoimost[i, l];
stoimost[i, l]:=stoimost[i, l1];
stoimost[i, l1]:=a;
b:=index[l1];
index[l1]:=index[l];
index[l]:=b;
end;
for l:=1 to stanok[i] do
writeln (index[l],#9,stoimost[i, l]: 8:6);
writeln;
end;
readln;
end.
2.3 Блок-схема
3. ЭКСПЛУАТАЦИОННЫЕ ПРОЦЕДУРЫ
3.1 Требования к техническому обеспечению
Программа была создана на ЭВМ со следующими характеристиками:
операционная система: Windows XP;
тип и частота процессора: AMD Sempron 3300;
объем оперативной памяти: 1536Mb.
3.2 Требования к подгатовке и предоставлению данных
· количество видов станков: любое натуральное число;
· количество марок технических масел: любое натуральное число;
· количество станков каждого вида: любое натуральное число;
· плановые и фактические расходы: любое целое положительное число;
· количество масла каждой марки на складе ГСМ: любое положительное число;
· стоимость единицы по всем маркам: любое положительное вещественное число.
4. ПРОЦЕДУРЫ ТЕСТИРОВАНИЯ И СОПРОВОЖДЕНИЯ
4.1 Тестовые данные
Данные предоставлены для n=2 видов станков, m=2 видов масел, в каждом виде станков — 2 станка.
Название масла | Вид станка | Кол-во на складе | Цена 1 единицы | ||||||||
L | K | ||||||||||
пл | ф | пл | ф | пл | ф | пл | ф | ||||
M | |||||||||||
N | |||||||||||
4.2 Результаты, соответствующие тестовым данным
Станок с минимальным и максимальным расходом масла
Название масла | Вид станка | ||||||||
L | K | ||||||||
пл | ф | пл | ф | пл | ф | пл | ф | ||
M | |||||||||
N | |||||||||
min=1 станок вида L | max=2 станок вида К | ||||||||
Масла в избытке или в недостатке на складе ГСМ
Название масла | Вид станка | Кол-во на складе | Избыток или недостаток | ||||||||||
L | K | ||||||||||||
пл | ф | пл | ф | пл | ф | пл | ф | ||||||
M | недостаток | ||||||||||||
N | ——————-; | ||||||||||||
Список станков в порядке уменьшения стоимости расхода масел для каждого вида оборудования
Вид L
Станок | Расходы | |
Вид К
Станок | Расходы | |
1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. -М.: «Нолидж», 1998. -616 с.
2. Вычислительная техника и программирование. Под редакцией А. В. Петрова М, Высшая школа, 1990
3. Марченко А. И., Марченко Л. И. Программирование в среде Turbo-Pascal 7.0-М., Бином Универсал, К.: Юниор, 1997
4. Фаронов В. В. Турбо Паскаль (в 3-х книгах). Кн. 3. Практика программирования. Часть 2. — М.: Учебно-инженерный центр «МВТУ — ФЕСТО ДИДАКТИК», 1993. — 304 с., ил.
5. Зубарева Н. М., Баринова Т. Н. Программирование и алгоритмизация: Учебное пособие по самостоятельному выполнению контрольных работ и курсового проектирования для студентов специальностей 210 200 заочной формы обучения, 251 100, 251 200, 250 400, 250 600, 320 700 очной формы обучения. Красноярск: СибГТУ, 2002. — 56с.