🗊Презентация Указатели. Функции

Нажмите для полного просмотра!
Указатели. Функции, слайд №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

Содержание

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

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


Слайд 1





Алгоритмизация и программирование I
Лекция 6
Описание слайда:
Алгоритмизация и программирование I Лекция 6

Слайд 2


Указатели. Функции, слайд №2
Описание слайда:

Слайд 3





Выпишите рекурентные соотношения для вычисления слагаемого
Описание слайда:
Выпишите рекурентные соотношения для вычисления слагаемого

Слайд 4


Указатели. Функции, слайд №4
Описание слайда:

Слайд 5





Лекция 8
Указатели
Функции
Описание слайда:
Лекция 8 Указатели Функции

Слайд 6





Повторение: объявление переменной
Что означает запись: int A=10;
Доступ к объявленной переменной осуществляется по ее имени. 
При этом все обращения к переменной заменяются на адрес ячейки памяти, в которой хранится ее значение. 
При завершении программы или функции, в которой была описана переменная, память автоматически освобождается.
Описание слайда:
Повторение: объявление переменной Что означает запись: int A=10; Доступ к объявленной переменной осуществляется по ее имени. При этом все обращения к переменной заменяются на адрес ячейки памяти, в которой хранится ее значение. При завершении программы или функции, в которой была описана переменная, память автоматически освобождается.

Слайд 7





Указатели
Указатель – это переменная, в которой хранится адрес другой переменной или участка памяти. 
Объявление указателей:
Как и любая переменная, указатель должен быть объявлен. 
При описании переменных-указателей перед именем переменной ставится «*». 
При объявлении указателей всегда указывается тип объекта, который будет храниться по данному адресу:
тип *имя_переменной;
Пример: int *a;
Звездочка в описании указателя относится непосредственно к имени, поэтому, чтобы объявить несколько указателей, ее ставят перед именем каждого из них:
float *x, y, *z;
Описание слайда:
Указатели Указатель – это переменная, в которой хранится адрес другой переменной или участка памяти. Объявление указателей: Как и любая переменная, указатель должен быть объявлен. При описании переменных-указателей перед именем переменной ставится «*». При объявлении указателей всегда указывается тип объекта, который будет храниться по данному адресу: тип *имя_переменной; Пример: int *a; Звездочка в описании указателя относится непосредственно к имени, поэтому, чтобы объявить несколько указателей, ее ставят перед именем каждого из них: float *x, y, *z;

Слайд 8





Способы инициализации указателя
с помощью операции получения адреса 
int a=5;
int* p=&a;		// или int p(&a);
Описание слайда:
Способы инициализации указателя с помощью операции получения адреса int a=5; int* p=&a; // или int p(&a);

Слайд 9





Операция получения адреса &
Операция получения адреса обозначается знаком &. 
Возвращает адрес своего операнда. 
float a; //объявлена вещественная переменная a
float *adr_a; //объявлен указатель на тип float
adr_a = &a; //оператор записывает в переменную adr_a адрес переменной a
Описание слайда:
Операция получения адреса & Операция получения адреса обозначается знаком &. Возвращает адрес своего операнда. float a; //объявлена вещественная переменная a float *adr_a; //объявлен указатель на тип float adr_a = &a; //оператор записывает в переменную adr_a адрес переменной a

Слайд 10





Операция разадресации (разыменования ) *
Операция разадресации * возвращает значение переменной, хранящееся по заданному адресу, т.е. выполняет действие, обратное операции &:
float a;      //Объявлена вещественная переменная а
float *adr_a; //Объявлен указатель на тип float
a=*adr_a;    //Оператор записывает в переменную a вещественное значение, хранящееся по адресу adr_a.
Описание слайда:
Операция разадресации (разыменования ) * Операция разадресации * возвращает значение переменной, хранящееся по заданному адресу, т.е. выполняет действие, обратное операции &: float a; //Объявлена вещественная переменная а float *adr_a; //Объявлен указатель на тип float a=*adr_a; //Оператор записывает в переменную a вещественное значение, хранящееся по адресу adr_a.

