Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет задачи.doc
Скачиваний:
1
Добавлен:
05.12.2018
Размер:
532.99 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ МОРСКОЙ ТЕХНИЧЕСКИЙ УНИЕРСИТЕТ

Кафедра судовой автоматики и измерений

ОТЧЁТ

о выполнении практических и лабораторных работ по дисциплине

"Теория и технология программирования"

ИСПОЛНИТЕЛЬ

Студент группы 2550

Г.К. Худницкий

РУКОВОДИТЕЛЬ

Доцент КАИ

К.В. Пшеничная

Санкт-Петербург

2011

Содержание

  1. Тема: Интернет-технологии. Разработка статических Web-страниц ...................................3

    1. Задание............................................................................................................................3

    2. Общий вид главной страницы.......................................................................................3

    3. Коды страниц..................................................................................................................3

  1. Тема: Объектно-ориентированное программирование. Разработка класса – наследника стандартного класса Delphi........................................................................................................9

    1. Задание.............................................................................................................................9

    2. Описание одного из стандартных классов Delphi........................................................9

    3. Текст программы............................................................................................................9

    4. Пример работы программы..........................................................................................10

  1. Тема: Расширяемый язык разметки XML...............................................................................11

    1. Задание............................................................................................................................11

    2. Содержание разработанного документа на языке XML............................................11

    3. Таблицы каскадных стилей..........................................................................................12

    4. Программа работы с XML – документом...................................................................13

  1. Тема: Объектно-ориентированное программирование. Разработка базового и производных классов. Обработка исключительных ситуаций. Запись экземпляров классов в документ XML .........................................................................................................15

    1. Задание............................................................................................................................15

    2. Описание иерархии и содержимого классов ..............................................................15

    3. Текст программы...........................................................................................................15

    4. Пример работы программы..........................................................................................22

    5. Исходный файл и файл результатов............................................................................22

1. Тема: Интернет-технологии. Разработка статических Web-страниц

1.1 Задание

Создать сайт на тему: «Процессоры», используя все возможные html – теги.

1.2 Общий вид главной страницы

Общий вид главной страницы приведен на рисунке 1.1.

Рисунок 1.1. Общий вид главной страницы

1.3 Коды страниц

Коды страниц приведены в листингах ниже.

Листинг 1.1. index.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<title>Добро пожаловать на True CPU!</title>

</head>

<frameset cols="200,*" border="0">

<frameset rows="180,*" border="0">

<frame src="logo.html" scrolling="no">

<frame src="menu.html">

</frameset>

<frame src="cont.html" name="cont">

</frameset>

</html>

Листинг 1.2. cont.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<title>Главная</title>

</head>

<body bgcolor="F2F2F2" leftmargin="20">

<H1>Добро пожаловать на страничку True CPU</H1>

<hr>

<H2>О чем эта страничка?</H2>

<p>В общих чертах, эта страничка - пример работы с html. </p>

<p><b>HTML</b> (от англ. HyperText Markup Language — «язык разметки гипертекста») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа, в удобной для человека форме.</p>

<H2>Какие разделы есть?</H2>

<ol>

<li><a href="cont.html">Main</a> - это главная страница. То есть страница на которой вы сейчас находитесь.

<li><a href="pics.html">Pictures</a> - это раздел с картинками. Простая фотогалерея, фото процессоров и различные отвлеченные фото.

<li><a href="fb.html">Feedback</a> - это раздел обратной связи. Используйте его, для того чтобы связаться с нами.

<li><a href="proc.html">Processors</a> - а это раздел о процессорах. Наслаждайтесь...

<li><a href="http://google.com">Google</a> - это вовсе не раздел:) Это просто ссылка на сайт http://google.com. Она здесь, потому что так было написано в задании.

</ol>

<p>Кстати, меню во фрейме слева!</p>

<H2>Почему на логотипе собака?</H2>

