Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Теоретичні відомості(Pascal).↑ ⇐ ПредыдущаяСтр 11 из 11 Содержание книги
Поиск на нашем сайте
Процедури та функції для типованих та текстових файлів. ASSIGN(F,NAME) – ставить у відповідність файлову змінну F специфікації файлу NAME у вигляді: ¢диск:\каталог\ ім’я. розширення¢ RESET(F) – відкриває вже існуючий файл F та позиціонує покажчик запису на початок файлу. REWRITE(F) – створюється новий файл F, покажчик запису встановлюється на початок файлу. CLOSE(F) – закриває файл F. EOF(F) – функція приймає значення TRUE, якщо покажчик запису вказується на кінець файлу, інакше false. ERASE(F) – знищується файл F, який перед тим треба закрити. RENAME(F,S) – переіменування закритого файлу F у файл S. READ(F,S1,S2) – читання файлу F у змінні S1 S2. WRITE(F,S1,S2) – запис у файл F із змінних S1 S2.
Процедури та функції тільки для типізованих файлів SEEK(F,N) – позиціонування покажчика запису на запис з номером N. Перший запис файлу має номер 0. FILEPOS(F) – функція визначає номер запису, на який вказує покажчик. FILESIZE(F) – функція визначає кількість записів у файлі F.
EOLN(F) – функція приймає значення TRUE, якщо покажчик запису вказує на кінець рядка. SEEKEOLN(F) -- аналогічно EOLN. SEEKEOF(F) -- аналогічно EOF. APPEND(F) – додавання записів у файл, виконується відкриття файлу F і встановлення покажчика на EOF. READLN(F) – читання текстового файлу. WRITELN(F) – запис у текстовий файл. Теоретичні відомості (С) Вказівник на файлову змінну. Зв’язуючою ланкою між файлом і потоком є вказівник на файл (file pointer). Це вказівник на інформацію, яка визначає різні боки файлу: ім’я, статус, поточну позицію. Він визначає ім’я файлу на диску. У файлі stdio.h визначені також функції: fopen() відкрити файл fclose() закрити файл fputc() записати символ в потік fgetc() прочитати символ з потоку fseek() змінити вказівник позиції файлу у вказане місце fprintf() форматний запис у файл fscanf() форматне читання з файлу feof() повертає значення “істина”, якщо досягнутий кінець файлу Ferror() повертає значення “фальш”, якщо є помилка fread() читає блок даних з потоку fwrite() записує блок даних у потік rewind() встановлює вказівник позиції файлу на початок remove() знищує файл Логічне ім’я файлу – це вказівник на файл. Його необхідно оголошувати так: FILE *fopen(), *lst; Звертання до функції fopen() в програмі робиться так: lst=fopen(<ім’я файлу на диску>,<вид операції>); Види операції (вид використання файлу): “w” - запис, ”r” - читання, ”a” – доповнення … Якщо ми збираємось відкрити файл з іменем test для запису, то достатньо записати FILE *fp; fp=fopen(“test”,”w”); Але рекомендується використовувати такий порядок відкриття файлу: FILE *fp; If((fp=fopen(“test”,”w”))==NULL) { Puts(“Не можна відкрити файл \n”); Exit(1); } Цей метод визначає помилку при відкритті файлу. Константа NULL визначена в stdio.h. Функція exit() має прототип у файлі stdlib.h Void exit(int val); Вона припиняє виконання програми, а величину val повертає в операційну систему (або в програму, яка її викликала). Всі відкриті файли будуть закриті. Крім того, є функція abort() з прототипом Void abort(int val); Вона негайно припиняє виконання програми без закриття файлів. Якщо файл відкритий для запису, то існуючий файл знищується і створюється новий файл. При відкритті для читання треба, щоб файл існував. У випадку відкриття для читання і запису існуючий файл не знищується, але створюється, якщо його немає. У системі програмування Borland C++ створена друга система вводу/виводу, ця система відповідає стандарту UNIX. Прототипи функцій знаходяться у файлі io.h. Цими функціями є: read() читає буфер даних, write() пише в буфер даних, open() відкриває файл, close() закриває файл, lseek() пошук певного байта у файлі, unlink() знищує файл.
Після закінчення роботи зфайлом він повинен бути закритий. Це можна зробити за допомогою бібліотечної функції fclose(), наприклад fclose(lst); Приклад: вивід інформації на принтер. #include <stdio.h> Main() { int i=150; FILE *fopen(), *lst; /* FILE –ім’я файлового типу (подібно до int або float); fopen – бібліотечна функція відкриття файлу(вона повнртає вказівник на внутрішнє ім’я відкритого файлу); lst – вказівник на файл (об’єкт типу FILE). */ lst=fopen(“prn”,”w”); /* lst отримує адресу відкритого файлу з іменем prn, призначеного для запису в нього інформації (символ w); Вся інформація з файлу з адресом lst буде виводитись на друкуючий пристрій. */ fprintf(lst,”\n число i=%d”,i); /*Тут lst – вказівник на файл. На друк буде виведений рядок “ число і=150 ” */ fclose(lst); /* Функціяfclose закриває файл зі вказівником lst; Тепер посилання lst можна використовувати для іншого файла. */ } В якості першого параметра у функції fprintf стоїть логічне ім’я (вказівник) файла. Другий приклад показує організацію виводу інформації на диск. include <stdio.h> Main() { int i=150; FILE *fopen(), *lds; lds=fopen(“c:zni.f”,”w”); fprintf(lds,”\n число i=%d”,i); fclose(lds); } У файл буде записано ціле число 150; Аналогічно можна записати і для читання з диска і для доповнення файла на диску. Ще один приклад – програма створення копії файлу. #include <stdio.h> Main() { File *fopen(), *or, *co; If ((or = fopen(“to1.doc”,”r”)) = = null) {printf (“ Відкрити вихідний файл не вдалось \n”); return; } while (!feof(or)) fputc(fgetc(or),co); /* fgetc(or) – читає символ з файлу or; fputc(co) – записує символ у файл co */ } Для одночасного закриття всіх файлів використовують функцію Fcloseall() Приклад. Сформувати файл, що містить інформацію про розклад руху поїздів, які відправляються з Івано-Франківського вокзалу: номер поїзду, час відправлення, станція призначення, час у дорозі. Використовуючи ці дані, надати інформацію про розклад руху поїздів до станції Київ, які відправляються з 20 до 24 години, і перебувають у дорозі менше 15 годин. Текст програми (Pascal) Program Pojizd; Label druk; TYPE Zap= record N:integer; T: 0..24; St: string; L: 1..24 End; VAR Z: zap; P: file of zap; Begin assign (p,’poizd’); rewrite (p); while true do Begin write (‘рейс № >’); readln (z.n); If z.n = 0 then goto druk; write (‘Відправлення >’); readln (z.t); write (‘Станція >’); readln (z.st); write (‘Час у дорозі >’); readln (z.l); write (p,z); z.st=’’ end; druk: close (p); reset (p); while not eof (p) do Begin read (p,z); writeln (z.n,’ ‘,z.t,’ ‘,z.st,’ ‘,z.l) End; close (p); writeln (‘До станції Київ:’); reset (p); while not eof (p) do Begin read (p,z); If (z.t>=20) and (z.t<=24) and (z.l<15) and (z.st=’Київ’) then writeln (z.n,’ ‘,z.t,’ ‘,z.st,’ ‘,z.l) End End. Програма мовою С #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE 256 Main() { int n,t,l; char st[SIZE]; FILE *fp; If ((fp=fopen (“poizd”,”w”)) ==NULL) { printf (“FILE NO OPEN\n”); exit (1); } while(1) { *st=’\0’; printf (“n>”); scanf (“%d”,&n); if (n == 0) break; printf (“t>”); scanf (“%d”,&t); printf (“st>”); scanf (“%s”,st); printf (“l>”); scanf (“%d”,&l); fprintf (fp,“%d\n%d\n%s\n%d\n”,n,t,st,l); } fclose (fp); fp=fopen (“poizd”,”r”); while(!feof(fp)) { *st=’\0’; fscanf (fp,“%d%d%s%d”,&n,&t,st,&l); printf (“ %d %d %s %d\n”,n,t,st,l); } rewind (fp); printf (“До станції Київ:\n”); while(!feof(fp)) { *st=’\0’; fscanf (fp,“%d%d%s%d”,&n,&t,st,&l); if (t>=20 && t<=24 && l<15 && (!strcmp(st,”Kиїв”))) printf (“ %d %d %s %d\n”,n,t,st,l); } } Блок-схема. Так ні Так Ні ні Так Так Ні Завдання. Скласти, налагодити і виконати програму обробки даних у файлах згідно варіанту.
1. Сформувати файл А, що містить інформацію про кінострічки: - назва фільму; - рік випуску; - кіностудія; - режисер. З файлу А вибрати і переписати в файл В інформацію про кінострічки, зняті кіностудією ім. Довженка у 1985-92 рр.
2. Cформувати два файли А і В. У файл А записати назви відділень, у файл В – назви навчальних груп, приналежність їх до факультету, кількість студентів у групі. Використавши сформовані файли, ввести у вигляді таблиці дані про кількість студентів по відділеннях.
3. Сформувати файл А, який містить бібліографічну інформацію: - автор книги; - назва книги; - рік видання; - назва видавництва; - обсяг книги (кількість сторінок) Переписати у файл В інформацію про книги, видані у видавництві ”Дніпро” після 1990 року.
4. Сформувати файл А, що містить інформацію про зарплату співробітників: - прізвище, ім’я та по батькові; - посада; - посадовий оклад; - рік народження. Використовуючи ці дані, визначити, у кого з інженерів найбільша, а у кого найменша зарплата.
5. Сформувати файл, що складається з відомостей про студентів вашої групи: день, місяць, рік народження, місце проживання, стать (ч або Ж). Використовуючи сформований файл, вивести на друк прізвища студентів чоловічої статі, які проживають в Івано-Франківській області і яким на даний момент виповнилось 19 років.
6. Сформувати файл “К”, що містить інформацію про кубики: розмір кожного кубика (довжина ребра в см), колір (червоний, жовтий, зелений або синій), матеріал (дерево, метал, картон). Переписати у файл “КІ” дані: - кількість кубиків кожного із кольорів і їх сумарний об’єм; - кількість дерев’яних кубиків з ребром 3см.
7. сформувати файл прямого доступу “ZAPAS”. Компоненти файлу є відомості про запчастини, їх назва, кількість, вартість, термін зберігання (місяці). Сформувати файл, де помістити відомості про ті запчастини, термін зберігання яких більше року, а також вивести на друк кількість запчастин, вартість яких понад 1000 грн., і їх загальну вартість.
8. Сформувати файл “В”, записами якого є: прізвища письменників, ініціали, назви книг, рік видання. Використовуючи ці дані, сформувати файл “Е”, де розмістити прізвища письменників, які видають більше двох книг за рік.
9. Сформувати файл за результатами сесії студентів групи: академічна група, прізвище та ініціали, оцінка з 4-х дисциплін. Використавши сформований файл, вивести у вигляді таблиці дані про тих студентів, які навчаються без “незадовільних” оцінок, обчислити середній бал в групі.
10. Сформувати файл “А” із прізвищ і дат народження ваших друзів. Використовуючи сформований файл, надрукувати прізвища тих, хто народився в літні місяці, вік яких перевищує 20 років.
11. Сформувати файл “С”, в якому записаний текст, слова в тексті розділені крапкою з комою. Знайти кількість слів в тексті. Вивести на друк слова тексту, якщо слово містить букву “у”, то вказати, в яких позиціях вона знаходиться в слові, при відсутності букви “у” в слові, вивести це слово і повідомлення “Букви “у” в слові немає”.
12. Сформувати файл, який містить інформацію про 10 автолюбителів: прізвище, марка автомобіля, номер, колір. Використовуючи ці дані, надати інформацію про автолюбителів, які мають “Жигулі” білого кольору і їх номер починається з 45.
13. Сформувати файл “В”, що містить інформацію про книги по програмуванню в бібліотеці: прізвище автора, назва видавництва, рік видання, алгоритмічна мова,. Записати у файл “В1” список книг, виданих видавництвом “Просвіта” після 1990 року, а також кількість книг по мові БЕЙСІК. Ці дані також вивести на друк.
14. Відомості про власників автомобілів складаються з їхніх прізвищ, марки автомобіля і державного номера автомобіля. Сформувати файл, що містить ці відомості про 12 автомобілів. Вивести на друк номери автомобілів, які починаються з 3 і закінчуються на 5, і кількість автомобілів кожної марки.
15. Сформувати файл, що містить інформацію про книги за таким зразком: прізвище автора, назва, рік видання. Використовуючи сформований файл, знайти назви книг даного автора, рік видання. Прізвище автора вивести з клавіатури.
Лабораторна робота №11. Графіка.
Мета: Оволодіння практичними навичками складання та програмування задач з використанням процедур та функцій машинної графіки. Теоретичні відомості. Для реалізації графічних зображень використовується графічний режим. Для ініціалізації графічного режиму необхідно підключити модуль graph.tpu за допомогою оператора USES GRAPH; та викликати процедуру ініціалізації графічного режиму: іnitgraph (ім’я драйвера, режим, шлях до драйвера); Можливе автоматичне визначення відеоадаптера. Для цього на місці першого параметра треба вказати ім’я Detect: INITGRAPH (Detect, Regim,”); Після роботи у графічному режимі його закривають процедурою closegraph.
Деякі графічні функції
Приклад програми. Задача. Для презентації успішної діяльності фірми потрібно побудувати об’ємну стовпцеву діаграму показників роботи фірми протягом чотирьох кварталів року. Скласти програму побудови діаграми, де числові характеристики діяльності фірми такі: 30, 25, 35, 40. Розгляньте і виконайте програму Graphika. PROGRAM Graphika; USES Crt, Graph; CONST pauza=1000; {1000 відповідає 1 с} k=10; {регулює висоту діаграми} n1=30; n2=25; n3=35; n4=40; {дані} VAR driver, mode, y:integer; t1, t2, t3, t4: string; BEGIN driver:=detect; {вважаємо, що екран є 640х480} initgraph (driver, mode, ''); rectangle (20, 20, getmaxx-20, getmaxy-20); setviewport (21, 21, getmaxx-21, getmaxy-21, clipoff); setbkcolor (1); setcolor (15); settextstyle (0, 0, 3); outtextxy (35, 10, 'Фiрма "Роги та копита"'); settextstyle (0, 0, 2); setcolor (14); outtextxy (50, 50, 'Дiаграма дiяльностi у 1996 роцi'); settextstyle (0, 1, 2); setcolor (12); outtextxy (30, 50, 'Тисячi пар рогiв та копит'); settextstyle (0, 0, 2); setcolor (14); y:=getmaxy; line (40, 70, 40, y-70); line (30, y-80, getmaxx-70, y-80); delay (pauza); bar3d (100, y-n1*k, 150, y-80, 10, true); delay (pauza); bar3d (200, y-n2*k, 250, y-80, 10, true); delay (pauza); bar3d (300, y-n3*k, 350, y-80, 10, true); delay (pauza); bar3d (400, y-n4*k, 450, y-80, 10, true); delay (pauza); setcolor (12); str (n1, t1); str (n2, t2); str (n3, t3); str (n4, t4); outtextxy (110, y-150, t1); outtextxy (210, y-150, t2); outtextxy (310, y-150, t3); outtextxy (410, y-150, t4); outtextxy (115, y-70, 'I'); outtextxy (215, y-70, 'II'); outtextxy (315, y-70, 'III'); outtextxy (415, y-70, 'IV квартали'); readln; cleardevice; closegraph END. Варіанти завдань. 1. Дослідити область визначення і побудувати графік функції y=1/x2.
2. Дослідити область визначення і побудувати графік функції y=(x+3)/(x-2).
3. Дослідити область визначення і побудувати графік функції y=3+2/sin(x).
4. Дослідити область визначення і побудувати графік функції y=1/(3x2+2x+1).
5. Дослідити область визначення і побудувати графік функції y=x/(x2-3x+1).
6. Дослідити область визначення і побудувати графік функції y=x/(x2+3x+1).
7. Дослідити область визначення і побудувати графік функції y=1/(3x2+2x+1).
8. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: |y|+2|x|<=x2+1. 9. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: |y|+3|x|<=x2+1.
10. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: x2+y2<=2(|x|+|y|).
11. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: 4<=x2+y2<=2(|x|+|y|).
12. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: y>=(1-x2)1/2, y+|x|<=4.
13. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: 2y-x2<0, x-y>=0.
14. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: y>=x2, y<=-2x2+3x.
15. Побудувати на екрані множину точок, координати яких задовольняють таку нерівність або систему нерівностей: (x2-3y2+4x+4)1/2<=2x+1, x2+y2<=1. 39. Вивести коло з демонстрацією всіх можливостей (зміна кольору і типу границі, кольору і типу заливки, положення, розмірів, розтягнення.). 40. Вивести прямокутник... 41. Вивести багатокутник... 42. Вивести сектор... 43. Вивести лінію... 44. Вивести дугу... 45. Вивести еліпс. 46. Вивести будь-який напис з демонстрацією усіх можливостей (зміна кольора, типу шрифта, розміра, нахилу, розташування). Кожен новий варіант виводити у нове вікно. 47. Вивести рамку з кольоровим заповненням будь-якого кольора (оформити процедурою) і виводом тексту цієї задачі. 48. Зображення зіркового неба пікселями випадкових кольорів до натискання будь-якої клавіші на клавіатурі. 49. Зображення кольрового пікселя, що «біжить» по середині екрана. 50. Зображення кольрового круга, що біжить по середині екрана. 51. Зображення множини різнокольрових пухирців (випадкові розміри та заповнення) до натискання будь-якої клавіші. 52. Зображення горизонтальних ліній через інтервал (задається з клавіатури). 53. Зображення вертикальних різнокольорових ліній на весь екран (введений інтервал корегується програмою). 54. Зображення лінії з використанням процедури putpixel. 55. Зображення лінії «зигзаг». 56. Кругового циклічного орнаменту з усіма графічними примітивами (лінії, дуги, кола...). 57. Зображення круга, розбитого на сектори і розмальованого у вигляді парасольки. 58. Зображення працюючого світлофора (зі зміною кольорів). 59. Зображення ялинки з трикутників. 60. Зображення ялинки з секторів. 61. Зображення множини дуг, що ростуть до сектора заданого розміра. 62. Користуючись задачею №249 створити зображення різнокольорових секторів, які доростають до круга. 63. Виведення по головній діагоналі екрана кругів фіксованого розміра (самостійне визначання). 64. Виведення по бічній діагоналі екрана еліпсів будь-якого розміра (задається з клавіатури та корегується в програмі). 65. Виведення по периметру екрана прямокутників фіксованого розміра (самостійне визначання). 66. Зображення вкладених прямокутників, що сходяться. 67. Зображення грат (вільні або задані розміри). 68. Зображення шахматки, з випадковими кольорами заливки. 69. Зображення сімейства похилих ліній над головною діагоналлю екрана (інтервал будь-який). 70. Зображення сімейства похилих ліній під бічною діагоналлю (інтервал вводиться з клавіатури). 71. Зображення грат з похилих ліній з випадковою заливкою. 72. Зображення ялинки заданого розміра більшого сектора та кількості секторів (задається з клавіатури) з використанням процедури. 73. Користуючись процедурою задачі №249 створити «ліс» з випадковою кількістю ялинок з випадковими розмірами. 74. СП для створення пейзажа (хатка з виконцями, паркан, крони дерев над парканом, ліс ялинок вдалині, хмаринки з дощовими краплинами, сонечко з промінчиками). 75. СП для виведення графіка будь-якої функції. 76. СП для виведення стовбчикової діаграми на вільну тему. 77. СП для виведення кругової діаграми на вільну тему. 78. Створити примітивний графічний редактор. 79. СП для формування титульного листа реферата (з написами, рамками а малюнками, виклад змісту) за будь-якою графічною функцією.
Контрольні запитання. 1. 2. Як задати координати зображуваної точки? 3. Як зобразити на екрані точку, відрізок прямої, ламану лінію? 4. Як вибрати масштаб по осях Х і Y при побудові графіку? 5. Чим відрізняється побудова кусково-лінійного графіка від точкового? 6. Як видозмінити програму, щоб викреслювалась сітка графіку? 7. Як побудувати графік двох функцій від одного аргументу: а) при однакових масштабах; б) при різних масштабах?
ЗМІСТ Робота в інтегрованому середовищі Turbo Pascal. 2 Лінійні програми. Арифметичні вирази. 2 Процеси розгалуження. 2 Розв’язування на ЕОМ задач з циклічним обчислювальним процесом. 2 Одновимірні масиви. Двовимірні масиви. 2 Складання блок-схем і програм з використанням процедур і функцій. 2 Обробка текстів. 2 Записи з фіксованою частиною. 2 Файли. 2 Графіка. 2
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-05; просмотров: 352; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.183.186 (0.011 с.) |