Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

[ Миронченко ] Императивное и объектно-ориентированное програмирование на Turbo Pascal и Delphi

.pdf
Скачиваний:
68
Добавлен:
25.04.2014
Размер:
3.16 Mб
Скачать

401

Т.е. надо ввести массив и переменную, с помощью которой мы пробежимся по нему, (размер массива подсчитаем позже). Итак, добавим в начало программы (после uses) такие строки:

const nrep=

SchrLan=10; var

Arep:array[1..nrep] of string; irep:integer;

Теперь в конце программы надо поставить операторы присваивания (очевидно, что 6 строк, которые входят в шапку, тоже надо внести в массив):

:

Аrep[1]:=’1-я строка’; Аrep[2]:=’2-я строка’;

Аrep[n+6]:=’n+6-я строка’;

Кроме того, затем мы напишем еще SchrLan строк, которые распечатают программу:

Аrep[n+6+1]:=’n+6+1-я строка’;

Аrep[n+6+SchrLan]:=’n+6+ SchrLan-я строка’;

Теперь добавим строки, которые печатают содержимое массива на экран (В SchrLan хранится их количество):

for irep:=1 to nrep-SchrLan do writeln(Frep,Arep[irep]);

Настал черед строк, в которых содержимое программы заносится в массив: for irep:=1 to nrep do

begin write(Frep,'Arep[',irep,']:='); writeln(Frep,Arep[irep]);

end;

Но ведь надо еще распечатать и саму часть, которая ответственна за печать: for irep:=nrep-SchrLan+1 to nrep do

writeln(Frep,Arep[irep]);

end.

Глава 18

6. x(t) = v0 cos(α )t , y(t) = − g t 2 + v0 sin(α )t 2

7. Надо решить 2 задачи Коши:

&&

&

 

&&

&

x(t)

= −kgx(t)

 

y(t)

= −kgy(t) − g

&

= v0 cos(α )

и

&

= v0 sin(α )

x(0)

y(0)

 

= 0

 

 

= 0

x(0)

 

y(0)

Ответ: x(t) = v0 cos(α ) (1− ekgt ) , y(t) = kg

1

1

(1− ekgt )

t

 

v0 sin(α ) +

 

 

 

 

 

k

kg

k

 

8. Пока тело движется под действием реактивной силы и силы тяжести, то законы движения будут такие:

neuf k
neuf 2

402

 

 

 

 

 

 

 

 

 

 

 

 

 

a

x

= ku cos(α )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

, где ax , ay

- ускорения тела по осям x, y соответственно.

 

 

 

 

 

 

ay

= ku sin(α ) − g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

=

ln 2

- время, через которое сгорит топливо. После момента t

 

тело движется по

e

 

e

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

законам задачи 6: x(t) = v cos(α )t + x (t

 

) ,

y(t) = −

g

t 2 + v

sin(α )t + y(t

) , v

= v(t

) .

e

 

 

 

 

 

 

e

 

 

2

e

 

e

e

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.Размерность множества Кантора равна log2 3 .

10.Размерность пыли Кантора равна 1.

11.Пусть количество итераций будет k , а количество букв F в neuf будет равно n .

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

neuf саму в себя), neuf 4 и т.д.

Однако самый лучший алгоритм – еще проще. Вместо того чтобы подставлять в аксиому neuf надо просто вычислить по следующему алгоритму:

erg:=neuf

s:=neuf

for i:=1 to k do begin

s:= подстановка erg в s; erg:= s;

s:=neuf;

end;

Т.е. подставлять надо всегда промежуточный результат в neuf. Количество подстановок будет равно O(kn) (мы считаем, что количество действий, которое необходимо для подстановки строки не зависит от длины этой строки). После того, как вычислено erg = neuf k , надо его подставить в аксиому.

403

Список литературы

(!!) – книги, которые я рекомендую прочитать в первую очередь.

(!) – полезные книги, которые глубже рассматривают темы, которые были затронуты в этом учебнике.

