Реферат: Взаимодействие основных частей ЭВМ при выполнении программы

Реферат: Взаимодействие основных частей ЭВМ при выполнении программы




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Хабаровский государственный технический университет

Институт (факультет) Институт информационных технологий
Кафедра Компьютерное проектирование и сертификация машин
Специальность Металлорежущие станки и инструменты
Взаимодействие основных частей ЭВМ при выполнении программы
Пояснительная записка к курсовой работе
Разработать обучающую программу на тему "Взаимодействие основных частей ЭВМ при выполнении программы".
Пояснительная записка к курсовой работе содержит 22 листа формата А4, 2 рисунка, 1 использованный источник, 1 приложение.
ПРОГРАММА ДЛЯ ЭВМ, ПАСКАЛЬ, АЛГОРИТМИЧЕСКИЙ ЯЗЫК, ПРОГРАММИРОВАНИЕ, ИНФОРМАТИКА.
Целью курсовой работы является разработка программы для ЭВМ средней сложности с удобным пользовательским интерфейсом.
Это достигается путем проектирования, разработки и отладки на языке Паскаль обучающей программы на тему: «Взаимодействие основных частей ЭВМ при выполнении программы».
Приведена блок-схема процедуры для вывода главного меню. В приложении приведен исходный текст программы на Turbo Pascal.
Целью курсовой работы является разработка программы для ЭВМ средней сложности с удобным интерфейсом на языке программирования Паскаль.
Блок – схема процедуры «
MainMenu» (вывода на экран главного меню)
Данная программа показывает и обучает, как взаимодействуют основные части ЭВМ при выполнении программы.
Программа написана на языке Turbo Pascal [1] для персональных ЭВМ, совместимых с IBM PC, и операционной системой MS DOS.
Находясь в каталоге с программой, в ответ на подсказку DOS набрать computer.exe и нажать клавишу Enter
. Выход из программы по нажатию клавиши Esc
.
После запуска программы на экране появляется главное меню выбора:
Выбор пунктов меню производится с помощью курсорных клавиш Вверх
, Вниз
и нажатия клавиши Enter
для запуска нужной части программы. Для выхода из программы достаточно нажать клавишу Esc
или выбрать в меню опцию с надписью « Esc – Выход
».
Обучающая часть программы имеет вид:
Внизу экрана находятся функциональные клавиши
Помощь (
F1)
, Назад (
¬)
, Вперед (
®)
, Выход (
Esc)
:
Вперед (
®)
– вывести следующую информацию,
Выбор ответа производится клавишами 1
, 2
и 3
. При необходимости выйти можно нажать клавишу Esc и выйти из теста.
Вопрос # {номер вопроса}. {Текст вопроса}
В курсовой работе была спроектирована, разработана и отлажена на языке программирования Паскаль обучающая программа на тему: «Взаимодействие основных частей ЭВМ при выполнении программы».
Программа имеет удобный для пользователя интерфейс и возможностью просмотра графического изображения процессов проходящих в ЭВМ при выполнении программы.
1. Марченко А.И. Программирование в среде Turbo Pascal 7.0. Учебное пособие. – К.: ВЕК+, М.: ДЕСС, 1999. - 496 с.
uses Crt, Graph, Sm_Graph, Sm_Const;
FuncKeyWindow: array [1..3] of TImage; {Массив картинок функциональных клавиш}
Temp: array [1..2] of TImage; {Массив вспомогательный}
RTACol: Word = Yellow; {Цвет прямоугольников}
Rectangle(X0, Y0, X0 + 385, Y0 + 300);
Rectangle(X0, Y0 + 305, GetMaxX - X0, YS - 5);
Line(X0 + 130 + 16 * I, Y0 + 120, X0 + 130 + 16 * I, Y0 + 200);
Line(X0 + 130, Y0 + 120 + 16 * I, X0 + 210, Y0 + 120 + 16 * I)
Rectangle(X0 + 10, Y0 + 120, X0 + 80, Y0 + 200); {УУ(ЦУУ)}
Rectangle(X0 + 55, Y0 + 120, X0 + 80, Y0 + 130); {КОП}
Rectangle(X0 + 130, Y0 + 120, X0 + 210, Y0 + 200); {ОЗУ}
Rectangle(X0 + 130, Y0 + 30, X0 + 210, Y0 + 70); {АЛУ}
Rectangle(X0 + 130, Y0 + 250, X0 + 210, Y0 + 290); {ВЗУ}
Rectangle(X0 + 260, Y0 + 120, X0 + 360, Y0 + 150); {У.Ввода}
Rectangle(X0 + 260, Y0 + 170, X0 + 360, Y0 + 200); {У.Вывода}
OutTextXY(X0 + 80, Y0 + 200, 'УУ(ЦУУ)');
OutTextXY(X0 + 80, Y0 + 130, 'PC');
OutTextXY(X0 + 210, Y0 + 200, 'ОЗУ');
OutTextXY(X0 + 210, Y0 + 70, 'АЛУ');
OutTextXY(X0 + 210, Y0 + 290, 'ВЗУ');
OutTextXY(X0 + 360, Y0 + 150, 'У.Ввода');
OutTextXY(X0 + 360, Y0 + 200, 'У.Вывода');
Arrow(X0 + 85, Y0 + 140, 40, 1); {ОЗУ - УУ(ЦУУ)}
FloodFill(X0 + 90, Y0 + 140, ARBCol);
Arrow(X0 + 150, Y0 + 75, 40, 3); {ОЗУ - АЛУ}
FloodFill(X0 + 150, Y0 + 80, ARBCol);
Arrow(X0 + 190, Y0 + 115, 40, 4); {АЛУ - ОЗУ}
FloodFill(X0 + 190, Y0 + 110, ARBCol);
Arrow(X0 + 150, Y0 + 205, 40, 3); {ВЗУ - ОЗУ}
FloodFill(X0 + 150, Y0 + 210, ARBCol);
Arrow(X0 + 190, Y0 + 245, 40, 4); {ОЗУ - ВЗУ}
FloodFill(X0 + 190, Y0 + 240, ARBCol);
Arrow(X0 + 215, Y0 + 135, 40, 1); {У.Ввода - ОЗУ}
FloodFill(X0 + 220, Y0 + 135, ARBCol);
Arrow(X0 + 255, Y0 + 185, 40, 2); {У.Вывода - ОЗУ}
FloodFill(X0 + 250, Y0 + 185, ARBCol);
Arrow(X0 + 125, Y0 + 180, 40, 2); {УУ(ЦУУ) - ОЗУ}
Arrow(X0 + 125, Y0 + 270, 80, 2); {УУ(ЦУУ) - ВЗУ}
Arrow(X0 + 125, Y0 + 50, 80, 2); {УУ(ЦУУ) - АЛУ = КОП}
Line(X0 + 45, Y0 + 115, X0 + 45, Y0 + 50); {1}
OutTextXY(X0 + 70, Y0 + 60, 'КОП'); {2}
Line(X0 + 45, Y0 + 205, X0 + 45, Y0 + 295); {1}
Line(X0 + 45, Y0 + 295, X0 + 380, Y0 + 295); {2}
Line(X0 + 380, Y0 + 295, X0 + 380, Y0 + 135); {3}
Arrow(X0 + 365, Y0 + 135, 15, 1); {in} {4}
Arrow(X0 + 365, Y0 + 185, 15, 1); {out} {5}
Arrow(X0 + 125, Y0 + 180, 0, 2); {1}
Arrow(X0 + 125, Y0 + 270, 0, 2); {2}
Arrow(X0 + 125, Y0 + 50, 0, 2); {3}
Arrow(X0 + 365, Y0 + 135, 0, 1); {4}
Arrow(X0 + 365, Y0 + 185, 0, 1); {5}
SetColor(BRDCol); {Устанавливаем цвет границы и рисуем ее}
Rectangle(XC, YC, GetMaxX - X0, YC + 300);
OutTextXY(GetMaxX - (GetMaxX - X0 - XC) div 2 - X0, YC + 20, 'Обозначения ' +
FloodFill(XC + 40, YC + 50, ARBCol);
Line(XC + 10, YC + 110, XC + 34, YC + 110);
Line(XC + 10, YC + 126, XC + 34, YC + 126);
Line(XC + 14, YC + 106, XC + 14, YC + 128);
Line(XC + 30, YC + 106, XC + 30, YC + 128);
Line(XC + 12, YC + 150, XC + 30, YC + 150);
OutTextXY(XC + 60, YC + 50, ' - Передача данных');
OutTextXY(XC + 60, YC + 80, ' - Сигнал управления');
OutTextXY(XC + 60, YC + 120, ' - Ячейка памяти');
OutTextXY(XC + 60, YC + 150, ' - Данной линией');
OutTextXY(XC + 60, YC + 160, ' обведены части');
OutTextXY(XC + 60, YC + 170, ' входящие в состав');
OutTextXY(XC + 60, YC + 180, ' процессора (ЦПУ)');
OutTextXY(XC + 20, YC + 200, '█ - содержимое файла');
OutTextXY(XC + 20, YC + 210, '1 - адрес первого операнда');
OutTextXY(XC + 20, YC + 220, '2 - адрес второго операнда');
OutTextXY(XC + 20, YC + 230, '3 - адрес результата');
StrFK: array [1..4] of string[11] =
('Помощь F1', 'Назад <-', 'Вперед ->', 'Выход Esc');
Rectangle(XS, YS, GetMaxX - XS, GetMaxY - XS);
SetColor(FkbCol); {Установка цвета границы клавиш}
Bar((GetMaxX - XS * 2) div 5 * I - Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * I + Length(StrFK[I]) * 4, YS + 23);
Rectangle((GetMaxX - XS * 2) div 5 * I - Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * I + Length(StrFK[I]) * 4, YS + 23);
SetColor(Black); {Установка цвета текста клавиш}
OutTextXY((GetMaxX - XS * 2) div 5 * I + 2, YS + 15 - 2, StrFK[I]);
OutTextXY((GetMaxX - XS * 2) div 5 * I, YS + 15, StrFK[I])
FuncKeyWindow[1].Get(XS, YS, GetMaxX - XS, GetMaxY - XS);
Bar((GetMaxX - XS * 2) div 5 * 3 - Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * 3 + Length(StrFK[I]) * 4, YS + 23);
FuncKeyWindow[3].Get(XS, YS, GetMaxX - XS, GetMaxY - XS);
Bar((GetMaxX - XS * 2) div 5 * 2 - Length(StrFK[I]) * 4, YS + 7,
(GetMaxX - XS * 2) div 5 * 2 + Length(StrFK[I]) * 4, YS + 23);
FuncKeyWindow[2].Get(XS, YS, GetMaxX - XS, GetMaxY - XS)
{+----------------------------------------------+}
{ Процедуры вывода текстовой информации на экран }
{+----------------------------------------------+}
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
OutTextXY(GetMaxX - X - 25, 100, '1');
MyText(0, 8, 'До начала работы программы, она находится на ВЗУ, ' +
MyText(0, 16, '(*.exe или *.com).');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
OutTextXY(GetMaxX - X - 25, 100, '2');
MyText(0, 8, 'После того как ЭВМ получила команду на запуск ' +
MyText(0, 16, 'этого файла помещается в ячейку ОЗУ, начиная с ' +
MyText(0, 24, 'стартовым адресом.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
OutTextXY(GetMaxX - X - 25, 100, '3');
MyText(0, 8, 'Содержимое ячейки со стартовым адресом программы ' +
MyText(0, 16, 'пересылается в УУ. УУ расшифровывает первую машинную ' +
MyText(0, 24, 'соответствующие ей сигналы управления для всех систем управления.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
OutTextXY(GetMaxX - X - 25, 100, '4');
MyText(0, 8, 'Например: если первой машинной командой оказалась ' +
MyText(0, 16, 'сложения двух чисел, произойдут следующие действия:');
MyText(0, 24, '- УУ посылает первый и второй адреса в ОЗУ');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
MyText(0, 32, '- ОЗУ пересылает содержимое ячеек с этими адресами в АЛУ,');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
MyText(0, 40, '- УУ отправляет сигнал управления (КОП) в АЛУ,');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
MyText(0, 48, '- АЛУ выполняет эту операцию (сложение) над двумя ' +
MyText(0, 56, ' результат в ОЗУ.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
MyText(0, 64, '- УУ собщает ОЗУ третий адрес (адрес результата),');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
MyText(0, 72, '- ОЗУ помещает полученный результат в ячейку памяти.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
MyText(0, 80, 'На этом выполнение первой машинной команды ' +
MyText(0, 88, 'переход к следующей по порядку машинной команде. ' +
MyText(0, 96, 'адресом, следующим за стартовым, пересылается в УУ ' +
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
Animation(150, 285, -125, 2, ' █ █', True)
Animation(100, 168, -70, 1, ' 1 2 +', True)
Animation(47, 198, 63, 1, ' 1 2', False);
Animation(150, 160, -95, 2, ' a b', True)
Animation(52, 160, -94, 2, '+', False)
Animation(52, 66, 115, 1, '+', True);
Animation(47, 198, 63, 1, '3', False);
Animation(191, 66, 94, 2, 'c', True)
OutTextXY(GetMaxX div 2, YH + 10,'Помощь:');
OutTextXY(XH + 10, YH + 20,'Адрес :');
OutTextXY(XH + 10, YH + 30,'УУ :');
OutTextXY(XH + 10, YH + 40,'АЛУ :');
OutTextXY(XH + 10, YH + 50,'АЛУ+УУ :');
OutTextXY(XH + 10, YH + 60,'ВЗУ :');
OutTextXY(XH + 10, YH + 70,'ОЗУ :');
OutTextXY(XH + 10, YH + 80,'УВвода :');
OutTextXY(XH + 10, YH + 90,'УВывода:');
OutTextXY(XH + 90, YH + 20,'номер ячейки памяти');
OutTextXY(XH + 90, YH + 30,'устройство управления');
OutTextXY(XH + 90, YH + 40,'арифметико-логическое устройство');
OutTextXY(XH + 90, YH + 50,'процессор');
OutTextXY(XH + 90, YH + 60,'внешнее запоминающее устройство (hdd, fdd и др.)');
OutTextXY(XH + 90, YH + 70,'оперативное запоминающее устройство');
OutTextXY(XH + 90, YH + 80,'устройство ввода');
OutTextXY(XH + 90, YH + 90,'устройство вывода');
ArrowsAndEsc := [Back, Next, F1, Esc];
Temp[1].Get(X0, Y0, X0 + 380, Y0 + 300);
Temp[2].Get(X0, Y0 + 305, GetMaxX - X0, YS - 5);
procedure TextT(Col: TColor; S: TText);
OutTextXY(GetMaxX div 2, GetMaxY div 2 + I * 10 - 40, S[I])
function Quastion(N: Byte; var CH: Char): Byte;
MyText(XT, YT, 'Вопрос #' + QuastionS[N]);
MyText(XT, YT + 10 * I, Answer[N, I] + Cheat)
SetViewPort(1, GetMaxY - 100, GetMaxX - 1, GetMaxY - 1, ClipOn);
OutTextXY(GetMaxX div 2, 10, 'Вы действительно хотите выйти?');
OutTextXY(GetMaxX div 2, 30, 'Да(Y), Нет(N)');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
MyText(GetMaxX div 2 - 20, GetMaxY - 200, 'ВЕРНО')
MyText(GetMaxX div 2 - 28, GetMaxY - 200, 'НЕВЕРНО')
TempS[4] := EndofTest[4] + Mark(Result);
Rectangle(GetMaxX div 2 - 150, GetMaxY div 2 - 60,
GetMaxX div 2 + 150, GetMaxY div 2 + 40);
Rectangle(GetMaxX div 2 - 150, GetMaxY div 2 - 60,
GetMaxX div 2 + 150, GetMaxY div 2 + 40);
ExtentedKey := False; {флаг поступления расширенного кода}
while KeyPressed do ReadKey; {очистка буфера клавиатуры}
C := ReadKey; {считывание кода новой нажатой клавиши}
if C = #0 then {если "да" - код расширенный}
C := ReadKey; {считывается второй символ расширенного кода}
if ExtentedKey then {если код был расширенный}
TempCol[K + 1] := MenuCol[3]; {Смена цвета выделленого пункта}
until C = #27 {т.е. нажата клавиша "Esc"}
MyInitGraph; {Инициализация графического режима}
CloseGraph; {Закрытие графического режима}
X0: Integer = 10; {Начальная координата X}
Y0: Integer = 20; {Начальная координата Y}
X: Integer = 15; {Координата вывод текста X}
Y: Integer = 330; {Координата вывод текста Y}
ARBCol: Word = LightCyan; {Цвет внешней границы стрелки Big}
ARSCol: Word = Red; {Цвет внешней границы стрелки Small}
FILCol: Word = Blue; {Цвет стрелки Big}
MemCol: Word = LightGreen; {Цвет ячеек памяти}
CPUCol: Word = DarkGray; {Цвет CPU}
TxtCol: Word = White; {Цвет текста}
BArrow: TArrow = (X1 : 15; Y1 : 2; Y2 : 5); {Форма стрелки Big}
SArrow: TArrow = (X1 : 5; Y1 : 0; Y2 : 1); {Форма стрелки Small}
TestCol: TColor = (Green, White, Blue, Red); {Цвет окна теста}
MenuCol: TColor = (Cyan, 0, LightGreen, Blue);
'3. Через какое устройство в ЭВМ происходит обмен данными?',
'4. Где в начальный момент находится программа? ',
'5. Какое из устройств расшифровывает первую машинную команду?');
Answer: array [1..5, 1..3] of string =
(('1. Внешнее записывающее устройство', '2. Внешнее запоминающее устройство', '3. Внутреннее запоминающее устройство'), ('1. ЦУУ + АЛУ + ВЗУ', '2. УВвода + ОЗУ', '3. ЦУУ + АЛУ + КОП'),
OK: array [1..5] of Byte = (2, 3, 2, 1, 2);
{Текст итога тестовой части программы}
EndofTest: TText = ('Ваш результат:',
TArrow = record X1, Y1, Y2: Integer; end;
procedure Get(X1, Y1, X2, Y2: Integer);
CArrow: TArrow = (X1 : 15; Y1 : 2; Y2 : 5);
Time_1: Word = 5000; {Время мерцания}
Time_2: Word = 15000; {Время задержки экрана после ответа на вопрос}
Time_3: Word = 300; {Время анимации}
Time_4: Word = 400; {Время задержки вывода текста по буквам}
procedure Animation(X, Y: Integer; D: Integer; XY: Byte; S: string; Vis: Boolean);
procedure Arrow(X, Y, L: Integer; DIRectIOn: Byte);
procedure BLink(X, Y: Integer; S: string);
procedure TImage.Get(X1, Y1, X2, Y2: Integer);
procedure TImage.Put(X, Y: Integer);
procedure MyText(X, Y: Integer; S: string);
procedure Animation(X, Y: Integer; D: Integer;
XY: Byte; S: string; Vis: Boolean);
OutTextXY(X + I * DX, Y + TextHeight(S) + I * DY, S);
TempImage.Put(X + I * DX, Y + I * DY);
TEMPImage.Put(X + I * DX, Y + I * DY);
procedure Arrow(X, Y, L: Integer; Direction: Byte);
Word_1: string = 'Курсовая работа по информатике.';
Word_2: string = 'Тема: взаимодействие основных частей ЭВМ при выполнении программы';
Word_3: string = 'Выполнили студенты группы МРС-91:';
Rectangle(25, 25,GetMaxX-25, GetMaxY-25);
OutTextXY(GetMaxX div 2+1, GetMaxY div 2-1, Word_1);
OutTextXY(GetMaxX div 2, GetMaxY div 2, Word_1);
OutTextXY(GetMaxX div 2, GetMaxY-35, 'Хабаровск 2000');
OutTextXY(GetMaxX div 2+1, GetMaxY div 2-1+18, Word_2);
OutTextXY(GetMaxX div 2, GetMaxY div 2+18, Word_2);
OutTextXY(GetMaxX-Length(Word_3)*8+1-180, GetMaxY-100-1, Word_3);
OutTextXY(GetMaxX-Length(Word_3)*8-180, GetMaxY-100, Word_3);
OutTextXY(GetMaxX+1-180, GetMaxY-90-1, Word_4);
OutTextXY(GetMaxX-180, GetMaxY-90, Word_4);
OutTextXY(GetMaxX+1-180, GetMaxY-80-1, Word_5);
OutTextXY(GetMaxX-180, GetMaxY-80, Word_5);
procedure BLink(X, Y: Integer; S: string);
OutTextXY(X, Y + TextHeight(S), S);

Название: Взаимодействие основных частей ЭВМ при выполнении программы
Раздел: Рефераты по информатике
Тип: реферат
Добавлен 15:26:59 27 января 2007 Похожие работы
Просмотров: 18
Комментариев: 20
Оценило: 2 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Если Вам нужна помощь с учебными работами, ну или будет нужна в будущем (курсовая, дипломная, отчет по практике, контрольная, РГР, решение задач, онлайн-помощь на экзамене или "любая другая" учебная работа...) - обращайтесь: https://clck.ru/P8YFs - (просто скопируйте этот адрес и вставьте в браузер) Сделаем все качественно и в самые короткие сроки + бесплатные доработки до самой сдачи/защиты! Предоставим все необходимые гарантии.
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Взаимодействие основных частей ЭВМ при выполнении программы
Реферат по теме Рэстек
Реферат: Туризм островного района Африки. Скачать бесплатно и без регистрации
Дидактика 6 Класс Контрольные Работы
Курсовая Работа По Гражданскому Праву Темы
Курсовая Работа Ипотека И Ипотечный Кредит
Диссертация Дошкольное
Курсовая работа по теме Управление качеством в рамках антикризисного управления
Доклад по теме Социальные реформы в России: итоги и ближайшие перспективы
Темы Рефератов По Праву
Курсовая работа по теме Проект транспортных сетей ЛЗП
Контрольная Работа По Биологии Простейшие 7 Класс
Сочинение На Тему Страх 4 Класс
Курсовая работа по теме Люминесцентные лампы
Реферат: Дневник по практике
Л Толстой Война И Мир Сочинение
Отчет по практике по теме Деятельность и информационные технологии ОАО "Ангарская Нефтехимическая Компания"
Эссе Политические Партии
Досрочные Страховые Пенсии По Старости Реферат
Реферат: Much Ado About Nothing- Passion Vs. Reason
Курсовая работа по теме Лесохозяйственные мероприятия для части Маринского лесничеств Алзамайского лесхоза
Реферат: Закупочная логистика понятие и структура 2
Реферат: Спирометрия
Шпаргалка: Волевые качества и их развитие

Report Page