The Novel Class of Microwave Mode Converters Based on ...virtlab.donsoftltd.ru/docs_uc/Inf_3k.pdfThe...
Transcript of The Novel Class of Microwave Mode Converters Based on ...virtlab.donsoftltd.ru/docs_uc/Inf_3k.pdfThe...
The Physics Department,
Southern Federal University,
Russia [email protected]
Доцент кафедры прикладной
электродинамики и
компьютерного
моделирования, к.ф.-м.н.
Губский Д.С.
Информатика, …. (часть 3)
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ 2
Файлы
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Что такое файл и как с ним работать?
Файлы
3
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
FILE *namew; //объявляем указатель на файл
mamew=fopen(name,mode); //открываем файл
name - имя файла
mode - режим открытия
“r” - чтение
“w” - запись
“a” - дозапись
“r+” - чтение и запись
“w+” - запись и чтение
“a+” - дозапись и чтение
позиционирование при открытии: «r, w» – на начало, «а» – на конец
// есть доступ к файлу
fclose(namew); //закрываем файл
Файлы
4
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Фрагмент кода
int i=12;
double x=3.14;
FILE *namew;
namew=fopen("output.txt","w");
fprintf(namew,"Результаты \n");
fprintf(namew,"i = %3d\n",i);
fprintf(namew,"x = %9.3f\n",x);
fclose(namew);
Файлы (пример форматный вывод)
5
Результат – содежимое файла output.txt
Результаты
i = 12
x = 3.140
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Фрагмент кода
int i;
double x;
char buf[81];
double a,b;
double beg, step;
int kol;
FILE *namer, *namew;
namer=fopen("input.txt","r");
fscanf(namer,"%s",buf);
fscanf(namer,"%d",&i);
fscanf(namer,"%lf",&x);
fscanf(namer,"%s",buf);
fscanf(namer,"%lf %lf",&a,&b);
fscanf(namer,"%*4s %d",&kol);
fscanf(namer,"%*4s %lf %*5s %lf",&beg,&step);
fclose(namer);
Файлы (пример форматный ввод-вывод)
6
Файл input.txt
jgerheheeh
2
3.14
Нач
4.120 8.310
kol= 12
beg=1.2 step= 0.02
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Фрагмент кода (продолжение)
cout << "i = " << i << "\n";
cout << "x = " << x << "\n";
cout << "a = " << a << " b = " << b << "\n";
cout << "kol = " << kol << " beg = " << beg << " step = " << step << "\n";
namew=fopen("output.txt","w");
fprintf(namew,"Исходные данные \n");
fprintf(namew,"i = %3d x = %9.3f\n",i,x);
fprintf(namew,"a = %9.3f b = %9.3f\n",a,b);
fprintf(namew,"kol = %3d\n",kol);
fprintf(namew,"beg = %9.3f step = %9.3f\n",beg,step);
fclose(namew);
Файлы (пример форматный ввод-вывод)
7
Файл output.txt
Исходные данные
i = 2 x = 3.140
a = 4.120 b = 8.310
kol = 12
beg = 1.200 step =
0.020
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Фрагмент кода
int c;
char buf[81];
FILE *namer;
namer=fopen("input.txt","r");
do
c=fgetc(namer);
while(c!='a');
ungetc(c,namer);
fscanf(namer,"%s",buf);
fclose(namer);
cout << buf << "\n";
Файлы (пример)
8
Файл input.txt
Началоa_eto_to_cto_nado!!!
На экране
a_eto_to_cto_nado!!!
Для продолжения нажмите любую клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Фрагмент кода
int c;
char buf[81];
double x;
FILE *namer;
namer=fopen("input.txt","r");
do
c=fgetc(namer);
while(c!='/');
c=fgetc(namer);
if(c==' '){
ungetc(c,namer);
}
fscanf(namer,"%lf",&x);
fclose(namer);
cout << "x = " << x << "\n";
Файлы
9
Файл input.txt
Началоa_eto_to_cto_nado!!!vcavdvc/
1.8
На экране
x = 1.8 Для продолжения нажмите любую клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
#define CHAR_COMMENT '/'
using namespace std;
FILE *finp, *fout;
void inputfile(void)
{
char inf[9];
printf("\n Please enter the name for input file - ");
scanf("%s",inf);
if ((finp = fopen(inf,"r")) == NULL){
printf("\n Error! Input file was not found! \n");
exit(1);
}
}
void outputfile(void)
{
char inf[9];
printf("\n Please enter the name for output file - ");
scanf("%s",inf);
if ((fout = fopen(inf,"w")) == NULL){
printf("\n Error! Output file! \n");
exit(1);
}
Файлы
10
void fSkipComment( FILE *stream )
{
int c;
do
{
do
c = fgetc( stream );
while( c == ' ' || c == '\t' || c == '\n' || c == '\r' );
if( c == CHAR_COMMENT )
{
while( ( c = fgetc( stream ) ) != '\n' && c != CHAR_COMMENT )
if( c == EOF )
return;
}
else
ungetc( c, stream );
}
while( c == ' ' || c == '\t' || c == '\n' || c == '\r' ||
c == CHAR_COMMENT );
}
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
int _tmain(int argc, _TCHAR* argv[])
{
inputfile();
outputfile();
int i;
float x;
double a,b;
i=1;
fSkipComment(finp); //zagolovok
fSkipComment(finp); //vvod I
fscanf(finp," %d",&i);
fSkipComment(finp); //tekst
fscanf(finp," %f",&x); //float
fSkipComment(finp); //tekst
fscanf(finp," %lf",&a); //double
fSkipComment(finp); //tekst
fscanf(finp," %d %lf %lf",&i,&a,&b); //int double
double
Файлы
11
fprintf(fout," Out\n");
fprintf(fout," i= %6d\n",i);
fprintf(fout," x= %9.3f\n",x);
fprintf(fout,"i= %6d x= %9.3f a= %12.6f b= %9.4lf\n",i,x,a,b);
fclose(finp);
fclose(fout);
return 0;
}
Результат работы Входной файл (d.txt)
/Демо версия/
/Значение i/12
/Значение float x/12.3
/Значение double a/12.234
/Значение i a b/ 3 1.2 3.45
Выходной файл
Out
i= 3
x= 12.300
i= 3 x= 12.300 a= 1.200000 b= 3.4500
Для продолжения нажмите любую клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Двоичный файл – это ………………
Двоичные файлы
12
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Двоичный поток - это последовательность байтов, которые
однозначно соответствуют тому, что находится на внешнем
устройстве.
Рассмотрим некоторый функции
Особенности функций
в разных версиях компиляторов,
в т.ч. MS VS
(практика, доклады, рефераты)
Файлы (двоичные, некоторые функции)
13
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Функция feof( ) определяет конец файла при чтении
двоичных данных и имеет следующий прототип:
int feof(FILE *fp);
здесь fp - указатель на файл, возвращенный
функцией fopen( ).
При достижении конца файла возвращается
ненулевое значение, в противном случае
возвращается 0.
Файлы (двоичные, некоторые функции)
14
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Функция позиционирования по файлу
fseek(f1,delta,pos);
Здесь f1 – указатель на файл;
delta (тип long) – величина смещения в байтах, на
которую следует переместить указатель файла;
pos – позиция, от которой производится смещение
указателя (SEEK_SET – от начала файла,
SEEK_CUR – от текущей позиции, SEEK_END – от
конца файла)
Файлы (двоичные, некоторые функции)
15
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Функция позиционирования по файлу
fseek(f1,delta,pos);
Пример: файл
«указатель»
Файлы (двоичные, некоторые функции)
16
SEEK_SET – от начала файла,
SEEK_CUR – от текущей позиции,
SEEK_END – от конца файла
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Файлы (двоичные, некоторые функции)
17
Функция ferror( ) позволяет проверить правильность
выполнения последней операции при работе с
файлами. Имеет следующий прототип:
int ferror(FILE *fp);
В случае ошибки возвращается ненулевое значение, в
противном случае возвращается нуль.
Флаги ошибок, связанные с потоком stream, остаются
установленными до закрытия файла или до вызова
rewind() или clearerr().
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Файлы (двоичные, некоторые функции)
18
Следующий фрагмент кода прерывает выполнение
программы в случае файловой ошибки:
/*
Предполагается, что fp указывает на поток,
открытый для записи
*/
….
if (ferror(fp)) {
printf("File Error\n");
exit(1);
}
...
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Файлы (двоичные, некоторые функции)
19
Функция rewind() перемещает указатель положения в
файле на начало указанного потока. Она также
сбрасывает флаги конца файла и ошибки, связанные
со stream. Она возвращает 0 в случае успеха и
ненулевое значение в противном случае.
void rewind(FILE *fp);
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Функция fread( ) предназначена для чтения блоков
данных из потока.
Функция fwrite( ) предназначена для записи в файл
блоков данных.
c_w = fwrite(buf, size_rec, n_rec, f1);
c_r = fread(buf, size_rec, n_rec, f1);
набор параметров один и тот же. Одна пишет, а другая читает.
Файлы (двоичные, некоторые функции)
20
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
c_w = fwrite(buf, size_rec, n_rec, f1);
Здесь buf – указатель на начало буфера в оперативной памяти,
из которого информация переписывается в файл;
size_rec – размер передаваемой порции в байтах;
n_rec – количество порций, которое должно быть записано в
файл;
f1 – указатель на блок управления файлом;
c_w – количество порций, которое фактически записалось в
файл.
Файлы (двоичные, некоторые функции)
21
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
c_w = fwrite(buf, size_rec, n_rec, f1); buf – указатель на начало буфера в оперативной памяти, из которого информация
переписывается в файл;
size_rec – размер передаваемой порции в байтах;
n_rec – количество порций, которое должно быть записано в файл;
f1 – указатель на блок управления файлом;
c_w – количество порций, которое фактически записалось в файл.
Файлы (двоичные, некоторые функции)
22
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
FILE *finput, *fout;
fout=fopen("out.d","w");
//пишем
double x;
for(int i=0;i<10;i++){
x=10.1*i;
fwrite(&x,sizeof(x),1,fout);
}
fclose(fout);
//читаем
double y;
finput=fopen("out.d","r");
for(int i=0;i<10;i++){
fread(&y,sizeof(y),1,finput);
cout << "y="<<y<<"\n";
}
fclose(finput);
Файлы (двоичные, примеры)
23
y=0
y=10.1
y=20.2
y=30.3
y=40.4
y=50.5
y=60.6
y=70.7
y=80.8
y=90.9
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
//читаем в обратном порядке
double z;
long nu;
finput=fopen("out.d","r");
nu=sizeof(z);
fseek(finput,-nu,SEEK_END);
for(int i=0;i<4;i++){
fread(&z,sizeof(z),1,finput);
cout << "z="<<z<<"\n";
fseek(finput,-2*nu,SEEK_CUR);
}
fclose(finput);
Файлы (двоичные, примеры)
24
z=90.9
z=80.8
z=70.7
z=60.6 Для продолжения
нажмите любую
клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Файлы (двоичные, примеры)
25
z=0
z=10.1
z=20.2
z=30.3
z=40.4
z=50.5
z=60.6
z=70.7
z=80.8
z=90.9 Для продолжения нажмите любую клавишу .
. .
FILE *finput;
double z;
finput=fopen("out.d","r");
do{
fread(&z,sizeof(z),1,finput);
if(feof(finput)!=0) break;
cout << "z="<<z<<"\n";
} while(1);
fclose(finput);
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
FILE *finput; (читаем файл в обратном порядке)
double z;
long nu;
finput=fopen("out.d","r");
nu=sizeof(z);
fseek(finput,-nu,SEEK_END);
do{
fread(&z,sizeof(z),1,finput);
if(feof(finput)!=0) break;
cout << "z="<<z<<"\n";
fseek(finput,-2*nu,SEEK_CUR);
} while(1);
fclose(finput);
Файлы (двоичные, примеры)
26
z=90.9
z=80.8
z=70.7
z=60.6
z=50.5
z=40.4
z=30.3
z=20.2
z=10.1
z=0 Для продолжения нажмите любую клавишу .
. .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Запись / чтение массивов
int y[10];
Что вернет функция sizeof(y)?
27
Файлы (двоичные, массивы)
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
int x[10];
int i;
for (i = 0; i <= 9; i++)
x[i] = rand() % 100 - 50;
for (i = 0; i <10; i++)
cout << "x[" << i << "]=" << x[i] << "\n";
cout << "\n";
28
Файлы (двоичные, массивы)
//запись
FILE *f;
f = fopen("out.d", "w");
fwrite(x, sizeof(x), 1, f);
fclose(f);
x[0]=-9
x[1]=17
x[2]=-16
x[3]=-50
x[4]=19
x[5]=-26
x[6]=28
x[7]=8
x[8]=12
x[9]=14
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
//читаем
FILE *fr;
int y[10];
fr = fopen("out.d", "r");
fread(y, sizeof(y), 1, fr);
fclose(fr);
for (i = 0; i <10; i++)
cout << "y[" << i << "]=" << y[i] << "\n";
29
Файлы (двоичные, массивы)
y[0]=-9
y[1]=17
y[2]=-16
y[3]=-50
y[4]=19
y[5]=-26
y[6]=28
y[7]=8
y[8]=12
y[9]=14
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
//читаем поэлементно
FILE *fr1;
int z;
fr1 = fopen("out.d", "r");
do {
fread(&z, sizeof(z), 1, fr1);
if (feof(fr1) != 0) break;
cout << "z=" << z << "\n";
} while (1);
fclose(fr1);
30
Файлы (двоичные, массивы)
z=-9
z=17
z=-16
z=-50
z=19
z=-26
z=28
z=8
z=12
z=14
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
//читаем поэлементно в обратном порядке
FILE *fr2;
int d;
long nu;
fr2 = fopen("out.d", "r");
nu = sizeof(d);
fseek(fr2, -nu, SEEK_END);
do {
fread(&d, sizeof(d), 1, fr2);
if (feof(fr2) != 0) break;
cout << "d=" << d << "\n";
fseek(fr2, -2 * nu, SEEK_CUR);
} while (1);
fclose(fr2);
31
Файлы (двоичные, массивы)
d=14
d=12
d=8
d=28
d=-26
d=19
d=-50
d=-16
d=17
d=-9
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
Структуры
32
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
struct [имя, ярлык, тэг] {
список-объявл. элементов
} [описатель [,описатель]…];
Пример
1)
struct tchk{
int n, m;
double x, y;
} ;
……..
struct tchk k,*uk;
2)
struct tchk{
int n, m;
double x, y;
} a,b,*c;
33
Структуры
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
struct tchk{
int n, m;
double x, y;
} a,b,*c;
a.n=2;
a.m=13;
a.x=1.3;
a.y=35.6; cout << " a.n = " << a.n << " a.m = “
<< a.m << " a.x = " << a.x
<< " a.y = " << a.y << "\n";
b=a; cout << " b.n = " << b.n << " b.m = “
<< b.m << " b.x = " << b.x << " b.y = "
<< b.y << "\n";
c=&b; cout << " c->n = " << c->n << " c->m = " << c->m << " c->x = " << c->x << " c->y = " << c->y << “\n";
34
Результат работы
a.n = 2 a.m = 13 a.x = 1.3 a.y = 35.6
b.n = 2 b.m = 13 b.x = 1.3 b.y = 35.6
c->n = 2 c->m = 13 c->x = 1.3 c->y = 35.6
c->n = 20 c->m = 130 c->x = 10.3 c->y =
350.6
a.n = 20 a.m = 130 a.x = 10.3 a.y = 350.6
Для продолжения нажмите любую клавишу . . .
c->n=2m=130;
c->x=10.30;
c->;
c->y=350.6; cout << " c->n = " << c->n << " c->m = " << c-
>m << " c->x = " << c->x << " c->y = " << c->y << "\n";
a=*c; cout << " a.n = " << a.n << " a.m = " << a.m << "
a.x = " << a.x << " a.y = " << a.y << "\n";
Структуры (пример)
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
struct rec{
int col;
struct tchk p1,p2;
} t1,t2;
t1.col=31;
t1.p1.x=4.5;
t1.p1.y=4.6;
t1.p2.x=14.5;
t1.p2.y=14.6;
t2=t1;
cout << "t2 col = " << t2.col << " p1.x = " << t2.p1.x << " p1.y = " << t2.p1.y;
cout << " p2.x = " << t2.p2.x << " p2.y = " << t2.p2.y << "\n";
35
Результат работы
t2 col = 31 p1.x = 4.5 p1.y = 4.6 p2.x = 14.5 p2.y = 14.6
Для продолжения нажмите любую клавишу . . .
Структуры (пример)
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
#include "stdafx.h"
#include "iostream"
using namespace std;
struct tchk{
int col;
double x, y;
};
struct tchk funk(struct tchk a,double rx,double ry)
{
struct tchk rz;
rz.x=a.x+rx;
rz.y=a.y+ry;
rz.col=a.col;
return rz;
}
int _tmain(int argc, _TCHAR* argv[])
{
struct tchk a,b;
double rx,ry;
rx=2.7;
ry=4.4;
Структуры и функции (пример)
36
a.col=13;
a.x=1.3;
a.y=35.6;
cout << " a.col = " << a.col << " a.x = " <<
a.x << " a.y = " << a.y << "\n";
b=funk(a,rx,ry);
cout << " b.col = " << b.col << " b.x = " <<
b.x << " b.y = " << b.y << "\n";
return 0;
}
Результат работы
a.col = 13 a.x = 1.3 a.y = 35.6
b.col = 13 b.x = 4 b.y = 40
Для продолжения нажмите любую клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
struct tchk{
int num;
double okl;
char fio[32];
};
struct tchk vvod(void)
{
struct tchk r;
int num;
double okl;
char fio[32];
printf("\nInput N = ");
scanf("%d",&num);
printf("\nFIO = ");
scanf("%31s",fio,32);
printf("\noklad = ");
scanf("%lf",&okl);
r.num=num;
r.okl=okl;
for(int i=0; i<32; i++)
r.fio[i]=fio[i];
return r;
}
Структуры и функции (пример)
37
int _tmain(int argc, _TCHAR* argv[])
{
struct tchk rab;
rab=vvod();
struct tchk r, arr[5],p;
int i;
for(i=0; i<5; i++){
r=vvod();
arr[i]=r;
}
for(i=4; i>0; i--){
cout << "i = " << i << "\n";
p=arr[i];
cout << "rab N = " << p.num << " FIO = " << p.fio << " oklad = " << p.okl << "\n";
cout << "rab N = " << arr[i].num << " FIO = " << arr[i].fio << " oklad = " << arr[i].okl << "\n";
}
return 0;
}
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
struct tchk{
int num;
double okl;
char fio[32];
};
struct tchk vvod(void)
{
struct tchk r;
int num;
double okl;
char fio[32];
printf("\nInput N = ");
scanf("%d",&num);
printf("\nFIO = ");
scanf("%31s",fio,32);
printf("\noklad = ");
scanf("%lf",&okl);
r.num=num;
r.okl=okl;
for(int i=0; i<32; i++)
r.fio[i]=fio[i];
return r;
}
Структуры и файлы (пример)
38
//фрагмент кода в программе
struct tchk r, p;
int i;
FILE *fstr;
//запись
fstr=fopen("strf","w");
for(i=0; i<5; i++){
r=vvod();
fwrite(&r,sizeof(r),1,fstr);
}
fclose(fstr);
//чтение
fstr=fopen("strf","r");
while(!feof(fstr)) {
fread(&p,sizeof(p),1,fstr);
cout << "rab N = " << p.num << " FIO = " << p.fio << " oklad = " << p.okl << "\n";
}
fclose(fstr);
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
#include "stdafx.h"
#include "iostream"
using namespace std;
struct compl{
double re,im;
int f;
float z;
void in(void);
void out(void)
{
cout << "Re=" << re << " Im=" << im <<
"\n";
return;
};
void add(struct compl x,struct compl y);
};
Структуры (пример)
39
void compl::in(void)
{
cout << "Input Re=";
cin >> re;
cout << "Input Im=";
cin >> im;
return;
}
void compl::add(compl x,compl y)
{
re=x.re+y.re;
im=x.im+y.im;
return;
}
struct compl addn(struct compl x,struct compl y)
{
struct compl z;
z.re=x.re+y.re;
z.im=x.im+y.im;
return z;
}
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
int _tmain(int argc, _TCHAR* argv[])
{
struct compl a,b,c,d;
a.in();
b.in();
a.out();
b.out();
c.add(a,b);
c.out();
d.re=0;
d.im=0;
d.out();
d=addn(a,b);
d.out();
cout << sizeof(c) << "\n";
cout << sizeof(d.re) << "\n";
cout << sizeof(d.im) << "\n";
cout << sizeof(d.f) << "\n";
cout << sizeof(d.z) << "\n";
return 0;
}
40
Результат работы
Input Re=1.2
Input Im=3.4
Input Re=5.6
Input Im=7.8
Re=1.2 Im=3.4
Re=5.6 Im=7.8
Re=6.8 Im=11.2
Re=0 Im=0
Re=6.8 Im=11.2
24
8
8
4
4
Для продолжения нажмите любую клавишу . . .
Структуры (пример)
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
union [имя, ярлык, тэг] {
список-объявл. элементов
} [описатель [,описатель]…];
Пример
1)
union tchk{
int n, m;
double x, y;
} ;
……..
union tchk k,*uk;
2)
union tchk{
int n, m;
double x, y;
} a,b,*c;
Объединение
41
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
union prim{
int i;
char c;
double x;
};
union prim a = {38};
//a.i=38;
cout << "a.i = " << a.i << "\n";
cout << "a.c = " << a.c << "\n";
cout << "a.x = " << a.x << "\n";
//код символа l = 108;
a.c='l';
cout << "a.i = " << a.i << "\n";
cout << "a.c = " << a.c << "\n";
cout << "a.x = " << a.x << "\n";
a.x=133.4;
cout << "a.i = " << a.i << "\n";
cout << "a.c = " << a.c << "\n";
cout << "a.x = " << a.x << "\n";
cout << "razmer a = " << sizeof(a) << "\n";
cout << "razmer a.i = " << sizeof(a.i) << "\n";
Объединение (пример)
42
Результат работы
a.i = 38
a.c = &
a.x = 1.87745e-322
a.i = 108
a.c = l
a.x = 5.33591e-322
a.i = -858993459
a.c = ═
a.x = 133.4
razmer a = 8
razmer a.i = 4
Для продолжения нажмите любую клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
include "stdafx.h"
#include "iostream"
using namespace std;
#define G 9.8
#define KUB(x) (x*x*x)
#define KUB1(x) ((x)*(x)*(x))
int _tmain(int argc, _TCHAR* argv[])
{
double x,y,z;
x=2*G;
cout << "x = " << x << "\n";
y=3;
z=KUB(y+1);
cout << "y = " << y << "\n";
Разное (пример)
43
cout << "z = " << z << "\n";
// y+1*y+1*y+1
z=KUB1(y+1);
cout << "z = " << z << "\n";
return 0;
}
Результат работы
x = 19.6
y = 3
z = 10
z = 64
Для продолжения нажмите любую клавишу . . .
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
#include "stdafx.h"
#include "time.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k;
for(i=0;i<30000;i++)
for(j=0;j<10000;j++)
k=1;
cout << k << "\n";
//Время счета
int s;
s=clock()/CLOCKS_PER_SEC;
cout << s << " cek." << "\n";
Время (пример)
44
//Дата
time_t t;
t=time(NULL);
cout << ctime(&t) << "\n";
struct tm *gmt, *mu;
gmt=gmtime(&t);
cout << asctime(gmt) << "\n";
mu=localtime(&t);
cout << asctime(mu) << "\n";
cout << mu->tm_sec << "\n";
cout << mu->tm_min << "\n";
cout << mu->tm_hour << "\n";
cout << mu->tm_mday<< "\n";
cout << mu->tm_mon << "\n";
cout << mu->tm_year << "\n";
cout << mu->tm_wday << "\n";
cout << mu->tm_yday << "\n";
cout << mu->tm_isdst << "\n";
return 0;
}
«Информатика … » © 2017 кафедра ПЭКМ физический факультет ЮФУ
45
Результат работы
1
0 cek.
Fri Apr 08 11:35:34 2011
Fri Apr 08 07:35:34 2011
Fri Apr 08 11:35:34 2011
34
35
11
8
3
111
5
97
1
Для продолжения нажмите любую клавишу . . .
Время (пример)