1.Айра Пол. Объектно-ориентированное программирование на С++, 2-е изд. М.: «Невский диалект» - «Издательство БИНОМ», 1999 г. – 462 с., ил.

Автор определил цель этого ученика так: это не учебник по С++, и не учебник по ООП «вообще», - его цель – научить читателя писать на С++ ОО-программы.

2.Анисимов А. В. Информатика. Творчество. Рекурсия. – Киев: Наукова Думка, 1988.

Вкниге содержится много примеров рекурсии в литературе.

3.Бентли Джон. Жемчужины программирования. 2-е изд. – СПб.: Питер, 2002. – 272 с.: ил.

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

4.Боровский А. Н. Программирование в Delphi 2005. – СПб.: БХВ-Петербург, 2005.

– 448 с.:ил.

Книга посвящена разработке различных видов приложений под Delphi. Также в ней описаны архитектура .NET, а также ADO.NET, ASP.NET и другие технологии программирования.

5. Брукшир Дж. Гленн. Введение в компьютерные науки. 6-е изд. – М.: Издательский дом «Вильямс», 2001. – 688 с.: ил.

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

6. Гарднер Мартин. Математические досуги: Москва «Мир», 2000.

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

7.Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++

Книга по ООП «вообще». Комментарий тот же, что и к книге [5]: программист, хорошо владеющий ООП, будет рассматривать большую часть книги как сборник прописных истин, а тот, кто не писал ни одной ОО-программы, не научится это делать. Но в приложениях есть хорошая диаграмма, на которой показано развитие ОО-языков, а также приведены характеристики наиболее популярных языков.

404

8. (!!) Докинз Ричард Эгоистичный ген: Пер. с англ. – М.: Мир, 1993.- Д63 318 с., ил.

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

9.(!) Кнут Дональд Эрвин Искусство программирования (в 3 т.) М. Вильямс,2002 Всемирно известная книга по вычислительной математике. В ней подпробно рассматриваются важнейшие алгоритмы и структуры данных. Но чтение книги затруднено тем, что автор использует язык ассемблера, придуманный специально для этой книги.

10.(!!) Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: Построение и анализ – М.

МЦНМО, 2002. – 960 с.: 263 ил.

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

11.(!) Кроновер Ричард М.: Фракталы и хаос в динамических системах. Основы теории. Москва: Постмаркет, 2000. – 352 с.

Введение во фрактальную геометрию. Учебник рассчитан на студентов, но многие главы может читать и старшеклассник. Большое внимание уделено приложениям теории фракталов.

12.(!) Б. Майер. Объектно-ориентированное программирование. Концепции разработки. М.: Русская редакция, 2004.

Рассматриваются многие важные вопросы ООП и программирования параллельных процессов, а также вкратце рассматриваются важнейшие ОО-языки.

13.(!) Новиков Ф.А. Дискретная математика для программистов. – СПб.: Питер,

2002. – 304 с.:ил.

Название книги отражает ее содержание. Кроме основ дискретной математики приводятся применения дискретной математики для построения многих важных алгоритмов.

14.(!!) Пенроуз Роджер. Новый ум короля: О компьютерах, мышлении и законах физики – М.: Едиториал УРСС, 2003. – 384 с.

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

405

15.(!) Пинкер Стивен. Язык как инстинкт: пер. с англ./ Общ. ред. В.Д.Мазо. – Едиториал УРСС, 2004, - 456 с.

Интересная книга, посвященная исследованиям человеческого языка. Многие поразительные факты автор объясняет, рассматривая язык как не более чем инстинкт. Пинкер пишет: «Люди знают, как говорить, примерно в том же смысле, как пауки знают, как плести паутину».

16.Пойа Джордж. Математическое открытие. Решение задач: основные понятия, обучение и преподавание. М.: Наука, 1976 г., 448 стр. с илл.

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

17.(!!) Таненбаум Эндрю. Современные операционные системы. 2-е изд. – СПб.:

