Вывод основных графических примитивов. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Вывод основных графических примитивов.



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

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

Установка цвета вывода примитива производится процедурой

SetColor(цвет: integer),

где 0<=цвет<=15 и цветовая палитра совпадает с текстовым режимом.

Установка цвета фона производится процедурой

SetBkColor(цвет: integer).

Установка типа и толщины линии - процедурой

SetLineStyle(тип_линии, образец, толщина: integer).

Для задания типа линии предусмотрены следующие константы:

SolidLn=0 - непрерывная линия;

DottedLn=1 - точечная линия;

CenterLn=2 - штрихпунктирная линия;

DoshedLn=3 - пунктирная линия;

UserBitLn=4 - тип линии, определяемый пользователем;

в этом случае параметр ‘ образец ’ задает образец линии; во всех остальных случаях следует брать ‘образец’=0.

Замечание: атрибут ‘тип линии’ действует только для прямолинейных примитивов. Для задания толщины линии можно использовать следующие 2 константы:

NormWidth=1 - нормальная толщина;

ThickWidth=3 - утолщенная линия.

Установка шаблона и цвета закраски замкнутых областей производится с помощью процедуры

SetFillStyle(шаблон,цвет: integer).

Для задания шаблона можно использовать следующие константы:

EmptyFill=0 - закраска фоновым цветом;

SolidFill=1 - закраска заданным цветом;

LineFill=2 - закраска шаблоном вида - - - - - - -;

LtSlashFill=3 - закраска шаблоном вида / / / / / /;

SlashFill=4 - закраска шаблоном из толстых линий ////////;

BkSlashFill=5 - закраска шаблоном из толстых линий \\\\\\\;

LtBkSlashFill=6 - закраска шаблоном вида \ \ \ \ \ \;

HatchFill=7 - закраска редкой штриховкой;

XHatchFill=8 - закраска пересекающейся штриховкой;

InterLeaveFill=9 - закраска прерывистой линией;

WideDotFill=10 - закраска редкими точками;

CloseDotFill=11 - закраска частыми точками.

Пользователь имеет возможность создавать свои собственные шаблоны заполнения с помощью процедуры SetFillPottern.

Для рисования т о ч к и на экране используется процедура

PutPixel(x,y,цвет: integer).

Точка - наименьший адресуемый элемент изображения, который принято называть пикселом. Можно запросить цвет заданной точки экрана, обратившись к функции

GetPixel(x,y: integer): integer.

Для вывода о т р е з к а прямой линии используются процедуры

Line(x1,y1,x2,y2: integer) - отрезок от (x1,y1) до (x2,y2);

LineTo(x,y: integer)- отрезок от текущей точки до точки (x,y);

LineRel(dx,dy: integer) - отрезок от текущей точки до точки, определяемой смещением dx, dy.

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

MoveTo(x,y: integer) - перемещение УТП в точку (x,y);

MoveRel(dx,dy: integer) - смещение УТП на (dx,dy) относительно его исходного положения.

Можно запросить значения УТП, обратившись к целочисленным функциям GetX и GetY, которые аналогичны функциям WhereX и WhereY для текстового режима.

Вывод прямоугольника с горизонтальными и вертикальными сторонами производится процедурой

Rectangle(x1,y1,x2,y2: integer),

где (x1, y1) - левый верхний угол, а (x2, y2) - правый нижний угол прямоугольника.

Вывод окружности с центром (x1, y1) и радиусом R производится процедурой

Circle(x,y,R: integer).

Вывод дуги окружности производится процедурой

Arc(x,y,нач_угол,кон_угол,R: Integer),

где (x, y) - центр образующей окружности радиуса R, а нач_угол и кон_угол задают начальный и конечный угол дуги (в градусах); дуга рисуется против часовой стрелки в соответствии с общепринятыми соглашениями.

Вывод дуги эллипса производится процедурой

Ellipse(x,y,нач_угол,кон_угол,RX,RY: integer),

где (x, y) - координаты центра, RX и RY - полуоси, а нач_угол и кон_угол задают начальный и конечный углы дуги, аналогично дуге окружности; если нач_угол=0, а кон_угол=359, то будет нарисован полный эллипс.

Вывод контура многоугольника производится процедурой

