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


Федеральное государственное бюджетное образовательное учреждение высшего

Содержание

1. Некоторые различия языков С и C++C++ - это тот же C, но с некоторыми удобными упрощениями. Часто можно слышать споры на тему: писать на C или на C++? При этом

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

Слайд 1Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский

технологический университет» РТУ МИРЭА Институт Информационных Технологий   Кафедра Промышленной Информатики
ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Тема лекции

«Различие языков С и C++»

Лектор Каширская Елизавета Натановна (к.т.н., доцент, ФГБОУ ВО "МИРЭА - Российский технологический университет") e-mail: liza.kashirskaya@gmail.com

Лекция 09.04.2020

Федеральное государственное бюджетное образовательное учреждение   высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА Институт

Слайд 21. Некоторые различия языков С и C++
C++ - это тот

же C, но с некоторыми удобными упрощениями. Часто можно слышать

споры на тему: писать на C или на C++? При этом существует расхожее мнение о том, что есть два стиля написания программ: стиль С и стиль C++. Они противопоставляются друг другу. C++ ассоциируется с ООП (объектно-ориентированным программированием), а чистый C - с ПОП (процедурно-ориентированным программированием). ООП и ПОП также противопоставляются.
На самом деле, все, что есть нового в C++, уже было в C. Только в C++ это записывается чуть по-другому. Так как мы с вами начали изучение процедурно-ориентированного программирования с модификации языка в C++, а не C, необходимо сформулировать главные различия этих языков, а вернее, модификаций одного и того же языка. Мы пока не будем рассматривать элементы объектно-ориентированного программирования, а покажем лишь различия в операторной части.
1. Некоторые различия языков С и C++C++ - это тот же C, но с некоторыми удобными упрощениями.

Слайд 3Концепция языка C++
С++ — язык общего назначения и задуман для

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

программирования С++ задумывался как язык, который будет:
лучше и современней языка С;
поддерживать абстракцию данных;
поддерживать объектно-ориентированное программирование.
содержать большую и расширяемую стандартную библиотеку.
За исключением второстепенных деталей, он практически содержит язык С как подмножество. Язык С++, в свою очередь, является расширением языка С. Программист может структурировать свою задачу, определив новые типы, которые точно соответствуют понятиям предметной области задачи. Такой метод построения программы обычно называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. С такими объектами можно работать надежно и просто даже в тех случаях, когда их тип нельзя установить на стадии трансляции. Программирование с использованием таких объектов обычно называют объектно-ориентированным. Если этот метод применяется правильно, то программы становятся короче и понятнее, а сопровождение их упрощается.
Можно сказать, что Си и С++ сосуществуют между собой. Когда в 2011 году вышел новый стандарт языка С++ — С++11, вместе с ним вышел и стандарт языка Си — С11.
Концепция языка C++С++ — язык общего назначения и задуман для того, чтобы настоящие программисты получили удовольствие от

Слайд 4Заголовочные файлы стандартной библиотеки C++
Все заголовочные файлы стандартной библиотеки

языка C++ не содержат расширения .h.
 
Например:
#include
#include
#include

Заголовочные файлы из стандартной

библиотеки языка C можно использовать в языке C++, но их имена изменились - в начало файла добавилась буква "c", а расширение ".h" исчезло. То есть при желании использовать функции, которые в языке C определены в заголовочных файлах stdio.h или math.h, их требуется подключать следующим образом:

#include
#include
Заголовочные файлы стандартной библиотеки C++ Все заголовочные файлы стандартной библиотеки языка C++ не содержат расширения .h.  Например:#include#include#includeЗаголовочные

Слайд 5Стандартная библиотека C++
Язык C++ содержит обширную стандартную библиотеку.
Главные составляющие операторной

части библиотеки следующие.
Ввод-вывод описан в заголовочных файлах iostream, fstream и

других.
Работа со строками описана в файле string и других.
Стандартная библиотека C++Язык C++ содержит обширную стандартную библиотеку.Главные составляющие операторной части библиотеки следующие.Ввод-вывод описан в заголовочных файлах

Слайд 6Пространства имен
Имена (функций, переменных) в языке C++ можно разделять на

«пространства имен» для удобства - чтобы могли существовать функции и

переменные с одинаковыми именами в разных «пространствах имен».
Пространство имен объявляется так:
namespace my_namespace
{
// Описание функций, переменных, классов
int var;
};

Для доступа к переменной var из пространства имен 
my_namespace
  нужно писать 
my_namespace::var

Можно также использовать инструкцию:
using namespace my_namespace;
 
Тогда все имена из пространства имен 
my_namespace
 можно использовать без указания имени пространства имен (просто писать var).
Пространства именИмена (функций, переменных) в языке C++ можно разделять на «пространства имен» для удобства - чтобы могли

Слайд 7Стандартная библиотека
Вся стандартная библиотека находится в пространстве имен std, поэтому нужно

либо писать
std::cout

написать в начале программы
using namespace std;
и тогда можно будет просто писать
cout << a << endl;

Стандартная библиотекаВся стандартная библиотека находится в пространстве имен std, поэтому нужно либо писатьstd::cout

