🗊Презентация Функции. Объявление функции

Нажмите для полного просмотра!
Функции. Объявление функции, слайд №1Функции. Объявление функции, слайд №2Функции. Объявление функции, слайд №3Функции. Объявление функции, слайд №4Функции. Объявление функции, слайд №5Функции. Объявление функции, слайд №6Функции. Объявление функции, слайд №7Функции. Объявление функции, слайд №8Функции. Объявление функции, слайд №9Функции. Объявление функции, слайд №10Функции. Объявление функции, слайд №11Функции. Объявление функции, слайд №12Функции. Объявление функции, слайд №13Функции. Объявление функции, слайд №14Функции. Объявление функции, слайд №15Функции. Объявление функции, слайд №16Функции. Объявление функции, слайд №17Функции. Объявление функции, слайд №18Функции. Объявление функции, слайд №19Функции. Объявление функции, слайд №20Функции. Объявление функции, слайд №21Функции. Объявление функции, слайд №22Функции. Объявление функции, слайд №23Функции. Объявление функции, слайд №24Функции. Объявление функции, слайд №25Функции. Объявление функции, слайд №26Функции. Объявление функции, слайд №27Функции. Объявление функции, слайд №28Функции. Объявление функции, слайд №29Функции. Объявление функции, слайд №30Функции. Объявление функции, слайд №31Функции. Объявление функции, слайд №32Функции. Объявление функции, слайд №33Функции. Объявление функции, слайд №34Функции. Объявление функции, слайд №35Функции. Объявление функции, слайд №36Функции. Объявление функции, слайд №37Функции. Объявление функции, слайд №38Функции. Объявление функции, слайд №39Функции. Объявление функции, слайд №40Функции. Объявление функции, слайд №41Функции. Объявление функции, слайд №42Функции. Объявление функции, слайд №43Функции. Объявление функции, слайд №44Функции. Объявление функции, слайд №45Функции. Объявление функции, слайд №46Функции. Объявление функции, слайд №47Функции. Объявление функции, слайд №48Функции. Объявление функции, слайд №49Функции. Объявление функции, слайд №50Функции. Объявление функции, слайд №51Функции. Объявление функции, слайд №52Функции. Объявление функции, слайд №53Функции. Объявление функции, слайд №54Функции. Объявление функции, слайд №55Функции. Объявление функции, слайд №56Функции. Объявление функции, слайд №57Функции. Объявление функции, слайд №58Функции. Объявление функции, слайд №59Функции. Объявление функции, слайд №60Функции. Объявление функции, слайд №61

Содержание

Вы можете ознакомиться и скачать презентацию на тему Функции. Объявление функции. Доклад-сообщение содержит 61 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Функции
Описание слайда:
Функции

Слайд 2





Функции
В C++ программа состоит только из функций.
Функция - это независимая совокупность объявле­ний и операторов, обычно предназначенная для выполне­ния определенной задачи. 
Каждая функция имеет имя, которое используется для вызова функции.
Описание слайда:
Функции В C++ программа состоит только из функций. Функция - это независимая совокупность объявле­ний и операторов, обычно предназначенная для выполне­ния определенной задачи. Каждая функция имеет имя, которое используется для вызова функции.

Слайд 3





Объявление функции
Формат описания функции:

[тип] <имя функции> (список параметров)
{
тело функции
}
Описание слайда:
Объявление функции Формат описания функции: [тип] <имя функции> (список параметров) { тело функции }

Слайд 4





Объявление функции
Тип определяет тип значения, которое возвращает функция с помощью оператора return. 
Если тип не ука­зан, то по умолчанию предполагается, что функция воз­вращает целое значение (типа int). 
Список параметров состоит из перечня типов и имен параметров, разделен­ных запятыми.
Функция может не иметь параметров, но круглые скобки необходимы в любом случае.
Описание слайда:
Объявление функции Тип определяет тип значения, которое возвращает функция с помощью оператора return. Если тип не ука­зан, то по умолчанию предполагается, что функция воз­вращает целое значение (типа int). Список параметров состоит из перечня типов и имен параметров, разделен­ных запятыми. Функция может не иметь параметров, но круглые скобки необходимы в любом случае.

Слайд 5





Объявление функции
В списке параметров для каждого параметра дол­жен быть указан тип:
f(int х, int у, float z)
Описание слайда:
Объявление функции В списке параметров для каждого параметра дол­жен быть указан тип: f(int х, int у, float z)

