C++ пособие

Сам ты чушь такая то

Спасибо за пособие! Простое, понятное, с примерами — для начала — в самый раз подойдёт! Уже после первого прочтения (+ немного практики) и сухие справки компиляторов с гранитными мануалами разгрызаются и перевариваются гораздо легче.

Хотелось бы познакомитса

Честно сказать 1 глава всё просто и понятно даже для начинающего или просто чайника! Но следующие главы дремучий лес, а всё потому, что при изложении материала ссылаются на объяснение в следующих главах книги. И в добавок только поверхностное объяснение терминов которые используются в программировании, создают большой набор недоступного для начинающего программиста текст! P.S: За книгу огромное спасибо, пригодятся полученные знания!

Ух ты, а как давно тут коменты открыты?

книгу прочёл с удовольствием

Спасибо большое за пособие. Очень пригодилось.

очень понравилось. СПАСИБО огромное.

Ректоры по сравнению с таким изложением, просто неразумные существа. Послушав их, и прочитав здесь, сделал вывод, что гораздо лучше и понятнее описано у ВАС! Огромное спасибо за такое изложение.

Супер! Спасибо за пособие)))

Самася лучшая книжка по C++ которую я когда либо читал! Огромный респект автору.

Прочитал первую главу, ничего не понял, значит я чайник. Дальше стоит читать? Там описано с чего начинать писать программу? И в какой программе писать код? Напишите в майл ответ пожалуйста!

Спасибо большое! Очень помогло )

не очень хорошо излагается материал для начинающих 🙁

я занимаюсь программированием 2 года сначала в флешь потом в java и сейчас изучаю c++

Содержание:

БГУ Пособие — Программирование в C++ Builder

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра численных методов и программирования

ПРОГРАММИРОВАНИЕ В С++ BUILDER

Учебное пособие по курсу «МЕТОДЫ ПРОГРАММИРОВАНИЯ»

для студентов специальностей

G31 03 01 «Математика», G31 03 03 «Механика»

ББК 32.973.26-018.1я73 Б69

В. С. Романчик, А. Е. Люлькин

Р е ц е н з е н т ы :

старший преподаватель Н. А. Аленский , кандидат физико-математических наук, доцент, зав. кафедрой информационных технологий БГУК П. В. Гляков

кандидат физико-математических наук, доцент С. В. Суздаль

Рекомендовано Ученым советом механико-математического факультета БГУ 2006 года, протокол № ___

Программирование в C++ BUILDER: учебное пособие для студ. механико-матем. фак. / В. С. Романчик, А.Е.Люлькин. Мн.: БГУ, 2007. –126 с.

В пособии рассматриваются вопросы, относящиеся к использованию технологии объект- но-ориентированного программирования в системе C++ Builder. Описание методологии построения классов и использования компонентов сопровождается многочисленными примерами. Предназначено для студентов 2-го курса механико-математического факультета, изучающих курс «Методы программирования».

Основные характеристики С++Builder . C++Builder включает язык

C++, компилятор, интегрированную среду разработки приложений IDE (Integrated Development Environment), отладчик и различные инструмен-

ты. C++Builder содержит комплект общих элементов управления, доступ к Windows API, библиотеку визуальных компонентов VCL (Visual Component Library), компоненты и инструменты для работы с базами данных.

C++Builder добавляет к процессу программирования на языке C++ возможность быстрой визуальной разработки интерфейса приложений.

Кроме библиотек OWL (Object Windows Library) и MFC (Microsoft Foundation Classes), он использует библиотеку VCL и позволяет включить в форму диалоги с пользователем, оставляя разработчику для реализации только функциональную часть, воплощающую алгоритм решения задачи.

C++Builder имеет общую с Delphi библиотеку классов, часть из которых осталась написанной на языке Object Pascal. Благодаря этому, а также включению в С++Builder компиляторов С++ и Object Pascal, в приложениях можно использовать компоненты и код, написанные на

Object Pascal, а также формы и модули Delphi.

Компоненты C++Builder. Создание пользовательского интерфейса приложения заключается в добавлении в окно формы объектов, называемых компонентами. C++Builder позволяет разработчику создавать собственные компоненты и настраивать Палитру компонентов.