Питер, 2002. – 1040 с.:ил.

Вкниге рассматривается структура операционных систем. Подробно рассматриваются проблемы взаимоблокировки процессов, строения файловых систем. Большое внимание уделено рассмотрению мультипроцессорных операционных систем, безопасности. Автор подробно разбирает реализацию общих принципов построения ОС на примере Windows 2000 и Unix.

18.Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов: СПб.: Питер, 2003. – 640 с.:ил.

Может быть полезен как справочное руководство по Delphi.

19.(!!) Хофштадтер Д. ГЁДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда. – Самара: Издательский Дом «Бахрах-М», 2001. – 752 с.

Тематика книги Хофштадтера во многом перекликается с книгой [14]. Автор анализирует мышление человека и его познавательную деятельность с позиций математики, программирования, биологии, психологии, дзен-буддизма и физики. Интересно, что Хофштадтер – сторонник того, что любое устройство, способное к алгоритмическим действиям, может обладать интеллектом.

20.(!!) Хофштадтер Д., Деннетт Д. ГЛАЗ РАЗУМА. Самара: Издательский Дом

«Бахрах-М», 2003. – 432 с.

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

21.(!) Шрёдер Манфред. Фракталы, хаос, степенные законы. Миниатюры из бесконечного рая. – Ижевск: НИЦ «Регулярная и хаотическая динамика», 2001, 528 стр.

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

22.(!) Западноевропейский эпос. Составитель – Плотникова Л.А. Ленинград. Лениздат 1977.

406

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

23.(!) Falconer Fractal Geometry. Mathematical Foundations and Applications: John Wiley&Sons, 1990

Монография по фрактальной геометрии и ее приложениям.

Ɇɢɪɨɧɱɟɧɤɨ Ⱥɧɞɪɟɣ ɋɬɚɧɢɫɥɚɜɨɜɢɱ

ɂɦɩɟɪɚɬ ɜɧɨɟ ɨɛɴɟ ɬɧɨ-ɨɪ ɟɧɬ ɪɨɜɚɧɧɨɟ ɩɪɨɝɪɚɦɦ ɪɨɜɚɧ ɟ ɧɚ Turbo Pascal Delphi

Ƚɥɚɜɧɵɣ ɪɟɞɚɤɬɨɪ Ɇɢɪɨɧɱɟɧɤɨ Ⱥ.ɋ. Ʌɢɬɟɪɚɬɭɪɧɵɣ ɪɟɞɚɤɬɨɪ Ɇɢɪɨɧɱɟɧɤɨ Ⱥ.ɋ. Ⱦɢɡɚɣɧ Ɇɢɪɨɧɱɟɧɤɨ ɋ.ɋ.,Ɇɢɪɨɧɱɟɧɤɨ ɋ. Ƚ. ȼɟɪɫɬɤɚ Ɇɢɪɨɧɱɟɧɤɨ Ⱥ.ɋ.

ISBN 978-966-413-039-1

ɉɨɞɩɢɫɚɧɨ ɜ ɩɟɱɚɬɶ 20.07.2007 Ɏɨɪɦɚɬ 70*100/16. Ȼɭɦɚɝɚ ɨɮɫɟɬɧɚɹ. ɉɟɱɚɬɶ ɰɢɮɪɨɜɚɹ.

Ɂɚɤɚɡ ʋ 03128. Ɍɢɪɚɠ 200 ɷɤɡ.

Ɉɬɩɟɱɚɬɚɧɨ ɫ ɝɨɬɨɜɨɝɨ ɨɪɢɝɢɧɚɥ-ɦɚɤɟɬɚ ɜ ɬɢɩɨɝɪɚɮɢɢ «ȼɆȼ». ɍɤɪɚɢɧɚ, 65053, Ɉɞɟɫɫɚ, ɩɪ-ɬ Ⱦɨɛɪɨɜɨɥɶɫɤɨɝɨ, 82-ɚ. Ɍɟɥ. 751-14-87.