Слайд 11





Операции * и & при работе с указателями
Описание слайда:
Операции * и & при работе с указателями

Слайд 12





Пример
#include <iostream>
#include <locale>
using namespace std;
void main()
{
   setlocale(LC_ALL,"rus");
   float PI=3.14159, *p1, *p2;
   p1=p2=&PI;
  cout<<"По адресу p1="<<p1<<" хранится *p1="
<<*p1<<"\n";
  cout<<"По адресу p2="<<p2<<" хранится *p2="
<<*p2<<"\n";
}
Описание слайда:
Пример #include <iostream> #include <locale> using namespace std; void main() { setlocale(LC_ALL,"rus"); float PI=3.14159, *p1, *p2; p1=p2=&PI; cout<<"По адресу p1="<<p1<<" хранится *p1=" <<*p1<<"\n"; cout<<"По адресу p2="<<p2<<" хранится *p2=" <<*p2<<"\n"; }

Слайд 13


Указатели. Функции, слайд №13
Описание слайда:

Слайд 14





Арифметические операции над указателями:
сложение и вычитание указателей с константой;
вычитание одного указателя из другого;
инкремент; декремент.
Описание слайда:
Арифметические операции над указателями: сложение и вычитание указателей с константой; вычитание одного указателя из другого; инкремент; декремент.

Слайд 15


Указатели. Функции, слайд №15
Описание слайда:

Слайд 16





Задание
Чему равно значение переменной А?
int A; 	// выделяется память
int *P;	 // память не выделяется
...
A=10;
P=&A; 	// &A – взятие адреса. Выделяется память под P  и в нее записывается адрес области памяти, выделенной под А.
A++; 
*P*=*P;
Описание слайда:
Задание Чему равно значение переменной А? int A; // выделяется память int *P; // память не выделяется ... A=10; P=&A; // &A – взятие адреса. Выделяется память под P и в нее записывается адрес области памяти, выделенной под А. A++; *P*=*P;

Слайд 17





Функции
Деление программы на функции является базовым принципом структурного программирования.
Основные свойства и достоинства структурного программирования
Преодоление барьера сложности программ.
Возможность демонстрации правильности программ на различных этапах решения.
Наглядность.
Простота модификации
Описание слайда:
Функции Деление программы на функции является базовым принципом структурного программирования. Основные свойства и достоинства структурного программирования Преодоление барьера сложности программ. Возможность демонстрации правильности программ на различных этапах решения. Наглядность. Простота модификации

Слайд 18





Функции
Любая последовательность операторов, встречающаяся в программе более одного раза, будучи вынесенной в отдельную функцию, сокращает размер программы.
Описание слайда:
Функции Любая последовательность операторов, встречающаяся в программе более одного раза, будучи вынесенной в отдельную функцию, сокращает размер программы.

Слайд 19





Объявление и определение функций в языке С
Функция является 
во-первых, одним из производных типов C++; 
во-вторых, минимальным исполняемым модулем программы.
Описание слайда:
Объявление и определение функций в языке С Функция является во-первых, одним из производных типов C++; во-вторых, минимальным исполняемым модулем программы.

Слайд 20





Функция
Функция – это именованная последовательность описаний и операторов, выполняющая законченное  действие.
Описание слайда:
Функция Функция – это именованная последовательность описаний и операторов, выполняющая законченное действие.

Слайд 21





Объявление и определение функции
Объявление функции (прототип, заголовок) задает имя функции, тип возвращаемого значения и список передаваемых параметров.  
//объявление
<тип>  <имя_функции> ([<список_формальных_параметров>]);

Определение функции содержит, кроме объявления, тело функции, которое представляет собой последовательность описаний и операторов.
//определение
<тип>  <имя_функции> ([<список_формальных_параметров>])
{ 
    <тело_функции>
}
	<Тело_функции>::=<блок>| <составной оператор>. 

