Реферат по предмету "Информатика, программирование"


Вывод текста

Вывод текста
 
Основывывода текста
Одно из самыхбольших преимуществ Windows заключается в достаточно легком использованиибольшого количества разнообразных высококачественных шрифтов. На этой лекции мыдолжны будем познакомиться с основными правилами вывода текста и примененияшрифтов.
Сначала мыбудем разбираться с основными средствами вывода текста. С одной из функций,осуществляющих вывод мы уже встречались:
BOOL TextOut( hDC, nXStart, nYStart, lpsString, wLength );
Эта функцияосуществляет вывод строки текста, заданной параметром lpsString, длиной wLengthсимволов, начиная с указанной позиции (nXStart, nYStart) на заданном контекстеустройства hDC.
Это самаяпростая функция, осуществляющая вывод текста в Windows. Однако результат ееприменения определяется многими дополнительными параметрами.
Во-первых, цвет выведенного текста задаетсятремя разными атрибутами контекста устройства: текущим цветом текста, текущимцветом фона и режимом заполнения фона. Ранее мы уже рассматривали эти атрибутыи способы их изменения. Для манипуляций с этими атрибутами предназначеныфункции:
COLORREF SetTextColor( hDC, crColor);
COLORREFGetTextColor( hDC );
COLORREFSetBkColor( hDC, crColor );
COLORREFGetBkColor( hDC );
intSetBkMode( hDC, nMode );
int GetBkMode( hDC );
Для заданияцвета символов используется функция SetTextColor(), которая устанавливает вкачестве цвета символов ближайший чистый цвет, доступный на устройстве.
Для заданияцвета фона используются два другие атрибута контекста устройства. Еслиустановлен режим заполнения фона OPAQUE (используется по умолчанию), то длязаполнения фона под текстом используется текущий цвет фона, который может и несовпадать с фоном окна, который закрашивается кистью. В тех случаях, когда фонпод текстом не надо изменять, используется режим TRANSPARENT (при этом атрибут“цвет фона” игнорируется).
Во-вторых, при выводе текста задается егоначальная позиция. Определение и использование этой начальной позиции не так-тои просто. Для того, что бы разобраться с этим, нам придется ввести нескольконовых терминов, использующихся для определения размера символов и строк.
/>
Символ можетразмещаться в своей ячейке на некотором расстоянии от всех четырех границ. Длятого, что бы можно было определить точные характеристики символов,предназначена специальная функция:
BOOL GetTextMetrics(hDC, lpTEXTMETRIC );
Эта функциязаполняет структуру TEXTMETRIC информацией о текущем применяемом шрифте.Сейчас мы рассмотрим только некоторые поля этой структуры, которые определяютразмеры символов. Для этого мы приведем изображение символов, на котором будутпроставлены размеры так, как они называются в структуре TEXTMETRIC. Позже мыбудем возвращаться к отдельным полям этой структуры.
/>
Обычно завысоту строки принимают сумму размеров tmHeight и tmExternalLeading, чтопозволяет выводить строки, так, чтобы между ними всегда был небольшойпромежуток.
Несколькосложнее получается с определением ширины символа и длины строки. Это связано стем, что Windows может применять как шрифты с фиксированной шириной символа (fixedpitch), так и пропорциональные (variable pitch) шрифты. Поэтому втой информации, которую Вы можете получить о шрифте, используются двапараметра: максимальная ширина символа tmMaxCharWidth и средняя ширина символаtmAveCharWidth.
Однакопользоваться обеими этими характеристиками очень не удобно. Применениемаксимальной ширины может давать сильно завышенный результат, а средняявеличина может ошибаться в любую сторону. Практически она дает приличноеприближение только для длинных строк английского не специального текста, таккак для вычисления средней ширины используются частоты встречаемости английскихсимволов.
На практикеиспользуют функции, которые позволяет определить точные размеры строки как ввысоту, так и в ширину:
DWORDGetTextExtent( hDC, lpsString, wLength );
BOOLGetTextExtentPoint( hDC, lpsString, wLength, lpSize );
Эти функции,определив размеры строки, возвращают результат либо в виде двойного слова (вмладшем слове хранится ширина, в старшем — высота строки), либо в структуретипа SIZE, адрес которой Вы указываете. Вместо структуры SIZE может бытьиспользована структура POINT, (так было раньше, что и дало название функции).Обе эти структуры совпадают.
Однако надосделать небольшое замечание: когда вычисляется высота строки используютсязначения высот отдельных символов. Поэтому, если Ваша строка состоит изнебольших символов, то ее высота может быть существенно меньше, чем полнаявысота знакоместа.
В некоторыхслучаях бывает желательно узнать точную ширину каждого символа. (Например,такое может потребоваться для перемещения каретки или выделения фрагментатекста.) Для этого предназначены функции
BOOL GetCharWidth( hDC, uFirstChar, uLastChar, lpnWidths );
BOOL GetCharABCWidth( hDC, uFirstChar, uLastChar, lpABC );
ФункцияGetCharWidth() определяет ширину каждого символа, входящего в интервал отuFirstChar до uLastChar и размещает результаты в массиве целых чисел, указанномпараметром lpnWidths.
ФункцияGetCharABCWidth() возвращает более подробную информацию о ширине каждогосимвола, которая используется только TrueType шрифтами.
Результатыразмещаются в массиве структур типа ABC, смысл полей поясним рисунком:

/>
 
В-третьих, при выводе текста с помощью функцииTextOut() (или ExtTextOut()), используется еще один атрибут GDI, которыйназывается “режим выравнивания текста”. Он устанавливается и проверяется спомощью функций:
UINT SetTextAlign(hDC, nAlign );
UINT GetTextAlign(hDC );
Этот атрибутуказывает, как надо располагать строку текста относительно указанной начальнойточки. Обычно указанная точка задает положение верхнего левого угла строки.Однако с помощью функции SetTextAlign() вы можете установить и иной режимвыравнивания.
ПараметрnAlign указывает положение какой точки задается:по горизонтали по вертикали TA_LEFT (по умолчанию) TA_TOP (по умолчанию) TA_CENTER TA_BASELINE TA_RIGHT TA_BOTTOM
В некоторыхслучаях с помощью режима выравнивания можно обойтись без вычисления шириныстроки самим, а переложить эту работу на Windows.
Для этогосуществует дополнительные режимы выравнивания TA_UPDATECP и TA_NOUPDATECP (поумолчанию). Если используется режим TA_UPDATECP, то координаты, указывающиеположение точки вывода текста игнорируются, а вместо них используется атрибутконтекста устройства “положение текущей точки”. После операции вывода этатекущая точка перемещается на правую границу выведенного текста.
Для начальнойустановки текущей точки в нужную позицию (или при переходе со строки на строку)Вы можете воспользоваться функцией:
DWORDMoveTo( hDC, nX, nY );
В-четвертых, на вывод текста влияют атрибутыконтекста устройства, выравнивающие длины строк. Для этого GDI содержит двефункции, изменяющие интервалы между словами и символами.
Первая функция
int SetTextCharacterExtra( hDC, nExtraSpace );
устанавливаетинтервал между двумя соседними символами. С ее помощью легко можно “разрядить”строку или слово так, что бы ее длина оказалась равна требуемой величине.
Втораяфункция используется для задания ширины символов, используемых для разделенияслов в строке. Каждый шрифт содержит символ, который называется“символ–разделитель” (Break Char). Какой символ является разделителем, можноопределить по значению поля .tmBreakChar структуры TEXTMETRIC, так как дляразных шрифтов могут быть установлены разные символы–разделители. Обычно этопробел.
intSetTextJustification( hDC, nExtraSpace, cBreakChars );
Эта функцияизменяет ширину символа–разделителя таким образом, что бы cBreakChars,встреченных в строке, увеличили ее ширину на nExtraSpace единиц.
 

