загрузка...
загрузка...
Характеристика роботи

Реферат

Кількість сторінок: 53

Безкоштовна робота

Вступ

Перші мови програмування у порівнянянні з сучасними були дуже примітивні, в тому сенсі, що характеризувалися своєю складністю та незрозумілістю. Програміст для того щоб написати деяку програму обов’язково повинен був бути професійно ознайомлений з апаратною частиною комп'ютера (HardWare), адже при написанні використовувався безпосередньо машинний код. Таке програмування називається машинно-орієнтованим. Основоположником можна вважати мову Asembler.

Наприкінці 60-их років, а якщо бути точнішим— в 1968 – 1971рр. колективом програмістів під керівництвом Н.Віртана базі мови Алгол-60 була розроблена мова програмування Pascal, в якій вперше було відображеноконцепції структурного програмування. Pascal завоював загальне визнання лише після появи Turbo Pascal – діалекту мови, створеною Американською фірмою Borland IntCorp. Успіх фірмі забезпечило поєднання досить швидкого компілятора з текстовим редактором і значне розширення можливостей стандартного Pascal. На даний час фірмою Borland розроблено декілька версій даної системи програмування. Одна з них Turbo Pascal 7.0. Крім того, в даний час розроблено і інші системи програмування: Borland Pascal, Free Pascal, Delphi, основою яких є моваPascalабо Object Pascal. Варто зауважити, що мова Pascal є мовою процедурного програмування, а Object Pascal – мовою об'єктно-орієнтованого.

Зараз моваPascalшироко використовується як засіб для початкового вивчення програмування.

У своїй курсовій роботі я могла б розповісти безліч цікавої інформації, та викласти цілу низку історичних подій зародження мов програмування, їхній розвиток, удосконалення, але в поставленій мені задачі цього немає. Отож приділимо більше уваги для написання програми.

Так як дана програма не є дуже важкою за своїм змістом, я намагатимусь звернути максимальну увагу, щоб як найкраще її оформити, і максимально розширити її функціональність.

Під час перегляду коду програми можна побачити що при написанні програми був використаний метод процедурно-орієнтованого програмування.

Якщо уважно переглянути код програми то можна побачити що саме тіло програми складається з декількох рядків:

BEGIN

TMus(Welcome);

RePaintForm: NormVideo;

PaintBackGround(7);

MainChoise:NormVideo;

Main(False,True,True);

Analizer(Return);

if Return=false then goto RePaintForm

else Goto MainChoise;

END.

Деякі програми під час роботи викликають певні процедуриабо ф-ції ( — підпрограми) тим самим передаючи управління програмних задач на них.

Будь-які задачі можна реалізувати з допомогою створення процедур, таким чином можна досягти того, що тіло самої програми взагалі буде займати лише один рядок, а один і той же код не доведеться писати двічі, якщо в програмі десь знадобиться виконати схожі операції.

Приклад найпростішої процедури, яка нічого не буде робити:

Procedure MyProcedure;

Begin

End;

Виклики процедури здійснюється шляхом оголошення їїімені в ході програми, якщо процедура має які-небудь параметри – то потрібно їх проініціалізувати (вказати, задати їм деяке значення відповідно до типу змінної).

В даному випадку моя програма являє собою сукупність процедур які тісно пов’язаніміж собою.

Мета роботи:створити програму-тест, яка б могла протестувати рівень знань користувача по заданій темі. Після чого, вивести результат – кількість правильних, неправильнихвідповідей та поставити загальну оцінку.

Особисто для себе я поставила мету більш детальніше розглянути особливості створення процедур,розширити свої знання в галузі програмування, та створити таку високо функціональнупрограму з якою було б приємно працювати мені та будь-якому користувачу. А для збереження результатів, після виведення їх на екран будемо вести лог-файл, який міститиме у собі усі результати пройдених тестів (таким чином, якщо хтось не пройде тест з першого разу — то у файлі буде показано, коли (в який час) і скільки спроб зробив користувач).

Початок розробки:

Ось перелік запитань, які я вибрала для створення тесту (див далі або файл data\test.txt). Для програми я була змушена змінити кодову сторінку набраного тексту з Кирилиці (1251)на DOS (866), так як у Pascal дуже часто виникають проблеми з використанням кодової сторінки 1251 (1250). Так, якщо потрібно відкрити файл будемо враховувати що стандартний текстовий редактор notepad.exe його нормально не зчитає. (У папці + - знаходиться програма Pad.exeдопомогою можна прочитати і редагувати текст будь-якої кодової сторінки).

Дані запитання що, зберігаються у TXT файлі з адресою data\test.txt, — виглядають дещо не так, як виглядають на екрані. Дана особливість полягає у тому, що програма зчитує перших три символи з рядка і сприймає їх як певну інформацію — спеціальний символ - код. Проводить їх аналіз та відповідно змінює свою поведінку у ході виконання. Так наприклад перший символ:

' – '(дефіс)— дає зрозуміти програмі, що йде мова про вивід на екран тестового запитання. Програма відразу починає виводити зчитаний з файлу текст з певними особливостями, та форматуванням (червоний колір, + з абзацу);

if Str[1]='-'then

begin

RichWindow(68,3,78,7, 2,'', 14, Green, True);

TextBackGround(Green);

TextColor(14);

Write (Str[2],Str[3],' z 15');

GoToXY(wX,WY);

NormVideo;

TextColor(Red);

end;

'#' — вертикальна табуляція — створена для того щоб відділити текст запитання від тексту варіанту відповіді (позн. див. далі);

if Str[1]='#'then

begin

GotoXY(WhereX,WhereY+5);

end;

' + '(плюс) — програма відразу розуміє, що наступний текст який буде виводитися на екран — є один з варіантів відповіді (форматування тексту здійснюється наданням йому зеленого кольору). Тут саме і відбувається одна маленька хитрість, на яку йде програма щоб визначити правильність варіанту відповіді (змінна Ch) — з відповідністю натисненою клавіші (зі змінною Ansv). (для цього відбувається передача управління аналізу самій процедурі procedure Test; де після аналізу наявності символу '&' (кінець запитання = true) відбувається аналіз відповідності натисненої клавіші та правильної відповіді );

if Str[1]='+'then

begin

TextColor(Green);

GotoXY(WhereX+15,WhereY);

end;

{частинаprocedure TestFiltr}

' & '(і) — наявність даного символу в рядку, дає розуміти програмі що запитання та відповіді вже були виведені на екран і саме тут потрібно проаналізувати — правильність відповіді.

if Str[Length(Str)]='+' then

begin

ch:=Str[4];

Str[Length(Str)]:=' '

end;