Слайд 8Ввод-вывод в языке C++
Для стандартного ввода-вывода в языке C++ используется

заголовочный файл 
Iostream
 
В нем объявлены объекты 
cin
для ввода с клавиатуры и 
cout
для вывода

на экран.
Чтобы считать со стандартного ввода значения переменных a, b, с, нужно написать:
std::cin >> a >> b >> c;
 
Для вывода на экран этих переменных нужно написать:
std::cout << a << b << с;
Для разделения значения переменных пробелами нужно выводить строку из одного пробела между ними:
std::cout << a << " " << b << " " << c;
 
Чтобы вывести конец строки, нужно вывести стандартный объект endl:
std::cout << std::endl;
 Можно не писать std::, если дать инструкцию 
using namespace std
 в начале программы.
Ввод-вывод в языке C++Для стандартного ввода-вывода в языке C++ используется заголовочный файл Iostream В нем объявлены объекты cinдля ввода с

Слайд 9Комментарии в тексте программы
В языке C допускались только многострочные комментарии.

Начало комментария обозначалось символами /*, конец - символами */.
 
Пример:
/* Это

комментарий.
он может занимать несколько строк */
 
В языке C++ появились однострочные комментарии - они отмечаются символами // и продолжаются до конца строки:
int n; // Размер считываемого массива

Комментарии в тексте программыВ языке C допускались только многострочные комментарии. Начало комментария обозначалось символами /*, конец -

Слайд 10Const-объявления
В языке C для объявления констант используются директивы препроцессора #define.


 Например:
#define N 100
 Это низкоуровневый и опасный механизм. Например, объявленную таким

образом константу на самом деле можно переопределить:
#define N 1000
 В языке C++ появились константные выражения, которые нужно использовать вместо #define:
const int N = 100;
 Одним из наиболее важных различий между С и С++ является тот факт, что в С функция, объявленная следующим образом: int f(); ничего не говорит о своих параметрах. Это означает, что функция может иметь параметры или не иметь их вовсе. В отличие от этого, в С++ объявленная таким образом функция не имеет параметров. Иными словами, в С++ следующие два объявления эквивалентны: int f(); int f(void);
В С++ ключевое слово void является факультативным. Многие программисты на С++ включают void в качестве средства, улучшающего читаемость программы и указывающего, что у функции нет параметров.
Const-объявленияВ языке C для объявления констант используются директивы препроцессора #define.  Например:#define N 100 Это низкоуровневый и опасный механизм.

Слайд 11Структура программы на языке C
Функция main():
Первым исполненным оператором становится первый

оператор функции main(). При запуске программы управление всегда передается функции

main(). При попытке запустить программу без данной функции, компилятор выдаст сообщение об ошибке.
Структура программы на языке CФункция main():Первым исполненным оператором становится первый оператор функции main(). При запуске программы управление

Слайд 12Директивы
Первая строка, с которой начинается верхний код, является директивой. Эта

строка – директива препроцессора.
 
#include является директивой препроцессора, и, в

отличие от оператора, который дает компьютеру указание что-либо сделать, директива указывает компилятору.
Файл, включаемый с помощью директивы #include, – заголовочный файл.

ДирективыПервая строка, с которой начинается верхний код, является директивой. Эта строка – директива препроцессора.  #include является директивой

Слайд 13Функции ввода-вывода
В языке C используются функции printf() и scanf() для

вывода и ввода соответственно. Для того, чтобы эти функции работали,

надо подключить библиотеку .

Функции ввода-выводаВ языке C используются функции printf() и scanf() для вывода и ввода соответственно. Для того, чтобы

Слайд 14Работа с динамической памятью
Для работы с динамической памятью вместо функций

malloc и free языка C в языке C++ введены операторы

new и delete. Использование функций языка C для работы с динамической памятью не рекомендуется в языке C++
По большей части С++ представляет собой надстройку над стандартным ANSI С, и фактически все программы на С являются также программами и на С++. Тем не менее между этими языками имеется несколько различий, и наиболее важные из них обсуждаются ниже.
Работа с динамической памятьюДля работы с динамической памятью вместо функций malloc и free языка C в языке

Слайд 152. Управляющие последовательности языка C
Управляющая последовательность означает, что символ \

«управляет» интерпретацией следующих за ним символов последовательности.

2. Управляющие последовательности языка CУправляющая последовательность означает, что символ \ «управляет» интерпретацией следующих за ним символов последовательности.

Слайд 16Цикл for в языке
Четырехмерный массив:
int x=3,y=3,z=3,t=3;
int ****arr = new

int***[x];
for(int i=0;i

= new int[t];
}
}
}

Цикл for в языке Четырехмерный массив:int x=3,y=3,z=3,t=3;int ****arr = new int***[x];for(int i=0;i

Слайд 17Цикл while в языке C
.

Цикл while в языке C.

Слайд 18Цикл do в языке C

Цикл do в языке C

Слайд 19Оператор if … else в языке C

Оператор if … else в языке C

Слайд 203. Параметры командной строки
При запуске программы из командной строки, ей

можно передавать
дополнительные параметры в текстовом виде. Например, следующая команда
ping -t

5 google.com
будет отправлять пакеты на адрес google.com с интервалом в 5 секунд.
Здесь мы передали программе ping три параметра: «-t», «5» и «google.com»,
которые программа интерпретирует как задержку между запросами и адрес хоста
для обмена пакетами.
В программе эти параметры из командной строки можно получить через аргументы
функции main при использовании функции main в следующей форме:
int main(int argc, char* argv[]) { /* ... */ }