DrawPoly(n: integer; var коорд_верш),

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

var коор: array[1..n] of record

x,y: integer

end;

При вычерчивании замкнутого многоугольника с m вершинами начальная и конечная вершины рассматриваются как две отдельные вершины, координаты которых одинаковы, поэтому n=m+1.

Для построения закрашенного многоугольника можно использовать процедуру

FillPoly(n: integer; var коорд_верш),

где формальные параметры полностью аналогичны предыдущей процедуре.

Отличие данной процедуры от предыдущей состоит в том, что сначала рисуется контур многоугольника с использованием цвета, типа и толщины линий, заданных процедурами SetColor и SetLineStyle, а затем многоугольник закрашивается в соответствии с шаблоном и цветом, заданными процедурой SetFillStyle.

Аналогичные действия, но по отношению к произвольной замкнутой области, выполняется процедура

FloodFill(x,y,цвет_гран: integer).

Она заполняет замкнутую область с границей, определяемой заданным цветом (параметр цвет_гран), в соответствии с заданным шаблоном закраски. Если точка (x, y) находится внутри области, то закрашивается внутренность области, иначе - весь экран за исключением заданной области.

Для вывода закрашенного кругового сектора можно использовать процедуру

PieSlice(x,y,нач_угол,кон_угол,R: integer),

где формальные параметры полностью аналогичны параметрам процедуры Arc.

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

Аналогичная процедура для закраски эллиптического сектора имеет вид

Sector(x,y,нач_угол,кон_угол,RX,RY: integer).

Процедура

Bar(x1,x2,x2,y2: integer)

выводит прямоугольник, закрашенный в соответствии с установками процедуры SetFillStyle.

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

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

DefaultFont=0 - точечный шрифт;

TriplexFont=1 - основной штриховой шрифт (файл triplex.chr);

SmallFont=2 - уменьшенный штриховой шрифт(файл small.chr);

SanSeriFont=3 - дополнительный штриховой шрифт(sanserif.chr);

GothicFont=4 - готический шрифт (файл gothic.chr).

Для задания горизонтального или вертикального направления вывода текста можно использовать следующие константы:

HorizDir=0 - горизонтальное направление (слева - направо):

VertDir=1 - вертикальное направление(снизу-вверх).

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

Размер символов точечного шрифта можно увеличить в 2,3,...,10 раз. Задание типа шрифта, направления вывода и размеров символов производится процедурой

SetTextStyle(шрифт,направл,размер: integer).

Изменение высоты и ширины символов для штриховых шрифтов производится процедурой

SetUserCharSize.

Выводимый текст можно выравнивать в горизонтальном или вертикальном направлениях. Горизонтальное выравнивание определяется следующими константами:

LeftText=0 - текст выводится вправо от заданной точки, т.е. выравнивается по л е в о й границе текста;

CenterText=1 - центрирование текста, т.е. заданная точка соответствует середине выводимого текста;

RightText=2 - текст выводится влево от заданной точки, т.е. выравнивается по правой границе текста.

Аналогично, для вертикального выравнивания определены константы:

BottomText=0 - текст выводится н и ж е заданной точки;

CenterText=1 - центрирование текста;

TopText=2 - текст выводится в ы ш е заданной точки.

Нулевые значения констант выбираются по умолчанию. Для задания выравнивания текста используется процедура

SetTextJustify(горизонт,вертик: integer).

Вывод текста производится двумя процедурами:

OutTextXY(x,y: integer; строка: string);

OutText(строка: string).

Первая выводит текст относительно заданной точки (x,y), а вторая - относительно имеющего значение УТП (обе - с учетом выравнивания текста).При использовании точечного шрифта (он всегда выбирается по умолчанию) надо знать, что если выводимая строка не помещается полностью на экране, то она просто не выводится!

Однако, при использовании штриховых шрифтов не выводится лишь та часть строки, которая выходит за пределы экрана.

Задание области вывода

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

SetViewPort(x1,y1,x2,y2: integer; режим_отсечения: boolean),

где (x1, y1) - координаты левого верхнего угла поля вывода, а (x2, y2) - координаты правого нижнего угла. Булевский параметр ‘режим_отсечения’ определяет, включен или нет для данного поля вывода режим отсечения по границе поля: если включен (константа ClipOn=true), то все выводимые примитивы отсекаются по границе поля, т.е. не выходят за его пределы, в противном случае (константа ClipOff = false) изображение может выходить за границы области. Нормальное состояние области вывода соответствует режиму включения отсечения.

