Автор: Пользователь скрыл имя, 29 Апреля 2014 в 10:20, курсовая работа
Основна частина курсової робота містить чотири розділи, в яких розглянуто:
в першому розділі виконується аналіз задачі, що вирішується, а саме:
детальне вивчення завдання, доповнення необхідними додатковими умовами, формування виду вхідних даних та даних що необхідно отримати в результаті виконання програми,
вивчаються існуючі способі вирішення поставленої задачі в інформаційних джерелах та надається оцінка існуючим способам рішення;
обирається спосіб розв’язку, реалізації поставленої задачі.
в другому розділі здійснюється вибір технології та мови програмування
в третьому розділі розкривається творчій процес рішення, а саме:
розробка структурної схеми програми;
розробка інтерфейсу;
опис і розробка алгоритму розв’язку;
опис програми;
Реферат
1 Вступ
2 Основна частина
2.1 Аналіз розв’язуваної задачі
2.2 Дослідження джерел існуючої інформації
3 Вибір мови і технології програмування
4 Опис творчого процесу розв’язку задачі
4.1 Структура програмного виробу
4.2 Інтерфейс користувача
4.3 Розробка алгоритму програми
4.4 Опис програми
4.5 Структура файлів вхідних даних
4.6 Опис роботи програми
5 Вимоги до програмної та інформаційної сумісності
6 Висновок
7 Список використаних джерел
Блок-схеми процедур та функцій описані в додатках.
Основна програма
a — верхня межа інтегрування;
b — нижня межа інтегрування;
Відсутні.
h,x,integ:real;
klav:char – символ, що вводиться з клавіатури.
s:char – значення змінної;
f1,f2,f3:text—текстові файли;
st:string — рядок інформації про програму.
Процедури та функції
Функція FUNCTION F(x:real):real. Дана функція в собі містить рівняння F:=exp(1/x+sin(x)).
Процедура PROCEDURE WORK – це сам процес інтегрування функції, де а,b – межі інтегрування, які нам відомі і результат записує в файл.
Процедура PROCEDURE INPUT – це процес введення числа – кількості розбиттів, що вводимо з клавіатури. Перевіряємо на парність: якщо непарне, то додаємо одиницю і виконуємо процедуру WORK.
Процедура PROCEDURE INPUTFILE аналогічна до попередньої, але зчитування числа йде з файлу.
Процедура PROCEDURE EKRAN виконує виведення на екран з файлу по одному рядку результат роботи програми.
Процедура PROCEDURE PROPROG виконує виведення на екран з файлу по одному рядку інформацію про програму.
СТРУКТУРА ФАЙЛІВ ВХІДНИХ ТА ВИХІДНИХ ДАННИХ
Файл вхідних даних vvod.txt має таку структуру:
8
В рядку міститься кількість точок розбиттів графіка функції;
Вихідним файлом є файл rez.txt, який містить результат обчислення визначеного інтегралу функції.
При запуску програми з'явиться Меню з наступними пунктами:
При виборі першого пункту меню вам буде запропоновано ввести кількість точок розбиття. Після введення потрібно буде натиснути пробіл для виходу в головне меню.
При виборі другого пункту меню програма автоматично зчитає число яке було збережено у файлі vvod.txt. Після введення потрібно буде натиснути пробіл для виходу в головне меню.
Після вибору третього пункту на екран буде виведено результат обчислення інтегралу. Для завершення потрібно буде натиснути пробіл.
При виборі четвертого пункту меню «Про програму» користувач може побачити інформацію про саму програму та її розробника.
При виборі п'ятого пункту програма завершує своє функціонування.
Програма призначена для шифрування та розшифрування тексту.
Комплект поставки:
Мінімальні апаратні вимоги:
Процесор – 120 МГц
300 Кб оперативної пам’яті
100 Кб місця на диску
Операційна система DOS або Windows
Операційна оболонка.
Для встановлення програми на комп’ютер потрібно створити на жорсткому диску папку , а потім скопіювати у неї перераховані вище файли.
Для завантаження програми потрібно запустити виконуваний файл start.bat з операційної оболонки NC або Far Manager.
У даній курсовій роботі вирішена задача інтегрування функції методом парабол. Розроблено алгоритм рішення поставленої задачі.
Складена і налагоджена програма мовою Pascal.
У процесі налагодження програми була отримана цілком працездатна програма.
Проведено тестування програми, проаналізовані отримані результати.
Аналіз результатів показав, що поставлена задача успішно розв’язується.
Лістинг програми:
program TERMPAPER;
uses crt;
const punkt:array[1..5] of string[30]=
('Обробка
даних з клавiатури','Обробка
'Вивести результат на екран','Про програму','Вихiд');
VAR i,y:byte;
a,b,h,x,integ:real;
k:integer;
klav,s:char;
f1,f2,f3:text;
st:string;
FUNCTION F(x:real):real;
BEGIN
F:=exp(1/x+sin(x));
END;
PROCEDURE WORK;
BEGIN
a:=5;
b:=15;
h:=(b-a)/k;
integ:=F(a)+F(b)+4*F(a+h);
for i:=1 to (k div 2 ) -1 do
begin
x:=a+2*h*i;
integ:=integ+2*F(x)+4*F(x+h);
end;
integ:=h*integ/3;
assign(f1,'rez.txt');
rewrite(f1);
writeln(f1,integ);
close(f1);
END;
PROCEDURE INPUT;
BEGIN
write('Введiть кiлькiсть(парне) => ');
read(k);
if (k mod 2)>0 then
begin
k:=k+1;
writeln('Число не парне, тому було замiнено на ',k);
end;
WORK;
END;
PROCEDURE INPUTFILE;
BEGIN
assign (f2,'vvod.txt');
reset(f2);
while not eof (f2) do
begin
readln(f2,s);
end;
k:=ord(s)-48;
if (k mod 2)>0 then
begin
k:=k+1;
writeln('Число не парне, тому було замiнено на ',k);
end;
close(f2);
WORK;
END;
PROCEDURE EKRAN;
var f1:text;
s:string;
BEGIN
Assign (f1,'rez.txt');
reset(f1);
while not eof (f1) do
begin
readln(f1,s);
writeln(s);
end;
close(f1);
END;
PROCEDURE PROPROG;
BEGIN
assign (f3,'proprog.txt');
reset(f3);
while not eof (f3) do
begin
readln(f3,st);
writeln(st);
end;
close(f3);
END;
PROCEDURE ZASTAVKA;
BEGIN
window(1,1,80,24);
clrscr;
textcolor(15);
for i:=1 to 5 do
Begin
gotoxy(15,i*2);
writeln(punkt[i]);
End;
END;
PROCEDURE BLOKCURSOR;
ASSEMBLER;
ASM
MOV AH, 01
MOV CH, 32
MOV CL, 15
INT 10H
END;
PROCEDURE NORMALCURSOR;
ASSEMBLER;
ASM
MOV AH,01
MOV CH,14
MOV CL,15
INT 10H
END;
BEGIN
BLOKCURSOR;
y:=1;
ZASTAVKA;
repeat
textcolor(12);
gotoxy(13,y*2);
write(chr(42));
klav:=readkey;
gotoxy(13,y*2);
write(' ');
if ord(klav)=72 then
if y>1 then dec(y)
else y:=5;
if ord(klav)=80 then
if y<5 then inc(y)
else y:=1;
if ord(klav)=27 then
begin
y:=5;
klav:=chr(13);
end;
if (ord(klav)=13)and(y<5) then
begin
clrscr;
case y of
1:
begin
clrscr;
NORMALCURSOR;
textcolor(15);
writeln(punkt[y]);
INPUT;
writeln('Для завершення
repeat until keypressed;
clrscr;
BLOKCURSOR;
ZASTAVKA;
klav:=chr(27);
end;
2:
begin
clrscr;
NORMALCURSOR;
textcolor(15);
writeln(punkt[y]);
INPUTFILE;
writeln('Spase BAR');
repeat until keypressed;
clrscr;
BLOKCURSOR;
ZASTAVKA;
klav:=chr(27);
end;
3:
begin
clrscr;
NORMALCURSOR;
textcolor(15);
writeln(punkt[y]);
EKRAN;
writeln('Spase BAR');
repeat until keypressed;
clrscr;
BLOKCURSOR;
ZASTAVKA;
klav:=chr(27);
end;
4:
begin
clrscr;
NORMALCURSOR;
textcolor(15);
writeln(punkt[y]);
PROPROG;
writeln('Spase BAR');
repeat until keypressed;
clrscr;
BLOKCURSOR;
ZASTAVKA;
klav:=chr(27);
end;
end;
end;
UNTIL (ord(klav)=13)and(y=5)
END.
Бердичів 2012