🗊 Презентация Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы

Категория: Образование
Нажмите для полного просмотра!
Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №1 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №2 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №3 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №4 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №5 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №6 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №7 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №8 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №9 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №10 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №11 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №12 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №13 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №14 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №15 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №16 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №17 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №18 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №19 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №20 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №21 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №22 Использование «структурных » типов в качестве формальных параметров Параметры - многомерные массивы, слайд №23

Содержание

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

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


Слайд 1


7 Средства создания универсальных подпрограмм С++ 7.1 Использование «структурных » типов в качестве формальных параметров 7.1.1 Параметры -...
Описание слайда:
7 Средства создания универсальных подпрограмм С++ 7.1 Использование «структурных » типов в качестве формальных параметров 7.1.1 Параметры - многомерные массивы Как было показано в главе 4, массивы можно использовать для передачи данных в подпрограммы. Однако, наличие контроля за его размерами, ограничивает применение многомерных массивов в таком описании. Кроме того, иногда в подпрограмме нужно сформировать новый массив, размер которого заранее не известен, а определяется во время работы, и вернуть его из подпрограммы. С++ позволяет применять вспомогательные массивы указателей на одномерные массивы, которые в свою очередь могут быть массивами указателей. В этом случае, по каждой размерности массив является одномерным и по правилам С++ его размерность может быть опушена в спецификации формальных параметров. Такой подход позволяет в теле функции обрабатывать многомерные массивы с изменяющимися размерами.

Слайд 2


Многомерные массивы (2) Пример обработки матрицы с переменными размерами. Написать программу переформирования матрицы путем замены в ней всех...
Описание слайда:
Многомерные массивы (2) Пример обработки матрицы с переменными размерами. Написать программу переформирования матрицы путем замены в ней всех отрицательных элементов нулевыми с использованием подпрограмм. float B[3][4]={1.2,-4.9 ,5.0,-8.1, -3,6.1,-8.5,9.6, 3.3,-6.7,-1.2,7.8}; float *ptr[]={&B[0],&B[1],&B[2]}; Однако следует помнить, что адрес начала строки не типизированный и в программе его нужно явно преобразовать к типу float : (float *)&B[0] Прототип функции переформирования: void pereform(int n,int m, float *p[]);

Слайд 3


Пример обработки матрицы переменного размера (2) // Ex7_1.cpp #include "stdafx.h" #include void pereform(int n,int m,float * p[]) { for(int...
Описание слайда:
Пример обработки матрицы переменного размера (2) // Ex7_1.cpp #include "stdafx.h" #include void pereform(int n,int m,float * p[]) { for(int i=0;i

Слайд 4