Слайд 6





Функции
Когда функция не возвращает никакого значения, она должна быть описана как функция типа void (пустая).
Если не объявлять функцию типа void, тогда она по умолчанию будет иметь тип int и не возвращать ника­кого значения. Это вызовет предупреждающее сообщение компилятора, но не будет препятствием для компиляции.
Описание слайда:
Функции Когда функция не возвращает никакого значения, она должна быть описана как функция типа void (пустая). Если не объявлять функцию типа void, тогда она по умолчанию будет иметь тип int и не возвращать ника­кого значения. Это вызовет предупреждающее сообщение компилятора, но не будет препятствием для компиляции.

Слайд 7





Рекурсивные функции
Описание слайда:
Рекурсивные функции

Слайд 8





Рекурсивные функции
В языке С++ функции могут вызывать сами себя. 
Функция называется рекурсивной, если оператор в теле функции содержит вызов этой же функции. 
Классический пример рекурсивной функции - это вычисление факториа­ла числа n!=1*2*3*...*n.
Вызов функции в рекурсивной функции не создает новую копию функции, а создает в памяти новые копии локальных переменных и параметров. 
Из рекурсивной функции надо предусмотреть выход, иначе это вызовет “зависание” системы.
Описание слайда:
Рекурсивные функции В языке С++ функции могут вызывать сами себя. Функция называется рекурсивной, если оператор в теле функции содержит вызов этой же функции. Классический пример рекурсивной функции - это вычисление факториа­ла числа n!=1*2*3*...*n. Вызов функции в рекурсивной функции не создает новую копию функции, а создает в памяти новые копии локальных переменных и параметров. Из рекурсивной функции надо предусмотреть выход, иначе это вызовет “зависание” системы.

Слайд 9





Пример
factorial(int n)
	{
	int а;
	if (n==1) return 1;
	a=factorial(n-1)*n;
	return а;
	}
Описание слайда:
Пример factorial(int n) { int а; if (n==1) return 1; a=factorial(n-1)*n; return а; }

Слайд 10





Директивы препроцессора
Описание слайда:
Директивы препроцессора

Слайд 11





Препроцессор
Препроцессор языка C++ -это программа, выпол­няющая обработку входных данных для другой программы. 
Препроцессор просматривает программу до компилятора, заменяет аббревиатуры в тексте программы на соответствующие директивы, отыскивает и подключает необходимые файлы, может влиять на усло­вия компиляции. 
Директивы препроцессора не являются языком С, они расширяют область действия среды программирования среды С. 
Все директивы начинаются с символа #.
Описание слайда:
Препроцессор Препроцессор языка C++ -это программа, выпол­няющая обработку входных данных для другой программы. Препроцессор просматривает программу до компилятора, заменяет аббревиатуры в тексте программы на соответствующие директивы, отыскивает и подключает необходимые файлы, может влиять на усло­вия компиляции. Директивы препроцессора не являются языком С, они расширяют область действия среды программирования среды С. Все директивы начинаются с символа #.

Слайд 12





Директивы препроцессора
Описание слайда:
Директивы препроцессора

Слайд 13





Директива #define
Описание слайда:
Директива #define

Слайд 14





#define
Директива #define вводит макроопределение (макрос) или символическую константу.
Формат:
 #define <имя макроса> <последовательность символов>
Последовательность символов иногда называют строкой замещения. 
Когда препроцессор находит в ис­ходном тексте программы имя макроса (в дальнейшем макрос), он заменяет его на последовательность симво­лов - макроподстановка. 
Для имени макроса принято использовать прописные буквы.
Описание слайда:
#define Директива #define вводит макроопределение (макрос) или символическую константу. Формат: #define <имя макроса> <последовательность символов> Последовательность символов иногда называют строкой замещения. Когда препроцессор находит в ис­ходном тексте программы имя макроса (в дальнейшем макрос), он заменяет его на последовательность симво­лов - макроподстановка. Для имени макроса принято использовать прописные буквы.

Слайд 15





Пример
#define TRUE 1;		//1 и 0 заменяют в исходном файле 
#define FALSE 0;	//имена TRUE и FALSE.


#define MAX 100;
Описание слайда:
Пример #define TRUE 1; //1 и 0 заменяют в исходном файле #define FALSE 0; //имена TRUE и FALSE. #define MAX 100;

Слайд 16