Внутри функции нельзя определить другую функцию
Описание слайда:
Объявление и определение функции Объявление функции (прототип, заголовок) задает имя функции, тип возвращаемого значения и список передаваемых параметров. //объявление <тип> <имя_функции> ([<список_формальных_параметров>]); Определение функции содержит, кроме объявления, тело функции, которое представляет собой последовательность описаний и операторов. //определение <тип> <имя_функции> ([<список_формальных_параметров>]) { <тело_функции> } <Тело_функции>::=<блок>| <составной оператор>. Внутри функции нельзя определить другую функцию

Слайд 22





Формальные и фактические параметры
Список формальных параметров – это те величины, которые требуется передать в функцию. 
Элементы списка разделяются запятыми. Для каждого параметра указывается тип и имя. В объявлении имена можно не указывать.
При вызове указываются: имя функции и фактические параметры. 
Фактические параметры заменяют формальные параметры при выполнении операторов тела функции.
Описание слайда:
Формальные и фактические параметры Список формальных параметров – это те величины, которые требуется передать в функцию. Элементы списка разделяются запятыми. Для каждого параметра указывается тип и имя. В объявлении имена можно не указывать. При вызове указываются: имя функции и фактические параметры. Фактические параметры заменяют формальные параметры при выполнении операторов тела функции.

Слайд 23





Пример
void func1(int, float);	// объявление функции (;)
void main()
{ 
	int a; float z;
	func1(a,z);		// вызов функции
}
void func1(int c, float x) // определение функции
{
 		// тело функции
}
В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать.
Описание слайда:
Пример void func1(int, float); // объявление функции (;) void main() { int a; float z; func1(a,z); // вызов функции } void func1(int c, float x) // определение функции { // тело функции } В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать.

Слайд 24





Использование функций
Объявление функции должно находиться в тексте раньше вызова функции, чтобы компилятор мог осуществить проверку правильности вызова. 
Если функция имеет тип не void, то ее вызов может быть операндом выражения.
Если функция func () объявлена без параметров, то ее вызовом является имя с пустыми скобками: func().
Описание слайда:
Использование функций Объявление функции должно находиться в тексте раньше вызова функции, чтобы компилятор мог осуществить проверку правильности вызова. Если функция имеет тип не void, то ее вызов может быть операндом выражения. Если функция func () объявлена без параметров, то ее вызовом является имя с пустыми скобками: func().

Слайд 25





Возвращаемое значение
В теле функции может быть оператор, который возвращает полученное значение функции в точку вызова:
return <выражение>;
Используется для возврата результата, поэтому выражение должно иметь тот же тип, что и тип функции в определении. 
Тип возвращаемого значения может быть любым, кроме массива и функции, но может быть указателем на массив или функцию.
Описание слайда:
Возвращаемое значение В теле функции может быть оператор, который возвращает полученное значение функции в точку вызова: return <выражение>; Используется для возврата результата, поэтому выражение должно иметь тот же тип, что и тип функции в определении. Тип возвращаемого значения может быть любым, кроме массива и функции, но может быть указателем на массив или функцию.

Слайд 26





Пример
int func1(int, float);	// объявление функции
void main()
{ 
	int a; float z;
	a=func1(a+2,z);		// вызов функции
}
int  func1(int c, float x) 	// определение функции
{
 					// тело функции
   return c;
}
Описание слайда:
Пример int func1(int, float); // объявление функции void main() { int a; float z; a=func1(a+2,z); // вызов функции } int func1(int c, float x) // определение функции { // тело функции return c; }

Слайд 27





Пример
Вычислить значение y:
Описание слайда:
Пример Вычислить значение y:

Слайд 28





Программа
Описание слайда:
Программа

Слайд 29





Задание
Заданы координаты сторон треугольника, если такой треугольник существует, то найти его площадь.
Описание слайда:
Задание Заданы координаты сторон треугольника, если такой треугольник существует, то найти его площадь.

Слайд 30





Программа
Описание слайда:
Программа

Слайд 31





