Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0495976_C19D7_shpory_s.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.82 Mб
Скачать

81. Приведите пример использования указателей и массивов.

#include<iostream>

#include<math.h>

main()

{

int n,i,j,m,s,d;

double start, end, start1,end1;

cout<<"kol-vo strok= ";

cin>>m;

cout<<"kol-vo stolbcov= ";

cin>>n;

int **a; int **b; int **c;

a=new int*[m]; b=new int*[m]; c=new int*[m];

cout<<"\nvvedite matricu a"<<endl;

for(i=0;i<m;i++)

{ a[i]=new int[n];

for(j=0;j<n;j++)

cin>>a[i][j]; }

cout<<endl;

cout<<"vvedite matricu b"<<endl;

for(i=0;i<m;i++)

{ b[i]=new int[n];

for(j=0;j<n;j++)

cin>>b[i][j];

}

cout<<endl;

for(i=0;i<m;i++)

{ c[i]=new int[n];

for(j=0;j<n;j++)

{ c[i][j]=a[i][j]+b[i][j];

cout<<" "<<c[i][j]<<endl;}}

cout<<endl;

cout<<endl;

for(i=0;i<m;i++)

{

c[i]=new int[n];

for(j=0;j<n;j++)

{

c[i][j]=a[i][j]-b[i][j];

cout<<" "<< c[i][j]<<endl;

}

}

return(0);

82. Приведите пример использования условного оператора

# include <iostream.h>

# include <math.h>

main ()

{

float A,B,C,x,y,z;

cout<<"Enter A=";

cin>>A;

cout<<"Enter B=";

cin>>B;

cout<<"Enter C=";

cin>>C;

if(A>B&B>C || A<B&B<C)

{

x=2*A;

y=2*B;

z=2*C;

cout<<"udvoennoe A="<<x<<endl;

cout<<"udvoennoe B="<<y<<endl;

cout<<"udvoennoe C="<<z<<endl;

}

else

{

x=-A;

y=-B;

z=-C;

cout<<"otricatel'noe A="<<x<<endl;

cout<<"otricatel'noe B="<<y<<endl;

cout<<"otricatel'noe C="<<z<<endl;

}

cin>>A;

return(0);

}

83.Приведите пример использования циклов for, while, do-while.

Для for

# include <iostream.h>

# include <math.h>

main()

{

float A,sum,B;

int n,i;

cout<<"enter A=";

cin>>A;

cout<<"enter n=";

cin>>n;

for (i=0;i<n+1;i+=1)

{

B=pow(A,i);

cout<<"stepen'="<<i<<"zna4 B="<<B<<endl;

}

cout<<"summa="<<sum<<endl;

cin>>A;

return(0);

}

Для while

#include <iostream.h>

#include <math.h>

void main()

{

int n,s=0,t,i=0;

cin>>n;

while (n!=0)

{ t=n%10;

n=n/10;

s=s+t;

i++;

}

cout<<i<<" "<<s<<endl;

}

Для do-while

array11:

#include <iostream.h>

#include <math.h>

main()

{int N=10,a[10],k,m=1;

cin>>k;

for(int i=1;i<=10;i++)

{cin>>a[i];}

do

{k=k*m;

m=m+1;

j=k*2;

cout<<a[k]<<endl;

}while(j<=N);

}

84. Приведите пример использования шаблонов функций.

Шабло́ны (англ. template) — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).

В C++ возможно создание шаблонов функций и классов.

Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем). Например, нам нужен какой-то класс:

class SomeClass{

int SomeValue;

int SomeArray[20];

...}

Для одной конкретной цели мы можем использовать этот класс. Но, вдруг, цель немного изменилась, и нужен еще один класс. Теперь нужно 30 элементов массива SomeArray и вещественный тип SomeValue и элементов SomeArray. Тогда мы можем абстрагироваться от конкретных типов и использовать шаблоны с параметрами. Синтаксис: в начале перед объявлением класса напишем слово template и укажем параметры в угловых скобках. В нашем примере:

template < int ArrayLength, typename SomeValueType > class SomeClass{

SomeValueType SomeValue;

SomeValueType SomeArray[ ArrayLength ];

...}

Тогда для первой модели пишем:SomeClass < 20, int > SomeVariable;

для второй:SomeClass < 30, double > SomeVariable2;

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

Синтаксис описания шаблона.аблон функции начинается с ключевого слова template, за которым в угловых скобках следует список параметров. Затем следует объявление функции:

template< typename T >

void sort( T array[], int size ); // прототип: шаблон sort объявлен, но не определён

template< typename T >

void sort( T array[], int size ) // объявление и определение

{ T t;

for (int i = size - 1; i > 0; i--)

for (int j = i; j > 0; j--)

if (array[j] < array[j-1])

{ t = array[j];

array[j] = array[j-1];

array[j-1] = t; }}

template< int BufferSize > // целочисленный параметр

char* read()

{ char *Buffer = new char[ BufferSize ];

/* считывание данных */

return Buffer;

}

Ключевое слово typename появилось сравнительно недавно, поэтому стандарт[1] допускает использование class вместо typename:

template< class T >

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]