Пример
#include <stdio.h>
#define A 3
int main(){
  printf("%d + %d = %d", A, A, A+A); // 3 + 3 = 6
  getchar();
  return 0;
}
Описание слайда:
Пример #include <stdio.h> #define A 3 int main(){ printf("%d + %d = %d", A, A, A+A); // 3 + 3 = 6 getchar(); return 0; }

Слайд 17





#define
В зависимости от значения константы компилятор присваивает ей тот или иной тип. 
С помощью суффиксов можно переопределить тип константы:
U или u - целая беззнаковая(unsigned);
F или f -  вещественная типа float;
L или l - long int / long double.
Описание слайда:
#define В зависимости от значения константы компилятор присваивает ей тот или иной тип. С помощью суффиксов можно переопределить тип константы: U или u - целая беззнаковая(unsigned); F или f - вещественная типа float; L или l - long int / long double.

Слайд 18





Пример
#define A 280U   	// unsigned int
#define B 280LU 	// unsigned long int
#define C 280   	// int (long int)
#define D 280L  	// long int
#define E 28.0 	// double
#define F 28.0F  	// float
#define G 28.0L  	// long double
Описание слайда:
Пример #define A 280U    // unsigned int #define B 280LU  // unsigned long int #define C 280    // int (long int) #define D 280L  // long int #define E 28.0  // double #define F 28.0F   // float #define G 28.0L   // long double

Слайд 19





#define
Второй вариант синтаксиса определяет макрос, подобный функции, с параметрами. 
Данная форма допускает использование необязательного списка параметров, которые должны находиться в скобках.
Описание слайда:
#define Второй вариант синтаксиса определяет макрос, подобный функции, с параметрами. Данная форма допускает использование необязательного списка параметров, которые должны находиться в скобках.

Слайд 20





Пример
//Вычисление синуса угла
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.14159265
#define SIN(x) sin(PI*x/180)
int main() {
  int c;
  printf("Введите угол в градусах: ");
  scanf("%d", &c);
  printf("sin(%d)=%lf", c, SIN(c));
  getchar(); 
  return 0;
}
Описание слайда:
Пример //Вычисление синуса угла #include <stdio.h> #include <stdlib.h> #include <math.h> #define PI 3.14159265 #define SIN(x) sin(PI*x/180) int main() { int c; printf("Введите угол в градусах: "); scanf("%d", &c); printf("sin(%d)=%lf", c, SIN(c)); getchar(); return 0; }

Слайд 21





#define
Отличием макроопределений от функций является то, что на этапе компиляции каждое вхождение идентификатора замещается соответствующим кодом, т.е. программа может иметь несколько копий одного и того же кода, соответствующего идентификатору.
В случае работы с функциями программа будет содержать 1 экземпляр кода, реализующий указанную функцию, и каждый раз при обращении к функции ей будет передано управление.
Отменить макроопределение можно с помощью директивы #undef.
Описание слайда:
#define Отличием макроопределений от функций является то, что на этапе компиляции каждое вхождение идентификатора замещается соответствующим кодом, т.е. программа может иметь несколько копий одного и того же кода, соответствующего идентификатору. В случае работы с функциями программа будет содержать 1 экземпляр кода, реализующий указанную функцию, и каждый раз при обращении к функции ей будет передано управление. Отменить макроопределение можно с помощью директивы #undef.

Слайд 22





Пример неудачного использования
#include <stdio.h>
#define sum(A,B) A+B
int main(){
  int a,b,c,d;
  a=3; b=5;
  printf(" a = %d\n b = %d\n", a, b);
  c = (a + b)*2; // c = (a + b)*2
  d = sum(a, b) * 2; // d = a + b*2;
  printf(" c = %d \n d = %d \n", c, d);
  getchar();
  return 0;
}
Описание слайда:
Пример неудачного использования #include <stdio.h> #define sum(A,B) A+B int main(){ int a,b,c,d; a=3; b=5; printf(" a = %d\n b = %d\n", a, b); c = (a + b)*2; // c = (a + b)*2 d = sum(a, b) * 2; // d = a + b*2; printf(" c = %d \n d = %d \n", c, d); getchar(); return 0; }

Слайд 23





Условная компиляция
Описание слайда:
Условная компиляция

Слайд 24





Условная компиляция
Директивы #if или #ifdef / #ifndef вместе с директивами #elif, #else
 и #endif управляют компиляцией частей исходного файла.