Дополнительныефункции для вывода текста
Рассмотреннаяфункция TextOut() является простейшей. У нее много ограничений. Например, онане распознает управляющих символов в строке типа табуляции, перевода строки ивозврата каретки. В некоторых случаях возможно применение иных функций,осуществляющих вывод текста.
Если строкатекста содержит символы табуляции, то Вы должны вместо функции TextOut()использовать функцию:
LONGTabbedTextOut(
hDC,nXStart, nYStart, lpsString, wLength, cTabStops, lpnTabPositions, nTabOrigin);
Первые 5параметров этой функции используются так же, как и в функции TextOut(), а тридополнительных применяются таким образом:
ПараметрlpnTabPositions содержит массив x–координат точек, в которых происходитостановка табулятора. Он должен быть упорядочен в возрастающем порядке.Параметр cTabStops задает число таких точек.
Есть двеособенности в применении этих параметров:
если оба ониравны 0, то табулятор будет останавливаться через каждых 8 средних ширинсимволов.
если массивсодержит только одно число N (и cTabStops равно 1), то табулятор будетостанавливаться через каждые N единиц.
ПараметрnTabOrigin указывает x–координату, начиная от которой отсчитываются положениятабулятора. Функция возвращает размер выведенной строки.
С введениемэтой функции пришлось ввести еще одну функцию, которая определяет размерыстроки, содержащей символы табуляции:
DWORDGetTabbedTextExtent( hDC, lpsString, wLength, cTabStops, lpnTabPositions );
Однако этафункция не имеет параметра nTabOrigin, поэтому ее результат может отличаться отрезультата функции TabbedTextOut(...).
Существуетспециальная функция, осуществляющая вывод строки текста и устанавливающаятребуемые промежутки между отдельными символами строки:
BOOLExtTextOut( hDC, nXStart, nYStart, fuOption, lpRect, lpsString, wLength, lpnDx);
Параметры hDC, nXStart, nYStart,lpsString и wLength используются также, как и в функции TextOut(). Два дополнительных параметра fuOptionи lpRect задают прямоугольник, в котором осуществляется вывод текста и методиспользования этого прямоугольника.
Если fuOptionравно ETO_OPAQUE, то указанный прямоугольник закрашивается текущим цветом фона;если fuOption равно ETO_CLIPPED, то прямоугольник ограничивает область выводатекста. Оба параметра fuOption и lpRect могут быть 0, тогда такой прямоугольникне используется.
Последнийпараметр lpnDx указывает на массив целых чисел, который содержит расстояниямежду каждым символом строки и следующим за ним. Если этот параметр NULL, тоиспользуются стандартные промежутки.
Функция
int DrawText(hDC, lpszString, wLength, lpRect, fuFormat );
осуществляетвывод текста в указанный прямоугольник, осуществляя простейшие операцииформатирования текста. Первые три параметра этой функции аналогичны таким–жепараметрам функции TextOut(), за одним исключением: Вы можете указать длинустроки равной -1, тогда Windows будет предполагать, что это asciiz строка(оканчивающаяся нулевым байтом) и сам вычислит ее длину.
Два последнихпараметра определяют прямоугольник, в который Вы хотите осуществить вывод, иправила размещения текста в этом прямоугольнике.
ПараметрfuFormat может содержать следующие флаги:
DT_CENTER
DT_LEFT
DT_RIGHT задают режим выравнивания текста по горизонтали. DT_SINGLELINE указывает, что текст должен размещаться в одной строке
DT_VCENTER
DT_TOP
DT_BOTTOM используются только с DT_SINGLELINE и указывают размещение строки текста по вертикали. DT_WORDBREAK разрешает переносить (разбивать) слова. DT_EXPANDTABS разрешает распознавать символы табуляции. По умолчанию используются табулятор на каждой 8 позиции. DT_TABSTOP задает шаг табуляции. Старший байт содержит число символов в одном шаге табулятора. Все описанные ниже флаги несовместимы с флагом DT_TABSTOP: DT_EXTERNALLEADING включает в высоту строки пропуск между строк. По умолчанию этого не делается. DT_NOCLIP выполняет вывод игнорируя указанный прямоугольник. Это иногда ускоряет процесс вывода. DT_NOPREFIX исключает обработку префикса & как подчеркивание текущего символа. По умолчанию префикс & обозначает подчеркнутый символ, последовательность && — одиночный &. DT_CALCRECT только вычисляет размер прямоугольника и не осуществляет вывода. Если используется DT_SINGLELINE, то определяется ширина прямоугольника, а если текст многострочный, то вычисляется высота, достаточная для размещения заданного текста при фиксированной ширине.
Последняярассматриваемая нами функция для вывода текста используется сравнительно редко.Она часто применяется системой отображения меню для указания недоступныхпунктов, закрашиваемых серым цветом. Для этого пришлось разработать отдельнуюфункцию потому, что не все видеоадаптеры и мониторы обеспечивают достаточноечисло градаций серого цвета (например, монохроматические мониторы). В этомслучае используется вывод линии не чистым цветом, а смешанным.
Так какWindows использует в качестве цвета текста только чистый цвет, то пришлосьразработать специальную функцию, позволяющую осуществлять вывод смешаннымцветом. Основная идея ее работы заключается в следующем:
BOOLGrayString( hDC, hBrush, lpfnDraw, lParam, cChars, nX, nY, nWidth, nHeight );
текствыводится черным цветом в промежуточный контекст устройства, ассоциированный сбелым битмапом
выполняетсяоперация OR между выведенным текстом и кистью, состоящей из черных и белыхточек в шахматном порядке (Функция PatBlt(), ROP код равен 0xFA0089 (DPo))
полученныйбитмап переносится на контекст-приемник изображения с помощью операции BitBlt()с ROP–кодом 0xB8074A (PSDPxax), реализующей следующие действия:
( (destination ^ pattern ) & source ) ^ pattern
в результатевсе пикселы контекста–приемника, соответствующие белым пикселам созданногобитмапа, остаются неизмененными, а все пикселы, соответствующие черным пикселамбитмапа, оказываются закрашены кистью, заданной параметром hBrush в вызовефункции GrayString().
Остальныепараметры этой функции:
hDC — контекст-приемник изображения;
lpfnDraw — функция, осуществляющая вывод текста в промежуточный контекст устройства. Еслиэтот параметр NULL, то используется TextOut(), иначе Вы должны передать адрессвязанной с вашим приложением функции (см. процедуру MakeProcInstance() ),имеющей следующий вид:
BOOLCALLBACK GrayStringProc( hDC, lpParam, cChars ) {
//drawing text
return1;}
параметры lParam и cChars передаются из функции GrayString(); hDC указывает промежуточный контекст устройства. Выводнадо осуществлять начиная с позиции 0,0;
Функциядолжна вернуть не 0, если все в порядке. Значение 0 указывает на ошибку иприводит к завершению работы функции GrayString().
lParam — еслипараметр lpfnDraw равен NULL, то lParam является дальним указателем навыводимую строку символов, иначе это может быть любое значение, используемоефункцией GrayStringProc();
cChars — число символов в выводимой строке;
nX и nY — позиция для вывода
nWidth — размеры создаваемого промежуточного битмапа, который будет nHeight — приниматьстроку.
Некоторыеособенности применения функции GrayString():
контекст-приемникизображения должен использовать координаты MM_TEXT
атрибутыконтекста–приемника НЕ копируются в промежуточный контекст устройства, ониспользует значения атрибутов по умолчанию;
если cCharsравно 0, то GrayString() предполагает, что lParam является указателем на asciizстроку (оканчивающаяся нулевым байтом) и вычисляет ее длину
если nWidth иnHeight равны 0, то GrayString() будет сам вычислять размеры битмапа длястроки, указанной параметрами lParam и cChars
большинствосовременных адаптеров позволяют отображать достаточное число оттенков серогодля вывода серых строк. Вы можете проверить, какой метод надо использовать(GrayString() или TextOut() с серым цветом текста), воспользовавшись функцией
rgbGrayText=GetSysColor( COLOR_GRAYTEXT );
еслиrgbGrayText равно 0 (черный цвет), то Вы должны использовать функциюGrayString(), иначе Вы можете установить серый цвет и воспользоваться функциейTextOut():
SetTextColor(hDC, rgbGrayText ); ...
 