<p>На логотипе изображена собака, так как это очень милое и умное животное. А еще собака никак не связана с процессорами.</p>

<H2>Почему я читаю эту ерунду?</H2>

<p>Если честно, затрудняюсь ответить. Но раз вы дочитали до сюда, то можете в качестве награды скачать <a href="song.mp3">песенку</a>.</p>

<H2>Я хочу жаловаться!</H2>

<p>Жалуйтесь на здоровье. Вот моя электронная почта: <a href="mailto:goshi4@gmail.com">Гошан</a>.</p>

</body>

</html>

Листинг 1.3. proc.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<title>Немного о процессорах</title>

</head>

<body bgcolor="F2F2F2" leftmargin="20">

<H1>Немного о процессорах.</H1>

<hr>

<h2>Введение</h2>

<p><img src="pics/p1.jpg" hspace="10" vspace="10" align="left"><b>Центральный процессор</b> (<b>ЦП</b>, или центральное процессорное устройство — <b>ЦПУ</b>; англ. central processing unit, сокращенно — <b>CPU</b>, дословно — центральное обрабатывающее устройство) — электронный блок либо микросхема — исполнитель машинных инструкций (кода программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором.</p>

<p><img src="pics/p2.jpg" vspace="10" hspace="10" align="right">Изначально термин центральное процессорное устройство описывал специализированный класс логических машин, предназначенных для выполнения сложных компьютерных программ. Вследствие довольно точного соответствия этого назначения функциям существовавших в то время компьютерных процессоров, он естественным образом был перенесён на сами компьютеры. Начало применения термина и его аббревиатуры по отношению к компьютерным системам было положено в 1960-е годы. Устройство, архитектура и реализация процессоров с тех пор неоднократно менялись, однако их основные исполняемые функции остались теми же, что и прежде.</p>

<p>Главными характеристиками ЦПУ являются: тактовая частота, производительность, энергопотребление, нормы литографического процесса используемого при производстве (для микропроцессоров) и архитектура.</p>

<p>Ранние ЦП создавались в виде уникальных составных частей для уникальных, и даже единственных в своём роде, компьютерных систем. Позднее от дорогостоящего способа разработки процессоров, предназначенных для выполнения одной единственной или нескольких узкоспециализированных программ, производители компьютеров перешли к серийному изготовлению типовых классов многоцелевых процессорных устройств. Тенденция к стандартизации компьютерных комплектующих зародилась в эпоху бурного развития полупроводниковых элементов, мейнфреймов и миникомпьютеров, а с появлением интегральных схем она стала ещё более популярной. Создание микросхем позволило ещё больше увеличить сложность ЦП с одновременным уменьшением их физических размеров. Стандартизация и миниатюризация процессоров привели к глубокому проникновению основанных на них цифровых устройств в повседневную жизнь человека. Современные процессоры можно найти не только в таких высокотехнологичных устройствах, как компьютеры, но и в автомобилях, калькуляторах, мобильных телефонах и даже в детских игрушках. Чаще всего они представлены микроконтроллерами, где помимо вычислительного устройства на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода/вывода, таймеры и др.). Современные вычислительные возможности микроконтроллера сравнимы с процессорами персональных ЭВМ десятилетней давности, а чаще даже значительно превосходят их показатели.</p>

<h2>Архитектура фон Неймана</h2>

<p>Большинство современных процессоров для персональных компьютеров в общем основаны на той или иной версии циклического процесса последовательной обработки данных, изобретённого. Дж. фон Нейман придумал схему постройки компьютера в 1946 году. Отличительной особенностью архитектуры фон Неймана является то, что инструкции и данные хранятся в одной и той же памяти. В различных архитектурах и для различных команд могут потребоваться дополнительные этапы. Например, для арифметических команд могут потребоваться дополнительные обращения к памяти, во время которых производится считывание операндов и запись результатов.</p>

<p>Этапы цикла выполнения:</p>

<ol>