Если указанное выражение после #if имеет ненулевое значение, в записи преобразования сохраняется группа строк, следующая сразу за директивой #if. 
Отличие директив  #ifdef/#ifndef заключается в том, что константное выражение может быть задано только с помощью #define.
Описание слайда:
Условная компиляция Директивы #if или #ifdef / #ifndef вместе с директивами #elif, #else  и #endif управляют компиляцией частей исходного файла. Если указанное выражение после #if имеет ненулевое значение, в записи преобразования сохраняется группа строк, следующая сразу за директивой #if.  Отличие директив  #ifdef/#ifndef заключается в том, что константное выражение может быть задано только с помощью #define.

Слайд 25





Условная компиляция
Синтаксис:
#if константное выражение
   		группа операций
#elif константное выражение
   		группа операций
#else
   		группа операций
#endif
Описание слайда:
Условная компиляция Синтаксис: #if константное выражение    группа операций #elif константное выражение    группа операций #else    группа операций #endif

Слайд 26





Условная компиляция
У каждой директивы #if в исходном файле должна быть соответствующая закрывающая директива #endif. 
Между директивами #if и #endif может располагаться любое количество директив #elif, однако допускается не более одной директивы #else. 
Директива #else, если присутствует, должна быть последней перед директивой #endif.
Описание слайда:
Условная компиляция У каждой директивы #if в исходном файле должна быть соответствующая закрывающая директива #endif. Между директивами #if и #endif может располагаться любое количество директив #elif, однако допускается не более одной директивы #else. Директива #else, если присутствует, должна быть последней перед директивой #endif.

Слайд 27





Пример
#include <stdio.h>
#include <stdlib.h>
#define A 2
int main() {
#if A==1
  printf("Выполняется ветвь 1");
#elif A==2
  printf("Выполняется ветвь 2, А=%d", A);
#else
  printf("Выполняется третья ветвь, А=%d", A);
#endif
  getchar();
  return 0;
}
Описание слайда:
Пример #include <stdio.h> #include <stdlib.h> #define A 2 int main() { #if A==1 printf("Выполняется ветвь 1"); #elif A==2 printf("Выполняется ветвь 2, А=%d", A); #else printf("Выполняется третья ветвь, А=%d", A); #endif getchar(); return 0; }

Слайд 28





Директива #include
Описание слайда:
Директива #include

Слайд 29





#include
Директива #include подключает к исходному тек­сту заданные в директивы файлы. 
Данные файлы называют подключаемыми, заголовочными файлами и заголовка­ми. 
Часто в качестве подключаемых файлов используют­ся заголовочные файлы библиотек языка С.
Формат:
#include <имя заголовка>;
#include "имя заголовка";
Описание слайда:
#include Директива #include подключает к исходному тек­сту заданные в директивы файлы. Данные файлы называют подключаемыми, заголовочными файлами и заголовка­ми. Часто в качестве подключаемых файлов используют­ся заголовочные файлы библиотек языка С. Формат: #include <имя заголовка>; #include "имя заголовка";

Слайд 30





#include
Если имя файла заключено в угловые скобки (<>), считается, что нам нужен некий стандартный заголовочный файл, и компилятор ищет этот файл в предопределенных местах. 
Двойные кавычки означают, что заголовочный файл - пользовательский, и его поиск начинается с того каталога, где находится исходный текст программы.
Каждая библиотечная функция, определенная стандартом С, имеет прототип в соответствующем заголо­вочном файле. 
В соответствии со стандартом ANSI имеет 15 заголовочных файлов.
Описание слайда:
#include Если имя файла заключено в угловые скобки (<>), считается, что нам нужен некий стандартный заголовочный файл, и компилятор ищет этот файл в предопределенных местах. Двойные кавычки означают, что заголовочный файл - пользовательский, и его поиск начинается с того каталога, где находится исходный текст программы. Каждая библиотечная функция, определенная стандартом С, имеет прототип в соответствующем заголо­вочном файле. В соответствии со стандартом ANSI имеет 15 заголовочных файлов.

Слайд 31





Основные заголовочные файлы 
стандарта ANSI
Описание слайда:
Основные заголовочные файлы стандарта ANSI

Слайд 32





Ввод/вывод данных
Работа с файлами
Описание слайда:
Ввод/вывод данных Работа с файлами

Слайд 33





Ввод/вывод данных
Стандарт ANSI называется бу­феризированным (buffered) или форматированным (formated) вводом/выводом.
В тоже время используется и другой метод ввода/вывода, 
UNIX-подобный, или неформатированный (небуферизированный) ввод/вывод.
Описание слайда:
Ввод/вывод данных Стандарт ANSI называется бу­феризированным (buffered) или форматированным (formated) вводом/выводом. В тоже время используется и другой метод ввода/вывода, UNIX-подобный, или неформатированный (небуферизированный) ввод/вывод.

Слайд 34





Стандарт ANSI
Система ввода/вывода языка С++ поддерживает интерфейс, не завися­щий от того, какое в действительности используется физическое устройство ввода/вывода, т.е. есть абстрактный уровень между программистом и физическим устройством. Данная абстракция и называется потоком. 
Способ хранения информации на физическом устройстве называется файлом.
Описание слайда:
Стандарт ANSI Система ввода/вывода языка С++ поддерживает интерфейс, не завися­щий от того, какое в действительности используется физическое устройство ввода/вывода, т.е. есть абстрактный уровень между программистом и физическим устройством. Данная абстракция и называется потоком. Способ хранения информации на физическом устройстве называется файлом.

Слайд 35





Стандарт ANSI
Стандарт ANSI языка С связывает каждое из различных устройств (дисковод, клавиатура, терминал, и тд.) с логическим ус­тройством, называемым потоком. Так как потоки не за­висят от физических устройств, то одна и та же функция может записывать информацию на диск или выводить ее на экран.
В языке существует два типа потоков: те­кстовый (text) и двоичный (binary).
Описание слайда:
Стандарт ANSI Стандарт ANSI языка С связывает каждое из различных устройств (дисковод, клавиатура, терминал, и тд.) с логическим ус­тройством, называемым потоком. Так как потоки не за­висят от физических устройств, то одна и та же функция может записывать информацию на диск или выводить ее на экран. В языке существует два типа потоков: те­кстовый (text) и двоичный (binary).

Слайд 36





Стандарт ANSI
Текстовый поток - это последовательность симво­лов. При этом может не быть взаимооднозначного соот­ветствия между символами, которые передаются в потоке и выводятся на экран. Среди символов пара может соот­ветствовать возврату каретки или символу табуляции.
Двоичный поток - это последовательность байтов, которые взаимно - однозначно соответствуют тому, что находится на внешнем устройстве.
Описание слайда:
Стандарт ANSI Текстовый поток - это последовательность симво­лов. При этом может не быть взаимооднозначного соот­ветствия между символами, которые передаются в потоке и выводятся на экран. Среди символов пара может соот­ветствовать возврату каретки или символу табуляции. Двоичный поток - это последовательность байтов, которые взаимно - однозначно соответствуют тому, что находится на внешнем устройстве.

Слайд 37





Стандарт ANSI
По­ток может быть связан с файлом с помощью оператора открытия файла. Как только файл открыт, то информация может передаваться между ним и вашей программой.
Все файлы разные по своей сути. Из файла на диске можно выбрать 5-ю запись или заменить 10-ю за­пись. В то же время в файл, связанный с печатающим устройством, информация может передаваться только последовательно в том же порядке. 
Главное различие между потоками и файлами: все потоки одинаковы, все файлы разные.
Каждый поток, связанный с файлом, имеет структуру называемую FILE.
Описание слайда:
Стандарт ANSI По­ток может быть связан с файлом с помощью оператора открытия файла. Как только файл открыт, то информация может передаваться между ним и вашей программой. Все файлы разные по своей сути. Из файла на диске можно выбрать 5-ю запись или заменить 10-ю за­пись. В то же время в файл, связанный с печатающим устройством, информация может передаваться только последовательно в том же порядке. Главное различие между потоками и файлами: все потоки одинаковы, все файлы разные. Каждый поток, связанный с файлом, имеет структуру называемую FILE.

Слайд 38





Консольный ввод/вывод
Описание слайда:
Консольный ввод/вывод

Слайд 39





Консольный ввод/вывод
К консольному вводу/выводу относятся операции ввода с клавиатуры и вывода на экран. 
Технически функции, осуществляющие эти операции, связывают консоль со стандартными потоками в/в. 
Во многих системах стан­дартный в/в может быть перенаправлен. 
Для простоты будем предполагать, что стандартный ввод - это ввод с клавиатуры, а стан­дартный вывод - это вывод на экран.
Описание слайда:
Консольный ввод/вывод К консольному вводу/выводу относятся операции ввода с клавиатуры и вывода на экран. Технически функции, осуществляющие эти операции, связывают консоль со стандартными потоками в/в. Во многих системах стан­дартный в/в может быть перенаправлен. Для простоты будем предполагать, что стандартный ввод - это ввод с клавиатуры, а стан­дартный вывод - это вывод на экран.