Компоненты разделяются на видимые (визуальные) и невидимые (невизуальные). Визуальные компоненты появляются как во время выполнения, так и во время проектирования. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они не видны во время выполнения, но обладают функциональностью. Для добавления компонента в форму можно выбрать мышью нужный компонент в Палитре компонентов и щелкнуть левой клавишей мыши в нужном месте проектируемой формы. Компонент появится на форме, и далее его можно перемещать и изменять. Каждый компонент C++ Builder имеет три характеристики: свойства, события и методы. Инспектор объ-

ектов автоматически показывает свойства и события, которые могут быть использованы с компонентом. Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Инспектор объектов отображает опубликованные (published) свойства компонентов на странице свойств (properties) и используется для установки publishedсвойств во время проектирования. Для изменения свойств компонента во время выполнения приложения нужно добавить соответствующий код. Помимо published-свойств, компоненты могут иметь открытые (public) свойства, которые доступны только во время выполнения приложения.

Рис. 1. Окно Инспектора объектов

События. Страница событий (Events) Инспектора объектов показывает список событий, распознаваемых компонентом и возникающих при изменении состояния компонента. Каждый экземпляр компонента имеет свой собственный набор функций — обработчиков событий. Создавая обработчик события, вы поручаете программе выполнить указанную функцию, если это событие произойдет. Чтобы добавить обработчик события, нужно выбрать компонент, затем открыть страницу событий Инспектора объектов и дважды щелкнуть левой клавишей мыши рядом с событием. Это заставит C++ Builder сгенерировать текст пустой функции с курсором в том месте, где следует вводить код. Далее нужно ввести код, который должен выполняться при наступлении данного события.

Среда разработки (IDE). C++ Builder представляет собой приложение, главное окно которого содержит меню (сверху), инструментальную панель (слева) и Палитру компонентов (справа). Помимо этого при запуске C++ Builder появляются окно Инспектора объектов и окно Object TreeView (слева), а также форма нового приложения (справа). Под окном формы приложения находится окно Редактора кода.

Рис. 2. Главное окно интегрированной среды разработки

Создание приложений в С++Builder. Первым шагом в разработке приложения C++ Builder является создание проекта. Чтобы создать новый проект, нужно выбрать пункт меню File|New| Application.

C++ Builder создает файл Project.bpr, а также головной файл проекта

Project.cpp, содержащий функцию WinMain(). Функция WinMain() в Windows-приложениях используется вместо функции main(). При добавление новой формы C++ Builder обновляет файл проекта и создает следующие дополнительные файлы:

• файл формы с расширением .dfm, содержащий информацию о форме;

• файл модуля с расширением .cpp, содержащий код на C++;

• заголовочный файл с расширением .h, содержащий описание класса формы.

Для того чтобы откомпилировать текущий проект, нужно выбрать пункт меню Compile. Для того чтобы откомпилировать проект и создать исполняемый файл, из меню Run нужно выбрать пункт Run. В результате выполнения будет получена следующая форма:

Читайте так же:  Пенсия маркетинг

Рис. 3. Результат выполнения приложения

Структура файла проекта. Для каждого приложения C++Builder

создается xml-файл проекта Project.bpr и файл ресурсов. Еще один файл — головной файл проекта, содержащий функцию WinMain(), генерируется при выборе пункта меню File|New Application. Первоначально по умолчанию этому файлу присваивается имя Project1.cpp. Если в процессе разработки приложения добавляются формы и модули, C++Builder обновляет файл. Для просмотра файла следует выбрать пункт меню Project|View Source.

В головном файле проекта имеется определенный набор ключевых элементов:

• Директива препроцессора #include предназначена для включения заголовочного файла, ссылающегося на описания классов библиотеки VCL.

• Директива #pragma hdrstop предназначена для ограничения списка заголовочных файлов, доступных для предварительной компиляции.

• Директива USEFORM показывает модули и формы используемые

• Директива USERES компилятора присоединяет файлы ресурсов к выполняемому файлу. При создании проекта автоматически создается файл ресурсов .res для хранения курсоров, пиктограмм и других ресурсов.

