- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 1
- •Обчислювальна техніка та програмування - 1
- •Символи кодової таблиці ascii
- •Умовні переходи на мові "паскаль"
- •1: Begin
- •Цикли на мові "паскаль"
- •Підпрограми на мові "паскаль"
- •Function Alfha(a,b:real; c:byte):real;
- •Function Beta:integer;
- •Procedure Sorter (a,b:real; c:byte; Var X,y:real);
- •Procedure Beep;
- •Uses crt;
- •Window (x1,y1,x2,y2);
- •Window (10,5,45,15);
- •Window (1,1,80,25);
- •TextColor (yellow);
- •TextColor (14);
- •Текстові та типізовані файли мови "паскаль"
- •Assign (f1, ’Data.Pas’);
- •Reset (f2);
- •Rewrite (f2);
- •Seek (f2, 7);
- •FileSize (f2),
- •FilePos (f2).
- •Побудова графіків функцій на мові "паскаль"
- •MoveTo (200, 100);
- •SetLineStyle (0,0,1);
- •OutText (’Текст для виводу’);
- •OutTextXy (200,100,’Текст для виводу’);
- •SetTextStyle (0,0,0);
- •SetTextJustify (1,1);
- •PutPixel (150,50,green);
- •ClearDevice;
- •Бібліотечний модуль на мові "паскаль"
- •Interface
- •Implementation
- •Динамічні змінні мови "паскаль"
- •SetFillStyle (1, white);
- •Об’єктно-орієнтоване програмування на мові "паскаль"
- •New (Person, Init);
- •Destructor Done; Virtual;
- •Dispose (Person, Done);
- •Форматований ввід та вивід даних на мові “cі”
- •Printf(“керуючий рядок”,аргумент1,аргумент2, ...);
- •Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
- •Scanf(“%d %f %c %s”,&I,&j,&k,l);
- •Scanf(“%d %*d %d”, &I,&j);
- •Scanf(“%d,%d”,&n,&m);
- •Оператори організації переходів на мові "сі"
- •1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
- •Організація циклів на мові "сі"
- •Одновимірні та двовимірні масиви на мові "сі"
- •Char b[30];
- •Char a[10][20];
- •Записи, вкладені записи, масиви записів на мові "сі"
- •Int month;
- •Int year;};
- •Int class, age;};
- •Робота із бінарними та текстовими файлами
- •File *lst;
- •Int fflush (вказівник_на_файл);
- •Int fgetc(вказівник_на_файл);
- •Int fputc(вказівник_на_файл);
- •Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
- •Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
- •Int fseek(вказівник_файла, зміщення, поч. Значення);
- •3. Контрольні запитання
- •Робота з функціями на мові “сі”
- •Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
- •Int main(int argc, char *argv)
- •3.1. Який синтаксис функцій у мові “сі”.
- •Комп’ютерний практикум № 17 графічний режим екрану на мові “ci”
- •Initgraph(int *driver, int *mode, char *path);
- •Void *pimage;
- •Void *malloc(об'єм_пам’яті_в_байтах);
- •Imagesize(x1,y1,x2,y2);
- •Putimage(x1, y1, вказівник, вид_вставки);
- •Вирішення диференційних рівнянь методом ейлера
- •Основи роботи в середовищі “turbo pascal 7.0” та “turbo c 3.0”
- •Комп’ютерний практикум № 17. Графічний режим екрану
Int fgetc(вказівник_на_файл);
Int fputc(вказівник_на_файл);
Функція fgetc повертає наступний символ із файла, на який вказує відповідний вказівник, або EOF в разі помилки. Функція fputs записує символ у файл, на який вказує відповідний вказівник, та повертає записаний символ, або EOF у випадку помилки.
Для введення-виведення рядків до файлу слугують функції fgets та fputs, які мають синтаксис, аналогічний fgetc, fputc.
1.4. Для введення-виведення даних до бінарних файлів застосовуються функції fwrite та fread відповідно. Вони мають наступний формат:
Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
Функція забезпечує зчитування об’єктів у масив, на який вказує вказівник_на_масив, кількість об’єктів визначається як кількість_об’єктів, розміром розмір_об’єкта із файла, на який вказує вказівник_на_файл. Функція повертає кількість успішно записаних об’єктів.
Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
Функція забезпечує запис об’єктів із масиву, на який вказує вказівник_на_масив, кількість об’єктів визначається як кількість_об’єктів, розміром розмір_об’єкта у файл, на який вказує вказівник_на_файл. Функція повертає кількість успішно записаних об’єктів.
1.5. Часто при роботі з файлами корисно використовувати по елементний доступ до файлу. Для цього застосовується функція fseek, що має формат:
Int fseek(вказівник_файла, зміщення, поч. Значення);
Функція встановлює позицію із зміщенням відносно поч. значення у файлі, який визначається вказівником файла. Початкове значення може приймати наступні значення:
SEEK_SET – зміщення відносно початку файла;
SEEK_CUR – зміщення відносно поточного положення;
SEEK_END – зміщення відносно кінця файла;
Функція ftell повертає поточну позицію у файлі, та має наступний формат:
long ftell(вказівник_на_файл);
Приклад 2. Продемонструвати роботу із бінарними файлами.
#include <stdio.h>
#include <conio.h>
void main(void)
{
const n=10;
int a[10];
FILE *pfile;
int i,j,pos,start;
int *pstart;
pstart=&start;
/* вказівник вказує на змінну start */
clrscr();
printf("\nFilling vector with numbers...\n\n a=[ ");
for(i=0;i<10;i++)
{
a[i]=i+1;
printf("%d ",a[i]);
}
printf("]\n\nCreating binary file epa.dat for editing...");
pfile=fopen("epa.dat","w+b");
/*створення нового бінарного файлу для редагування */
j=fwrite(a,sizeof(int),n,pfile);
/* запис елементів вектора а у бінарний файл */
if(j<n) printf("\n\nAn error occured. Only %d of %d elements was written",j,n);
else printf("\n\nFile was filled with %d elements successfully",j);
fflush(pfile);
/* перед зчитуванням даних в режимі редагування обов’язково дописуємо вміст буфера у файл */
printf("\n\nEnter the number of element you want to read from bin file ");
scanf("%d",&j);
fseek(pfile,(j-1)*sizeof(int),SEEK_SET);
/*перехід до позиції необхідного елемента*/
pos=ftell(pfile);
/*Визначення позиції у файлі*/
fread(pstart,sizeof(int),1,pfile);
printf("\n\nSEEK_SET: %dth element position is %d, element is %d",j,pos,*pstart);
printf("\n\nPress any key to exit");
getch();
fclose(pfile); /* закриття файла */
}
ЗАВДАННЯ НА РОБОТУ
Розробити та запустити у роботу програму на мові програмування "СІ", яка вирішує задачу відповідно до заданого нижче варіанта.
2.1. Відкрити для редагування текстовий файл, ім'я якого задається з клавіатури. Визначити, в якому із рядків файлу найбільша кількість голосних букв. Дописати відповідне повідомлення в кінець файлу з нового рядка.
2.2. Створити для редагування бінарний файл privod.dat, та заповнити його довільними числами (n<=30). Забезпечити підрахунок кількості входжень у файл числа, яке задається із клавіатури. Вивести результат на екран.
2.3. Відкрити для читання текстовий файл, ім’я якого задається з клавіатури. У файлі записано цілі числа через пробіл. Визначити максимальне число у файлі та його порядковий номер, вивести результат на екран.
2.4. Розрахувати значення функції Y=A*sin(B*X) при зміні X від 0 до 2 з кроком 0.01. Значення А та В зчитати з клавіатури. Записати значення функції та аргументу у текстовий файл temp.txt у 2 стовпці із відповідними підписами. Визначити максимальне та мінімальне значення функції, дописати його в кінець файлу. Змінити назву файла на result.txt.
2.5. Розрахувати значення функції Y=С+A*sin(B*X+D) при зміні X від 1 до 3 з кроком 0.1. Значення А, B, C, D зчитати з клавіатури. Записати значення функції у бінарний файл, ім’я якого задається з клавітури. Визначити кількість елементів у файлі.
2.6. Задано текстовий файл epa.txt, в якому записано матрицю цілих чисел розміром 10х10. Визначити суму стовпців матриці та дописати відповідний рядок в кінець файла.
2.7. Задано текстовий файл, ім'я якого задається з клавіатури. Визначити кількість слів у файлі.
2.8. Задано структуру “Студент”, що містить поля “Прізвище”, “Середня оцінка”. Створити базу даних із 3 студентів та записати у бінарний файл, ім'я якого задається з клавіатури. Знайти у файловій базі даних студентів, середній бал яких більший, ніж заданий.
2.9. Задано структуру “Ноутбук”, що містить поля “Ціна”, “Час автономної роботи”. Створити базу даних із 4 ноутбуків та записати у бінарний файл, ім'я якого задається з клавіатури. Знайти у файловій базі даних ноутбук, час автономної роботи якого більший заданного, а ціна мінімальна.
2.10. Створити бінарний файл, ім’я якого задається з клавіатури. Заповнити його дійсними числами (n<=20). Зчитати 5 останніх чисел у файлі, та впорядкувати їх за зростанням. Дописати їх в кінець файлу. Вивести вміст файла на екран.