Алгоритмічна мова Pascal Програма Телефонний довідник

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Алмет'евськ ДЕРЖАВНИЙ

НАФТОВОЇ ІНСТИТУТ

Кафедра інформатики

Алгоритмічна мова Pascal. Програма «Телефонний довідник»

2007

Зміст

Введення

Завдання

Блок-схема

Лістинг програми

Опис основних модулів і операторів

Література

Додаток

Введення

Найважливіша роль у розвитку сучасного суспільства наприкінці XX століття належить інформатизації. За характером та значенням для майбутнього людської цивілізації процес інформатизації можна порівняти з переходом, людства від аграрного суспільства до індустріального. Подібно до того, як винахід механічного двигуна відкрило еру комплексної механізації і автоматизації фізичної праці, винахід ЕОМ зробило те ж саме стосовно праці розумового.

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

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

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

Сучасні комп'ютери не настільки досконалі, щоб розуміти програми, записані на якому-небудь уживаній людині мові-російською, англійською, японською. Команди, призначені для ЕОМ необхідно записати у зрозумілій їй формі. З цією метою застосовуються мови програмування - штучні мови, алфавіт, словниковий запас і структура яких зручні людині і зрозумілі комп'ютера.

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

Виходячи з цього всі мови програмування діляться на мови низького (асемблер), високого (Паскаль, Бейсік, Сі, Фортран) і надвисокої (Алгол-67, Пролог) рівня.

Мова програмування Паскаль (названий на честь видатного французького математика і філософа Блеза Паскаля (1623-1662)), розроблений в 1968-1971 роках Никлаусом Віртом, професором, директором Інституту інформатики Швейцарської вищої політехнічної школи. Мова Паскаль, створений спочатку для навчання програмування як систематичній дисципліні, скоро став широко використовуватися для розробки програмних засобів в професійному програмуванні.

Широкою популярністю Паскаля серед програмістів сприяли такі причини:

Завдяки своїй компактності, вдалому початкового опису Паскаль виявився досить, легким для вивчення

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

Мова програмування Паскаль дозволяє чітко реалізувати ідеї структурного програмування і структурної організації даних.

Мова програмування Паскаль зіграв велику роль у розвитку методів аналітичного доказу правильності програм і дозволив реально перейти від методів налагодження програм до систем автоматичної перевірки правильності програм.

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

Використання в Паскалі простих і гнучких структур управління: розгалужень, циклів.

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

Існують три види трансляторів: інтерпретатори, компілятори і асемблери.

Будь-транслятор вирішує такі основні завдання:

Аналізує трансльовану програму, зокрема визначає, чи містить вона синтаксичні помилки.

Генерує вихідну програму.

Розподіляє пам'ять для вихідної програми. Розробка програми на Паскалі включає в себе наступні дії: введення і редагування тесту програми на мові програмування Паскаль, її трансляцію, налагодження. Для виконання кожного етапу застосовуються спеціальні засоби.

Для підвищення якості і швидкості розробки програм в середині 80-х років була створена система програмування Турбо Паскаль. Слово Турбо в назву системи програмування - це відображення торгової марки фірми-виробника Вorland International, Inc (США).

Завдання

Написати програму, яка дозволяє знайти потрібні відомості в телефонному довіднику (а: \ phone.txt). Програма повинна запитувати прізвище людини і виводити його телефон. Якщо в довіднику є однакові прізвища, то програма повинна вивести список всіх людей, які мають ці прізвища.

Блок-схема

Лістинг програми

program kurs;

uses Crt;

type

RB = record Запис відомостей

A, T, Y: string [10];

end;

var

D, M, i, k, z: integer; Sr, Sr0, max: real;

BookFile: file of RB; Змінна для файлу із записами RecBook

Work: RB; Змінна для доступу до записів

Vid: Byte;

End_Menu: boolean;

Name, s: string [50];

procedure AddRec; Додавання запису у файл

begin

writeln ('Введення запису №', FilePos (BookFile) +1);

with Work do

begin

Write ('Введіть прізвище:');

Readln (A);