Слайд 40





Функции ввода/вывода
 getche() - читает символ с клавиатуры и ото­бражает введенный символ на экране. Прототип в фай­ле CONIO.H;
 putchar() - выводит символ, который является ее аргументом, на экран в текущую позицию курсора. Прототип в файле STDIO.H;
 getchar() - читает символ с клавиатуры, но требует нажатия клавиши ENTER. Прототип в файле STDIO.H;
 getch() - читает символ с клавиатуры, но не вы­водит символ на экран (без эхо -возврата). Прототип в файле STDIO.H;
 gets() - ввод строки символов с клавиатуры. Прототип в файле STDIO.H;
 puts() - вывод строки символов на экран. Прототип в файле STDIO.H.
Описание слайда:
Функции ввода/вывода getche() - читает символ с клавиатуры и ото­бражает введенный символ на экране. Прототип в фай­ле CONIO.H; putchar() - выводит символ, который является ее аргументом, на экран в текущую позицию курсора. Прототип в файле STDIO.H; getchar() - читает символ с клавиатуры, но требует нажатия клавиши ENTER. Прототип в файле STDIO.H; getch() - читает символ с клавиатуры, но не вы­водит символ на экран (без эхо -возврата). Прототип в файле STDIO.H; gets() - ввод строки символов с клавиатуры. Прототип в файле STDIO.H; puts() - вывод строки символов на экран. Прототип в файле STDIO.H.

Слайд 41





Функции ввода/вывода
В дополнение к расмотренным функциям кон­сольного ввода/вывода, библиотека содержит две функ­ции, которые выполняют форматированный в/в. 
Форматированный в/в означает, что функции могут чи­тать и выводить данные в разном формате, которым мож­но управлять.
Функция printf() выполняет форматированный вывод данных на консоль, имеет прототип в файле STDIO.H. 
Функция scanf() выполняет ввод с консоли и ав­томатически преобразует введенное число в заданный формат. Прототип в файле STDIO.H.
Описание слайда:
Функции ввода/вывода В дополнение к расмотренным функциям кон­сольного ввода/вывода, библиотека содержит две функ­ции, которые выполняют форматированный в/в. Форматированный в/в означает, что функции могут чи­тать и выводить данные в разном формате, которым мож­но управлять. Функция printf() выполняет форматированный вывод данных на консоль, имеет прототип в файле STDIO.H. Функция scanf() выполняет ввод с консоли и ав­томатически преобразует введенное число в заданный формат. Прототип в файле STDIO.H.

Слайд 42





Работа с файлами
Описание слайда:
Работа с файлами

Слайд 43





Работа с файлами
Библиотека ввода-вывода С++ вклю­чает средства для работы с последовательными файлами. 
Логически последовательный файл можно представить как именованную цепочку (ленту, строку) байтов, имею­щую начало и конец. 
Последовательный файл отличается от файлов с другой организацией тем, что чтение (или за­пись) из файла (в файл) ведется байт за байтом от начала к концу.
Описание слайда:
Работа с файлами Библиотека ввода-вывода С++ вклю­чает средства для работы с последовательными файлами. Логически последовательный файл можно представить как именованную цепочку (ленту, строку) байтов, имею­щую начало и конец. Последовательный файл отличается от файлов с другой организацией тем, что чтение (или за­пись) из файла (в файл) ведется байт за байтом от начала к концу.

Слайд 44





Работа с файлами
В каждый момент позиции в файле, откуда выпол­няется чтение и куда производится запись, определяются значениями указателей позиций записи и чтения файла (в дальнейшем указатель на файл - file pointer). 
Указатель на файл является связующим звеном между файлом и пото­ком. 
Указатель на файл определяет не только текущую позицию записи (чтения), а также имя файла на диске, структуру типа FILE. 
Структура типа файл определена в заголовке stdio.h. В этом же файле stdio.h определены функции для работы с файлами
Описание слайда:
Работа с файлами В каждый момент позиции в файле, откуда выпол­няется чтение и куда производится запись, определяются значениями указателей позиций записи и чтения файла (в дальнейшем указатель на файл - file pointer). Указатель на файл является связующим звеном между файлом и пото­ком. Указатель на файл определяет не только текущую позицию записи (чтения), а также имя файла на диске, структуру типа FILE. Структура типа файл определена в заголовке stdio.h. В этом же файле stdio.h определены функции для работы с файлами