На экране одновременно может существовать несколько областей вывода. Для возврата в исходное состояние, соответствующее ПОЛНОМУ экрану, можно сделать следующий вызов:

SetViewPort(0,0,GetMaxX,GetMaxY,True),

где GetMaxX и GetMaxY - функции модуля Graph, возвращающие максимально возможные для данного графического режима значения координат X и Y. Эти функции чрезвычайно полезны при написании программ, работающих с различными адаптерами.

Для очистки области вывода можно использовать процедуру:

ClearViewPort.

Задания на лабораторные работы

Лабораторная работа №1.
Основные приемы работы в среде Turbo Pascal

Задание на лабораторную работу

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

Работа в среде Turbo Pascal

Запуск среды Turbo Pascal

Для запуска среды достаточно, находясь в каталоге, содержащем систему Турбо Паскаля, в ответ на подсказку DOS набрать TURBO и нажать клавишу Enter. При этом запустится программа TURBO.EXE, которая и создаёт среду. Для выхода из среды наберите Alt-Х.

Первое знакомство. Основное меню

При входе в интегрированную среду Турбо Паскаля 7.0 на экране появляется окно, в верхней части которого высвечивается полоса с надписями - заголовками секций меню, перечисляющими услуги, предоставляемые средой. На рисунке приведен вид среды Turbo Pascal при запуске ее из операционной системы Windows 95.

 

 

Вход в меню осуществляется одновременным нажатием клавиш Alt и клавиши с буквой, выделенной в заголовке нужной секции меню. Например, для входа в секцию File необходимо нажать Alt-F. Другим способом входа в меню является нажатие функциональной клавиши F10 с последующим перемещением в нужную позицию меню с помощью курсора (вправо или влево). Выбранная позиция меню подсвечивается. При нажатии клавиши Enter подсвеченная секция меню раскрывается в виде окна, содержащего дальнейшую детализацию меню.

Например, если в меню оказывается подсвеченной секция Edit, то при нажатии клавиши Enter раскрывается следующее окно:

 

 

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

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

Для выхода из меню достаточно нажать клавишу Esc.

Работа в редакционном окне, создание программы

Нажмите F10, чтобы войти в полосу меню, а затем «наедьте» Курсором на позицию File, нажмите Enter (либо наберите Alt-F). Раскры­вается секция меню File:

 

 

Выберите строку New, нажмите клавишу Enter. На экране раскры­вается пустое окно, озаглавленное NONAME00.PAS. Это имя, данное средой по умолчанию Вашей будущей программе. Если Вы повторите операцию, раскроется еще одно окно, но уже с именем NONAME01.PAS. Таким образом можно раскрыть достаточное число редакционных окон. Для Переключения окон достаточно, удерживая нажатой клавишу Alt, нажать клавишу с цифрой - окна пронумерованы. Например, для возврата в первое окно нужно набрать Alt-1.

Итак, перед Вами пустое окно, в левом верхнем углу которого мигает курсор. При наборе текста с помощью клавиатуры курсор будет перемещаться. Приступите к вводу текста программы, нажимая Enter в конце каждой строки:

 

program Summa;

var

A,B,Sum: integer;

begin

Wгitе(’Введите два числа: ‘);

Readln(A,B);

Sum:=А+В;

Wгitеln(’Сумма равна’,Sum);

Wгitе(’Нажмите Enter’);

Readln;

end.

 

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

Сохранение программы

Для сохранения программы на диске выберите команду Save as из меню Filе. Турбо Паскаль открывает диалоговый окно Save File As для переименования файла и сохранения его в другом каталоге (директории) или на другом диске.

 

 

Диалоговое окно содержит поле ввода Save file as, список файлов Files, информа­ционную панель, стандартные кнопки ОК, CANCEL, HELP и список предыстории. Переключение между элементами окна осущест­вляется клавишей Tab.

В поле ввода Save file as записывается имя, под которым Вы собираетесь запомнить файл (либо файловая маска для поля Files).