Write ('Введіть ім'я:');

Readln (Y);

Write ('Введіть телефон (32-22-12 ):');

Readln (T);

Write (BookFile, Work); end;

end;

procedure Create_Supplementing_library; Створення нового файлу

var

Ind, Count: integer; begin Name: = 'A: \ phone.txt';

Assign (BookFile, Name); Відкрити новий файл для запису

Rewrite (BookFile);

Writeln ('Створення записів файлу', Name);

Write ('Введіть кількість телефонів на станції:');

Readln (Count);

for Ind: = 1 to count do

AddRec;

Writeln ('Створення файлу даних бібліотеки завершена');

Writeln ('Файл даних має', FileSize (BookFile), 'записи'); close (BookFile);

end;

procedure OutputRec;

begin

With Work do

writeln (A, '', Y, '', T);

end;

procedure OutputAllRec;

begin

clrscr;

Name: = 'A: \ phone.txt';

Assign (BookFile, Name);

Reset (BookFile); clrscr; Seek (BookFile, 0);

Writeln ('Прізвище Телефон');

writeln;

while (not Eof (BookFile)) do begin

With Work do begin

Read (BookFile, Work);

Outputrec; end;

end; end;

procedure FindTel;

begin

clrscr;

Name: = 'A: \ phone.txt';

Assign (BookFile, Name);

Reset (BookFile);

writeln ('Введіть прізвище');

readln (s);

clrscr;

Seek (BookFile, 0);

Writeln ('Прізвище Телефон');

writeln;

while (not Eof (BookFile)) do begin

With Work do begin

Read (BookFile, Work);

if s = a then begin Outputrec; z: = 1; end;

end;

end;

if z = 0 then writeln ('У довіднику даних про', s, 'е немає');

end;

begin

ClrScr;

End_Menu: = False; repeat textcolor (7);

Writeln ('Виберіть вид роботи:');

Writeln ('1 - створити новий файл даних');

Writeln ('2 - виведення всієї картотеки');

Writeln ('3 - пошук телефону на прізвище');

Writeln ('0 - завершення роботи:');

Write ('Ваш вибір:');

Readln (Vid);

case Vid of

1: Create_Supplementing_library;

2: OutputAllRec;

3: FindTel;

0: End_Menu: = True;

end;

writeln;

Writeln ('Для продовження натисніть Enter');

Readln;

ClrScr;

until End_Menu;

end.

Опис програми

Програма починається стандартної рядком:

Program;

Далі слід описова частина програми. Вона складається з кількох розділів:

Процедура assign (ФайловаяПеременная, имяфайла) передує інших процедур, тому що ставить у відповідність фізичній файлу на зовнішньому пристрої логічний файл - файлову змінну, до якої згодом будуть звертатися всі інші файлові процедури (пов'язує їх). Имяфайла має представляти собою вираз строкового типу. Подальші операції зі змінною ФайловаяПеременная будуть виконуватися над фізичним файлом имяфайла. Це повне ім'я зовнішнього файлу, що задовольняє вимогам операційної системи MS-DOS. Процедуру assign неприпустимо використовувати для відкритого файлу. Перш ніж використовувати файлову змінну повторно, необхідно закрити файл за допомогою процедури close. Після виклику assign зв'язок файлової змінної з зовнішнім файлом існує до тих пір, поки не буде виконано інший assign для даної файлової змінної. Отже, файл можна повторно відкрити без додаткового використання процедури assign навіть після закриття close.

Процедура reset (ФайловаяПеременная) відкриває існуючий файл на читання (відкриває вхідний файл) і ставить покажчик на початок першого елемента файлу. При відсутності зовнішнього файлу з вказаним ім'ям виникає повідомлення про помилку Error I: File not found (Помилка 2: Файл не знайдено). Якщо при читанні файлу виникне необхідність повернути покажчик в його початок, достатньо буде просто застосувати процедуру reset до цього файлу ще раз.

Функція ioresult перевіряє наявність файлу на диску. За замовчуванням при всіх зверненнях до стандартних функцій і процедур введення / виведення, що використовуються при роботі з файлами, автоматично проводиться перевірка на наявність помилок. Програміст повинен передбачити можливість введення невірних вихідних даних користувачем програми, наприклад, імені файлу, призначеного для читання. Це призведе до завершення роботи програми, що небажано, особливо при введенні великих обсягів даних. Використання директиви компілятора і стандартної функції ioresult в циклі repeat дозволить програмі коректно обробити цю виняткову ситуацію.

Процедура rewrite (ФайловаяПеременная) створює і відкриває новий (вихідний) файл для подальшого запису даних. Після її успішного виконання файл готовий до запису в нього першого елемента.

Зверніть увагу - використання rewrite вимагає особливої ​​акуратності. Якщо зовнішній файл з вказаним ім'ям вже існує, то він віддаляється, і на його місці створюється новий порожній файл з тим же ім'ям. Для запобігання втрати інформації на практиці необхідно створювати резервні копії файлів, над якими можуть проводитися небезпечні дії. Звичайно їм призначається розширення bak.

Процедура close (ФайловаяПеременная). Використовуючи процедуру close, програміст повинен закрити файл, після того як у програмі буде завершена його обробка. В іншому випадку може відбутися втрата даних. При закритті зовнішній файл оновлюється, його автоматично завершує символ кінця файлу. Згодом ФайловаяПеременная може бути пов'язана з іншим (або знову з тим же самим) фізичним файлом.

Процедура rename (ФайловаяПеременная, имяфайла) використовується ДЛЯ ТОГО, щоб перейменувати невідкритий зовнішній файл будь-якого типу. Нове ім'я задається рядком имяфайла.

Процедура erase (ФайловаяПеременная) видаляє невідкритий зовнішній файл будь-якого типу, що задається параметром ФайловаяПеременная.

Зверніть увагу - процедури rename і erase не можна використовувати для відкритих файлів. Їх необхідно попередньо закрити. Якщо файл не існує, виникає помилка виконання програми.

Логічна функція eof (ФайловаяПеременная) виконує перевірку, чи досягнуто кінець файлу (End Of File) при читанні з нього даних Функція повертає true, якщо кінець файлу виявлений, і покажчик поточної позиції знаходиться в кінці файлу за його останнім сімволомю Це означає, що останній елемент у файлі вже прочитаний, або файл по ледве відкриття виявився порожній. В іншому випадку функція повертає - false.

Функція eof знаходить широке застосування в задачах обробки файлів оскільки дозволяє задати умову виконання циклу для читання даних з файлу. Особливо вона важлива для текстових файлів. Якщо параметр ФайловаяПеременная відсутня, мається на увазі консоль.

Процедури:

Getdir Визначає поточний каталог на заданому диску

chdir Змінює поточний каталог

Mkdir Створює підкаталог

Rmdir Видаляє порожній підкаталог

Settextbuf Призначає для текстового файлу буфер введення / виводу

Flush Очищає буфер текстового файлу, відкритого для виводу (модуль dos)

Fsplit Розділяє ім'я файлу на шлях, ім'я та розширення (модуль dos)

Getfattr Повертає атрибути файлу (модуль dos)

Getftime Повертає дату і час останнього запису файлу (модуль dos)

Setf time Призначає нову дату і час останнього запису файлу (модуль dos)

Setfattr Встановлює атрибути файлу (модуль dos)

Функції:

Filesize Повертає поточний розмір файлу {не використовується з текстовими

файлами)

Diskfree Повертає число вільних байтів на заданому диску (модуль dos)

Disksize Повертає загальний обсяг дискової пам'яті на диску (модуль dos) Fexpand Розширює ім'я файлу до повністю певного (модуль dos)

Findfirst Шукає в заданому каталозі перший елемент, що співпадає із заданим ім'ям файлу і його атрибутами (модуль dos, f indnext - наступний)

Fsearch Шукає файл у списку каталогів (модуль dos)

Функції перевірки кінця рядки та файлу:

крім використання функції eof, що приймає значення true, якщо файл вичерпаний, при роботі з текстовими файлами необхідно вміти перевіряти також і кінець рядка. Для контролю використовується функція еоln (ФайловаяПеременкая), що приймає значення true, якщо покажчик поточної позиції знаходиться на маркері кінця рядка (CR / LF), інакше - false. Якщо eof - true, то й eoln - true;

функція sеекеоln (ФайловаяПеременная) аналогічна функції eoln, АЛЕ пропускає прогалини і позиції табуляції перед перевіркою на кінець рядка. Функцію можна використовувати тільки для відкритих текстових файлів;

функція seekeof (Файловгяпеременная) аналогічна eof, але пропускає прогалини, позиції табуляції і маркери кінця рядка перед перевіркою на кінець файлу. Функцію можна використовувати тільки для відкритих текстових файлів.

if <умова> then <оператор 1> else <оператор 2> умовний оператор.

Якщо після then і else потрібно використовувати декілька операторів то ці оператори треба укладати в операторні дужки - begin <опер 1>; <опер 2> ... end.

Буває повний і неповний - не містить гілки else.

У конструкції While ... do умова виходу задовольняється, якщо вираз, що визначає умову виходу, помилково. Поки це умова істинна, буде виконуватися оператор стоїть після do. Якщо після do потрібно використовувати декілька операторів то ці оператори треба укладати в операторні дужки - begin <опер 1>; <опер 2> ... end.

Список використаної літератури

  1. Турбо Паскаль 7.0 "BHV" 1996.

  2. В.В. Фаронов. Турбо Паскаль 7.0 Початковий курс. Навчальний посібник. Видавництво "Нолидж" 1997.

  3. В.В. Фаронов. Турбо Паскаль 7.0 Практика програмування. Навчальний посібник. Видавництво "Нолидж" 1997

  4. А.І. Марченко, Л. А. Марченко. Програмування в середовищі Турбо Паскаль 7.0. Київ "ВЕК +" 1999.

  5. Іванов А.Ф., Садріева Л.М. Методичний посібник з підготовки та захисту курсових робіт з дисципліни "Інформатика". АЛНІ, 2002.

Додаток

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
60.1кб. | скачати


Схожі роботи:
Телефонний довідник
Мова програмування Pascal
Мова програмування Turbo Pascal
Програма вирішення трансцендентного рівняння на мові Pascal
Програма курсу Мова реклами
Основні відомості про алгоритмічну мову Turbo Pascal Графіка Pascal
Алгоритмічна загадка молекулярної еволюції
Телефонний зв`язок і її розвиток
Телефонний етикет на роботі і в побуті
© Усі права захищені
написати до нас