Шрифты
Послеизучения основных средств работы с текстом мы перейдем к изучению шрифтов. Длятого, что бы дальнейший материал был более понятным, нам надо разобраться сосновами классификации шрифтов в Windows. При рассмотрении данной классификацииследует иметь в виду ее условность и неизбежное применение типографическихтерминов. В настоящее время не существует общепринятой системы классификациишрифтов, более того многие термины трактуются совершенно различным образом вразных системах классификации. (Так, например, italic может обозначатьнаклонный шрифт, наклонный курсив или узкий шрифт, у которого горизонтальныештрихи толще вертикальных).
Все шрифты вWindows могут быть разделены на две группы:
шрифтыустройства
шрифты GDI
Со шрифтамиустройств мы разбираться не будем, так как это очень специфичные шрифты и ихсвойства жестко определены возможностями аппаратуры. Основное внимание мысосредоточим на шрифтах GDI.
 
Классификацияшрифтов GDI
Для шрифтовGDI может быть выделено несколько классифицирующих признаков, определяющихособенности шрифта.
по наклонусимволов:
/>
Обычно типыSlanted и Italic между собой не разделяют, как правило применяется терминItalic для обозначения всякого наклонного шрифта.
по ширинеотдельных символов:
/>
Все символымоноширинного шрифта имеют одинаковую ширину и одинаковые интервалы междусимволами (как, например, шрифт пишущей машинки). Символы пропорциональногошрифта могут иметь различную ширину и даже различные интервалы между символами.
По ширинелинии, используемой для отображения символа:
/>
В иныхсистемах классификации эту характеристику иногда заменяют на количественноеотношение ширины горизонтальных линий к ширине вертикальных. Такаяхарактеристика называется контрастностью шрифта. Fixed Stroke шрифты имеютконтрастность 1:1, нормальная контрастность соответствует 4:5, средний контраст- 1:2 и т.д.
По оформлениюсимволов:
/>
Этот признактоже может быть представлен более широко, так как оформление засечекчрезвычайно различно — они могут быть перпендикулярны штрихам, соединяться сними под значительными углами, по-разному сопрягаться с штрихом (со скруглениемили без), иметь различную форму.
по “жирности”символов:
/>
Этот критерийназывают также “весом” символов, при этом говорят об особо легких, легких,нормальных и пр. шрифтах. Оценивают его по среднему количеству закрашенных(черных) точек в одной строке, длиной 1000 точек. Типичными значениями являются400 (нормальный шрифт) и 700 или 800 (жирный шрифт) по размеру символов. Размеропределяется высотой символа, выраженной в точках. Так, например, говорят ошрифте высотой 12 точек. С точки зрения типографии наиболее применимые шрифты8-10 точек, шрифты 6 и меньше точек считаются мелкими, 12 и более, крупными.
/>
Приотображении на дисплее этими размерами следует пользоваться очень осторожно,так как вертикальное разрешение экрана явно недостаточно для качественногоизображения применяемых размеров шрифта (6-10 точек).
По этойпричине для дисплеев предусмотрена специальная характеристика, называемая“логический дюйм”. Как правило один логический дюйм соответствует примерно1.4-1.5 обыкновенного. При использовании логического дюйма вместо нормальногоизображения всех объектов увеличиваются, что несколько компенсирует низкуюразрешающую способность экрана.
Когда мырассматривали системы координат устройства, то мы отмечали систему MM_TWIPS, вкоторой одной единице соответствует 1/20 часть точки (1/1440 дюйма). Этасистема активно применяется при работе с принтером. Однако при работе с экраномэта система становиться менее удобной, так как удобнее было бы применятьлогический дюйм вместо физического. Для этого нам придется самим спроектироватьтребуемую систему координат:
// установимсистему координат с несбалансированными
//масштабными коэффициентами по осям
SetMapMode(hDC, MM_ANISOTROPIC );
// в одномлогическом дюйме должно быть, как и в обычном, 1440 точек
// поэтому1440 логическим единицам
SetWindowExt(hDC, 1440, 1440 );
// должносоответствовать столько физических ед., сколько
// ихнаходится в одном логическом дюйме.
SetViewportExt(hDC, GetDeviceCaps( hDC, LOGPIXELSX ), GetDeviceCaps( hDC, LOGPIXELSY ) );
Такую системукоординат удобно применять в системах, реализующих WYSIWYG технологию.
Одним изважнейших признаков является тип шрифта, который определяет возможности егоприменения на различных устройствах. В Windows шрифты делятся на три группы, взависимости от их организации:
/>
Пояснимосновные различия шрифтов:
Растровыешрифты:
/>