В нашем случае необходимо набрать SUMMA.PAS н нажать Enter. Рассмотрим детальнее остальные элементы диалогового бокса.

Поле Files содержит имена файлов в Текущем каталоге (директорий), в соответствии с маской, установленной в поле Save file as.

Например, если в поле Save file as записано *.РАS, то в поле Files появятся имена всех файлов каталога, содержащих расширение РАS.

Список предыстории добавляет к полю ввода все имена, кото­рые появлялись в нем во время последних вызовов диалогового окна. В список предыстории можно войти в том случае, если справа от поля ввода Save file as видите стрелку «вниз». Для входа в список следует нажать клавишу «стрелка вниз» на клавиатуре. Этот список используется для повторного ввода текста, который Вы уже вводили.

Выбор нужного элемента осуществляется курсором, при этом под­свечивается выбранная позиция. Затем следует нажать клавишу Enter. Выбранное имя файла попадает в поле ввода Save file as.

Если выбор не сделан, для выхода из списка предыстории нажмите клавишу Esc. Информационная панель отображает путь к вы­бранному файлу, его имя, дату, время создания и размер.

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

Компиляция программы

Для компиляции программы выберите опцию Соmplile в основном меню, для чего нажмите F10, С

Секция содержит подменю:

 

 

Команды меню Compile используются при компиляции и реализа­ции операций Make и Build.

Команда Compile компилирует файл в активном редакционном окне. При компиляции или выполнения команды Make на экране высвечивается окно состояния с результатами. После завершения компиляции или команды Make для ликвидации окна статуса компиляции достаточно нажать любую клавишу.

При обнаружении ошибки в верхней части редакционного окна появляется сообщение.

Команда Make включает встроенный Project Manager для создания файла.EXE.

Файлы рекомпилируются в соответствии со следующими правилами:

- если Compile/Primary File содержит в списке первичный файл, он компилируется, в противном случае компилируется последний файл, загруженный в редактор. Турбо Паскаль проверяет все файлы, от которых зависит компилируемый файл.

- Если исходный файл для данного модуля (Unit) модифицировал­ся после того, как объектный код (.TPU) файла был создан, модуль перекомпилируется.

- Если и интерфейс для данного модуля изменен, все другие модули, от него зависящие, перекомпилируются.

- Если модуль использует.OBJ file и он новее, чем.TPU file данного модуля, модуль перекомпилируется.

- Если модуль включает Include file и он новее, чем.TPU file данного модуля, модуль перекомпилируется.

Команда Build перестраивает все файлы независимо от их НОВИЗНЫ. Команда идентична команде Make, но не является условной (Make перестраивает только файлы, изменённые после предыдущей сомпиляции).

Команда Dеstinаtiоn Memory (Disk) определяет место запомина­ния выполняемого кода в памяти или на диске (файл с расширением.EXE).

Устанавливая Destination Disk, Вы увеличиваете память, доступ­ную среде для компиляции и отладки программы.

При установке Destination Memory при выходе из среды код исче­зает.

Замечание. Даже если DestinatIon установлена в память, любые модули, рекомпилированные с помощью Make или Build, хранят свои обновленные файлы с расширением.TPU на диске.

При установке Destination на диск Турбо Паскаль создает файл.ЕХЕ, имя которого выбирается из двух имен следующим образом: имя первичного файла или, если не определено первичное имя, то назначается имя файла в активном редакционном окне.

Турбо Паскаль запоминает результирующий файл.EXE в том же каталоге, что и исходный файл или в каталоге, заданном в установке ЕХЕ & TPU Directory меню Options/Directories.

Переустановка команды Destination происходит нажатием клави­ши Enter (установка Destination Memory сменится на Destination Disk и наоборот).

Итак, выполните команду Compile.

После начала компиляции в центре экрана появляется окно с информацией о процессе компиляции. Если во время компиляции не обнаружено ошибок, в этом окне появится сообщение «Compilation successful: press any kеу» (компиляция успешна: нажмите любую кла­вишу).

Окно остается на экране до тех пор, пока Вы не нажмете любую клавишу.

Как уже было сказано, при обнаружении ошибки, Турбо Паскаль останавливает процесс трансляции, устанавливает курсор на ошибку в редакционном окне и выдает сообщение об ошибке. Нажатие любой клавиши убирает сообщение, а нажатие Ctrl-Q W обеспечивает его показ до тех пор, пока Вы не измените файл или не перекомпилируете его.

