Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_CO.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.12 Mб
Скачать

4 Методичні вказівки

  1. Описати і задати масив згідно умови задачі індивідуального завдання, описати змінні, тип яких співпадає з типом елементів заданого масиву.

  2. Відкрити в двійковому режимі файл для запису елементів масиву і передбачити повідомлення про його успішне чи не успішне відкриття..

  3. За допомогою функції fwrite() заданий масив записати у відкритий файл. Передбачити перевірку на правильність запису масиву в файл.

  4. Закрити файл за допомогою функції fclose().

  5. Відкрити в двійковому режимі файл для читання, передбачивши повідомлення про його успішне чи не успішне відкриття.

  6. Використовуючи функції прямого (довільного доступу) до даних у файлі, (fseek(), rewind((),і ftell() ) встановити положення вказівника у файлі. на відповідні елементи масиву, задані згідно умови задачі індивідуального завдання.

  7. Прочитати ці елементи масиву в описані змінні використовуючи функцію fread( ), значення яких вивести на екран.

5 Приклад виконання лабораторної роботи

Структура "Студент":

прізвище, ім'я, по батькові; дата народження; домашня адреса; рейтинг.

прочитати з масиву в змінні 3-і 1 поле 1-го елементу масиву. Значення полів вивести на екран.

Програма розв'язку

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

FILE *fp;

struct stydent { char pib[30]; char d[11]; char ad[15]; float r;

}st[5]={{"Rybaha Zorjana Igorivna","12.07.1991","Pumonenka 5/8",3.89},

{"Skip Natalija Andriivna","3.11.1992","Melnyka 45", 3.25},

{"Sunjakevuch Roman Romanovuch","8.08.1992","Rjashivska 34/6",4.37},

{"Golovko Bogdan Igorovuch","3.07.1992","Korotka 5/8",4.32},

{"Savuch Taras Andrijovuch","27.09.1992",3.89}};

char A[15],B[30];

int k,m;

void main() { clrscr();

fp=fopen("C:\\B.TXT","wb");

if(fp==NULL) { printf("not open wb"); exit(1); }

k=fwrite(st,sizeof(struct stydent),5,fp);

if(k!=5) { printf("not write"); exit(2); }

k=fclose(fp);

if(k==-1) { printf("not close"); exit(3); }

fp=fopen("C:\\B.TXT","rb");

if(fp==NULL) { printf("not open"); exit(4); }

m=30+11;

fseek(fp,m,0);

k=fread(A,sizeof(char),15,fp);

if(k!=15) { printf("not read"); exit(5); }

rewind(fp);

k=fread(B,sizeof(char),30,fp);

if(k!=30) { printf("not read"); exit(6); }

k=fclose(fp);

if(k==-1) { printf("not close"); exit(7); }

puts(A);

puts(B);

}

Результати:

Pumonenka 5/8

Rybaha Zorjana Igorivna

6 Контрольні запитання

        1. Яка функція встановлює вказівник на початок файлу?

        2. Що таке прямий доступ до файлу?

        3. Який прототип функції ftell()..?

        4. Який прототип функції fseek() і що вона повертає?

        5. Яку інформацію треба передати в функцію fopen()для відкриття файлу на диску?

Практична робота № 1

Тема: Складання програм з використанням основних операторів мови С

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

1 Короткі теоретичні відомості

Оператор вибору варіантів . Це оператор switch. Це найбільш гнучкий керуючий оператор. Можна виконувати різні блоки програми, в залежності від значень деякого виразу і цих значень може бути більше двох.

Синтаксис оператора switch.

switch (вираз)

{

case шаблон1: оператор(и);

case шаблон2: оператор(и);

case шаблонn: оператор(и);

default: оператор(и);

}

Вираз повинен приймати цілочисельне значення типу int, long або char. Обчислений вираз порівнюється з шаблонами константами, які задані після ключового слова case . Потім виконується одна з наступних операцій

Якщо значення виразу співпало з одним із заданих шаблонів, то виконується оператори, які стоять після відповідної мітки case .

Якщо значення виразу не співпало ні з одним із заданих шаблонів, то виконується оператори, які стоять після ключового слова default. Наявність його в операторі не обов’язкова.

Якщо значення виразу не співпало ні з одним із заданих шаблонів і відсутній блок default, то виконується оператори, які стоять після дужок блоку switch .

При зустрічі оператора break управління передається в кінець оператора switch .

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

Оператор управління break. Оператор break може знаходитися в операторі switch. Як тільки він зустрічається в switch, виконання switch припиняється. Управління передається оператору, який стоїть після оператора switch.

Приклад:

switch (вираз)

{

case шаблон1: оператор(и); break;

case шаблон2: оператор(и); break;

case шаблон_n: оператор(и); break;

default: оператор(и);

}

Оператор циклу for. Цей оператор (або блок операторів) виконується визначене число раз.

Синтаксис оператора for:

for (ініціалізація; умова; приріст) {Оператор або блок операторів;}

Схематичне представлення оператора for

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]