Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2_program_A_1.doc
Скачиваний:
30
Добавлен:
08.03.2016
Размер:
206.34 Кб
Скачать

9. Файлдармен жұмыс істеуді ұйымдастыру. С программалау тіліндегі файлдармен жұмыс істеу функциялары.

Сыртқы мәліметтер ағынымен жұмыс істеу үшін оны ашу керек. Сонда сыртқы мәліметтер программадағы алдын ала анықталған FILE типімен байланыстырылады. Бұл типтің анықталуы stdio.h тақырыптық файлы арқылы атқарылады. FILE типі арқылы мәліметтер ішіндегі позицияларға нұсқауыш, буферге нұсқауыш көрсетіле алады.

Сыртқы мәліметтер ағынына нұсқауыш, мысалы, fp программада былай сипатталады:

#include <stdio.h>

FILE *fp;

1) Сонымен файлды ашатын fopen() функциясының жалпы жазылуы:

fp = fopen(name,mode); , fp = fopen(“ex1.txt”, “w”);

Мұндағы: fp – файлға сілтейтін нұсқауыш; name – сыртқы мәліметтер жазылған немесе жазылатын файл аты, идентификатор; mode – файлдың қандай режимде ашылатынын төмендегідей түрде көрсетеді:

"r" – бұрыннан бар файлды оқу үшін ашу;

"w" – бос файлды мәлімет жазу үшін ашу;

"a" – файл соңына мәлімет қосып жазу үшін оны ашу;

"r+"– файлды одан мәлімет оқу және жазу үшін ашу;

"w+"– бос файлдан мәлімет оқу және оған мәлімет жазу үшін файл ашу (бұрын файл болса, ол өшіріледі);

"a+"– файлдан мәлімет оқу және оның соңына мәлімет қосып жазу үшін ашу).

2)fclose(fp) функциясы ашық файлды жабады.

3)feof(fp) функциясы файл соңын анықтайды.

4)fgets(fp) функциясы файлдан бір символ оқиды.

5)fputc(fp) функциясы файлға бір символ жазады.

6)ferror(fp) функциясы файлға жазу/оқу кезінде қате шыққанын тексереді.

Бұлардағы fp – файлға сілтейтін нұсқауыш;

7-8) Файлға мәлімет жазу/оқу үшін fprintf және fscanf функциялары пайдаланылады.

fprintf - файлға мәлімет жазу үшін, ал fscanf – файлдан мәлімет оқу үшін қолданылады. Олардың жалпы жазылу түрі:

fprintf(fp,“спецификация шаблоны”, p); (мыс: fprintf(fp,“%d”, p) )

p - өрнек;

fscanf(fp, “спецификация шаблоны”, адрес); (мыс: fscanf(fp,“%d”, &p) )

Mысалы:

#include<stdio.h>

#include<conio.h>

main()

{int k, i, n=5;

char fname[]=”a:\\num.txt\0”;

clrscr();

FILE *fp;

fp=fopen(fname,”w”);

clrscr();

printf("Енгізілген файлдар %s файлына жазылады\n", fname);

puts(“Әр сан енгізген соң Enter басыңыз/n”);

for(i=0; i<n; i++)

{ scanf(“%i”, &k);

Fprintf(fp, “%d”, k); }

fclose(fp);

printf("Енгізілген файлдар %s файлына жазылды\n", fname);

getch(); }

Нәтижесі:

Енгізілген файлдар a:\num.txt файлына жазылады

Әр сан енгізген соң Enter басыңыз

1

2

3

4

5

Енгізілген файлдар a:\num.txt файлына жазылды

10. С программалау тіліндегі мәліметтердің динамикалық құрылымдары. Мәліметтердің абстрактылық типтері.

Анықтама бойынша динамикалық құрылымдар оны өңдеуге процессте құрылымдар мөлшері тұрақты емеске және жадта құрылымдар элементтердің физикалық шектестіктерінің жоқтығымен бейнеленеді.

Динамикалық құрылымдардың элементтерінің жадыда бастапқы орны анықталмағандықтан, оның адресі бастапқы элементтің адресінен немесе алдыңғы элементтің адресі бойынша анықтай алмаймыз. Динамикалық құрылымның элементтері арасында байланысты орнату үшін нұсқағыштарды пайдаланады, элементтер арасында анық байланыстарды бекіту үшін. Сондай ұсыныс жадта қисынды деп аталады. Динамикалық құрылымның элементі екі өрістерден тұрады:

Құрылым жасалынып жатқан арнайы мәліметтері бар ақпараттық өрістер немесе мәлімттер өрістері;

Ақпараттық өріс жалпы алғанда өзі интеграцияланған құрылым болады, яғни вектормен, массивпен, басқа динамикалық құрылыммен;

Белгілі бір элементтің құрылымның басқа элементтерімен байланысын көрсететін нұсқағыштары бар байланыс өрісі.

Мәліметтердің абстрактылық типтері — бұл типтердің элементтерімен жұмыс жасауға арнайы функциялары бар және осы элементтерді нақты функциялар көмегімен құру мүмкіндігін беретін тип. Сондай түрдің барлық ішкі құрылым программалық қамтамасыз етудің өңдеушісіне көрінбейді бұл —абстракцияның мәні. Нақты іске асыру типінен тәуелсіз ,оның мәнімен операция жасау үшін функциялардың жиынын анықтайтын тип абстрактылық тип . Абстрактылық типті нақты іске асыру мәліметтердің құрылымы деп аталады.

Си тілінде мәліметтердің абстрактылық типтерімен жұмыс жасау үшін құрылым қолданылады:

#include <stdio.h>

struct date {

int month; // месяц

int day; // день

int year; // год

void set_date(int d, int m, int y) {

day = d; month = m; year = y; }

void print_date(void);

};

void date::print_date(void) {

printf("%d.%d.%d",day, month, year);

}

int main() {

date today;

today.set_date(2, 4, 2014);

today.print_date();

getchar();

return 0;

}

Мәліметтердің абстрактылық типтеріне мысал:

Тізім

Стек

Кезек

Ассоциативті массив

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