Программа (продолжение)
void main()
{
double x1=1,y1,x2,y2,x3,y3; 
double point1_2,point1_3,point2_3;
cout<<"\nEnter koordinats of triangle:";
cin>>x1>>y1>>x2>>y2>>x3>>y3;
point1_2=line(x1,y1,x2,y2);
point1_3=line(x1,y1,x3,y3);
point2_3=line(x2,y2,x3,y3);
If   (triangle(point1_2,point1_3,point2_3))
cout<<"S="<<square(point1_2,point2_3,point1_3)<<"\n";
    else cout<<"\nTriagle doesnt exist";
}
Описание слайда:
Программа (продолжение) void main() { double x1=1,y1,x2,y2,x3,y3; double point1_2,point1_3,point2_3; cout<<"\nEnter koordinats of triangle:"; cin>>x1>>y1>>x2>>y2>>x3>>y3; point1_2=line(x1,y1,x2,y2); point1_3=line(x1,y1,x3,y3); point2_3=line(x2,y2,x3,y3); If (triangle(point1_2,point1_3,point2_3)) cout<<"S="<<square(point1_2,point2_3,point1_3)<<"\n"; else cout<<"\nTriagle doesnt exist"; }

Слайд 32





Способы передачи параметров
Существует два способа передачи параметров в функцию: 
по адресу 
по значению
Описание слайда:
Способы передачи параметров Существует два способа передачи параметров в функцию: по адресу по значению

Слайд 33





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

Слайд 34


Указатели. Функции, слайд №34
Описание слайда:

Слайд 35


Указатели. Функции, слайд №35
Описание слайда:

Слайд 36





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

Слайд 37


Указатели. Функции, слайд №37
Описание слайда:

Слайд 38


Указатели. Функции, слайд №38
Описание слайда:

Слайд 39


Указатели. Функции, слайд №39
Описание слайда:

Слайд 40





Задание
Какой результат будет выведен на экран?
#include <iostream>
using namespace std;
void f(int i, int* j, int& k) {
    i++;
    (*j)++;
    k++;
}
void main() 
{
    int i = 1, j = 2, k = 3;
    cout << "i j k\n";
    cout << i << ' ' << j << ' ' << k << '\n';
    f(i, &j, k);
    cout << i << ' ' << j << ' ' << k;
}
Описание слайда:
Задание Какой результат будет выведен на экран? #include <iostream> using namespace std; void f(int i, int* j, int& k) { i++; (*j)++; k++; } void main() { int i = 1, j = 2, k = 3; cout << "i j k\n"; cout << i << ' ' << j << ' ' << k << '\n'; f(i, &j, k); cout << i << ' ' << j << ' ' << k; }

Слайд 41





Задание
Найти наибольший общий делитель (НОД) для значений x, y, x+y.
Описание слайда:
Задание Найти наибольший общий делитель (НОД) для значений x, y, x+y.

Слайд 42





Программа
#include <iostream>
using namespace std;
int evklid(int m,int n) //данные передаются по значению
{
	while (m!=n)
		if (m>n) m=m-n;
		else n=n-m;
return (m);
}
void main ()
{
  int x,y,nod;
  cin>>x>>y;
  nod=evklid(evklid(x,y),x+y);
  cout<<"NOD="<<nod<<"\n";
}
Описание слайда:
Программа #include <iostream> using namespace std; int evklid(int m,int n) //данные передаются по значению { while (m!=n) if (m>n) m=m-n; else n=n-m; return (m); } void main () { int x,y,nod; cin>>x>>y; nod=evklid(evklid(x,y),x+y); cout<<"NOD="<<nod<<"\n"; }

Слайд 43





Задание
Написать программу, запрашивающую N целых чисел и выводящих в текстовый файл все цифры этих чисел через запятую в обратном порядке.
Описание слайда:
Задание Написать программу, запрашивающую N целых чисел и выводящих в текстовый файл все цифры этих чисел через запятую в обратном порядке.

Слайд 44





Программа
Описание слайда:
Программа

Слайд 45


Указатели. Функции, слайд №45
Описание слайда:



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