Разделы презентаций


Классификация языков программирования

Содержание

Разделы курсаОсновы объектно-ориентированного программирования и язык С++Основы Web-технологийОсновы конструирования баз данных10 лекций17 лабораторных работ

Слайды и текст этой презентации

Слайд 1Информатика. Спецглавы
Направление: Инфокоммуникационные технологии и системы связи
2012 год
Лекция 1

Информатика. СпецглавыНаправление: Инфокоммуникационные технологии и системы связи2012 годЛекция 1

Слайд 2Разделы курса
Основы объектно-ориентированного программирования и язык С++
Основы Web-технологий
Основы конструирования баз

данных

10 лекций
17 лабораторных работ

Разделы курсаОсновы объектно-ориентированного программирования и язык С++Основы Web-технологийОсновы конструирования баз данных10 лекций17 лабораторных работ

Слайд 3Литература
Современные методы программирования на языках C и C++ / Л.Б.

Бузюков, О.Б. Петрова. - СПб.: Линк, 2008
WEB-технологии. / Бузюков Л.Б.

- СПб.:СПбГУТ, 2011.
Дополнительно:
Буч Г. - Объектно-ориентированный анализ и проектирование с примерами приложений на C++. М.:БИНОМ, 1998. – 558 с.
Фридман А.Л. – Основы объектно-ориентированной разработки программных систем. М.: финансы и статистика, 2000. – 190 с.
ЛитератураСовременные методы программирования на языках C и C++ / Л.Б. Бузюков, О.Б. Петрова. - СПб.: Линк, 2008WEB-технологии.

Слайд 4Классификация языков программирования
Машинно-зависимые (машинные коды, ассемблеры)
Машинно-независимые (языки высокого уровня, ЯВУ)
Императивные

(процедурные): Fortran, Cobol, Си, Pascal, Basic
Функциональные: Lisp, Haskell, Erlang
Логические

(декларативные): Prolog, SQL
Объектно-ориентированные: Smalltalk, C++, Objective-C, Java, Object Pascal, Ruby
Классификация языков программированияМашинно-зависимые (машинные коды, ассемблеры)Машинно-независимые (языки высокого уровня, ЯВУ)Императивные (процедурные): Fortran, Cobol, Си, Pascal, Basic Функциональные:

Слайд 5Язык программирования Си
Создан в начале 1970х годов
Стандарты ISO: 1990, 1999,

2011.
Процедурный язык общего назначения, используется для системного программирования.
Достоинства: простота, лаконичность,

встроенные типы данных, создание типов данных пользователем (структуры)
Недостатки: отсутствует автоматическое управление памятью
Язык программирования СиСоздан в начале 1970х годовСтандарты ISO: 1990, 1999, 2011.Процедурный язык общего назначения, используется для системного

Слайд 6Структуры в Си
1. Объявление типа структуры
2. Объявление структурной переменной
Объявление типа

