.


:




:

































 

 

 

 





++ , . , . , . , , . :

_ _ (__,...);

_ - ; _ - ; __ - , . . () , , , . , , , .

, , . . - , . , . . () . , , .. . .

, ( ) .

// 6.2

#include "stdafx.h"

#include <iostream> // int

long summa(int k,...){ // k -

int *pik = &k;

long total = 0;

for(; k; k--) total += *(++pik);

return total;

}

void main() {

std::cout<< "\n summa(2, 6, 4) = " << summa(2,6,4);

std::cout<< "\n summa(6, 1, 2, 3, 4, 5, 6) = " << summa(6,1,2,3,4,5,6);

getchar();

}

:

summa(2, 6, 4) = 10

summa(6, 1, 2, 3, 4, 5, 6) = 21

pik int *. k, .e. ( ). pik , . *pik . k, 1 , , . , pik " " sizeof (int) .

. .

// 6.3

#include "stdafx.h"

#include <iostream>

// :

double prod(double arg,...){

double aa = 1.0; //

double* prt = &arg; /* */

if (*prt == 0.0) return 0.0;

for(;*prt; prt++) aa *= *prt;

return aa;

}

void main(){

double prod(double,...); //

std::cout <<"\n prod(2., 4., 3., 0.0) =" <<prod(2.,4.,3., 0.0);

std::cout <<"\n prod(1.5, 2.0, 3.0, 0.0) = ";

std::cout<<prod(1.5, 2.0, 3.0,0.0);

std::cout<<"\n prod(1.4, 3.0, 0.0, 16.0, 84.3, 0.0) = ";

std::cout << prod(1.4, 3.0, 0.0, 16.0, 84.3, 0.0);

std::cout << "\n prod (0.0) = " << prod (0.0);

getchar();

}

:

prod(2., 4., 3., 0.0) = 24

prod(1.5, 2.0, 3.0, 0.0) = 9

prod(1.4, 3.0, 0.0, 16.0, 84.3, 0.0) = 4.2

prod(0.0) = 0

prod prt prt sizeof (double). prod () double. . . .

, - . , , .

. . , , . , , . ++ , . ( IBM PC). , pascal. cdecl , ++ ++.

 

, ++ . , . , , () . () . , , .. , , . - .

long fact(int k){

if (k < 0) return 0;

if (k == 0) return 1;

return k * fact(k-l);

}

. . 1, , 0! 1. 1 . k

k * (k-l) * (k-2) *...*3*2*1*1

, fact fact(0). 1 , , , :

1 * fact(1-1)

fact() , .

QuickSort(), .

// 6.4

#include "stdafx.h"

#include <stdio.h>

#include <stdlib.h>

#define DIMENSION 100

void QuickSort(int array[], int First, int Last)

{

int Temp, LowerBoundary, UpperBoundary, Separator;

LowerBoundary = First;

UpperBoundary = Last;

Separator = array[(First + Last) / 2];

do{

while (array[LowerBoundary] < Separator) LowerBoundary++;

while (array[UpperBoundary] > Separator) UpperBoundary--;

if (LowerBoundary <= UpperBoundary){

Temp = array[LowerBoundary];

array[LowerBoundary++] = array[UpperBoundary];

array[UpperBoundary--] = Temp;

}

} while (LowerBoundary <= UpperBoundary);

if (First<UpperBoundary)QuickSort(array,First,UpperBoundary);

if (LowerBoundary<Last) QuickSort(array, LowerBoundary, Last);

}

void main()

{

int array[DIMENSION], i = 0;

for (; i < DIMENSION; array[i++] = rand()%1000);

QuickSort(array, 0, DIMENSION -1);

printf("\n\n");

for (i = 0; i < DIMENSION; printf("\n%d", array[i++]));

getchar();

}

 





:


: 2018-10-15; !; : 182 |


:

:

,
==> ...

1683 - | 1627 -


© 2015-2024 lektsii.org - -

: 0.014 .