<li>Процессор выставляет число, хранящееся в регистре счётчика команд, на шину адреса и отдаёт памяти команду чтения.

<li>Выставленное число является для памяти адресом; память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных и сообщает о готовности.

<li>Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её.

<li>Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды.

</ol>

<p>Данный цикл выполняется неизменно, и именно он называется процессом (откуда и произошло название устройства).

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

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

Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.</p>

<h2>Конвейерная архитектура</h2>

<p>Конвейерная архитектура (pipelining) была введена в центральный процессор с целью повышения быстродействия. Обычно для выполнения каждой команды требуется осуществить некоторое количество однотипных операций, например: выборка команды из ОЗУ, дешифровка команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ, выполнение команды, запись результата в ОЗУ. Каждую из этих операций сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с архитектурой MIPS-I содержит четыре стадии:</p>

<ul>

<li>получение и декодирование инструкции,

<li>адресация и выборка операнда из ОЗУ,

<li>выполнение арифметических операций,

<li>сохранение результата операции.

</ul>

<p>После освобождения k-й ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт n единиц времени, однако в самом оптимистичном случае результат выполнения каждой следующей команды будет получаться через каждую единицу времени.</p>

<h2>Суперскалярная архитектура</h2>

<p>Способность выполнения нескольких машинных инструкций за один такт процессора путем увеличения числа исполнительных устройств. Появление этой технологии привело к существенному увеличению производительности, в то же время существует определенный предел роста числа исполнительных устройств, при превышении которого производительность практически перестает расти, а исполнительные устройства простаивают. Частичным решением этой проблемы являются, например, технология Hyper Threading.</p>

<h2>CISC-процессоры</h2>

<p>Complex instruction set computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации (МОП’ы), исполняемые RISC-ядром).</p>

<h2>RISC-процессоры</h2>

<p>Reduced instruction set computer — вычисления с упрощённым набором команд (в литературе слово «reduced» нередко ошибочно переводят как «сокращённый»). Архитектура процессоров, построенная на основе упрощённого набора команд, характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC разработана Джоном Коком (John Cocke) из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson).

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

Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC. В мобильных устройствах широко используются ARM-процессоры</p>

<h2>Производители</h2>

<p>Наиболее популярные процессоры сегодня производят фирмы Intel, AMD и IBM. Большинство процессоров, используемых в настоящее время, являются Intel-совместимыми, то есть имеют набор инструкций и интерфейсы программирования, используемые в процессорах компании Intel. Снизу приведены доли рынка производителей по годам.</p>

<table border="1" cellpadding="5">

<tr>

<td>Год</td>

<td>Intel, %</td>

<td>AMD, %</td>

<td>Другие, %</td>

</tr>

<tr>

<td>2007</td>

<td>78.9</td>

<td>13.1</td>

<td>8.0</td>

</tr>

<tr>

<td>2008</td>

<td>80.4</td>

<td>19.3</td>

<td>0.3</td>

</tr>

<tr>

<td>2009</td>

<td>79.7</td>

<td>20.1</td>

<td>0.2</td>

</tr>

<tr>

<td>2010</td>

<td>80.8</td>

<td>18.9</td>

<td>0.3</td>

</tr>

</table>

</body>

</html>

Листинг 1.4. pics.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<meta http-equiv="refresh" content="10; URL=cont.html">

<title>Картиночки</title>

</head>

<body bgcolor="F2F2F2" leftmargin="20">

<H1>Посмотрим немного картинок</H1>

<hr>

<p>А если вы ничего не нажмете, то через 10 секунд вас переместят на главную, т.к. здесь работает хитрая мета-инструкция.</p>

<p>

<table width="610" cellpadding="10" border="1" cellspacing="0">

<tr align="middle">

<td colspan="3">Таблица с картинками. Для увеличения нажмите.</td>

</tr>

<tr valign="top" align="middle">

