Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Краткая информация об объектно-ориентированном программировании

 

Практика и теория программирования не стоит на месте. В настоящее время наибольшей популярностью у профессиональных программистов пользуется объектно–ориентированное программирование (ООП). Эта технология предназначена в первую очередь для разработки больших программных продуктов (как, например, сам MATLAB).

Нам с вами в основном приходится иметь дело с относительно простыми прикладными вычислительными задачами. Для них, как правило, достаточно владеть средствами структурного и модульного программирования. Однако в плане ликбеза – краткая информация.

Главное отличие ООП от традиционных технологий программирования – использование объектов и классов. Когда-то единственным инструментом, позволяющим их использовать был язык программирования С++ (первоначальное название: С с классами). В настоящее время средства для работы с объектами и классами введены в большинство систем программирования. Имеются они и в языке программирования MATLAB’а.

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

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

Классы, в некоторой степени, подобны типам переменных. То есть отдельный объект должен принадлежать к какому-то классу. Например, мы может дать объекту какое-то имя (например А) и указать, что он принадлежит к классу «квадратные матрицы». В описании класса должна быть указана структура данных, описывающих этот объект (например, n – размер матрицы, и n2 чисел – элементов матрицы), а также действия, которые можно выполнять с этим объектом (например, вычисление определителя и умножение на объект класса «вектор»).

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

В современных языках имеется богатая библиотека классов (например, MFC в C++).

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

Структурное и модульное программирование позволили увеличить этот размер до величины порядка 10000 строк.

На мой взгляд, пока Ваши программы далеки от последнего размера, связываться с ООП нет необходимости.

 

Что еще почитать

 

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

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

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

  • Цель программирования - не создание программы, а получение результатов вычисления.
  • Делайте комментариев больше, чем это кажется необходимым.
  • Используйте вводные комментарии.
  • Комментарии должны содержать дополнительную информацию, а не перефразировать программу.
  • Неправильные комментарии хуже, чем их отсутствие.
  • Делайте пробелы для улучшения читаемости программы.
  • Скобки обходятся дешевле, чем ошибки.
  • Для выявления структуры программы используйте отступы.
  • Стремитесь к простоте.
  • Сначала напишите программу на естественном языке.
  • Короткие модули предпочтительнее длинных.
  • Не бойтесь начинать программирование сначала.
  • Отчего у нас никогда нет времени сделать что-либо хорошо, но всегда находится время на переделку.
  • Если программа неправильна, не имеет значения, какова ее эффективность.
  • Удобочитаемость программы обычно более важна, чем эффективность.

 

Задания

 

1. Программу для решения задачи предыдущего занятия напишите заново, используя технику пошаговой детализации. Сравните коды, перечислите отличия

2. Написать программу решения нелинейного уравнения, с использованием указанного метода (половинного деления, хорд, Ньютона, простых итераций). Кроме решения уравнения программа должна строить график функции на заданном отрезке. Факультативно – постараться модифицировать программу так, чтобы она находила все корни на отрезке, если их несколько. Результаты работы проверить с помощью функции fzero. Результаты оформить в виде отчета на 2-х, 3-х страницах

Подпрограмма Уравнение Подпрограмма Уравнение
  Polov , (0 £ x £ 8)   Newton , (0 £ x £ 2,5)
  Horda , (0 £ x £ 2)   Polov , (0 £ x £ 2)
  Iter , (0 £ x £ 8)   Horda , (2 £ x £ 8)
  Newton , (1 £ x £ 6)   Iter , (0 £ x £ 8)
  Polov , (0 £ x £ 8)   Newton , (0 £ x £ 3)
  Horda , (0 £ x £ 4)   Polov , (0 £ x £ 6)
  Iter , (0 £ x £ 8)   Horda , (0 £ x £ 2)
  Newton , (0 £ x £ 4)   Iter , (2 £ x £ 4)
  Polov , (0 £ x £ 3,5)   Newton , (2 £ x £ 15)
  Horda , (0 £ x £ 10)   Polov , (2 £ x £ 12)
  Iter , (3 £ x £ 12)   Horda , (0 £ x £ 8)
  Newton , (0 £ x £ 4)   Iter , (0 £ x £ 4)
  Polov , (0 £ x £ 8)   Newton (0 £ x £ 4)
  Horda , (0 £ x £ 4)   Polov , (0 £ x £ 4)
  Iter , (0 £ x £ 4)   Horda , (2 £ x £ 10)

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...