• Application->Initialize(). Это утверждение инициализирует приложение.

• Application->CreateForm(). Это утверждение создает форму приложения. Каждая форма в приложении имеет свое утверждение

• Application->Run(). Это утверждение запускает приложение.

• Блок try. catch используется для корректного завершения приложения в случае возникновения ошибки.

Типичный головной файл проекта имеет следующий вид:

#include #pragma hdrstop USERES(«Project1.res»);

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run();

catch (Exception &exception)

Структура файла Project1.bpr. Файл Project1.bpr представляет XML-проект (C++Builder XML Project), содержащий описание создаваемого приложения. Это текстовый файл, содержащий указания на то, какие файлы должны компилироваться и компоноваться в проект, а также пути к используемым каталогам.

Структура модуля. Модуль содержит реализацию функциональной части объекта на языке C++ и по умолчанию представляет собой файл Unit1.cpp. Каждый такой файл компилируется в объектный файл с расширением .obj. При добавлении к проекту новой формы генерируется новый модуль.

Имя исходного файла модуля и файла формы (*.dfm) должны быть одинаковыми. При создании обработчика событий в тексте модуля генерируется шаблон функции обработчика события, в который вводится код, выполняемый при наступлении обрабатываемого события.

Ниже приводится текст модуля, генерируемый для исходной формы:

#include #pragma hdrstop

#pragma package(smart_init) #pragma resource «*.dfm»

TForm1 *Form1;//указатель на объект

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) < >//реализация конструктора

Структура заголовочного файла. Заголовочный файл (файл с расширением .h, по умолчанию Unit1.h) генерируется при создании нового модуля и содержит описание класса формы. Такие описания генерируются автоматически и изменяются при внесении в форму новых компонентов или генерации новых обработчиков событий. В заголовочном файле содержится интерфейс, а в самом модуле – реализация методов.

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

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

Ниже приводится заголовочный файл для исходной формы:

CODE BLOG | Программирование

59 записей Ко всем записям

Макс Шлее. Qt 5.10. Профессиональное программирование на C++

2018 год
1072 страницы
Показать полностью…
Книга посвящена разработке приложений для Windows, Mac OS X, Linux, Android и iOS с использованием библиотеки Qt версии 5.10. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны особенности, выгодно отличающие ее от других библиотек. Описана интегрированная среда разработки Qt Creator и работа с технологией Qt Quick. Книга содержит исчерпывающую информацию о классах Qt 5, и так же даны практические рекомендации их применения, проиллюстрированные на большом количестве подробно прокомментированных примеров. Проекты примеров из книги размещены на сайте издательства.

С++ алгоритмы и структуры данных

Описание работы классов, реализующих различные структуры данных (массивы, списки, стеки, очереди, деревья), наиболее часто применяемые в программировании, а также основные алгоритмы обработки этих данных (поиск, сортировка, управление памятью). Это не описание библиотеки STL, а описание того, как можно самостоятельно разобраться с подобной библиотекой.

Многомерные массивы в C++ — практическое пособие

В первой статье были описаны приёмы работы с простейшим видом массивов — одномерным (линейным) массивом. В этой, второй статье будут рассмотрены многомерные массивы. В основном, речь пойдёт о двумерных массивах. Но приведённые примеры легко экстраполируются на массивы любой размерности. Также как и в первой статье, будут рассматриваться только массивы в стиле C/C++, без использования возможностей STL.

Эта статья предполагает у читателя базовые знания об одномерных и многомерных массивах, указателях и адресной арифметике. Почерпнуть эти знания можно в любом учебнике по C/C++.

Если мы откроем классический труд «Язык программирования C» Брайана Кернигана и Денниса Ритчи, то прочитаем, что «В языке C есть возможность работать с многомерными прямоугольными массивами, хотя на практике они используются гораздо реже, чем массивы указателей». C++ практически полностью унаследовал работу с многомерными массивами своего предтечи.

Определение автоматических многомерных массивов