Сделав исправления, сохраните обновленный файл и заново скомпилируйте его.

Однако, для запоминания файла на этот раз нет необходимости вызывать диалоговое окно Save as, достаточно нажать клавишу F2. Старый вариант программы будет удален, а новый вариант будет сохранен в том же файле. Если необходимо сохранить старый вариант, то надо воспользоваться командой меню File/Save as и ввести новое имя файла или выбрать другой каталог.

Выполнение программы

Для пуска программы выберите секцию Run в основном меню.

Секция содержит подменю:

 

 

Команды меню Run позволяют запускать Программу на выполнение, начинать и заканчивать сеанс отладки.

Команда Run запускает Вашу программу на выполнение. При этом используются любые параметры, передаваемые ей командой Run/Parameters.

Если исходный код модифицировался после последней компиляции, компилятор автоматически сделает Make и свяжет программу.

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

Команда Go to cursor пускает программу от места останова (под­свеченная строка исходного текста в редакционном окне) до строки, возле которой установлен курсор. Если курсор находится на строке, не содержащей выполняемых операторов, Турбо Паскаль высвечивает предупреждение. Эта команда может инициировать отладку. Команда не устанавливает постоянной точки прерывания, но позволяет про­грамме останавливаться на уже установленных постоянных точках, встречающихся до строки, помеченной курсором. Если это произойдет, необходимо снова воспользоваться командой Go to cursor. Удобно использовать эту команду для предварительной установки run bar (под­свеченной строки, на которой остановлена отладка).

Команда Trace into пускает Вашу программу построчно (оператор за оператором). При достижении процедуры команда начинает пооператорное выполнение процедуры (в отличие от команды Step Over, выполняющей процедуру за один шаг).

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

Итак, Вы в меню Run. Выберите команду Run. Вы попадете в окно пользователя, появится сообщение:

Введите два числа:

Наберите два любых целых числа с пробелом между ними и нажми­те Enter. Появится следующее сообщение:

Сумма равна

а за ним - сумма двух чисел. В следующей строке появится сообще­ние:

Нажмите клавишу Enter

Программа будет ожидать нажатия клавиши Епtег. Для наблюде­ния за выводом из своей программы, выберите команду User Screen в меню Window (или нажмите Аlt-F5).

Отладка программы

Продемонстрируем использование интегрированного отладчика, встроенного в среду Турбо Паскаля 7.0.

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

Для начала сеанса отладки, выберите команду Trace Into меню Run (или нажмите F7). Run bar (подсвеченная полоса) устанавливается на первой строке (в данном случае begin).

Первое нажатие клавиши F7 инициализирует сеанс отладки. Те­перь нажмите F7, чтобы начать выполнение программы. Следующая выполнимая строка - оператор Write. Нажмите F7 снова. Появится экран пользователя. Это произойдет потому, что утверждение Readln ожидает ввода двух чисел. Наберите два целых числа, разделенные пробелом. Нажмите Enter. Вы вернетесь назад в редакционное окно, с Run bar на операторе присваивания. Нажмите F7 и выполните оператор присваивания. Теперь полоса запуска находится на операторе Writeln. Нажмите F7 дважды. Теперь Вы должны выполнить Readln. НажмитеF7, посмотрите вывод своей программы и затем нажмите Enter. Нажми­те F7 и Вы выйдете из программы.

Для того чтобы наблюдать за значениями объявленных переменных, войдите в секцию меню Debug.

 

 

Команда Add watch помещает наблюдаемое выражение в окно Watch. При выборе Add Watch отладчик открывает диалоговое окно Add Watch. Во входном боксе Watch expression высвечивается выражение по умолчанию (то, на которое указывает курсор в редакционном окне).

Для поиска и выбора другого выражения (из числа уже использовавшихся) можно открыть список предыстории. Если Вы вводите допустимое выражение, нажав клавишу Enter или задействован Ok, отладчик добавляет выражение и его текущее значение в окно Watch.

Если окно Watch является активным, для введения нового выраже­ния для наблюдения нужно нажать клавишу Ins.

