Презентация Функции. Модульное программирование онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Функции. Модульное программирование абсолютно бесплатно. Урок-презентация на эту тему содержит всего 20 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Функции. Модульное программирование
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:20 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:258.00 kB
- Просмотров:54
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№3 слайд
![Параметры функции . Все](/documents_5/019e811c4a442df3152120b05967b40b/img2.jpg)
Содержание слайда: Параметры функции
1. Все параметры передаются по значению!
2. Если надо вернуть значение, то передают указатель или ссылку:
а) указатель
void prog(int a, int *b) { *b=a; }
вызов: prog(c,&d);
б) ссылка
void prog(int a, int &b) { b=a; }
вызов: prog(c, d);
3. Если надо запретить изменение параметра, переданного адресом, то его описывают const
int prog2(const int *a) { …}
№6 слайд
![. Параметры-массивы В С](/documents_5/019e811c4a442df3152120b05967b40b/img5.jpg)
Содержание слайда: 3.3 Параметры-массивы
В С++ отсутствует контроль размерности массива по первому индексу!
а) int x[5] int *x int x[ ]
б) int y[ ][8] int y[4][8]
Пример:
void summa(const float x[ ][3], float *y)
{ int i,j;
for(i=0;i<5;i++)
for(y[i]=0,j=0;j<3;j++) y[i]+=x[i][j];
}
Вызов: summa(a,b);
№7 слайд
![. Параметры-строки Функции](/documents_5/019e811c4a442df3152120b05967b40b/img6.jpg)
Содержание слайда: 3.4 Параметры-строки
Функции типа «строка» целесообразно писать как процедуры-функции.
Пример. Функция удаления «лишних» пробелов между словами.
char *strdel(const char *source,char *result)
{ char *ptr;
strcpy (result, source);
while ((ptr=strstr(result, " "))!=NULL)
strcpy(ptr,ptr+1);
return result;
}
Вызовы: puts(strdel(str,strres)); или
strdel(str,strres);
№8 слайд
![. Параметры-структуры Имя](/documents_5/019e811c4a442df3152120b05967b40b/img7.jpg)
Содержание слайда: 3.5 Параметры-структуры
Имя структуры не является указателем на нее.
Пример 1. Сумма элементов массива (указатель).
struct mas{int n; int a[10]; int s;} massiv;
int summa(struct mas *x)
{ int i,s=0;
for(i=0;i<x->n;i++) s+=x->a[i];
x->s=s;
return s;
}
Вызов:
summa(&massiv);
№11 слайд
![. Параметры-функции Пример Ex](/documents_5/019e811c4a442df3152120b05967b40b/img10.jpg)
Содержание слайда: 3.6 Параметры-функции
Пример (Ex3_01).
#include "stdafx.h"
#include <stdio.h>
int add(int n,int m) {return n+m;}
int sub(int n,int m) {return n-m;}
int mul(int n,int m) {return n*m;}
int div(int n,int m) {return n/m;}
int main(int argc, char* argv[])
{ int (*ptr)(int,int);
int a=6, b=2; char c='+';
while (c!=' ')
{ printf("%d%c%d=",a,c,b);
switch (c) { case '+': ptr=add; c='-';break;
case '-': ptr=sub; c='*';break;
case '*': ptr=mul; c='/';break;
case '/': ptr=div; c=' '; }
printf("%d\n",a=ptr(a,b)); }
return 0; }
№12 слайд
![. Рекурсия Пример. Переворот](/documents_5/019e811c4a442df3152120b05967b40b/img11.jpg)
Содержание слайда: 3.7 Рекурсия
Пример. Переворот строки (Ex3_02).
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
void reverser(char s[],char sr[])
{ int k;
if (!strlen(s)) sr[0]='\0';
else { reverser(s+1,sr);
k=strlen(sr); sr[k]=s[0]; sr[k+1]='\0'; }
}
int main(int argc, char* argv[])
{ char s[20],sr[20];
printf("Input string:");
scanf("%s",s);
reverser(s,sr);
printf("Output string: %s\n",sr);
return 0;
}
№13 слайд
![. Модули C Ex Файл Mod.h int](/documents_5/019e811c4a442df3152120b05967b40b/img12.jpg)
Содержание слайда: 3.8 Модули C++ (Ex3_03)
Файл Mod.h:
int nod(int a,int b);
Файл Mod.cpp:
#include "stdafx.h"
#include "Mod.h"
int nod(int a,int b)
{ while (a!=b)
if (a>b) a=a-b; else b=b-a;
return a; }
Файл Ex3_03.cpp:
#include "stdafx.h"
#include <stdio.h>
#include "Mod.h"
int main(int argc, char* argv[])
{ int a=18,b=24,c;
c=nod(a,b);
printf("nod=%d\n",c);
return 0; }
№14 слайд
![. Пространство имен](/documents_5/019e811c4a442df3152120b05967b40b/img13.jpg)
Содержание слайда: 3.9 Пространство имен
Большинство приложений состоит более чем из одного исходного файла. При этом возникает вероятность дублирования имен, что препятствует сборке программы из частей. Для снятия проблемы в C++ был введен механизм логического разделения области глобальных имен программы, который получил название пространства имен.
Имена, определенные в пространстве имен, становятся локальными внутри него и могут использоваться независимо от имен, определенных в других пространствах. Таким образом, снимается требование уникальности имен программы.
namespaсe [<имя>] { <Объявления и определения> }
Имя пространства имен должно быть уникальным, но может быть и опущено. Если имя пространства опущено, то считается, что определено неименованное пространство имен, локальное внутри единицы трансляции. Для доступа к его ресурсам используется внутреннее имя $$$.
Например:
namespace ALPHA { // ALPHA – имя пространства имен
long double LD; // объявление переменной
float f(float y) { return y; } // описание функции
}
№15 слайд
![Доступ к элементам](/documents_5/019e811c4a442df3152120b05967b40b/img14.jpg)
Содержание слайда: Доступ к элементам пространства имен
Пространство имен определяет область видимости, следовательно, функции, определенные в пространстве имен могут без ограничений использовать другие ресурсы, объявленные там же (переменные, типы и т.д.).
Доступ к элементам других пространств имен может осуществляться тремя способами:
1) с использованием квалификатора доступа, например:
ALPHA::LD или ALPHA::f()
2) с использованием объявления using, которое указывает, что некоторое имя доступно в другом пространстве имен:
namespace BETA { …
using ALPHA::LD;/* имя ALPHA::LD доступно в BETA*/ }
3) с использованием директивы using, которая объявляет все имена одного пространства имен доступными в другом пространстве:
namespace BETA { …
using ALPHA; /* все имена ALPHA доступны в BETA*/ }
№16 слайд
![Непоименованное пространство](/documents_5/019e811c4a442df3152120b05967b40b/img15.jpg)
Содержание слайда: Непоименованное пространство имен
Непоименованное пространство имен невидимо в других модулях: namespace { namespace-body }
При трансляции оно именуется как “unique”, доступное в самом модуле:
namespace unique { namespace-body }
using namespace unique;
Пример:
namespace { int i; } // unique::i
void f() { i++; } // unique::i++
namespace A {
namespace { int i,j;}} // A::unique::i A::unique::j
using namespace A;
void h()
{ i++; // unique::i или A::unique::i ?
A::i++; // A::i ?
j++; // A::unique::j++
}
№17 слайд
![Глобальное пространство имен](/documents_5/019e811c4a442df3152120b05967b40b/img16.jpg)
Содержание слайда: Глобальное пространство имен
Приложение включает одно глобальное пространство имен. Имена, входящие в это пространство, объявляются без указания пространства имен.
Пример:
int i;
namespace A
{ int a, b, c;
namespace B {int i, j, k;}
}
int main()
{
A::a++;
A::B::i++;
::i++; // глобальное i
}
№18 слайд
![Имена стандартных библиотек С](/documents_5/019e811c4a442df3152120b05967b40b/img17.jpg)
Содержание слайда: Имена стандартных библиотек С++
Согласно стандарту ANSI/ISO в C++ все имена ресурсов стандартных библиотек определены в пространстве std. При использовании этого пространства автоматически подключаются библиотеки <cstdio>,<iostream>,<cmath> и т.д.
Пример:
// #include <iostream> - не надо!
int main()
{ std::cout << "Hello "; 1-й вариант
using namespace std; 2-й вариант
cout << "World." << endl;
}
Однако можно по-прежнему использовать определение ресурсов стандартных библиотек в глобальном пространстве. Для этого необходимо подключать <stdio.h>, <conio.h>, <math.h> и т.д. (кроме <iostream.h>).
Список доступных стандартных библиотек в старой и новой формах можно посмотреть в среде.
№19 слайд
![. Аргументы командной строки](/documents_5/019e811c4a442df3152120b05967b40b/img18.jpg)
Содержание слайда: 3.10 Аргументы командной строки
int main( int argc,char *argv[ ]) { ... }
где argc - количество параметров командной строки +1;
argv[0] - может содержать полное имя файла программы, например “A:\ddd.exe”.
argv[1] - содержит первый параметр из командной строки;
argv[2] - содержит второй параметр из командной строки и т.д. Номер предпоследнего элемента массива argv[ ] равен argc. Он содержит последний параметр. Последний элемент массива argv содержит NULL.
№20 слайд
![. Дополнительные возможности](/documents_5/019e811c4a442df3152120b05967b40b/img19.jpg)
Содержание слайда: 3.11 Дополнительные возможности С++
1. Подставляемые функции
inline int abs(int a) {return a>0?a:-a;}
2. Переопределяемые функции
int lenght(int x,int y){return sqrt(x*x+y*y);}
int lenght(int x,int y,int z)
{return sqrt(x*x+y*y+z*z);}
int lenght(char *s)
{return charwidth*strlen(s);}
3. Параметры функции, принимаемые по умолчанию
void InitWindow(char *windowname,
int xSize=80, int ySize=25,
int barColor=BLUE,
int frameColor=CYAN){...}
Вызов: InitWindow(pname,20,10);
Скачать все slide презентации Функции. Модульное программирование одним архивом:
Похожие презентации
-
Исследование графиков функций Средствами программирования в QBasic
-
Разработка структуры программы. Модульное программирование
-
Средства модульного программирования
-
FLIDE Система функционально-логического программирования на языке S-FLOGOL
-
Описание слайда: FLIDE Система функционально-логического программирования на языке S-FLOGOL
-
Модульное программирование
-
Безмодульное программирование
-
Модульное программирование и препроцессор
-
Цель проекта: 1. Показать, что понимание человечеством функциональных связей и взаимосвязей между отдельными качествами жизни(добр
-
Права и функциональные обязанности классного руководителя