Слайд 45





Функции для работы с файлами
Описание слайда:
Функции для работы с файлами

Слайд 46





Функции для работы с файлами
Описание слайда:
Функции для работы с файлами

Слайд 47





Открытие и закрытие файла.  Функции FOPEN() и FCLOSE()
Описание слайда:
Открытие и закрытие файла. Функции FOPEN() и FCLOSE()

Слайд 48





Открытие и закрытие файла
Перед началом работы с файлом его надо создать (открыть), а по окончании работы закрыть. 
Перед началом работы с файлом надо создать ука­затель на структуру данных типа FILE.
Затем необходимо вызвать функцию fopen(), которая может создать новый файл для записи в него, либо открыть су­ществующий на диске файл для записи или (и) чтения. 
После вызова этой функции создается структура типа FILE и указатель f содержит адрес начала этой структуры в памяти. Кроме того, в ОП отво­дится 512 байт для обмена данными между файлом на диске и программой. Этот массив называется буфером. 
При закрытии файла, память отведенная под эту структуру и буфер, обнуляется, указатель f также обнуля­ется, это означает, что указатель f ни на что не указывает.
Описание слайда:
Открытие и закрытие файла Перед началом работы с файлом его надо создать (открыть), а по окончании работы закрыть. Перед началом работы с файлом надо создать ука­затель на структуру данных типа FILE. Затем необходимо вызвать функцию fopen(), которая может создать новый файл для записи в него, либо открыть су­ществующий на диске файл для записи или (и) чтения. После вызова этой функции создается структура типа FILE и указатель f содержит адрес начала этой структуры в памяти. Кроме того, в ОП отво­дится 512 байт для обмена данными между файлом на диске и программой. Этот массив называется буфером. При закрытии файла, память отведенная под эту структуру и буфер, обнуляется, указатель f также обнуля­ется, это означает, что указатель f ни на что не указывает.

Слайд 49





Функция fopen() - функция открытия файла
Функция fopen() - функция открытия файла.
Формат:           
fopen(<имя файла>,<аргумент>),
где аргумент - символьная константа, определяющая ре­жим открытия файла.
Описание слайда:
Функция fopen() - функция открытия файла Функция fopen() - функция открытия файла. Формат: fopen(<имя файла>,<аргумент>), где аргумент - символьная константа, определяющая ре­жим открытия файла.

Слайд 50





Функция fopen() - функция открытия файла
Режимы открытия файла:
r - чтение;
	w - запись;
	а - добавление;
	r+ - чтение и запись с обновлением;
	w+ - запись с обновлением;
	а+ - чтение и добавление;
и др.
Описание слайда:
Функция fopen() - функция открытия файла Режимы открытия файла: r - чтение; w - запись; а - добавление; r+ - чтение и запись с обновлением; w+ - запись с обновлением; а+ - чтение и добавление; и др.

Слайд 51





Пример
FILE *out;
out=fopen(“q1","w");


Примечание:
Служебное слово FILE записывается заглавны­ми буквами;
 Аргументы, определяющие режим доступа в функции fopen() записываются только маленькими бук­вами.
Описание слайда:
Пример FILE *out; out=fopen(“q1","w"); Примечание: Служебное слово FILE записывается заглавны­ми буквами; Аргументы, определяющие режим доступа в функции fopen() записываются только маленькими бук­вами.

Слайд 52





Пример
// Пример - Открытие (создание) нового файла
 #include <stdio.h>
main ()
{
int n;
FILE *f;
f=fopen("test.dat","w");
fclose(f);
}
Описание слайда:
Пример // Пример - Открытие (создание) нового файла #include <stdio.h> main () { int n; FILE *f; f=fopen("test.dat","w"); fclose(f); }

Слайд 53





Запись и чтение символа
Описание слайда:
Запись и чтение символа

Слайд 54





Запись и чтение символа
Для побайтной записи в файл используется функ­ция fputc().
Формат:
fputc(<переменная>,<имя файла>);
где: 
	переменная - символьная переменная, значение кото­рой 	записывается в файл;
	имя файла - файл, в который выполняется запись символа.
Описание слайда:
Запись и чтение символа Для побайтной записи в файл используется функ­ция fputc(). Формат: fputc(<переменная>,<имя файла>); где: переменная - символьная переменная, значение кото­рой записывается в файл; имя файла - файл, в который выполняется запись символа.

Слайд 55





Пример
// Пример - Побайтная запись в файл. Функция fputc() 
#include <stdio.h> 
main ()
{
int n;
FILE *f;
f=fopen ("test.dat","w");
fputc('A',f);
fclose (f);
}
Описание слайда:
Пример // Пример - Побайтная запись в файл. Функция fputc() #include <stdio.h> main () { int n; FILE *f; f=fopen ("test.dat","w"); fputc('A',f); fclose (f); }

Слайд 56





Пример
/ /Пример 31. Побайтная запись в файл 
#include <stdio.h>
main()
{
int n;
FILE *f; char c=‘z’;
f=fopen(“test.dat”,”w”); 
for (n=0; n<10; n++)
	fputc(c,f);
fclose(f);
}
Описание слайда:
Пример / /Пример 31. Побайтная запись в файл #include <stdio.h> main() { int n; FILE *f; char c=‘z’; f=fopen(“test.dat”,”w”); for (n=0; n<10; n++) fputc(c,f); fclose(f); }

Слайд 57





Пример
//  Пример 32.  Побайтная запись в файл
#include <stdio.h>
main()
{
int n,k;
FILE *f; 
char c=‘z’;
f=fopen(“test.dat”,”w”);
for (n=0; n<5; n++)
{  for (k=0; k<10; k++)
fputc(c,f);
fputs(“\n”,f); }
fclose(f);
}
Описание слайда:
Пример // Пример 32. Побайтная запись в файл #include <stdio.h> main() { int n,k; FILE *f; char c=‘z’; f=fopen(“test.dat”,”w”); for (n=0; n<5; n++) { for (k=0; k<10; k++) fputc(c,f); fputs(“\n”,f); } fclose(f); }

Слайд 58





Примечание
В программе используется функция fputs(), кото­рая записывает в файл последовательность символов - \n (функция fputc() записывает один символ). 
Управляю­щий символ \n при записи в файл превращается в два символа:
 символ возврата каретки (код 0D);
 символ перевода строки (код 0А).
Описание слайда:
Примечание В программе используется функция fputs(), кото­рая записывает в файл последовательность символов - \n (функция fputc() записывает один символ). Управляю­щий символ \n при записи в файл превращается в два символа: символ возврата каретки (код 0D); символ перевода строки (код 0А).

Слайд 59





Запись и чтение символа
Чтение символа из файла. Функция FGETC()
Формат:
fgetc(<имя файла>);
Описание слайда:
Запись и чтение символа Чтение символа из файла. Функция FGETC() Формат: fgetc(<имя файла>);

Слайд 60





Определение конца файла
В операционной системе MS-DOS принято согла­шение: признаком конца текстового файла является сим­вол 
CTRL-Z (код 26). 
Т.о., если из файла будет прочитан байт, в котором хранится число 26, то функция fgetc() примет значение (-1), что означает конец файла.
В файле stdio.h объявлена константа EOF, равная (-1).
Описание слайда:
Определение конца файла В операционной системе MS-DOS принято согла­шение: признаком конца текстового файла является сим­вол CTRL-Z (код 26). Т.о., если из файла будет прочитан байт, в котором хранится число 26, то функция fgetc() примет значение (-1), что означает конец файла. В файле stdio.h объявлена константа EOF, равная (-1).

Слайд 61





Пример
/* Пример - Побайтное чтение из файла. */
include <stdio.h>
main()
{
int с;
FILE *f;
clrscr();
f=fopen(“test.dat”,”r”);
printf("Pезультаты чтения данных из файла test.dat:\n”);
while ((c=fgetc(f)) !=EOF)
	printf(“%c”,c);
fclose(f);
}
Описание слайда:
Пример /* Пример - Побайтное чтение из файла. */ include <stdio.h> main() { int с; FILE *f; clrscr(); f=fopen(“test.dat”,”r”); printf("Pезультаты чтения данных из файла test.dat:\n”); while ((c=fgetc(f)) !=EOF) printf(“%c”,c); fclose(f); }



Похожие презентации
Mypresentation.ru
Загрузить презентацию