Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Лекция 9 (C/C++). Стиль программирования. Структуры в Си. Объединения - union

Содержание

Язык Си (Cи++) является высокоуровневым искусственным языком для разработки программ.Си-подобные языки используются для программирования различного вида аппаратуры.Главное: Развитие ПО опережает развитие аппаратуры.
Программирование на языке СиЛекция 9Валиханов М.М., 2014г Язык Си (Cи++) является высокоуровневым искусственным языком для разработки программ.Си-подобные языки используются Стиль программированияорганизация программного кода в соответствии с определенными правилами.int a=0,w,x=0;while(a==0){w=w+1;x--;}int a=0;int w;int x=0;while(a==0) {	w=w+1;//Error	x--;} Стиль программирования вырабатывается по мере получения опыта и зависит от самодисциплины программиста.Единого Основная цель стиля программированияЭто организация кода:легче искать ошибки;легче и быстрее разбираться в Рекомендациикорректность, ясность и простота;имена по Венгерской нотации;комментируйте и документируйте код;не допускайте дублирования Структуры в Сиэто сложный тип данных представляющий собой упорядоченное в памяти множество Синтаксис:	  struct [имя типа]    {     поле_1;     поле_2;     ... Структура представляет собой объект с набором различных параметров – полей.Объектами могут быть Пример объявления структурыstruct _Auto{	int year;	int color;	char title[100];}; ←!!!void main(void){	_Auto 	myAuto;} Обращение к полямвыполняется с использованием оператора точки «.» для записи и извлечения Размер структурыИспользуется функция sizeof():Синтаксис: 			sizeof(имя структуры)Например, int sizeAuto = sizeof(myAuto); //sizeAuto=108 байт Копирование структурФункция memcpy (небезопасная) или memmove (безопасная).Синтаксис: memcpy (адрес назначения, адрес источника, Массив структурstruct _Auto{	unsigned char actual;	int year;	int color;	char title[100];};const int NAUTO=10;	_Auto	 allAuto[NAUTO];int 	 iAuto;for ( iAuto=0; iAuto Функции в структурахstruct _Auto{	unsigned char actual;	int year;	int color;	char title[100];	_Auto()	//Функция установки полей	{		//по умолчанию Поля структур могут бытьОткрытого типа – public;Закрытого типа – private.Инкапсуляция – разделение struct _Auto{public:	const int nTitle = 100;	_Auto()	{		year = 2001;		color = 0;		strcpy(title, Объединения - unionОбъединения - это объект, позволяющий нескольким переменным различных типов занимать Разделение целого числа на байтыunion _Int32ForByte{	unsigned long int32;	unsigned char b[4];};void main(void){	_Int32ForByte l4b;	l4b.int32=0x04030201; Другие виды типов данныхПеречисления - enum. Битовые поля структур - int:1.
Слайды презентации

Слайд 2
Язык Си (Cи++) является высокоуровневым искусственным языком для

Язык Си (Cи++) является высокоуровневым искусственным языком для разработки программ.Си-подобные языки

разработки программ.
Си-подобные языки используются для программирования различного вида аппаратуры.
Главное:
Развитие

ПО опережает развитие аппаратуры.


Слайд 3 Стиль программирования
организация программного кода в соответствии с определенными

Стиль программированияорганизация программного кода в соответствии с определенными правилами.int a=0,w,x=0;while(a==0){w=w+1;x--;}int a=0;int w;int x=0;while(a==0) {	w=w+1;//Error	x--;}

правилами.


int a=0,w,x=0;
while(a==0)
{w=w+1;
x--;
}
int a=0;
int w;
int x=0;
while(a==0)
{
w=w+1;//Error
x--;
}


Слайд 4
Стиль программирования вырабатывается по мере получения опыта и

Стиль программирования вырабатывается по мере получения опыта и зависит от самодисциплины

зависит от самодисциплины программиста.
Единого стиля нет. Существуют рекомендации, которым

следует придерживаться, так как они были выработаны в ходе программи-рования миллионов строк кода миллионами людей.

Слайд 5 Основная цель стиля программирования
Это организация кода:
легче искать ошибки;
легче

Основная цель стиля программированияЭто организация кода:легче искать ошибки;легче и быстрее разбираться

и быстрее разбираться в своей и чужой программе;
«красота программного

кода».


Слайд 6 Рекомендации
корректность, ясность и простота;
имена по Венгерской нотации;
комментируйте и

Рекомендациикорректность, ясность и простота;имена по Венгерской нотации;комментируйте и документируйте код;не допускайте

документируйте код;
не допускайте дублирования кода;
инициализировать переменные перед их использованием;
не

используйте неизвестные аргументы в функциях (троеточия);
устраняйте все ошибки и замечания;
одна функция – одна задача.


Слайд 7 Структуры в Си
это сложный тип данных представляющий собой

Структуры в Сиэто сложный тип данных представляющий собой упорядоченное в памяти

упорядоченное в памяти множество элементов различного типа, или тип

данных, позволяющий включать другие типы данных, в том числе структуры.

Слайд 8 Синтаксис:
  struct [имя типа]   {    поле_1;    поле_2;    ...    поле_N;

Синтаксис:	  struct [имя типа]   {    поле_1;    поле_2;    ...    поле_N;   } [список переменных];

  } [список переменных];


Слайд 9 Структура представляет собой объект с набором различных параметров

Структура представляет собой объект с набором различных параметров – полей.Объектами могут

– полей.
Объектами могут быть различные предметы из реального или

программного мира.
Обычно структуры записывают в отельный модуль «.h» файл.
Например, любой автомобиль можно описать с помощью набора определенных свойств (параметров, полей).

Слайд 10 Пример объявления структуры
struct _Auto
{
int year;
int color;
char title[100];
}; ←!!!
void

Пример объявления структурыstruct _Auto{	int year;	int color;	char title[100];}; ←!!!void main(void){	_Auto 	myAuto;}

main(void)
{
_Auto myAuto;
}


Слайд 11 Обращение к полям
выполняется с использованием оператора точки «.»

Обращение к полямвыполняется с использованием оператора точки «.» для записи и

для записи и извлечения значения;



myAuto.year = 2014;
myAuto.color = 0; //0-черный
strсpy(myAuto.title,"Volga");
printf(“%d”,myAuto.year);


Слайд 12 Размер структуры
Используется функция sizeof():
Синтаксис:
sizeof(имя структуры)

Например,


int sizeAuto

Размер структурыИспользуется функция sizeof():Синтаксис: 			sizeof(имя структуры)Например, int sizeAuto = sizeof(myAuto); //sizeAuto=108 байт

= sizeof(myAuto); //sizeAuto=108 байт


Слайд 13 Копирование структур

Функция memcpy (небезопасная) или memmove (безопасная).

Синтаксис:
memcpy

Копирование структурФункция memcpy (небезопасная) или memmove (безопасная).Синтаксис: memcpy (адрес назначения, адрес

(адрес назначения, адрес источника, размер);
memmove (адрес назначения, адрес источника,

размер);


_Auto myAuto2;
memcpy(&myAuto2,&myAuto, sizeof(_Auto));
memmove(&myAuto2,&myAuto, sizeof(_Auto));


Слайд 14 Массив структур
struct _Auto
{
unsigned char actual;
int year;
int color;
char title[100];
};
const

Массив структурstruct _Auto{	unsigned char actual;	int year;	int color;	char title[100];};const int NAUTO=10;	_Auto	 allAuto[NAUTO];int 	 iAuto;for ( iAuto=0; iAuto

int NAUTO=10;
_Auto allAuto[NAUTO];
int iAuto;
for ( iAuto=0; iAuto

) {
if (allAuto[iAuto].actual) {
printf ("%d %d %s",allAuto[iAuto].year, allAuto[iAuto].color, allAuto[iAuto].title);
}
}

Слайд 15 Функции в структурах
struct _Auto
{
unsigned char actual;
int year;
int color;
char

Функции в структурахstruct _Auto{	unsigned char actual;	int year;	int color;	char title[100];	_Auto()	//Функция установки полей	{		//по

title[100];
_Auto() //Функция установки полей
{ //по умолчанию - конструктор
actual

= 1;
year = 2001;
color = 0;
strcpy(title,«NoName");
}
};

Слайд 16 Поля структур могут быть
Открытого типа – public;
Закрытого типа

Поля структур могут бытьОткрытого типа – public;Закрытого типа – private.Инкапсуляция –

– private.

Инкапсуляция – разделение прав доступа к полям структуры.


В полях с Private напрямую извне изменить или прочитать данные из полей нельзя, только через функции структуры.

Слайд 17 struct _Auto
{
public:
const int nTitle = 100;
_Auto()
{
year = 2001;
color

struct _Auto{public:	const int nTitle = 100;	_Auto()	{		year = 2001;		color = 0;		strcpy(title,

= 0;
strcpy(title,"sf");
}
void setYear( int year_)
{
year = year_;
}
int getYear(void)
{
return year;
}
private:
int

year;
int color;
int title[nTitle];
};

В public указываются, например, константы, а также функции которые могут вызываться извне. Конструктор в public указывать обязательно.

//Пример
_Auto myAuto;
myAuto.setYear(2010);

Блок private рекомендуется указывать после public


Слайд 18 Объединения - union
Объединения - это объект, позволяющий нескольким

Объединения - unionОбъединения - это объект, позволяющий нескольким переменным различных типов

переменным различных типов занимать один участок памяти.
Все элементы объединения

начинаются с одного адреса.
Размер объединения равен максимальному размеру типу данных.

Слайд 19 Разделение целого числа на байты
union _Int32ForByte
{
unsigned long int32;
unsigned

Разделение целого числа на байтыunion _Int32ForByte{	unsigned long int32;	unsigned char b[4];};void main(void){	_Int32ForByte

char b[4];
};
void main(void)
{
_Int32ForByte l4b;
l4b.int32=0x04030201; //0x - 16ричная запись
printf("%d %d

%d %d“, l4b.b[3], l4b.b[2], l4b.b[1],l4b.b[0]);
}

  • Имя файла: lektsiya-9-cc-stil-programmirovaniya-struktury-v-si-obedineniya-union.pptx
  • Количество просмотров: 166
  • Количество скачиваний: 2