Представляютиз себя набор битовых образов отображаемых символов. Отличаются наиболеевысокой скоростью вывода и самым высоким качеством текста, так как каждыйсимвол разрабатывается вручную.
Недостаткамиявляются ограниченное количество размеров шрифта (числом предоставленныхразработчиком размеров битмапов), возможность изменять размер символов только вкратное число раз, причем при этом теряется качество, и невозможность выводанаклонных строк текста.
Возможнапрограммная реализация наклонных и жирных начертаний на основе базовоговарианта.
Шрифты могутотображаться только на устройствах, поддерживающих обмен битовыми образами(плоттер, например, этого не делает). Кроме того, разные устройства требуютразличных правил разработки растровых шрифтов. Вследствие этого, например,шрифты, применяемые для дисплея, не могут быть использованы для печати наматричном принтере, хотя эти устройства имеют близкие разрешающие способности.
Векторныешрифты:
/>
Описываюткаждый отображаемый символ как набор сопрягаемых линий. Так как для выводасимвола требуется прорисовка всех линий, то это самые медленные в работешрифты.
Достоинствомявляется возможность вывода символов любого требуемого размера. Однако качествошрифта достаточно высокое только при средних размерах символов, так как умаленьких символов отдельные линии могут “слипаться”, а для больших символовстановится заметной их структура — то есть видны отдельные линии которыми онинарисованы (толщина векторов независимо от размера равна 1 единице устройства).
Символы могутнаклоняться как в виде всей строки, так и внутри строки. Программно возможносоздание наклонных и жирных начертаний.
Шрифты могутотображаться на любых графических устройствах. Это единственный вид шрифтов,применяемый на плоттерах.
TrueTypeшрифты:
/>
Это самыесложные шрифты Windows. Они описывают основной вид очертания символа,состоящего из прямых и кривых линий. Кроме того они содержат специальнуюинформацию, нужную для масштабирования символов с минимальными искажениямиобраза.
При выводесначала подготавливается растровый образ нужного размера, а затемосуществляется вывод текста. Скорость вывода такая же, как и растровых шрифтов,однако при подготовке шрифта нового типа или размера некоторое время уходит наформирование растровых образов символов.
При выводесимволов небольшого размера качество невысокое, так как автоматическаягенерация качественных битмапов малого размера практически невозможна. При этомTrueType шрифт часто заменяется на растровый шрифт малого размера (SmallFonts). Во всех остальных случаях это самые качественные шрифты.
Возможностьлегкого получения качественного шрифта любого размера делает TrueType шрифтсамым применяемым в WYSIWYG технологии.
TrueTypeшрифты позволяют отображать наклонные строки текста.
ОсобенностьюTrueType шрифтов является то, что программно невозможно создать жирные инаклонные начертания, поэтому каждый TrueType шрифт зачастую разрабатывается вчетырех экземплярах: нормальном, наклонном, жирном и наклонном–жирном.Отображается только на устройствах, поддерживающих обмен битовыми образами.
TrueTypeшрифты отличаются от остальных шрифтов еще и тем, что позволяют использоватьразличные интервалы между разными символами. При этом выделяют пары символов(kerning pairs) и для них задают относительное смещение (приближение илиудаление), для получения наиболее качественного текста. Задание “кернинга”осуществляется разработчиком шрифта.
Другойважнейший признак классификации шрифтов связан с расположением символов вкодовой таблице. К сожалению, разработчики Windows не предусмотрели серьезнойподдержки многоязычных сред. Считается, что шрифт может относиться к одной изчетырех возможных групп шрифтов.
/>
При этом подANSI подразумевается та кодовая таблица, которая принята в данной версииWindows. Строго говоря, ANSI существует только лишь в англоязычном вариантеWindows. Так, например, все русификаторы заменяют стандартную кодовую таблицуANSI на собственную, содержащую русские буквы. При этом, с точки зрения Windows,она будет все равно считаться ANSI. В русифицированном варианте кодовой таблицыWindows русские буквы занимают места с 192 по 255 включительно.
Аналогично,под OEM подразумевается кодовая таблица, принятая в DOS. Обычно это 437 кодоваятаблица, однако возможно применение и других кодовых таблиц. Как правило, длярусификации DOS применяется альтернативная кодировка ГОСТ, на основе которойбыла разработана 866 кодовая таблица (входила в состав MS DOS 4.0распространяемом на территории СССР).
Кодовая таблицаSYMBOL в Windows обозначает шрифт, состоящий из разных не–алфавитных символов,например стрелок, пиктограммок и пр. и последняя кодовая таблица SHIFTJIS имееточень специфичное применение, рассчитанное на японскую азбуку KANJI. В этойазбуке предусмотрены некоторые символы, задаваемые последовательностью из двухбайт.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :