• Страница 1 из 1
  • 1
Форум » Программирование » C++ » Урок 1: Введение в С++ программирование
Урок 1: Введение в С++ программирование
Администратор
Уровень 999
Сообщений: 2104
Дата: Понедельник, 04.06.2012, 09:54:31 | Сообщение # 1
Offline
Добрый день, дорогие друзья ! Вы уже знаете, что совсем недавно я параллельно c C-уроками решил вести уроки программирования в системе Visual С++ 6.0. Написав три урока по данной теме, я столкнулся с тем, что должен много рассказывать и пояснять из области С++ программирования. Без этого невозможно продвигаться вперед. Ведь Visual C++ 6.0 - это тоже С++, но в основном разарботанный для программирования под Windows 95/98. Потому, как я уже давно мечтал и все время хотел, я открываю еще и уроки специально по дистанционному изучению С++ программирования.

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

    Думаю, что этот мой почин и мое решение будут многими поняты, и мои ученики с благодарностью станут посещать мои уроки как С-программирования, так С++ и Visual C++ 6.0. Я же в свою очередь в очередной раз приглашаю всех Вас на свой сайт http://ipg.h1.ru для Вашего возрастания в тонкостях программирования в С/C++ и изучения системы программирования для Windows - Visual C++ 6.0.

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

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

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

1. Первые понятия. Почему, зачем и для чего С++?

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

    Программирование сейчас везде и всюду. Оно обслуживает предприятия, оффисы, конторы, учебные заведения - все, где есть управленческий труд и потоки информации. Нелегок труд программиста. Трудны языки программирования. Особенно поражает их многообразие. И сам процесс программирования становится таким объемным и сложным, что старые методы уже никого не удовлетворяют, и на смену им приходят новые методы и новые языки программирования, подобные языку С++ и системе Visual C++ 6.0, способные убыстрить во много раз разработку и сопровождение программ.     Сегодня мы смотрим назад из XXI-ого века в XX-й век и восхищаемся новейшими Windows-технологиями, визуальным подходом и объектно ориенированным программированием. За короткий срок они покорили и завоевали весь мир.

    Немаловажную роль здесь играет язык программирования C++. Но зачем он был нужен, как и почему возник и был востребован? На эти и на другие вопросы мы и постараемся вместе с Вами найти правильные ответы на этом уроке, посвященном С++.

    C++ - расширение языка С - был разработан сотрудником научно-исследовательского центра AT&T Bell Laboratories (Нью-Джерси, США) Бьерном Строустропом в 1979 году. С++ содержит в себе все, что есть в С. Но, кроме того, он поддерживает объектно ориентированное программирование (Object Oriented Programming, OOP). Изначально С++ был создан для того, чтобы облегчить разработку больших программ. Объектно ориентированное программирование это новый подход к созданию программ.

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

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

    В течение 70-х и в начале 80-х годов при огромной заинтересованности и поддержке Министерства Обороны США был создан язык программирования Ада. Министерством Обороны США использовались сотни отдельных языков. Но все время хотелось иметь один язык, который бы удовлетворял всем интересам этого ведомства. Таким языком был выбран Паскаль. Но в итоге разработки язык Ада оказался совсем не похожим на Паскаль. Наиболее важное свойство Ады - многозадачность. Оно позволяет программистам разрабатывать алгоритмы параллельного выполнения действий.

    Другие языки, как например С и С++, одновременно могли выполнять одно действие.

2. Типичная среда С++ программирования.

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

    Как правило, чтобы выполнить программу на С++, необходимо пройти через 6 этапов: редактирование, препроцессорную (то есть предварительную) обработку, компиляцию, компоновку, загрузку и выполнение. Мы с Вами остановим свое внимание на системе С++ программирования Borland C++ v. 5.0 или 5.2.

    Первый этап представляет создание и редактирование файла с исходныи текстом программы. Он может выполняться с помощью простейшего редактора текстов программ. Программист набирает в этом редакторе свою С++ программу. При необходимости он снова обращается к ней и вности с помощью этого редактора изменения в исходный текст программы. Далее программа запоминается на диске. Имена файлов С/C++ программ оканчиваются на "c" или "cpp". Однако, пакет программ Borland C++ v 5.0 (5.2) имеет встроенный редактор, которым также можно пользоваться. На уроках, посвященных С-программированию, мы уже подробно говорили об этом этапе и, я думаю, все умеют его выполнять.

    На втором этапе компилятор начинает препоцессорную обработку текста программы прежде чем ее компилировать. Компилятор. Что он делает? Он переводит программу в машинный код. То есть это объектный код программы.

    Следует знать, что в системе С++ программирования перед началом этапа самой трансляции всегда выполняется программа предварительной обработки. Что она делает? Она отыскивает так называемые "директивы трансляции" или "директивы препроцессора", которые указывают, какие нужно выполнить преобразования перед трансляцией исходного текста программы. Обычно это включение других текстовых файлов в файл, который подлежит компиляции. Препроцессорная обработка инициируется компилятором перед тем, как программа будет преобразована в машинный код. Это позволяет забирать нужные программы-функции в текст компилируемой программы до начала процесса компоновки.

    Третий этап это компиляция. Как правило, программы на языке С++ содержат ссылки на различные функции, которые определены вне самой программы. Например, в стандартных библиотеках или в личных библиотеках программистов. Объкетный код, созданный компилятором содержит "дыры" на месте этих отсутствующих частей.

    Четвертый этап - компоновка. Компоновщик связывает объектный код с кодами отсутствующих функций и создает таким оьразом исполняемый загрузочный модуль (без пропущенных "дыр").

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

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

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

3. Функции ввода - вывода в С++.

    Функция "cin" ( the standart input stream - стандартный поток ввода ) в С++ читается как "си-ин". Обычно она выполняет ввод с клавиатуры. Хотя "cin" может быть связана и с другим устройством.

    Функция "cout" ( the standart output stream - стандартный поток вывода ) в С++ читается как "Си-аут". обычно она выполняет вывод на экран дисплея. Однако, "cout" может быть связана и с другим устройством. Когда говорят, что "программа печатает результат", то обычно подразумевают, что данные отображаются на экране. Вместе с тем результаты могут быть выведены и на другое устройство, например, на диски или на принтер в виде твердой копии на бумаге.

    Необходимо помнить, что существует еще стандартный поток ошибок: "the standart error stream", который обозначается как cerr. Этот поток обычно связывается с экраном.

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

4. Предпочитайте использованию .

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

    В С++ все обстоит иначе. Наравне с макросами, указателями, структурами, массивами и функциями здесь используются закрытые и защищенные члены классов, перегрузка функций, аргументы по умолчанию, конструкторы и деструкторы, операции, определяемые пользователем, встроенные функции, ссылки, дружественные классы и функции, шаблоны, исключения, пространства имен и так далее. Такие богатые средства проектирования дают программисту очень широкие возможности для программирования. Это же, в свою очередь, требует существенно иной культуры программирования от программиста.

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

Предпочитайте использованию .

Операторы "scanf" и "printf" и им подобные, используемые в Си, далеки от совершенства. Они, к примеру, не выполняют контроля типа данных. Контроль же типов данных и расширяемость - краеугольные камни С++. Поэтому лучше всего с самого начала опираться на эти возможности в своих программах. Кроме того, эти операторы ptintf/scanf отделяют переменные, которые необходимо прочитать или записать от форматирующей информации, управляющей записью и чтением. Это делается так же, как в языке FORTRAN. Но эта методика уже устарела, и пора распроститься с ней.

    Однако все же в ряде случаев использование старого обращения более предпочтительно. Все это еще будет нами обсуждаться далее по ходу изучения языка С++.

5. Способ руссификации.

    Воспользуемся следующим шаблоном программы для руссификации сообщений в редакторе компилятора и на экране решения.

#include // для cout
#include // для CharToOem

int main ()
{
char str[20];
CharToOem("Русский тест", str);
cout << str;
}

Напишем простую программу, которая бы выдавала на экран: фамилию, имя, отчество, домашний телефон и адрес владельца телефона.

   

#include // для cout
#include // для CharToOem
#include
main()
{
long int delay;
char str[50];
textbackground(4);
textcolor(15);
clrscr();
CharToOem("Сапожников Георгий Иванович \n", str);
cout << str;
CharToOem("Домашний телефон в г. Краснодаре: 9-77-99-22 \n", str);
cout << str;
CharToOem("ул. Мастера Пипкина, дом 824, кв. 936 \n", str);
cout << str;
for (delay=1; delay<=1999999999; delay++);
}



    Здесь на рисунках Вы видите применение функции CharToOem для вывода информации на русском языке на экран компьютера.



    На этом наш первый урок закончен. На этом на сегодня все.
Подпись пользователя
Форум » Программирование » C++ » Урок 1: Введение в С++ программирование
  • Страница 1 из 1
  • 1
Поиск: