Язык программирования C/C++ Лафоре Р. Объектно-ориентированное программирование в С++ – СПб.:Питер, 2003. Павловская Т.А. C/C++ Программирование на языке.

Презентация:



Advertisements
Похожие презентации
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Advertisements

Лекция 1 по дисциплине «Программные средства математических расчетов» тема: «Основы языка С++» гр. 8Е31 Мамонова Татьяна Егоровна
©ρŧą Базовые конструкции языка.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Язык программирования Pascal. Программа это упорядоченный список команд, необходимых для решения некоторой задачи. Языком программирования называют систему.
Идентификаторами в языке Си являются последовательности букв и цифр, начинающиеся с буквы, причем символ подчеркивания рассматривается компилятором как.
Элементы языка СИ Средства для написания простейших программ.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
b5_java_s4
Данные в программах и алгоритмах Программы и их алгоритмы пишутся для обработки данных. Чтобы реализовать алгоритм, программам необходимо работать с данными.
Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.
Введение в C++ Урок 1-2.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx в IDE Code Composer Studio Часть II. Язык программирования С. Основные понятия.
Урок 3 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Транксрипт:

Язык программирования C/C++ Лафоре Р. Объектно-ориентированное программирование в С++ – СПб.:Питер, Павловская Т.А. C/C++ Программирование на языке высокого уровня. – СПб.:Питер, Подбельский В.В. Язык С++: Учебное пособие.– М.: Финансы и статистика, Страуструп Б. Язык программирования С++.– СПб.:Бином, 2002.

История и эволюция C++ Язык С г. Денис Ритчи (Bell) цель – системное программирование (UNIX) Язык С г. Бьерн Страуструп (Bell) цель – реализация методологии ООП Язык Java г. Патрик Наутон, Билл Джой, Джеймс Гослинг (Sun) цель – переносимость и надежность Язык C# г. Андерс Хейлсберг и др. (Microsoft) цель – удобство и надежность Perl, PHP. цель – простота использования

Этапы создания программы Текстовый редактор Исходный текст модуля (.сpp) Препроцессор Включ. файлы (.h) Полный текст модуля (.сpp) Компилятор Объектный модуль (.obj) Библиотеки (.lib) Объектный модуль (.obj) … Компоновщик (редактор связей) Программа (.exe)

Алфавит языка С++ Прописные и строчные латинские буквы (различаются в именах), знак подчеркивания Цифры (0…9) Специальные знаки { }, | [ ] ( ) + - * / % \ ; : ? ! & ~ ^. # Разделители (пробел, табуляция, перевод строки)

Лексемы С++ Имена ( не рекомендуется начинать с _) Ключевые слова Знаки операций (одно и двухсимвольные) Константы Разделители Комментарии однострочные // комментарий многострочные /* длинные */

Типы данных С++ Типы Простые (скалярные) Логический (С++) Целые Указатели Вещественные Составные массивы структуры классы объединения

Базовые типы C/C++Pascal (Delphi) Целыеcharshortint int (short int)integer unsigned charbyte unsigned int (short)word long int unsigned long intcardinal Вещест.floatsingle double long doubleextended

Специальные типы bool – логический (true/false) – в С++ В С целое значение =0 – ложь, не равно 0 - истина void – пустой. Используется для обозначения функций без значений и нетипизированных указателей

Константы Целые: десятичные 123, 0, 98 восьмеричные 01, 015 шестнадцатиричные 0xA1, 0X00FF Вещественные 5.8,.2e-3 Символьные A, xy, \n, \123, \\ Строковые привет, 1 \n 2

Структура программы Функция имеет вид ( ) { } Выполнение начинается с функции main

Пример программы #include int main() { int a, b; //описание переменных cin >> a >> b; //ввод cout

Описание переменных [класс памяти] [const] тип имя [инициализатор] Модификатор const используется при описании констант. Инициализатор задает начальное значение переменной в виде = значение или в круглых скобках (значение). Примеры: long int n =1000, k; char c(A); const float pi = ;

Классы памяти Класс памяти определяет область видимости и время жизни переменной. Область видимости может быть локальной (внутри блока) и глобальной (во всем файле). Время жизни – временным (до конца блока) и постоянным (до выхода из программы). Класс auto (по умолчанию) – автоматическая переменная. Локальная и временная. Класс register – регистровая. Аналог auto, только переменная хранится в регистре процессора. Класс static– статическая переменная. Постоянная. Может быть локальной и глобальной. Класс extern– внешняя переменная. Определяется в другом файле программы.

Операции Арифметические + - * / % Преобразования автоматические Увеличение и уменьшение префиксное (++a) возвращает новое значение, постфиксное (a++) возвращает старое значение. Отношения = == != Результат – true или false Логические && (и) || (или) ! (отрицание) Присваивание = Результат – выражение. Выполняется справа налево: a = b = c = 5 Присваивание с операцией += *= и т.д. a+=b эквивалентно a = a + b Последовательное выполнение, результат - самое правое выражение Условная операция условие ? выр.1 : выр. 2 max = (a>b) ? a : b;

Операторы Выражение Условный Выбора Циклы Передачи управления В конце оператора всегда ставится ;