3. Параметры командной строкиПри запуске программы из командной строки, ей можно передавать дополнительные параметры в текстовом виде. Например,

Слайд 213. Параметры командной строки
При запуске программы из командной строки, ей

можно передавать
дополнительные параметры в текстовом виде. Например, следующая команда
ping -t

5 google.com
будет отправлять пакеты на адрес google.com с интервалом в 5 секунд.
Здесь мы передали программе ping три параметра: «-t», «5» и «google.com»,
которые программа интерпретирует как задержку между запросами и адрес хоста
для обмена пакетами.
В программе эти параметры из командной строки можно получить через аргументы
функции main при использовании функции main в следующей форме:
int main(int argc, char* argv[]) { /* ... */ }

3. Параметры командной строкиПри запуске программы из командной строки, ей можно передавать дополнительные параметры в текстовом виде. Например,

Слайд 223. Параметры командной строки
#include
using namespace std;
int main(int argc, char

*argv[])
{
for (int i = 0; i

< argc; i++)
{ // Выводим список аргументов в цикле
cout << "Argument " << i << " : " << argv[i] << endl; } return 0;}
3. Параметры командной строки#include using namespace std;int main(int argc, char *argv[]){    for (int i

Слайд 233. Параметры командной строки
Откройте командную строку и запустите оттуда скомпилированную

3. Параметры командной строкиОткройте командную строку и запустите оттуда скомпилированную

Слайд 243. Параметры командной строки
Для получения числовых данных из входных параметров,

можно использовать функции atoi и atof.

3. Параметры командной строкиДля получения числовых данных из входных параметров, можно использовать функции atoi и atof.

Слайд 254. Задача ханойская башня
Утверждается, что эту задачу сформулировали и решают

до сих пор монахи каких-то монастырей Тибета. Задача состоит в

том, чтобы пирамидку из колец (на манер детской игрушки), нанизанную на один из 3-х стержней, перенести на другой такой же стержень, придерживаясь строгих правил:
пирамидка состоит из N колец разного размера, уложенных по убыванию диаметра колец одно на другое;
перекладывать за одну операцию можно только одно кольцо с любого штыря на любой, но только при условии, что класть можно только меньшее кольцо сверху на большее, но никак не наоборот; нужно, в итоге, всю исходную пирамидку, лежащую на штыре № 1, переместить на штырь № 3, используя штырь №2 как промежуточный.
Например, для 2-х колец результат получается такой вот последовательностью перекладываний: 1 => 2 , 1 => 3 , 2 => 3.
По преданию эту задачу по перекладыванию N=64 колечек решают тибетские монахи, и когда они её, наконец, решат, тогда и наступит конец света - Армагеддон в нашей западной нотации.
Решить эту задачу не рекурсивными методами - очень непростое занятие!

4. Задача ханойская башняУтверждается, что эту задачу сформулировали и решают до сих пор монахи каких-то монастырей Тибета.

Слайд 263. Задача ханойская башня

3. Задача ханойская башня

Слайд 273. Задача ханойская ьашня
Решение здесь (если его таковым можно назвать)

состоит в том, чтобы при необходимости переноса пирамиды из n

колец с штыря с номером from на штырь с номером to последовательно сделать следующее:
перенести (каким-то образом) меньшую пирамиду из n-1 колец временно на штырь с номером temp, чтобы не мешала;
перенести оставшееся единственное нижнее (наибольшее) кольцо на результирующий штырь с номером to, после чего, точно так же как в первом пункте, водрузить пирамиду (n-1 колец) с номера temp поверх этого наибольшего кольца на штырь с номером to.
Здесь важно то, что мы не знаем, каким образом выполнить алгоритм, и не умеем выполнить 1-й и 3-й пункты нашей программы, но надеемся, что алгоритм будет рекурсивно раскручиваться по аналогии, то есть по тому же алгоритму, но для меньшего числа n-1 (основополагающий принцип рекурсии), пока n не станет равным 1, а там уже совсем просто.
И вот как разворачивается решение для различных N:
3. Задача ханойская ьашняРешение здесь (если его таковым можно назвать) состоит в том, чтобы при необходимости переноса

Слайд 283. Задача ханойская башня

3. Задача ханойская башня

Слайд 29Литература
«Уроки C++ с нуля» https://code-live.ru/post/cpp-dynamic-arrays/
«Фоксворд» https://foxford.ru/wiki/informatika/otlichiya-yazykov-programmirovaniya-si-i-s/

Литература«Уроки C++ с нуля» https://code-live.ru/post/cpp-dynamic-arrays/«Фоксворд» https://foxford.ru/wiki/informatika/otlichiya-yazykov-programmirovaniya-si-i-s/

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

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

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

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

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


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

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