Презентация Функции. Модульное программирование онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Функции. Модульное программирование абсолютно бесплатно. Урок-презентация на эту тему содержит всего 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
  • Автор:
    неизвестен



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

№1 слайд
Глава . Функции. Модульное
Содержание слайда: Глава 3. Функции. Модульное программирование МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети Лектор: д.т.н., проф. Иванова Галина Сергеевна

№2 слайд
. Описание функции lt Тип
Содержание слайда: 3.1 Описание функции <Тип результата> <Имя > ([<Список параметров>]) { [< Объявление локальных переменных и констант >] <Операторы> } Пример: int max(int a, int b); int max(int a, int b) { if (a>b) return a; else return b; }

№3 слайд
Параметры функции . Все
Содержание слайда: Параметры функции 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) { …}

№4 слайд
. Классы памяти .
Содержание слайда: 3.2 Классы памяти 1. Автоматические переменные (auto) main() {auto int a;…} abc() {auto int a;…} 2. Внешние переменные (extern) extern int a; main() {extern int a;…} abc() {extern int a;…} bcd() {int a;…}

№5 слайд
Классы памяти . Статические
Содержание слайда: Классы памяти (2) 3. Статические переменные (static) abc() { int a=1; static int b=1; … a++; b++; …} 4. Внешние статические переменные (extern static) int a; extern static int b; Файл 5. Регистровые переменные (register) register int a;

№6 слайд
. Параметры-массивы В С
Содержание слайда: 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 слайд
. Параметры-строки Функции
Содержание слайда: 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 слайд
. Параметры-структуры Имя
Содержание слайда: 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);

№9 слайд
Параметры-структуры Пример .
Содержание слайда: Параметры-структуры (2) Пример 2. Сумма элементов массива (ссылка). struct mas{int n; int a[10]; int sum;} 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);

№10 слайд
Параметры-структуры Пример .
Содержание слайда: Параметры-структуры (3) Пример 3. Сумма элементов массива (массив). struct mas{int n;int a[10];int sum;} massiv[3]; int summa(struct mas *x) { int i,k,s,ss=0; for(k=0;k<3;k++,x++) { for(s=0,i=0;i<x->n;i++) s+=x->a[i]; x->s=s; ss+=s; } return ss; } Вызов: summa(massiv);

№11 слайд
. Параметры-функции Пример Ex
Содержание слайда: 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 слайд
. Рекурсия Пример. Переворот
Содержание слайда: 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
Содержание слайда: 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 слайд
. Пространство имен
Содержание слайда: 3.9 Пространство имен Большинство приложений состоит более чем из одного исходного файла. При этом возникает вероятность дублирования имен, что препятствует сборке программы из частей. Для снятия проблемы в C++ был введен механизм логического разделения области глобальных имен программы, который получил название пространства имен. Имена, определенные в пространстве имен, становятся локальными внутри него и могут использоваться независимо от имен, определенных в других пространствах. Таким образом, снимается требование уникальности имен программы. namespaсe [<имя>] { <Объявления и определения> } Имя пространства имен должно быть уникальным, но может быть и опущено. Если имя пространства опущено, то считается, что определено неименованное пространство имен, локальное внутри единицы трансляции. Для доступа к его ресурсам используется внутреннее имя $$$. Например: namespace ALPHA { // ALPHA – имя пространства имен long double LD; // объявление переменной float f(float y) { return y; } // описание функции }

№15 слайд
Доступ к элементам
Содержание слайда: Доступ к элементам пространства имен Пространство имен определяет область видимости, следовательно, функции, определенные в пространстве имен могут без ограничений использовать другие ресурсы, объявленные там же (переменные, типы и т.д.). Доступ к элементам других пространств имен может осуществляться тремя способами: 1) с использованием квалификатора доступа, например: ALPHA::LD или ALPHA::f() 2) с использованием объявления using, которое указывает, что некоторое имя доступно в другом пространстве имен: namespace BETA { … using ALPHA::LD;/* имя ALPHA::LD доступно в BETA*/ } 3) с использованием директивы using, которая объявляет все имена одного пространства имен доступными в другом пространстве: namespace BETA { … using ALPHA; /* все имена ALPHA доступны в BETA*/ }

№16 слайд
Непоименованное пространство
Содержание слайда: Непоименованное пространство имен Непоименованное пространство имен невидимо в других модулях: 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 слайд
Глобальное пространство имен
Содержание слайда: Глобальное пространство имен Приложение включает одно глобальное пространство имен. Имена, входящие в это пространство, объявляются без указания пространства имен. Пример: int i; namespace A { int a, b, c; namespace B {int i, j, k;} } int main() { A::a++; A::B::i++; ::i++; // глобальное i }

№18 слайд
Имена стандартных библиотек С
Содержание слайда: Имена стандартных библиотек С++ Согласно стандарту 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 слайд
. Аргументы командной строки
Содержание слайда: 3.10 Аргументы командной строки int main( int argc,char *argv[ ]) { ... } где argc - количество параметров командной строки +1; argv[0] - может содержать полное имя файла программы, например “A:\ddd.exe”. argv[1] - содержит первый параметр из командной строки; argv[2] - содержит второй параметр из командной строки и т.д. Номер предпоследнего элемента массива argv[ ] равен argc. Он содержит последний параметр. Последний элемент массива argv содержит NULL.

№20 слайд
. Дополнительные возможности
Содержание слайда: 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 презентации Функции. Модульное программирование одним архивом: