Быстрое введение в язык C++

Содержание

Слайд 2

Гречкина П.В., ПЯВУ-2, С++ Создание консольного приложения

Гречкина П.В., ПЯВУ-2, С++

Создание консольного приложения

Слайд 3

Гречкина П.В., ПЯВУ-2, С++ Структура программы //--------------------------------------------------------------------------- #pragma hdrstop //--------------------------------------------------------------------------- #pragma

Гречкина П.В., ПЯВУ-2, С++

Структура программы

//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
return

0;
}
//---------------------------------------------------------------------------

int main()
{
return 0;
}

void main()
{
return;
}

Слайд 4

Гречкина П.В., ПЯВУ-2, С++ Структура программы //--------------------------------------- int main() { return

Гречкина П.В., ПЯВУ-2, С++

Структура программы

//---------------------------------------
int main()
{
return 0;
}
//---------------------------------------

//---------------------------------------
void main()
{
return;
}
//---------------------------------------

C++ Builder

Delphi

Program Prog1;
{$APPTYPE

CONSOLE}
//---------------------------------------
function main : integer;
begin
Result := 0; exit;
end;
//---------------------------------------
Begin
main;
End.

Program Prog2;
{$APPTYPE CONSOLE}
//---------------------------------------
procedure main;
begin
exit;
end;
//---------------------------------------
Begin
main;
End.

Program Prog2;
{$APPTYPE CONSOLE}
Begin
End.

Слайд 5

Гречкина П.В., ПЯВУ-2, С++ Program Prog1; {$APPTYPE CONSOLE} //------------------------------- Uses SysUtils;

Гречкина П.В., ПЯВУ-2, С++

Program Prog1;
{$APPTYPE CONSOLE}
//-------------------------------
Uses SysUtils;
//-------------------------------
function main : integer;
var i:

integer;
begin
for i:=0 to ParamCount do
begin
writeln( ParamStr(i) );
end;
readln;
Result := 0; exit;
end;
//-------------------------------
Begin
main;
End.

Параметры программы

//----------------------------------
#include
#include
#pragma hdrstop
//----------------------------------
#pragma argsused
int main(int argc, char* argv[] )
{
int i;
for (i = 0; i < argc; i++) {
printf("%s\n", argv[i] );
}
getch();
return 0;
}
//----------------------------------

Меню Run -> Parameters…

Слайд 6

Гречкина П.В., ПЯВУ-2, С++ Простые типы //------------------------------------------------ #include #include #pragma hdrstop

Гречкина П.В., ПЯВУ-2, С++

Простые типы

//------------------------------------------------
#include
#include
#pragma hdrstop
//------------------------------------------------
const CN = 33;

// константы
#define DCN 35
//------------------------------------------------
int main() {
int i=-2000000000; unsigned int ui = 4000000000; // 4 байта
short sh=-32000; unsigned short ush = 64000; // 2 байта
char c=-128; unsigned char uc = 255; // 1 байт
float f=2.3; double d = -4.3e-5; // с плавающей точкой
unsigned char ch = 'A', ch2 = 49; // символ 1 байт

Const CN=33; DCN =35;
Var i: integer = -2000000000; // 4 байта ui: cardinal = 4000000000; sh: Smallint = -32000; // 2 байта ush: Word = 64000; c: ShortInt = -128; // 1 байт uc: Byte = 255; f: Single = 2.3; // float point - 4 байта d: Real = -4.3e-5; // float point 8 = double ch: char = ‘A’; ch2: char = #49; // «1»

Слайд 7

Гречкина П.В., ПЯВУ-2, С++ Простые типы … printf("int i=-2000000000 -> i=%li

Гречкина П.В., ПЯВУ-2, С++

Простые типы


printf("int i=-2000000000 -> i=%li i=%d i=%x

i=%o \n", i,i,i,i);
printf("unsigned int ui = 4000000000 -> ui=%u\n", ui);
printf("short sh=-32000 -> sh=%d, ", sh);
printf("unsigned short ush = 64000 -> ush=%d \n\n", ush);
printf("char c=-128 -> c=%d, ", c);
printf("unsigned char uc = 255 -> uc=%d \n\n", uc);
printf("float f=2.3 -> f=%3.1f f=%f \n", f, f);
printf("double d = -4.3e-5 -> d=%lf d=%3.1lf d=%g\n\n", d, d, d);
printf("unsigned char ch='A', ch2=49; -> ch=%c, ch2=%c \n", ch, ch2);
printf("const CN = 33; #define DCN 35 -> CN=%d, DCN2=%d \n",CN,DCN);
getch();
return 0;
}
//------------------------------------------------
Слайд 8

Гречкина П.В., ПЯВУ-2, С++ Операторы С++: int i=j=0; // не путать

Гречкина П.В., ПЯВУ-2, С++

Операторы

С++: int i=j=0; // не путать с i=j==0
if

(i==j) // не путать с if (i=j)
Слайд 9

Гречкина П.В., ПЯВУ-2, С++ Операторы y=1/3*x; // будет 0 y=1.0/3*x; Int

Гречкина П.В., ПЯВУ-2, С++

Операторы

y=1/3*x; // будет 0
y=1.0/3*x;

Int x=1, z=3; y=

x / z; // будет 0
y=x / (double)z;
Слайд 10

Гречкина П.В., ПЯВУ-2, С++ Операторы += -= *= /= %= &=

Гречкина П.В., ПЯВУ-2, С++

Операторы

+= -= *= /= %=
&= |= ^=

<<= >>=

5 & 6 => 4
0101
0110
0100

5 I 6 => 7
0101
0110
0111

5 ^ 6 => 3
0101
0110
0011

Слайд 11

Гречкина П.В., ПЯВУ-2, С++ Операторы Delphi (фрагмент) Var k: integer; pk:

Гречкина П.В., ПЯВУ-2, С++

Операторы

Delphi (фрагмент)
Var k: integer; pk: ^integer;
Begin
K:=10;
Inc( k );

// k := integer(Ord(k)+1);
Dec( k ); // -1
Inc( k, 2); //+2
Dec( k, 3); //-3
AllocMem( pk, 2* SizeOf(integer));
Inc( pk ); // + SizeOf(integer);
Dec( pk ); FreeMem(pk, 2* SizeOf(integer));

C++ (фрагмент)
int k=10, *Pk;
k++; --k;
k= k + ++k; printf("%d\n", k); //22
k=10; k= sum (k, ++k); printf("%d", k); //22
k=10; k= sum (k, k++); printf("%d", k); //21
k=10;
k= sum (++k, ++k); printf("%d", k); //23
k=10;
k= sum (k++, k++); printf("%d", k); //21
Pk = (int*) calloc(2, sizeof(int)) ;
Pk++; Pk--;
free (Pk);

int sum (int k1, int k2)
{
return k1+k2;
}

Слайд 12

Гречкина П.В., ПЯВУ-2, С++ Динамический массив (свой II) Type PReal =

Гречкина П.В., ПЯВУ-2, С++

Динамический массив (свой II)

Type PReal = ^Real;
Var DynAr:

PReal; Cur: PReal;//текущий эл-т

GetMem( DynAr, N*SizeOf( real ));
Cur:= DynAr; // на начало
For i:=0 to N-1 do
begin
ReadLn(Cur^ ); Inc(Cur);
end;

Nil

Nil

КУЧА (Heap)

Слайд 13

Гречкина П.В., ПЯВУ-2, С++ Массивы int *mas; mas = new int[8];

Гречкина П.В., ПЯВУ-2, С++

Массивы

int *mas;
mas = new int[8];
for

(i = 0; i < 8; i++) {
mas[i] = pow(i-2,3); // math.h
printf("%d^3=%d ", i-2, mas[i]);
}
delete [] mas;

Var mas: array of Integer;
Begin
SetLength( mas, 8 );
for i := 0 to 7 do begin
mas[i] = (i-2)*sqr(i-2);
write(i-2,’^3=’,mas[i],’ ’);
end;
mas:=nil;
End;

Слайд 14

Гречкина П.В., ПЯВУ-2, С++ Записи - Структуры

Гречкина П.В., ПЯВУ-2, С++

Записи - Структуры

Слайд 15

Гречкина П.В., ПЯВУ-2, С++ Записи с вариантами typedef struct { char*

Гречкина П.В., ПЯВУ-2, С++

Записи с вариантами

typedef struct { char* StrField; int

IntFielf; union { double d; int I; char c; };
} TVariantRecord;
TVariantRecord h;
h.IntFielf = 6;
h.c = ‘T’;

Var
h: TVariantRecord;
Begin
h.IntFielf := 6;
h.c := ‘T’;

Слайд 16

Гречкина П.В., ПЯВУ-2, С++ Операторы условного перехода y= (x==4 ? x : y)

Гречкина П.В., ПЯВУ-2, С++

Операторы условного перехода

y= (x==4 ? x : y)

Слайд 17

Гречкина П.В., ПЯВУ-2, С++ Условный переход if (4==x) y=x; else y=fabs(x);

Гречкина П.В., ПЯВУ-2, С++

Условный переход

if (4==x) y=x;
else y=fabs(x);
If (4==x) {

y=x;}
else { y=fabs(x); x=-x; }
if (4==x) {
y=x;
}
else {
y=fabs(x); x=-x;
}

y= ( 4==x ? x : fabs(x) ); // math.h
y= ( 4==x ? x : x=-x, fabs(x) );

Следование “,”

Слайд 18

Гречкина П.В., ПЯВУ-2, С++ Множественный выбор

Гречкина П.В., ПЯВУ-2, С++

Множественный выбор

Слайд 19

Гречкина П.В., ПЯВУ-2, С++ Множественный выбор в Delphi Case Переменная of

Гречкина П.В., ПЯВУ-2, С++

Множественный выбор в Delphi

Case Переменная of
Значение1: Оператор1;

Значение2: begin
Оператор2_1;
. . . . . . . . . . . . .
Оператор2_K;
end; {Значение2}
Значение3, Значение4: Оператор3;
else
begin
Оператор_1;
. . . . . . . . . . . . .
Оператор_R;
end; {else}
End; {Case}
Слайд 20

Гречкина П.В., ПЯВУ-2, С++ Множественный выбор в Си switch ( Переменная

Гречкина П.В., ПЯВУ-2, С++

Множественный выбор в Си

switch ( Переменная ) {

case Значение1: Оператор1; break;
case Значение2:
Оператор2_1;
. . . . . . . . . . . . .
Оператор2_K;
break;
case Значение3, Значение4: Оператор3;
break;
default:
Оператор_1;
. . . . . . . . . . . . .
Оператор_R;
}
Слайд 21

Гречкина П.В., ПЯВУ-2, С++ Множественный выбор в Си switch ( Переменная

Гречкина П.В., ПЯВУ-2, С++

Множественный выбор в Си

switch ( Переменная ) {

case Значение1: Оператор1;
case Значение2:
Оператор2_1;
. . . . . . . . . . . . .
Оператор2_K;
case Значение3, Значение4: Оператор3;
default:
Оператор_1;
. . . . . . . . . . . . .
Оператор_R;
}
Слайд 22

Гречкина П.В., ПЯВУ-2, С++ Цикл FOR Var X,I: single; Begin X:=0;

Гречкина П.В., ПЯВУ-2, С++

Цикл FOR

Var X,I: single;
Begin
X:=0; I:=1;
While I<=2.05 Do
Begin
X:=X+I;
I:=I+0.1
End;

float x=0,

i;
for (i=1.0 ; i<=2.05; i+=0.1){
x+=i;
}
Слайд 23

Гречкина П.В., ПЯВУ-2, С++ Цикл FOR Следование “,” float x, i;

Гречкина П.В., ПЯВУ-2, С++

Цикл FOR

Следование “,”

float x, i;
for (x=0,i=1.0 ;

i<=2.05; x+=i, i+=0.1);

float x=0, i;
for (i=1.0 ; i<=2.05; i+=0.1){
x+=i;
}

float x=0, i=1.0;
for ( ; i<=2.05; ) x+=i, i+=0.1;

float x=0, i=1.0;
for ( ; i<=2.05; ) {x+=i; i+=0.1;}

float x=0, i=1.0;
while (i<=2.05) {
x+=i; i+=0.1;
}