Пример передачи матрицы переменного размера (3) pereform(3,4,ptr); puts("RESULT MATRIX"); for(int i=0;i
Описание слайда:
Пример передачи матрицы переменного размера (3) pereform(3,4,ptr); puts("RESULT MATRIX"); for(int i=0;i

Слайд 5


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

Слайд 6


Пример формирования матрицы переменного размера (2) // Ex7_2.cpp #include "stdafx.h" #include #include int **matr(int &l,int &p) {int **m;...
Описание слайда:
Пример формирования матрицы переменного размера (2) // Ex7_2.cpp #include "stdafx.h" #include #include int **matr(int &l,int &p) {int **m; int i,j; printf(" input size of massiv \n"); scanf("%d %d",&l,&p); printf(" input %4d strok iz %4d elementov\n",l,p); m=new int* [l]; for (i=0;i

Слайд 7


Пример формирования матрицы переменного размера (3) void sortmas(int **m,int n,int l) {int i,j; for(i=0;i
Описание слайда:
Пример формирования матрицы переменного размера (3) void sortmas(int **m,int n,int l) {int i,j; for(i=0;i

Слайд 8


Пример формирования матрицы переменного размера (4) sortmas(mat,n,l); printf("\n sorted massiv\n"); for(i=0;i
Описание слайда:
Пример формирования матрицы переменного размера (4) sortmas(mat,n,l); printf("\n sorted massiv\n"); for(i=0;i

Слайд 9


7.1.2 Параметры - строки При программировании функций работающих со строками обычно используют прием, принятый в стандартных функциях обработки...
Описание слайда:
7.1.2 Параметры - строки При программировании функций работающих со строками обычно используют прием, принятый в стандартных функциях обработки строк. Этот прием заключается в том, что такие функции пишут так, чтобы их можно было вызывать и как процедуры, и как функции. Рассмотрим несколько примеров. Пример1. (Ex7_3)Написать подпрограмму удаления «лишних» пробелов. Описание заголовка функции: char * strdel(const char * tstring, char * trez) { char *ptr; strcpy(trez,tstring); while((ptr=strstr(trez,” ”))!=NULL) strcpy(ptr,ptr+1); return trez;}

Слайд 10


Параметры – строки (2) Вызов функции strdel в основной программе: int main(int argc, char* argv[]) {char st[40],st2[40],*ptr2; puts("input...
Описание слайда:
Параметры – строки (2) Вызов функции strdel в основной программе: int main(int argc, char* argv[]) {char st[40],st2[40],*ptr2; puts("input string : world and space"); gets(st); puts("isxodnaya stroka"); puts(st); strdel(st,st2); puts("Result string 1"); puts(st2); printf("Result string 2:\n"); ptr2=new char [40]; puts(strdel(st,ptr2)); return 0; }

Слайд 11


Параметры – строки (3) Пример 2. Написать подпрограмму нахождения максимального слова строки.(Ex7_4.cpp). char * maxworld(const char * s,char* slmax)...
Описание слайда:
Параметры – строки (3) Пример 2. Написать подпрограмму нахождения максимального слова строки.(Ex7_4.cpp). char * maxworld(const char * s,char* slmax) {char slovo[10]; unsigned int i,j,dls,maxl; dls=0;slmax[0]='\0';maxl=0;j=0; for(i=0;imaxl){ maxl=dls; strcpy(slmax,slovo);} slovo[0]='\0'; j=0; dls=0;} else {dls++; slovo[j++]=s[i];} } return slmax;}

Слайд 12


Параметры – строки (4) int main(int argc, char* argv[]) {char st[80],maxsl[10]; puts("input string : world and space"); gets(st);...
Описание слайда:
Параметры – строки (4) int main(int argc, char* argv[]) {char st[80],maxsl[10]; puts("input string : world and space"); gets(st); printf("V stroke slovo "); printf("""%s"" - macsimalno \n",maxworld(st,maxsl)); puts("input string : world and space"); gets(st); maxworld(st,maxsl); printf("V stroke slovo "); printf("""%s"" - macsimalno \n", maxsl); return 0; }

Слайд 13


Параметры – строки (5) Пример 3. Написать подпрограмму нахождения максимального слова строки, его длины и номнра в строке.(Ex7_4а.cpp). char *...
Описание слайда:
Параметры – строки (5) Пример 3. Написать подпрограмму нахождения максимального слова строки, его длины и номнра в строке.(Ex7_4а.cpp). char * infmaxw(const char * s,char* slmax,int & maxl,int & maxnum) {char slovo[10];int i,j,kols,dls; kols=0;dls=0;slmax[0]='\0';maxl=0;maxnum=0;j=0; for(i=0;imaxl) { maxl=dls; maxnum=kols; strcpy(slmax,slovo);} slovo[0]='\0'; j=0; dls=0;} else {dls++; slovo[j++]=s[i];} } return slmax;}

Слайд 14


7.1.3 Параметры структуры В отличие от массивов и строк, имя структуры не является указателем, поэтому для передачи в подпрограмму параметров типа...
Описание слайда:
7.1.3 Параметры структуры В отличие от массивов и строк, имя структуры не является указателем, поэтому для передачи в подпрограмму параметров типа структуры, которые должны передаваться по адресу, необходимо использовать ссылки или указатели. Пример. Дан массив целых чисел на 10 элементов. Объединить данные о массиве в структуру massiv, содержащую 3 поля: массив, его текущий размер и сумму. Написать подпрограмму, получающую структуру massiv в качестве параметра, вычисляющую сумму элементов массива и возвращающую эту структуру, как результат, с вычисленной суммой элементов. Реализовать передачу в подпрограмму параметр структуру можно с использованием указателя, а можно описать его как ссылку. Результат будет одинаков, а вот синтаксис описания и вызова подпрограммы будут отличаться.

Слайд 15


7.1.3.1 Использование указателя Сумма элементов массива . Подпрограмма проектируется с возможностью вызова ее как процедуры, и как функции. struct...
Описание слайда:
7.1.3.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);

Слайд 16


7.1.3.2 Использование ссылки Сумма элементов массива. struct mas{int n; int a[10]; int sum;} massiv; int summa(struct mas &x) { int i,s=0; for(i=0;i<...
Описание слайда:
7.1.3.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);

Слайд 17


7.1.3.3 Применение массива структур Сумма элементов массива структур. struct mas{int n;int a[10];int sum;} massiv[3]; int summa(struct mas *x) { int...
Описание слайда:
7.1.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;ka[i]; x->s=s; ss+=s; } return ss; } Вызов: summa(massiv);

Слайд 18


7.2 Параметры функции Как уже отмечалось, функция характеризуется типом возвращаемого значения, именем и сигнатурой. Сигнатура определяется...
Описание слайда:
7.2 Параметры функции Как уже отмечалось, функция характеризуется типом возвращаемого значения, именем и сигнатурой. Сигнатура определяется количеством, порядком следования и типами параметров. При использовании имени функции без последующих скобок и параметров, имя функции выступает в качестве указателя на эту функцию, и его значением служит адрес размещения функции в памяти. Это значение адреса может быть присвоено другому указателю, и затем уже этот новый указатель можно применять для вызова функции. Однако в определении нового указателя должен быть тот же тип, что и возвращаемое функцией значение, и та же сигнатура. Указатель на функцию определяется: (* )(); Например: int (*ptrfun)(int,int); При определении указатель на функцию может быть инициализирован, но в качестве значения должен быть адрес функции, тип и сигнатура которой соответствуют определяемому указателю.

Слайд 19


Параметры функции (2) При присваивании указателей на функции тоже надо следить за соответствием типов возвращаемых значений и сигнатур правой и левой...
Описание слайда:
Параметры функции (2) При присваивании указателей на функции тоже надо следить за соответствием типов возвращаемых значений и сигнатур правой и левой частей операции присваивания. Пример. char f1(char){…} char f2(int){…} void f3(float){…} int f4(float){…} int f5(int){…} void (*ptr1)(float)=f3; int (*ptr2)(int); char (*ptr3)(int); void main () { ptr2=f5; ptr3=f2; prt2=f4; ptr3=f1; }

Слайд 20


Параметры функции (3) Пример (Ex7_6). Написать программу вычисления элементарных функций. #include "stdafx.h" #include int add(int n,int m)...
Описание слайда:
Параметры функции (3) Пример (Ex7_6). Написать программу вычисления элементарных функций. #include "stdafx.h" #include 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; }

Слайд 21


Параметры функции (4) Пример2. Написать программу вычисления значения интеграла функции одной переменной на отрезке a,b с точностью eps. // Ex7_7.cpp...
Описание слайда:
Параметры функции (4) Пример2. Написать программу вычисления значения интеграла функции одной переменной на отрезке a,b с точностью eps. // Ex7_7.cpp #include "stdafx.h" #include #include float (* funuk)(float); float integral(float(*funuk)(float), float a,float b,float eps) {int i,n,k; float s1,s2,x,d; n=5; d=(b-a)/n; s2=1.0e+10; k=0;

Слайд 22


Параметры функции (5) do {s1=s2; s2=0;n=n*2; d=d/2; x=a;k++; for(i=1;ieps); return s2; } float f1(float x) {return x*x-1;} float f2(float x) {return...
Описание слайда:
Параметры функции (5) do {s1=s2; s2=0;n=n*2; d=d/2; x=a;k++; for(i=1;ieps); return s2; } float f1(float x) {return x*x-1;} float f2(float x) {return 2*x;}

Слайд 23


Параметры функции (6) int main(int argc, char* argv[]) {float a,b,eps; puts("input a,b,eps for y=x^2-1"); scanf("%f %f...
Описание слайда:
Параметры функции (6) int main(int argc, char* argv[]) {float a,b,eps; puts("input a,b,eps for y=x^2-1"); scanf("%f %f %f",&a,&b,&eps); printf("Value integral= %10.5f\n",integral(f1,a,b,eps)); puts("input a,b,eps for y=2*x"); scanf("%f %f %f",&a,&b,&eps); printf("Value integral= %10.5f\n",integral(f2,a,b,eps)); return 0; }



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