В этом разделе я буду иногда употреблять термин «матрица» как синоним термина «двумерный массив». В C/C++ прямоугольный двумерный массив чисел действительно реализует математическое понятие «матрица». Однако, в общем случае, двумерный массив — понятие гораздо более широкое, чем матрица, поскольку он может быть и не прямоугольным, и не числовым.

Определение автоматических многомерных массивов почти полностью совпадает с определением одномерных массивов (о чём было рассказано в первой статье), за исключением того, что вместо одного размера может быть указано несколько:

В этом примере определяется двумерный массив из 3 строк по 5 значений типа int в каждой строке. Итого 15 значений типа int .

Во втором примере определяется трёхмерный массив, содержащий 3 матрицы, каждая из которых состоит из 5 строк по 2 значения типа int в каждой строке.

Понятно, что тип данных, содержащихся в многомерном массиве, может быть любым.

При дальнейшем изложении для таких многомерных массивов будет употребляться термин «C-массив», что бы отличать их от массивов других видов.

При статической (определяемой на этапе компиляции) инициализации значения C-массива перечисляются в порядке указания размеров (индексов) в определении массива. Каждый уровень (индекс), кроме самого младшего, многомерного массива заключается в свою пару фигурных скобок. Значения самого младшего индекса указываются через запятую:

В примере показана статическая инициализация прямоугольного массива. Весь список инициализирующих значений заключён в фигурные скобки. Значения для каждой из 3 строк заключены в свою пару из фигурных скобок, значения для каждого из 5 столбцов для каждой строки перечислены через запятую.

При наличии инициализатора, самый левый размер массива может быть опущен. В этом случае компилятор сам определит этот размер, исходя из списка инициализации.

Читайте так же:  Получить выписку по карте через телефон

Заполнение массива значениями

Многомерный массив заполняется значениями с помощью вложенных циклов. Причём, как правило, количество циклов совпадает с размерностью массива:

В этом примере каждому элементу массива присваивается значение, первая цифра которого указывает номер строки, а вторая цифра — номер столбца для этого значения (нумерация с 1).

Вывод значений массива на консоль

В продолжение предыдущего примера можно написать:

В результате получим следующий вывод на консоль:

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

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

Расположение в памяти

Для многомерного C-массива выделяется единый блок памяти необходимого размера: размер_массива1 * размер_массива2 * . * размер_массиваN * sizeof(тип_элемента_массива) .

Значения располагаются последовательно. Самый левый индекс изменяется медленнее всего. Т.е. для трёхмерного массива сначала располагаются значения для первой (индекс 0) матрицы, затем для второй и т.д. Значения для матриц располагаются построчно (ср. со статической инициализацией массива выше).

Имя (идентификатор) многомерного C-массива является указателем на первый элемент массива (так же как и для одномерных массивов)

Если код из последнего примера немного изменить:

поставить точку останова на return и посмотреть под отладчиком память, отведённую под переменную ary , то будет видно, что значения, расположенные в памяти, последовательно возрастают:

Поскольку все значения многомерного C-массива располагаются последовательно, то, пользуясь адресной арифметикой, можно сделать следующий хак:

В последнем фрагменте осуществляется доступ к значениям двумерного массива как к одномерному массиву. Цивилизованное решение реализуется через union .

Из двух примеров, приведённых выше, следует, что работу с двумерным или многомерным массивом (в понимании на более высоком уровне абстракции) технически можно организовать посредством одномерного массива соответствующего размера:

Этот приём достаточно распространён. Его выгода в том, что массив ary[DIM1 * DIM2] не обязательно должен быть выделен автоматически. Его можно выделять и динамически. Но при этом логически рассматривать как C-массив.

Вышеприведённый код написан в духе чистого C. В C++ обычно такие вещи прячут в класс, оставляя снаружи лаконичный интерфейс без всяких следов адресной арифметики.

Неродные близнецы

Теперь рассмотрим работу с «динамическими» многомерными массивами, т.е. с массивами, память для которых выделяется динамически.

Создание и уничтожение динамических многомерных массивов

Как правило, работа с такими массивами осуществляется следующим образом:

(1) Для доступа к двумерному массиву объявляется переменная ary типа указатель на указатель на тип (в данном случае это указатель на указатель на int ).

(2) Переменная инициализируется оператором new , который выделяет память для массива указателей на int .

(3) В цикле каждый элемент массива указателей инициализируется оператором new , который выделяет память для массива типа int .

Освобождение памяти происходит строго в обратном порядке: сначала уничтожаются массивы значений типа int , а затем уничтожается массив указателей.

Работа с динамическим многомерным массивом синтаксически полностью совпадает с работой с многомерным C-массивом.

Пример кода для трёхмерного массива:

Где собака порылась

Работа с динамическим многомерным массивом синтаксически полностью совпадает с работой с многомерным C-массивом. (Цитирую предыдущий раздел.) Синтаксически — да, но между этими массивами есть глубокое различие, о котором начинающие программисты часто забывают.

Во-первых, для динамического массива выделяется другой объём памяти.

Если посчитать, сколько памяти будет выделяться для двумерного массива из примера выше, то получится: первый оператор new выделил память для 3 указателей, второй оператор new в цикле трижды выделил память для 5 элементов типа int . Т.е. получилось, что выделили памяти для 15 значений типа int и для 3 значений типа указатель на int . Для C-массива компилятором была выделена память только для 15 значений типа int . (Всяческие выравнивания и прочие оптимизации не учитываем!)

Во-вторых, память, выделенная для динамического массива, не непрерывна. Следовательно, хак №1 (обращение с двумерным массивом как с одномерным) работать не будет.

В-третьих, передача многомерных массивов в функции и работа с ними будет отличаться для динамических массивов и C-массивов.

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

Динамический многомерный массив НЕ является C-массивом.

Парадоксально, но факт, что наиболее близким родственничком для этих неродных близнецов, является хак №2, реализующий работу с многомерным массивом посредством одномерного массива (см. раздел Хаки). Все три вышеперечисленных различия для него неактуальны.

Стоит отметить, что массив указателей на массивы — структура более гибкая, чем двумерный C-массив. Например, для массива указателей на массивы размеры массивов могут быть разными, или какой-то массив может вообще отсутствовать. Наиболее распространённым примером является «массив строк», т.е. массив указателей на массивы типа char (пример — см. в следующем разделе).

Ещё раз о предосторожности

Из вышеизложенного следует, что нужно чётко отличать многомерные C-массивы вида

от массивов указателей на массивы.

Иногда внешние отличия весьма незначительны. К примеру С-строка — это одномерный массив элементов типа char , заканчивающийся нулевым байтом. Как реализовать массив строк?

Это — пример определения и инициализации двумерного C-массива

Каждая С-строка занимает ровно 10 байт, включая завершающий ноль (считаем, тип char имеет размер 1 байт). Неиспользуемые байты у коротких строк, вроде «May», содержат «мусор» (или нули, если об этом позаботился компилятор). Весь массив занимает один непрерывный блок памяти размером 120 байт (12 строк по 10 символов).

А здесь определён и инициализирован одномерный (!) массив указателей на массивы элементов типа char .

Вся информация, доступная через переменную month , занимает 13 блоков памяти: массив из 12 указателей и 12 блоков памяти, адреса которых хранятся в указателях, содержащих С-строки с названиями месяцев. И нет никакой гарантии, что 12 блоков памяти с С-строками будут расположены в памяти последовательно и в порядке, соответствующем перечислению в инициализаторе.

Но в обоих случаях доступ к символу b в строке «February» будет осуществляться выражением month[1][2] .

И, в заключение, ещё одно предостережение.

Поскольку многомерные C-массивы, как правило, занимают большой объём памяти, их надо с особой осторожностью объявлять внутри функций, в том числе в main() . И с осторожностью в n-ной степени в рекурсивных функциях. Можно легко получить переполнение стека и, как следствие, аварийное завершение программы.

Многомерные массивы при работе с функциями

Поскольку многомерные C-массивы и многомерные динамические массивы — совершенно разные типы данных, то и при работе с функциями подходы будут разные.

Передача в функцию многомерного C-массива

Функция, получающая C-массив в качестве параметра, может выглядеть следующим образом:

Форма (1) — наиболее распространённая.