(тег структуры Person):
struct Person
{
char Name[30]; /*поле структуры*/

int Year; /*поле структуры*/
} ;
Объявление переменной (Nick):
struct Person Nick;
Структуры в Си1. Объявление типа структуры2. Объявление структурной переменнойОбъявление типа (тег структуры Person):struct Person{   char

Слайд 7Объявление синонима типа для структуры
typedef struct Person
{

char Name[30];
int Year;
} PERSON;

PERSON Ann;

Объявление синонима типа для структуры typedef struct Person{   char Name[30];   int Year;} PERSON;

Слайд 8Анонимный тип структуры
struct
{
char Name[30];
int

Year;
} Tom;

Tom — имя перемной структурного типа
Выделено памяти: 30 +

4 = 34 (байта)
Анонимный тип структурыstruct{   char Name[30];   int Year;} Tom;Tom — имя перемной структурного типаВыделено

Слайд 9Инициализация структурной переменной
struct Person
{
char Name[30];

int Year;
} ;
struct Person Stud1 = {''John'', 1994};
struct Person Stud2

= {''Ann'', 1993};
Инициализация структурной переменнойstruct Person{   char Name[30];   int Year;} ;struct Person Stud1 = {''John'',

Слайд 10Обращение к полям структуры
Обращение к полю структуры через имя переменной:

Stud1.Year Stud2.Name

Обращение к полю через указатель:

struct Person* pStud = &Stud1;
printf(''%s %d'', pStud->Name, pStud->Year);
Обращение к полям структурыОбращение к полю структуры через имя переменной:  Stud1.Year   Stud2.NameОбращение к полю

Слайд 11Действия над структурами
Использование в выражениях полей структур:

Stud1.Year =

1992;
int Age = 2011 - Stud1.Year;
strcpy(Stud1.Name,

''Bill'');
printf(''Имя:%s возраст:%d'', Stud1.Name, Age);

Действия над структурамиИспользование в выражениях полей структур:  Stud1.Year = 1992;  int Age = 2011 -

Слайд 12Передача в функцию структурной переменной
struct Person
{
char Name[30];
int Year;
} ;
void input_struct(struct

Person* P);
void output_struct(struct Person P);
int main(void)
{
struct Person Ann;
input_struct(&Ann);
output_struct(Ann);
return 0;
}
void input_struct(struct

Person* P)
{
scanf(''%s'', P->Name);
scanf(''%d'',&P->Year);
}

void output_struct(struct Person P)
{
printf(''%s %d\n'', P.Name, P.Year);
}
Передача в функцию структурной переменнойstruct Person{char Name[30];int Year;} ;void input_struct(struct Person* P);void output_struct(struct Person P);int main(void){struct Person

Слайд 13Массив структур
struct Person
{
char Name[30];
int

Year;
} ;
struct Person Mas[4];
Обращение к полю i-го элемента массива:
Mas[i].Year =

1996;
(Mas + i)->Year = 1993;
Массив структурstruct Person{   char Name[30];   int Year;} ;struct Person Mas[4];Обращение к полю i-го

Слайд 14Передача в функцию массива структур
struct Person
{
char Name[30];
int Year;
} ;
void input_struct(struct

Person* P, int n);
void output_struct(struct Person* P, int n);
int main(void)
{
struct

Person su11[25];
input_struct(su11, 25);
output_struct(su11, 25);
return 0;
}
Передача в функцию массива структурstruct Person{char Name[30];int Year;} ;void input_struct(struct Person* P, int n);void output_struct(struct Person* P,

Слайд 15void input_struct(struct Person* P, int n)
{
int i;
for(i=0; i

output_struct(struct Person* P, int n)
{
int i;
for(i=0; i

printf(''%s %d\n'', (P+i)->Name, (P+i)->Year);
}
}
void input_struct(struct Person* P, int n){int i;for(i=0; iYear);}}

Слайд 16Управление памятью программы
Области памяти программы:
Сегмент кода
Статическая память (сегмент данных)
Стек
Динамическая память

(куча)

Управление памятью программыОбласти памяти программы:Сегмент кодаСтатическая память (сегмент данных)СтекДинамическая память (куча)

Слайд 17Динамическое распределение памяти в С
malloc
void* malloc(size_t size);
calloc
void* calloc(size_t num, size_t

size);
realloc
void* realloc(void* ptr, size_t size);
free
void free(void* ptr);

Динамическое распределение памяти в Сmallocvoid* malloc(size_t size);callocvoid* calloc(size_t num, size_t size);reallocvoid* realloc(void* ptr, size_t size);freevoid free(void* ptr);

Слайд 18Пример создания динамической переменной
int num, *iPtr ;
iPtr =

malloc(4); /* malloc(sizeof(num)) */
scanf("%d", iPtr);

printf("Number: %d\n", *iPtr);
free(iPtr);

Пример создания динамической переменнойint num, *iPtr ;  iPtr = malloc(4);   /* malloc(sizeof(num)) */

Слайд 19Проверка выделения памяти
double* ptr;
int max = 4;
ptr = (double*) malloc(max

* sizeof (double));
if (ptr == NULL) printf('' Ошибка выделения памяти!'');
else


{
/* вычисления */
free (ptr);
}

Проверка выделения памятиdouble* ptr;int max = 4;ptr = (double*) malloc(max * sizeof (double));if (ptr == NULL) printf(''

Слайд 20Еще вариант контроля
#include
int main (void)
{
double* ptr;
int max = 4;
if

((ptr = (double*) malloc(max * sizeof (double))) == NULL)
{
printf('' Ошибка

выделения памяти!'');
exit (EXIT_FAILURE); /* stdlib.h EXIT_SUCCESS*/
}
// вычисления
free (ptr);
}
Еще вариант контроля#include int main (void){double* ptr;int max = 4;if ((ptr = (double*) malloc(max * sizeof (double)))

Слайд 21Пример создания строки в динамической памяти
char buffer[200]; *stPtr;
scanf("%s",

buffer);
int len = strlen(buffer);
stPtr = malloc(len+1);

strcpy(stPtr, buffer);
printf("String: %s\n",stPtr);
free(stPtr);
stPtr = NULL;
Пример создания строки в динамической памятиchar buffer[200]; *stPtr;  scanf(

Слайд 22Язык программирования C++
Создан в начале 1980х годов.
Стандарты 1998, 2003, 2011.
Объектно-ориентированный

язык общего назначения.
Имеет код, частично совместимый с Си.
Состоит из ядра

и стандартной библиотеки (пространство имен std).
Большое количество сторонних библиотек, расширяющих возможности языка (диалекты С++).
Язык программирования C++Создан в начале 1980х годов.Стандарты 1998, 2003, 2011.Объектно-ориентированный язык общего назначения.Имеет код, частично совместимый с

Слайд 23Особенности C++, отсутствующие в Си
Новые стандартные типы данных (bool, string).
Шаблоны

(templates).
Операторы управления динамической памятью (new, delete).
Ссылки.
Пространства имен (namespace).
Перегрузка функций, операторов.
Обработка

исключительных ситуаций.
Стандартные классы и объекты для организации ввода/вывода (cin, cout).
Особенности C++, отсутствующие в СиНовые стандартные типы данных (bool, string).Шаблоны (templates).Операторы управления динамической памятью (new, delete).Ссылки.Пространства имен

Слайд 24Пространства имен
ключевое слово
оператор разрешения области видимости
глобальный идентификатор:
идентификатор из пространства имен

стандартной библиотеки С++:
идентификатор из пространства имен пользователя:
предложение uses:
namespace
::


myfn();
std::cout << ''1234'';


myspace::myfn();

uses namespace std;
cout << ''1234'';
Пространства именключевое словооператор разрешения области видимостиглобальный идентификатор:идентификатор из пространства имен стандартной библиотеки С++:идентификатор из пространства имен пользователя:

Слайд 25Параметры функции
1. Передаются через стек
2. Виды параметров:
Параметр-значение
Параметр-указатель
Параметр-ссылка (в C++)

Параметры функции1. Передаются через стек2. Виды параметров:Параметр-значениеПараметр-указательПараметр-ссылка (в C++)

Слайд 26Передача параметра-значения
float mult(float a)
{
a = 2*a;
return a;
}
int main()
{
float num =

15.5;
printf(''%.3f \n'', mult(num));
printf(''%.3f '', num);
return 0;
}
Ответ:
31.000
15.500

Передача параметра-значенияfloat mult(float a){a = 2*a;return a;}int main(){float num = 15.5;printf(''%.3f \n'', mult(num));printf(''%.3f '', num);return 0;}Ответ:31.00015.500

Слайд 27Передача параметра-указателя
void mult2(float* pa)
{
*pa = *pa * 2
}
int main()
{
float num

= 15.5;
mult2(&num);
printf(''%f\n'',num);
return 0;
}
Ответ:
31.000

Передача параметра-указателяvoid mult2(float* pa){*pa = *pa * 2}int main(){float num = 15.5;mult2(&num);printf(''%f\n'',num);return 0;}Ответ:31.000

Слайд 28Передача параметра-ссылки
void mult3(float &b)
{
b = b*2;
}
int main()
{
float num = 15.5;
mult3(num);
printf(''%f\n'',num);
return

0;
}
Ответ:
31.000

Передача параметра-ссылкиvoid mult3(float &b){b = b*2;}int main(){float num = 15.5;mult3(num);printf(''%f\n'',num);return 0;}Ответ:31.000

Слайд 29Создание динамических переменных в C++
Операторы С++:
1. new — выделение динамической

памяти для одной переменной
2. new[ ] — выделение динамической памяти

для массива
2. delete — освобождение динамической памяти из-под переменной (кроме массива)
3. delete[ ] - освобождение динамической памяти из-под массива
Создание динамических переменных в C++Операторы С++:1. new — выделение динамической памяти для одной переменной2. new[ ] —

Слайд 30Пример программы с динамической переменной
#include
using namespace std;
int main()
{

float *iptr; // объявление переменной-указателя
iptr = new float;

// выделение динамической памяти
cin >> *iptr; // ввод числа в динамич. переменную
cout << *iptr; // вывод из динамич. переменной
delete iptr; // освобождение памяти
iptr = NULL;
return 0;
}
Пример программы с динамической переменной#include using namespace std;int main(){  float *iptr; // объявление переменной-указателя  iptr

Слайд 31Массив в динамической памяти
#include
using namespace std;
int main()
{
float

*mptr;
int n = 3, i;
// выделение памяти

mptr = new float[n];


// заполнение массива
for(i=0;i{
cout << "enter->";
cin >> *(mptr+i);
}
// вывод массива
for(i=0;i cout << *(mptr+i)<// освобождение памяти
delete[ ] mptr;
mptr = NULL;
return 0;
}

Массив в динамической памяти#include using namespace std;int main(){  float *mptr;  int n = 3, i;//

Слайд 32Ввод/вывод в С++
Консольный ввод/вывод — стандартные объекты-потоки cin (ввод) и

cout (вывод):
std::cout a;
Файловый ввод/вывод

— классы ifstream и ofstream (подключить fstream), последовательность действий:
создать объект-поток,
открыть его в заданном режиме,
выполнить ввод/вывод данных,
закрыть объект-поток.
Ввод/вывод в С++Консольный ввод/вывод — стандартные объекты-потоки cin (ввод) и cout (вывод):std::cout a;Файловый ввод/вывод — классы ifstream

Слайд 33Пример работы с файлом
// Чтение из файла
std::ifstream fin;
fin.open(''my1.txt'');
if (fin)

fin>>number;
fin.close();
// Запись в файл
std::ofstream fout;
fout.open(''my2.txt'');
fout

Пример работы с файлом// Чтение из файлаstd::ifstream fin;fin.open(''my1.txt'');if (fin)    fin>>number;fin.close();// Запись в файлstd::ofstream fout;fout.open(''my2.txt'');fout

Слайд 34Тип string
#include


int main(int argc, char** argv)
{
std::string st1("My

"), st2="string", st3;
st3 = st1+st2;
int i;

for(i=0;i std::cout << st3[i] < return 0;
}
Тип string#include int main(int argc, char** argv){  std::string st1(

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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