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

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

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

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

#include <stdio.h>

FILE *fp;

Сонымен файлды ашатын 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. С программалау тіліндегі мәліметтердің динамикалық құрылымдары. Мәліметтердің абстрактылық типтері.

Мұнда мәліметтердің бірнеше негізгі типтері қолданылады. Олар:

· char – символдық, яғни таңбалық тип,

· short – қысқа бүтін сан,

· int – бүтін сан типі,

· long – екі еселенген бүтін сан,

· float – нақты (жылжымалы нүктелі) сан типі,

· double – екі еселенген нақты сан типі.

· unsigned – таңбасыз бүтін сан,

Алғашқы төрт тип бүтін сандарды сипаттау үшін қолданылады. Төмендегі кестеде әр түрлі типтердің IBM PC-ге арналған ұзындықтары көрсетілген.

Мәлімет типі

Ұзындығы (байт)

Сандар диапазоны

Char

8 бит-1байт

-128…..+127

Unsigned shar

8бит-1байт

0…255

Short int

16бит-2байт

-32768…32767

Unsigned short

16бит-2байт

0…65535

Int

16бит-4байт

-32768…32767

Unsigned [int]

32бит-4байт

0..4294967295

Long

32бит-4байт

-2147483648…2147483647

Unsigned long

32бит-4байт

0…4294967295

Float

32бит-4байт

3.4*10-38 ... 3.4*1038

Double

64бит-8байт

1.7*10-308 ... 1.7*10308

Long double

80бит-10байт

3.4*10-4932 ... 3.4*104932

Көрсетілген типтердің ең үлкен ұзындықтары әр түрлі компиляторларда бірдей болуы қажет емес. Олар компьютерлердің аппараттық мүмкіндіктеріне қарай таға-йындалады. Бірақ оларға мынадай талаптар қойылады:

int > =short >= 16 бит;

Int типін стандарт бекітпеген, ол компьютерге немесе компиляторға байланысты өзгеріп отырады. 16-разряд-ты процессорде ол 2 байт (32768), ал 32-разрядтысында – 4 байт (2 147 483 647 ). ТурбоСи-де int = short (32768)

long > = int; long типінің ұзындығы >= 32 бит;

(ТурбоСи-дегі long 2 147 483 647 )

Signed және unsigned модификаторлары да сандар шамасына әсер етеді, олар:

unsigned short int – 2 байт, оның диапазоны 0 ..65536;

unsigned long int – 4 байт, диапазоны 0..+4 294 967 295.

Unsigned типі int, long, short түйінді сөздерімен сипатталатын типтердің модификаторы ретінде қолданылады.

Char типін 0–255 аралығындағы таңбасыз бүтін сан-дарды сипаттауға қолдануға болады, ДК жадында бұларға бір байт орын бөлінген. Мысалы:

char c1;

Статикалық объектілер программаның орындалуына дейін туындайтындықтан жəне олардың мəндерінің өлшемі алдын-ала белгілі болғандықтан да, осы мəндерді сақтау үшін қажетті машина жадысындағы орын программаның бастапқы мəтінін машиналық тілге трансляциялау кезінде бөлінеді. Алгоритмдік тілде жазылған программада программалық объектілерге сілтеме олардың аттары арқылы жүзеге асырылады,яғни объектіге аты бойынша қатынас құрылады. Қазіргі кездегі компьютерлерде бұл орын объекті адресі арқылы, яғни жады ұяшығының көмегімен беріледі. Осы əрекеттердің барлығы (статикалық айнымалыларға тəн) трансляция кезінде орындалмақ. Дегенмен, программалауда тек статикалық объектілерді қолданудың өзіндік қиындықтары (тиімді машиналық программа алу көзқарасы тұрғысынан қарағанда) да жоқ емес.

/* Кейде біз программаны құру кезінде алдын-ала белгілі бір программалық объектінің мəн өлшемін, мəн өлшемі тұрмақ сол объектінің өзінің программа жұмысы кезінде болатынын немесе болмайтынын біле алмаймыз*/.

Программаның орындалу процесінде туындайтын немесе программаның орындалу барысында мəндерінің өлшемі анықталатын объектілер динамикалық объектілер деп аталады. Мысалы, берілген мəтіннен (кілең сөзден тұратын) бірінші сөзді табу керек болсын. Мəні ізделінетін сөз болып табылатын айнымалы, программаның орындалу барысында мүлдем пайда болмауы мүмкін. Егер ол пайда болса, онда осы айнымалының мəні болып табылатын сөз ұзындығы алдын-ала белгісіз болуы мүмкін. Мұндай айнымалылар – динамикалық программалық объектілер болып табылады.

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

Жазылу түрі:

TYPE <тип атауы>=(<1-мән,2мән,..., n- мән >);

VAR <идентификатор,.....> : <тип атауы>;

Мысалы:

TYPE Gaz=(Ge, C, O, N );

Metall=(Na,K,Li,Cu,Zn);

Mezgil=(қыс,көктем,жаз,күз);

VAR Al, A2: Mezgil;

G1,G2,G3:Gaz;

Met l, Met2:Metall;

Түс=(ақ,көк,қызыл,сары,жасыл,қоңыр,сұр,қара).

Егер айнымалы сипаттау бөлімінде көрсетілген мәндердің белгілі бір аралығын ғана қабылдайтын болса,онда оны шектеулі типтегі айнымалы деп атайды.Мұндай типтегі айнымалының алғашқы және соңғы мәндері нүктелермен бөлініп тұрақты түрінде көрсетіледі де,ол екеуі де бір стандартты типте (real типін қолдануға болмайды) болып,міндетті түрде алғашқы мән соңғы мән соңғы мәннен кіші болуы керек.

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