Форма (2). При передаче многомерного C-массива в функцию можно не указывать длину самого левого измерения. Компилятору для расчёта доступа к элементам массива эта информация не нужна.

Как всегда в C/C++, параметр передаётся в функцию по значению. Т.е. в функции доступна копия фактического параметра. Поскольку имя C-массива является указателем на его первый элемент (т.е. адресом первого элемента), то в функцию передаётся копия адреса начала массива. Следовательно, внутри функции можно изменять значения элементов массива, т.к. доступ к ним осуществляется через переданный адрес, но нельзя изменить адрес начала массива, переданный в качестве параметра, т.к. это — копия фактического параметра.

Читайте так же:  Регистрация ип в иркутске самостоятельно

Возвратить многомерный C-массив из функции в качестве результата стандартными средствами невозможно.

Передача в функцию многомерного динамического массива

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

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

В первой статье я уже писал, что «Выделять память в одной функции, а освобождать в другой — плохая идея, чреватая ошибками». Поэтому рассматривайте этот пример только как демонстрацию работы с функциями и массивами указателей.

Хотя с другой стороны. С другой стороны, очень похожий подход повсеместно используется в классах, когда некий ресурс (в данном случае память) захватывается в одной функции (конструкторе), а освобождается в другой (деструкторе). Но в случае классов, безопасность обеспечивается инкапсуляцией критических данных и поддержанием непротиворечивого состояния экземпляра класса методами класса.

Массив указателей используется в каждой программе, которая может получать входную информацию из командной строки (или при её вызове от операционной системы). Одна из классических форм функции main() имеет вид:

Аргументами функции являются количество строк argc (размер массива указателей) и массив указателей на строки — argv . Т.е. argv — это массив указателей на массивы значений типа char .

Пожалуй это всё, что я хотел рассказать в этой статье. Надеюсь, что кто-то сочтёт её полезной для себя.

Да пребудет с вами святой Бьярн и апостолы его! 😉

Константин Поляков: Программирование. Python. C++. Часть 1. Учебное пособие

Аннотация к книге «Программирование. Python. C++. Часть 1. Учебное пособие»

Книга представляет собой первую часть серии учебных пособий по программированию. В отличие от большинства аналогичных изданий, в ней представлены два языка программирования высокого уровня — Python и С++.
В пособии рассматриваются основы программирования на выбранных языках: ввод и вывод данных, обработка целых и вещественных чисел, управляющие конструкции. Объяснение нового материала строится на примерах его практического применения. Изучаются приёмы разработки программ, использующих компьютерную графику и анимацию.
После каждого параграфа приводится большое число заданий для самостоятельного выполнения разной сложности и вариантов проектных работ.
Пособие предназначено для школьников, начинающих изучать программирование.

Мы пришлем письмо о полученном бонусе, как только кто-то воспользуется вашей рекомендацией. Проверить баланс всегда можно в «Личном пространстве»

Мы пришлем письмо о полученном бонусе, как только кто-то воспользуется вашей ссылкой. Проверить баланс всегда можно в «Личном пространстве»

Романов Е. Л. — Практикум по программированию на C++ Уч. пособие

Издательство: СПб: БХВ-Петербург; Новосибирск: Изд-во НГТУ
ISBN: 5-94157-553-Х (БХВ-Петербург), 5-7782-0478-7 (НГТУ)
Год: 2004
Страниц: 432

Формат: DJVU
Размер: 2.4 Mb

От издателя
Практический курс программирования на Си/Си++ для начинающих. Содержит более 200 стандартных программных решений и более 300 тестовых заданий по 22 темам: от простейших вычислительных задач до двоичных файлов и наследования. Отдельная глава посвящена навыкам «чтения» и анализа готовых программ, «словарному запасу» программиста — стандартным программным контекстам и их использованию в традиционной технологии структурного программирования.
Рекомендуется студентам направления «Информатика и вычислительная техника», а также всем самостоятельно изучающим язык Си и технологию программирования на нем. Книга будет полезна при постановке 2-3-семестрового курса программирования, включающего лабораторный практикум.

Ссылки для ознакомления:
depositfiles
ifolder

Комментариев: 0 +