Наберите А в окне ввода Watch Expression и нажмите Enter. А появится в окне Watch вместе со своим текущим значением. Теперь используйте команду Add Watch для добавления В и Sum в окно Watch.

Выберите Trace Into в секции Run (или нажмите F7) для того, чтобы сделать шаг в своей программе. В окне Watch появятся А = 0, В =0, Sum = 0. Когда после ввода чисел Вы нажмете Enter н вернетесь в редакционное окно, значения А и В изменятся на введенные Вами. После выполнения оператора вычисления суммы изменится и значение Sum.

Так, секция Options позволяет провести оптимальную настройку самой среды, секция Edit содержит команды передачи фрагментов из одного окна в другое либо внутри одного окна. Секция Search обеспе­чивает поиск и замену фрагментов. Секция Window позволяет изменять размер окон, а также способ их выдачи на экран. Наконец, секция Help поможет разобраться во всех тонкостях использования среды.

Задание для самостоятельной работы

Введите текст программы в редакторе исходного кода среды Turbo Pascal. Скомпилируйте программу и запустите ее на выполнение. Определите, что делает программа.

Пример 1

 

Program P1;

var S:string;

begin

S:=’Просьба не беспокоить!’;

Writeln(S);

Readln;

End.

Пример 2

 

Program P2;

var i:integer;

begin

for i:=1 to 10 do

Writeln(i);

Readln;

End.

Пример 3

 

Program P3;

var i:integer;

begin

Write(’Введите цифру 1 или 2:’);

Readln(i);

if i=1 then Writeln(’Один’)

else Writeln(’Два’);

Readln;

End.

Лабораторная работа №2.
Типы данных, выражения, ввод/вывод

Задание на лабораторную работу

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

Необходимая информация

Для выполнения лабораторной работы необходимо изучить раздел «Основные типы данных. Ввод/вывод».

Варианты индивидуальных заданий

1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.

Лабораторная работа №3.
Циклы

Задание на лабораторную работу

Изучите материал приведённый ниже. Продумайте алгоритм и напишите программу на языке Pascal для решения указанной преподавателем задачи (см. Варианты индивидуальных заданий). Программа должна предусматривать ввод исходных данных с клавиатуры и вывод результата на экран.

Необходимая информация

Для выполнения лабораторной работы необходимо изучить раздел «Операторы языка Pascal».

Варианты индивидуальных заданий

1. Ввести с клавиатуры последовательность из n (вводится с клавиатуры) целых чисел. Вычислить в процессе ввода сумму и произведение введённых чисел.

2. Вычислить квадратный корень из произвольного вещественного числа, введенного с клавиатуры, используя метод Ньютона:

Здесь A – введенное число, Y 0= A.

Если A – отрицательное число, то необходимо вывести сообщение об ошибке.

Результат должен иметь относительную точность 1·10-6. Как только получено значение Y 0 оно используется для получения следующего приближения Y 0, по которому в свою очередь вычисляется Y 0, и так до тех пор, пока не будет достигнута требуемая точность, то есть, пока не станет

3. Вычисление числа e

Определить число e – основание натуральных логарифмов с помощью ряда:

для всех значений n от 1 до 20. Для каждого случая напечатать n и соответствующее приближение e.

4. Последовательности без повторений

Вывести на экран все числа из 3 цифр, причем внутри одного числа не должно быть двух одинаковых цифр. Например, к таким числам относятся: 012, 271, 490. Число 6 такой последовательностью не является, так как начинается с двух нулей.

5. Вывести на экран все трехзначные числа, состоящие из нечетных цифр и их количество.

6. Вывести на экран все числа от 100 до 10000, которые делятся одновременно на 7 и на 13 и их количество.

7. Вывести на экран все числа от 100 до 10000, сумма цифр которых равна заданному числу.

8. Вывести на экран числа 1, 1, 2, 3, 5, 8, … (первые два числа – единицы, каждое последующее равно сумме двух предыдущих). Не использовать массив.

9. Ввести с клавиатуры последовательность из n (вводится с клавиатуры) целых чисел. Определить в процессе ввода количество положительных и отрицательных чисел.

10. Ввести с клавиатуры последовательность из n (вводится с клавиатуры) целых чисел. Определить в процессе ввода количество четных и нечетных чисел.