<td><a href="pics/1.jpg"><img src="pics/1_resize.jpg" border="0"></a><br>Внушительная коллекция процессоров</td>

<td><a href="pics/2.jpg"><img src="pics/2_resize.jpg" border="0"></a><br>Котопроцессор</td>

<td><a href="pics/3.jpg"><img src="pics/3_resize.jpg" border="0"></a><br>Новый процессор от пивоваренной компании Балтика</td>

</tr>

<tr valign="top" align="middle">

<td><a href="pics/4.jpg"><img src="pics/4_resize.jpg" border="0"></a><br>Сборка системного блока</td>

<td><a href="pics/5.jpg"><img src="pics/5_resize.jpg" border="0"></a><br>Моск</td>

<td><a href="pics/6.jpg"><img src="pics/6_resize.jpg" border="0"></a><br>Доработка системы охлаждения</td>

</tr>

<tr valign="top" align="middle">

<td><a href="pics/7.jpg"><img src="pics/7_resize.jpg" border="0"></a><br>Монгольский оверклокинг</td>

<td><a href="pics/8.jpg"><img src="pics/8_resize.jpg" border="0"></a><br>Карбюратор</td>

<td><a href="pics/9.jpg"><img src="pics/9_resize.jpg" border="0"></a><br>Корова</td>

</tr>

</table>

</p>

</body>

</html>

Листинг1. 6. menu.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<title>Меню</title>

</head>

<body topmargin="20" link="#00AA00" vlink="#003300" alink="#006400">

<font size="3" face="verdana">

<ul>

<li><a href="cont.html" target="cont">Main</a>

<li><a href="pics.html" target="cont">Pictures</a>

<li><a href="fb.html" target="cont">Feedback</a>

<li><a href="proc.html" target="cont">Processors</a>

<li><a href="http://google.com" target="cont">Google</a>

</ul>

</font>

</body>

</html></html>

Листинг 1.7. logo.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<title>Логотип</title>

</head>

<body marginwidth="5" marginheight="5">

<a href="cont.html" target="cont">

<img border ="0" src="images/logo.gif">

</a>

</body>

</html>

Листинг 1.8. fb.html

<html>

<head>

<meta name="description" content="Страничка о процессорах" />

<meta name="keywords" content="Процессор, ЦП, CPU" />

<meta name="author" content="Гоша Худницкий" />

<meta http-equiv="content-type" content="text/html;charset=CP1251" />

<title>Обратная связь</title>

</head>

<body bgcolor="F2F2F2" leftmargin="20">

<H1>Напишите нам!</H1>

<hr>

<p>Используйте форму ниже, чтобы связаться с нами.</p>

<form action="mailto:goshi4@gmail.com" enctype=text/plain method=post>

<table border="0" width="600">

<tr>

<td width="150">Фамилия:</td>

<td width="450"><input type="text" size="50" name="surname"></td>

</tr>

<tr>

<td>Имя:</td>

<td><input type="text" size="50" name="name"></td>

</tr>

<tr>

<td>Отчество:</td>

<td><input type="text" size="50" name="father"></td>

</tr>

<tr>

<td>Домашний адрес:</td>

<td><input type="text" size="50" name="addres"></td>

</tr>

<tr>

<td>Электронная почта:</td>

<td><input type="text" size="50" name="e-mail"></td>

</tr>

<tr>

<td>Пол:</td>

<td><input type="radio" name="gender" value="male" checked> Мужской <input type="radio" name="gender" value="female"> Женский</td>

</tr>

<tr>

<td>Страна:</td>

<td>

<select name="country">

<option>Россия</option>

<option>Украина</option>

<option>Таджикистан</option>

<option>Армения</option>

</select>

</td>

</tr>

<tr valign="top">

<td>Текст сообщения:</td>

<td><textarea name="text" cols="38" rows="5"></textarea></td>

</tr>

</table>

<input type="submit" value="Отправить">

<input type="reset" value="Очистить">

</form>

</body>

</html>