Условный оператор if (выражение) опер.1; [else опер.2;] Пример. Найти максимум и минимум из двух чисел. int main() { int a,b,min, max; cin >> a >> b; if (a

Условный оператор. Типичные ошибки Отсутствие фигурных скобок if (a

Оператор выбора switch (выражение) { case конст.1: список операторов 1 case конст.2: список операторов 2 … default: операторы } Производит переход на первый оператор из списка, соответствующего константе, равной значению выражения. Операторы из нижестоящих списков будут выполняться, если не сделать выход оператором break.

Пример на оператор выбора По номеру месяца определить время года … switch (m) { case 1: case 2: case 12: cout

Цикл с предусловием while (выражение) оператор Цикл выполняется так: 1. Вычисляется выражение 2. Если оно истинно (не 0) выполняется оператор 3. Снова вычисляется выражение 4. Если оно ложно – выход из цикла. Пример: вычисление факториала n f = k = 1; while (k

Цикл с постусловием do оператор while (выражение) Цикл выполняется так: 1. Выполняется оператор 2. Вычисляется выражение 3. Если оно истинно (не 0) снова выполняется оператор 4. Если оно ложно – выход из цикла. Пример: вычисление факториала n f = k = 1; do f *= k++; while (k

Цикл с параметром for (инициализация; условие выполнения; модификация) оператор; Инициализация выполняется перед началом цикла Модификация - в конце каждой итерации Пример: вычисление факториала for (int k = f = 1; k

Операторы передачи управления goto метка; Помеченный оператор – метка: оператор; break; выход из цикла или оператора выбора continue; переход к следующей итерации цикла return [выражение]; выход из функции с возвратом значения

Указатели Cодержит адрес памяти, в которой хранятся данные определенного типа тип * имя; Звездочка относится к имени int a, *b, c; Безтиповый указатель void *p;

Константные указатели Модификатор const относится либо к указателю, либо к значению int i; const int c = 1; const int *pc = &c; //указатель на константу int* const pc = &i; //указатель- константа

Инициализация указателей с помощью операции & (адрес) int a=5; int * p = &a; значением другого указателя int * r = p; явным адресом памяти char *vp = (char *)0xB ; пустым значением (нулем) int * r = 0;

Динамические переменные Создание int *n = new int; int *m = new int (10); // *m=10 int *r = new int [10]; // массив Удаление delete n; delete [ ] r;

Операции с указателями доступ к переменной, на которую указывает указатель * *n=100; r[1] = 20; Арифметические операции (прибавление константы, вычитание, увеличение, уменьшение) учитывают размер данных r++; // увеличивает r на 2

Ссылки Ссылка – синоним имени, указанного при ее инициализации тип & имя; int a; int &b=a;

Массивы Массивы в языке С++ описываются следующим образом: тип_элементов имя [размер]; Размер массива задается константным выражением. Индексы элементов – целые числа, начиная с нуля. Например, объявление int a[100]; определяет массив a c элементами a[0], a[1], …, a[99].

Инициализация массивов При описании массива можно указать начальные значения элементов через запятую в фигурных скобках. При инициализации размер массива можно не указывать. Например, int p[] = {0,1,2,3,4,5}; К элементам массива можно обратиться, указав имя и в квадратных скобках индекс. Контроль выхода за пределы массива не производится. Вывод на экран for (int i=0; i

Многомерные массивы Многомерные массивы описываются как массивы, элементами которых также являются массивы. Следующий пример описывает матрицу из m строк и n столбцов. const int m = 4, n = 5; float matr[m][n]; Инициализация int mas [3][2] = { {1,1}, {0,2}, {1,0}}; Обработка for (i=0; i

Динамические массивы Массивы, размер которых меняется во время выполнения программы, описываются как указатели и создаются с помощью операции new. Следующий фрагмент программы описывает создание массива, размер которого вводится с клавиатуры. int *a, k; cin >> k; a = new int [k]; for (int i=0; i >a[i];

Строки Специальный строковый тип в языке Си отсутствует. Строка в Си представляется одномерным массивом элементов типа char; последним элементом массива должен быть символ \0 (такой массив называется ASCIIZ – строкой). Строки можно вводить и выводить с помощью стандартных потоков или функций ввода-вывода gets(s) и puts(s). Следующий пример демонстрирует ввод и вывод строк char s[100], p[]=Введено ; cin >>s; cout

Функции для работы со строками Некоторые функции работы со строками (Заголовочный файл ) 1. Длина строки int strlen(char* ) 2. Конкатенация. char* strcat(char*, char* ) 3. Копирование char* strcpy(char*, char* ) 4. Сравнение int strcmp(char*, char* ) 0, если совпадает со, Возвращает: число, число >0, если >. 5. Поиск символа в строке. Возвращает указатель на найденный символ. char* strchr(char*, int ) 6. Поиск подстроки в строке. Возвращает указатель на найденную строку. char* strchr(char*, char* )

Функции преобразования Некоторые функции преобразования данных строка число (Заголовочный файл ) Преобразование строки в double, int, long double atof (char* ) int atoi (char* ) long atol (char* ) Преобразование int, long, unsigned long в строку char* itoa (int, char*, int ) char* ltoa (long, char*, int ) char* ultoa (unsigned long, char*, int )

Работа со строками как с указателями Пример: копирование строки s в строку t Неэффективный способ for (int i = 0; i