11. Ввести с клавиатуры последовательность из n (вводится с клавиатуры) целых чисел. Определить в процессе ввода среднее арифметическое четных чисел последовательности.

12. Ввести с клавиатуры последовательность из n (вводится с клавиатуры) целых чисел. Определить в процессе ввода, составляют ли числа возрастающую последовательность.

13*. Совершенные числа

Совершенными называются числа, равные сумме всех своих делителей, включая 1. Например, 6 – совершенное число, поскольку 6=1+2+3. Требуется найти и вывести на экран все совершенные числа вместе с их делителями, лежащие в диапазоне от 4 до 10000.

 

Лабораторная работа №4.
Одномерные массивы

Задание на лабораторную работу

Одной из классических задач является поиск простых чисел. Ниже обсуждаются два алгоритма её решения. Напишите программу для алгоритма «Решето Эратосфена». Самостоятельно продумайте алгоритм решения и напишите программу для одного из вариантов индивидуальных заданий.

Необходимая информация

Для выполнения лабораторной работы необходимо изучить раздел «Структурированные типы. Массивы».

Варианты индивидуальных заданий

1. Ввести массив целых чисел из n элементов (задано константой). Переместить все нулевые элементы в начало массива. Вывести массив на экран.

2. Ввести с клавиатуры целочисленный массив из n элементов (задано константой). Подсчитать количество чисел, значение которых (x) лежит в заданных пределах L<x<M, где L и M вводятся с клавиатуры. Вывести на экран полученное значение.

3. Ввести с клавиатуры целочисленный массив из n элементов (задано константой). Подсчитать количество чисел, значение которых меньше значений обоих соседних элементов. Вывести на экран полученное значение.

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

5. Ввести с клавиатуры вещественный массив из n элементов (задано константой). Вычислить разность суммы элементов с четными индексами и суммы элементов с нечетными индексами. Вывести на экран полученное значение.

6. Ввести массив целых чисел из n элементов (задано константой). Переместить все отрицательные элементы в конец массива. Вывести массив на экран.

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

8. Ввести массив вещественных чисел из n элементов (задано константой). Вычислить сумму элементов, расположенных до максимального элемента. Вывести на экран полученное значение.

9. Ввести массив вещественных чисел из n элементов (задано константой). Вычислить разность суммы первой половины элементов и произведения второй половины элементов. Вывести на экран полученное значение.

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

11. Ввести массив вещественных чисел из n элементов (задано константой). Вычислить произведение элементов, расположенных после минимального элемента. Вывести на экран полученное значение.

12. Ввести массив целых чисел из n элементов (задано константой). Последовательно поменять местами элементы на четных и нечетных местах (1-й и 2-й, 3-й и 4-й и тд.. Вывести на экран полученное значение.

13. *Ввести с клавиатуры целочисленный массив из n элементов (задано константой). Найти второй по величине элемент. Вывести на экран найденный элемент, его индекс.

14. *Даны действительные числа а0, а1,..., а5. Получить (в виде массива коэффициентов) многочлен шестой степени (х—а0)(х—а1)... (х—а5).

Лабораторная работа №5.
Матрицы

Задание на лабораторную работу

Изучите материал приведённый ниже. Самостоятельно продумайте алгоритм решения и напишите программу для одного из вариантов индивидуальных заданий.

Необходимая информация

Для выполнения лабораторной работы необходимо изучить раздел «Структурированные типы. Массивы».

Варианты индивидуальных заданий

1. Ввести с клавиатуры вещественную матрицу размерности n´m (заданы константами). Найти максимальный и минимальный элементы и их индексы. Вывести на экран найденные элементы, их индексы.

2. Ввести с клавиатуры вещественную матрицу размерности n´m (заданы константами). Заменить все отрицательные числа их абсолютным значением. Вывести на экран полученную матрицу.

3. Ввести с клавиатуры вещественную матрицу размерности n´m (заданы константами). Вычислить среднее арифметическое для каждого столбца. Вывести исходную матрицу и полученные значения на экран.

4. Ввести с клавиатуры вещественную матрицу размерности n´m (заданы константами). Заменить все положительные числа их квадратом. Вывести на экран полученную матрицу.



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 529; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.168.172 (0.22 с.)