Слайд 2
![Передача параметров функции main() int main ( ) int main](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-1.jpg)
Передача параметров
функции main()
int main ( )
int main (int argc, char
*argv[])
./my_proga text1 text2
argc ? 3
argv[0] ? my_proga
argv[1] ? text1
argv[2] ? text2
Слайд 3
![Пример 1. #include int main ( int argc, char *argv[])](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-2.jpg)
Пример 1.
#include
int main ( int argc, char *argv[])
{
int i=0;
printf
("Число параметров равно%d\n", argc);
printf ("Имя программы %s\n", argv[0]);
for (i=1; i < argc; i++)
printf (“аргумент %d равен %s\n", i, argv[i]);
return 0;
}
./my_proga myfile1.txt myfile2.txt myfile3.txt
Слайд 4
![Параметры функции main() в качестве имен файлов f1=fopen(argv[1], “rb"); f2=fopen(argv[2], “wb");](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-3.jpg)
Параметры функции main()
в качестве имен файлов
f1=fopen(argv[1], “rb");
f2=fopen(argv[2], “wb");
Слайд 5
![Другие полезные функции Функция fseek( ) устанавливает файловый указатель в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-4.jpg)
Другие полезные функции
Функция fseek( ) устанавливает файловый указатель в произвольную позицию внутри файла.
Прототип:
int fseek(FILE *fp, long count, int access);
fp - указатель на файл
Слайд 6
![Функция fseek( ) count - номер байта относительно начальной позиции,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-5.jpg)
Функция fseek( )
count - номер байта относительно начальной позиции, начиная с которого будет
выполняться операция:
count = sizeof( type_of_object )*N;
Слайд 7
![Начальная позиция int access - способ задания начальной позиции: 0](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-6.jpg)
Начальная позиция
int access
- способ задания начальной позиции:
0 - начальная
позиция задана в начале файла;
1 - начальная позиция считается текущей;
2 - начальная позиция задана в конце файла.
Слайд 8
![Прямой доступ. struct data { int day; char month[10]; int](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-7.jpg)
Прямой доступ.
struct data {
int day;
char month[10];
int year;
};
struct data mydata, *dat;
dat = &mydata;
Слайд 9
![Cпособ задания начальной позиции fseek(fp, sizeof(mydata)*3, 0); fwrite(&MyData,sizeof(MyData), 1, fp);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-8.jpg)
Cпособ задания начальной позиции
fseek(fp, sizeof(mydata)*3, 0);
fwrite(&MyData,sizeof(MyData), 1, fp);
Слайд 10
![Cпособ задания начальной позиции fread(&MyData, sizeof(mydata), 1, fp); fseek(fp, sizeof(mydata)*2, 1); fwrite(&mydata,sizeof(mydata), 1, fp);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-9.jpg)
Cпособ задания начальной позиции
fread(&MyData, sizeof(mydata), 1, fp);
fseek(fp, sizeof(mydata)*2, 1);
fwrite(&mydata,sizeof(mydata), 1,
fp);
Слайд 11
![Cпособ задания начальной позиции fseek(fp, sizeof(mydata)*(-7), 2); fwrite(&mydata,sizeof(mydata), 1, fp);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-10.jpg)
Cпособ задания начальной позиции
fseek(fp, sizeof(mydata)*(-7), 2);
fwrite(&mydata,sizeof(mydata), 1, fp);
Слайд 12
![Последовательный и прямой доступ к записям файла float a; FILE](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-11.jpg)
Последовательный и прямой доступ к записям файла
float a;
FILE *f;
f=fopen("numb","rb");
fscanf(f, "%f", &a);
fscanf(f,
"%f", &a);
fscanf(f, "%f", &a);
printf("%f", a);
1.1 2.2 3.3 4.4 5.5 6.6
Слайд 13
![Пример 2. Прямой доступ. Обновление четвертой записи FILE *fp; fp=fopen("mystructs",](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-12.jpg)
Пример 2. Прямой доступ.
Обновление четвертой записи
FILE *fp;
fp=fopen("mystructs", "rb+");
fseek(fp, sizeof(mydata)*3,
0);
fread(&dat, sizeof(mydata), 1, fp);
scanf("%s", &mydata.month);
fseek(fp, sizeof(mydata)*3, 0);
fwrite(&mydata,sizeof(mydata), 1, fp);
Слайд 14
![Указатель текущей позиции в начало файла Функция rewind() : void](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-13.jpg)
Указатель текущей позиции
в начало файла
Функция rewind() :
void rewind (FILE *fp);
Следует использовать, если
чтение файла должно быть выполнено несколько раз
Слайд 15
![Пример 3. Передача файлового указателя функции void prosmotr(FILE *fp) {](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-14.jpg)
Пример 3. Передача файлового указателя функции
void prosmotr(FILE *fp)
{ rewind(fp);
// использование
fread(…) }
int main()
{
FILE *fp;
fp=fopen("mystructs","rb+");
prosmotr(fp);
dobavlenie(fp); …
Слайд 16
![Структуры данных. Линейный список Линейный список - это множество, состоящее](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-15.jpg)
Структуры данных. Линейный список
Линейный список - это множество, состоящее из переменного
числа узлов
X[1], X[2], ... , X[n], n≥0
Если n>0 X[1] – первый элемент
Если 1X[n] - последний элемент
Слайд 17
![Некоторые специальные списки Стек](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-16.jpg)
Некоторые специальные списки
Стек
Слайд 18
![Некоторые специальные списки Очередь](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-17.jpg)
Некоторые специальные списки
Очередь
Слайд 19
![Некоторые специальные списки Дек](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-18.jpg)
Некоторые специальные списки
Дек
Слайд 20
![Пример 4. Реализация стека в виде массива include int Stack[100], TOP=0 ; void vcluch(int); viod iskluch(*int);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-19.jpg)
Пример 4. Реализация стека в виде массива
include
int Stack[100], TOP=0
;
void vcluch(int);
viod iskluch(*int);
Слайд 21
![Реализация стека в виде массива. Функция включения элемента в стек](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-20.jpg)
Реализация стека в виде массива.
Функция включения элемента в стек
void vcluch
(int y)
{
if( TOP>=100 )
{ printf(“Переполнение стека”);
return; }
Stack[TOP] = y;
TOP++;
}
Слайд 22
![Реализация стека в виде массива. Функция исключения элемента из стека](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-21.jpg)
Реализация стека в виде массива.
Функция исключения элемента из стека
void iscluch
( *int y)
{
if( TOP==0 )
{ printf(“Нехватка элементов”);
return; }
*y = Stack[TOP];
TOP--;
}
Слайд 23
![Реализация стека в виде массива int main() { int y,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-22.jpg)
Реализация стека в виде массива
int main()
{
int y,
i;
for (i=0; i<10; i++)
{
scanf(“%d”, &y);
vcluch (y);
}
iscluch(&y);
printf(“%d”, y);
}
Слайд 24
![Линейный список в виде одномерного массива](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/237970/slide-23.jpg)
Линейный список в виде одномерного массива