Кристиан Нейгел, Билл Ивьен, Д. Глинн, Уотсон, Морган Скиннер — C# 4.0 и платформа .NET 4 для профессионалов

Издательство: Вильямс
ISBN: 978-5-8459-1656-3
Год: 2010
Страниц: 1440

Формат: DJVU + CD
Размер: 65 Mb

Бьерн Страуструп — Программирование. Принципы и практика использования C++

Издательство: Вильямс
ISBN: 978-5-8459-1705-8
Год: 2011
Страниц: 1246

Формат: DJVU
Размер: 20 Mb

Роберт Мартин — Чистый код. Создание, анализ и рефакторинг

Издательство: Питер
ISBN: 978-5-49807-381-1
Год: 2010
Страниц: 464

Формат: DJVU
Размер: 6.4 Mb

Назарр К., Рихтер Дж. — Windows via C/C++. Программирование на языке Visual C++

Издательство: Питер, Русская Редакция
ISBN: 978-5-7502-0367-3
Год: 2009
Страниц: 896

Формат: DOCX
Размер: 15 Mb

Трей Нэш — C# 2010. Ускоренный курс для профессионалов

Издательство: Вильямс
ISBN: 978-5-8459-1638-9
Год: 2010
Страниц: 592

Формат: DJVU
Размер: 9 Mb

Лаптев В.В. — C++. Объектно-ориентированное программирование

Издательство: Питер
ISBN: 978-5-91180-200-4
Год: 2008
Страниц: 464

Формат: DJVU
Размер: 8.2 Mb

Алекс Макки — Введение в .NET 4.0 и Visual Studio 2010 для профессионалов

Издательство: Вильямс
ISBN: 978-5-8459-1639-6, 978-1-43-022455-6
Год: 2010
Страниц: 416

Другие статьи:

  • Судебные приставы промышленного района ставрополя Судебные приставы Ставрополя Октябрьского Района (Октябрьский РОСП города Ставрополя) Название подразделения: Октябрьский РОСП города Ставрополя Главный судебный пристав: Арутюнов Степан Сергеевич Адрес: г.Ставрополь, ул. Мира, 280 к2 Судебные приставы […]
  • Диски лицензия купить оптом Диски лицензия купить оптом Производитель DVD, МР3, СД дисков с фильмами , музыкой , играми в Украине "Ukraine DVD" Наша компания "UKRAINE DVD" занимается производством и реализацией ОПТОМ медиа продукции по всей Украине. Широкий выбор двд сборников с фильмами […]
  • Ставиться ли печать в приказ о приеме на работу Приказ о приёме на работу Процесс временного трудоустройства практически всегда завершает приказ (распоряжение) о приеме на работу работника по срочному трудовому договору на год или другой период. В 2018 году форма этого документа не является строгой, хотя в […]
  • Деньги под залог птс вологда Автоломбард в Вологде — кредиты под залог ПТС, автомобиля за 30 минут Кредитный калькулятор Заполните анкету онлайн и приезжайте сразу за деньгами Условия и программы кредитования в автоломбарде Автоломбард в Вологде одобряет кредиты под залог автомобиля и ПТС […]
  • Федеральный закон фз 5487-1 ОСНОВЫ ЗАКОНОДАТЕЛЬСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ от 22 июля 1993 года №5487-1 Об охране здоровья граждан (В редакции Указа Президента РФ от 24.12.1993 г. N2288, Фед.законов РФ от 02.03.1998 г. №30-ФЗ, 20.12.1999 г. №214-ФЗ, 02.12.2000 г. №139-ФЗ, 10.01.2003 г. […]
  • Транспортный налог доклад 2019 Налог на роскошь в 2019 году — список автомобилей от Минпромторга, попадающих под повышающий коэффициент Когда введен налог Перечень автомобилей 2019 года Как менялся официальный список с 2014 года? На что стоит обратить внимание? Перечень всех машин, […]
  • Весь уголовный кодекс 2012 Уголовный кодекс России 2019 Уголовный кодекс – это единственный нормативный кодифицированный акт, который построен по принципу опасности деяния. Все нарушения конституционных прав, имеющие большую общественную опасность, называются преступлениями. Исходя из […]