Реферат: Система программирования Турбо Паскаль - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Система программирования Турбо Паскаль

Банк рефератов / Информатика, информационные технологии

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 20 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

17 ВВЕДЕНИЕ Система пр ограммирования Турбо Паскаль представляет собой единство двух в извес тной степени самостоятельных начал: компилятора с языка программирова ния Паскаль (язык назван в честь выдающегося французского математика и ф илософа Блеза Паскаля (1623-1662)) и некоторой инструментальной программной об олочки, способствующей повышению эффективности создания программ. Паскаль – з амечательный язык программирования, который относительно прост в изуч ении, довольно ясен и логичен и, будучи первым изучаемым языком программ ирования, приучает к хорошему стилю. Паскаль воспитывает дисциплину стр уктурного программирования и программирования вообще лучше, чем други е языки программирования, такие, как, например, БЕЙСИК. Паскаль – гибкий и развитый в отношении типов данных язык. Привлекатель ны его рекурсивные возможности, а также поддержка технологии объектно-о риентированного программирования. Изучение программирования на языке Паскаль может дать хороший старт в о громный и увлекательный мир программирования. Обучение языку программ ирования проходит намного более эффективно с изучением примеров. Чаще всего (процедурное) программирование использует итерации , то есть циклы; однако рекурсия – описание объекта или вы числения в терминах самого себя – является более простым математическ им понятием, а также мощной, но мало используемой техникой программирова ния. Некоторые программисты считают (и не без оснований), что рекурсия – это с ердце и душа языка Паскаль. В этой работе мы рассмотрим применение рекур сии в программах на Паскале. Здесь рассматриваются примеры рекурсивных алгоритмов и программирование комбинаторных вычислений. Ко всему прочему мы научимся представлять данные в памяти ЭВМ и разрабат ывать программы в среде Турбо Паскаль. 1. Постановка задачи Написать программу-игру. Игра-Спички. Дано 100 спичек. В игре принимают участие 2 игрока. Каждый, из которых может в зять от 1 до 10 спичек за один ход. Тот, чья очередь подойдет, когда в кучке ост анется 1 спичка – проиграл. 2. Описание методов Использован ие модуля CRT для очис тки экрана и модуля GRAPH для графического отображения. Основными процедурами, испол ьзовавшимися в программе, являются графические процедуры типа LINE ( X 1, Y 1, X 2, Y 2: integer ), OutTextXY ( X , Y : integer ; TextString : string ), SetFillStyle ( Pattern : word ; Color : word ), Bar ( X 1, Y 1, X 2, Y 2: integer ). Применение условных опера торов IF ... THEN ... ELSE ..., использование циклов WHILE ... DO ... , REPEAT ... UNTIL .... change ( var A , B : string ) – процедура, написанная вн утри программы. LINE ( X 1, Y 1, X 2, Y 2: integer ) – процедура, которая рисуе т линию от точки с координатами X 1, Y 1 до т очки с координатами X 2, Y 2 OutTextXY ( X , Y : integer ; TextString : string ) - выводит заданный текст TextString , начиная с коорди наты первой буквы, которые задаются по осям X , Y SetFillStyle ( Pattern : word ; Color : word ) – процедура, указывающая цв ет заполнения. Используется вместе с процедурой Bar ( X 1, Y 1, X 2, Y 2: integer ) Bar ( X 1, Y 1, X 2, Y 2: integer ) – процедура, которая рисуе т прямоугольник, закрашиваемый с помощью процедуры SetFillStyle ( Pattern : word ; Color : word ) Оператор IF ... THEN ... ELSE ... используется для выражения условия выполнения определенного действия, после которого выполняется другое определенное действие при условии, что было выполнено предыдуще е действие, иначе выполняется другое действие FOR I := A TO N DO ... оператор цикла, который испо льзуется для повторения определенного действия или нескольких определ енных действии, начиная с A до N -го ра за. Change ( var A , B : string ) – процедура, позволяющая м енять местами две переменные A и B . 3. Разработка алгоритма Прежде всег о, у нас есть 2 игрока. И не зависит от того, кто ходит, и нам не нужно знать кто , сколько спичек взял всего. Что упрощает нашу задачу. Но тем не менее, есть 100 спичек. Каждый раз нам необходимо отнимать то количество спичек, котор ое возьмет любой из игроков, но необходимо учитывать, что разрешено брат ь только от 1 до 10 спичек. Поэтому здесь необходимо ограничить игроков. Пус ть а – количество спичек на данный момент, x – к оличество взятых спичек на данный момент. Тогда организуем цикл WHILE ... DO ...: while a>1 do begin … end ; В начале име ем 100 спичек, то есть а=100. Заведем переменную l типа boolean . Пусть ее значение будет false . Тогда, далее напишем еще один цикл: if a in [2..100] then repeat … until l=true; Переменная l примет значение true в том случае, когда взято от 1 до 10 спичек. Считаем переменну ю x : readln ( x ); Если ввели от 1 до 10, то: if (x<1) or (x>10) then begin … end Иначе, если о сталось меньшее количество спичек по отношению к тому, сколько запрашив ают взять: else begin if a-x<1 then begin … end Иначе, в интересующем нас варианте: else begin … a:=a-x; l:=true end; Здесь помимо присваивания l значения true , есть еще одно действие, кото рое показывает, сколько же спичек на данный момент осталось. На этом заканчивается расчет программы. Но еще остается оформление с ис пользованием графики, то есть модуля GRAPH . Для начала выведем правила игры. Расположим их в верхней части экрана: outTextXY(300,10,'IGRA: 100 spi4ek'); outTextXY(10,20,'Pravila igri: pervona4alno imeetsa 100 spi4ek'); outTextXY(10,30,'Za odin hod igrok moget brat ot odnoy do 10 spi4ek'); outTextXY(10,40,'Tot u kogo ostanetsa poslednyaya spi4ka, tot viigral'); Далее нам не обходимо нарисовать все 100 спичек. Сделаем это следующим образом: выведем 4 ряда по 25 спичек в каждом. Расположим их ниже условия – по центру экрана: xx:=200; y:=200; for i:=1 to 25 do begin line(xx,y,xx,y+10); line(xx,y+15,xx,y+25); line(xx,y+30,xx,y+40); line(xx,y+45,xx,y+55); xx:=xx+5; end; Здесь xx – начальная координа та по X , а y – начальная координата по Y . Теперь необходимо очистить верхнюю часть экрана, где мы выводили услови е. Для этого воспользуемся двумя процедурами: setfillstyle(black,black); bar (0,0,600,200); С помощью которых программа рисует прямоугольник с координатами верхнего левого угла 0,0 и координатами нижнего правого угла 600,200. И вся фигура закрашивается черным цветом. В дальнейшем мы будем использовать именно этот способ затирания ненужн ых элементов текста. Теперь предстоит одно из самого сложного в этой программе. Необходимо ка ждый раз как только будут взяты спички, удалять это количество из общей к учи. Для этого разобьем весь процесс на 4 части, когда: · количество спичек м еньше 25, · количество спичек больше 25, но ме ньше 50, · количество спичек больше 50, но ме ньше 75, · количество спичек больше 75 Пусть переменная kol – количество спичек, оставшихся в куче, на данный момент, тогда: if kol<26 then begin kol:=kol+x; setfillstyle(black,black); bar(xx,y,xx+(x-1)*5+5,y+10); xx:=xx+(x-1)*5+5; if kol>25 then begin x:=kol-25; kol:=26; xx:=195; end; end; if (kol>25) and (kol<51) then begin … y:=215; if kol>50 then begin x:=kol-51; kol:=51; xx:=195; end; end; if (kol>50) and (kol<76) then begin … y:=230; if kol>75 then begin x:=kol-76; xx:=195; end; end; if (kol>75) and (kol<101) then begin y:=245; … end; Здесь удале ние спичек происходит с помощью тех же процедур, что и затирание условия задачи: setfillstyle(black,black); bar(xx,y,xx+(x-1)*5+5,y+10); xx:=xx+(x-1)*5+5; Здесь главн ое заключается в постановке координат. Каждый раз должно удаляться неко е количество спичек, начиная с последней взятой, что обеспечивается при сваиванием переменной xx нового значения xx +( x -1)*5+5 , где x – количество взятых спичек. Следует учесть, что координаты каждой сточки изменяются так, что y увеличивается на 15, а x должен вновь стать равным 195, что обеспечивается с помощью условного опер атора: y:=215; if kol>50 then begin x:=kol-51; kol:=51; xx:=195; end; После того, к ак игра заканчивается, экран заново очищается, но на этот раз полностью: setfillstyle(black,black); bar (0,0,800,400); А далее выводится информация о результате игры, а также веселая улыбка. Т екст выводится с помощью OutTextXY (), а рисунок: setcolor(red); setLineStyle(0,0,3); circle(100,300,60); circle(70,290,10); circle(130,290,10); arc(100,310,200,340,30); setcolor(14); line(20,220,50,250); line(50,190,80,230); line(120,230,150,190); line(150,250,180,220); arc(X,Y:integer; StAngle,EndAngle,Radius:word) – процедура , рисующая полукруг с координатами центра X,Y, радиусом Radius, StAngle, EndAngle – угол поворота . Листинг : program kursovaya3; uses crt,graph; var a,x,y,i,xx,kol:integer; ga,gm,error:integer; b,c,s:string; l:boolean; procedure change(var j,h:string); var q:string; begin q:=j; j:=h; h:=q; end; begin clrscr; ga:=detect; gm:=detect; initgraph(ga,gm,'c:\Pascal\UNITS'); error:=graphresult; if error<>grok then begin writeln('error! Video Driver doesnt found',#10#13,grapherrormsg(error)); halt; end; a:=100; outTextXY(300,10,'IGRA: 100 spi4ek'); outTextXY(10,20,'Pravila igri: pervona4alno imeetsa 100 spi4ek'); outTextXY(10,30,'Za odin hod igrok moget brat ot odnoy do 10 spi4ek'); outTextXY(10,40,'Tot u kogo ostanetsa poslednyaya spi4ka, tot viigral'); xx:=200; y:=200; for i:=1 to 25 do begin line(xx,y,xx,y+10); line(xx,y+15,xx,y+25); line(xx,y+30,xx,y+40); line(xx,y+45,xx,y+55); xx:=xx+5; end; outTextXY(10,60,'Vvedite imya pervogo igroka'); readln(b); outTextXY(10,70,'Vvedite imya vtorogo igroka'); readln(c); xx:=195; while a>1 do begin l:=false; if a in [2..100] then repeat begin delete setfillstyle(black,black); bar(0,0,600,200); end of delete outTextXY(20,20,'v ku4ke imeetsa: '); str(a,s); outTextXY(160,20,s); outTextXY(210,20,' spi4ek'); outTextXY(20,30,b); outTextXY(40+length(b),30,' vash hod:'); readln(x); if (x<1) or (x>10) then begin outTextXY(20,40,'Vi popitalis vzat '); str(x,s); outTextXY(160,40,s); outTextXY(190,40,' spi4ek, a mogno tolko v predelah ot 1 do 10') end else begin if a-x<1 then begin outTextXY(20,50,'Ostalos '); str(a,s); outTextXY(90,50,s); outTextXY(130,50,'spi4ek, poetomu max, shto vi mogete vzat = '); str(a-1,s); outTextXY(20,60,s) end else begin outTextXY(20,70,b); outTextXY(30+length(b),70,', vash hod prinat'); outTextXY(20,80,'Nagmite "Enter dlya prodolgenia"'); a:=a-x; l:=true; delete setfillstyle(black,black); bar(20,20,300,30); if kol<26 then begin kol:=kol+x; setfillstyle(black,black); bar(xx,y,xx+(x-1)*5+5,y+10); xx:=xx+(x-1)*5+5; if kol>25 then begin x:=kol-25; kol:=26; xx:=195; end; end; str(kol,s); outTextXY(20,90,s); if (kol>25) and (kol<51) then begin kol:=kol+x; y:=215; setfillstyle(black,black); bar(xx,y,xx+(x-1)*5+5,y+10); xx:=xx+(x-1)*5+5; if kol>50 then begin x:=kol-51; kol:=51; xx:=195; end; end; if (kol>50) and (kol<76) then begin kol:=kol+x; y:=230; setfillstyle(black,black); bar(xx,y,xx+(x-1)*5+5,y+10); xx:=xx+(x-1)*5+5; if kol>75 then begin x:=kol-76; xx:=195; end; end; str(kol,s); outtextXY(20,90,s); if (kol>75) and (kol<101) then begin y:=245; setfillstyle(black,black); bar(xx,y,xx+(x-1)*5+5,y+10); xx:=xx+(x-1)*5+5; end; end of delete end; end; readln; end; until l=true; change(b,c); setcolor(black); outTextXY(30+length(b),70,', vash hod prinat'); outTextXY(20,80,'Nagmite "Enter dlya prodolgenia"'); setcolor(white); end; setfillstyle(black,black); bar(0,0,800,400); outTextXY(20,100,'Pozdravlau s viigrishem igrok '); outTextXY(260,100,b); outTextXY(250,10,'IGRA: 100 spi4ek'); outTextXY(250,200,'THX FOR USING IT'); outTextXY(300,400,'KURSOVAYA: IGRA-SPI4KI, ALMATY, 2005'); setcolor(red); setLineStyle(0,0,3); circle(100,300,60); circle(70,290,10); circle(130,290,10); arc(100,310,200,340,30); setcolor(14); line(20,220,50,250); line(50,190,80,230); line(120,230,150,190); line(150,250,180,220); readln; closegraph end. Заключен ие Итак, п одведём итоги. Мы научились разрабатывать программы в среде Турбо Паска ль, строить к ним блок-схемы и представлять данные в памяти ЭВМ. Также мы п ознакомились с “маленьким чудом” в программировании – рекурсией и рек урсивными алгоритмами. Так поче му же используют рекурсию? Дело в том, что многие алгоритмы можно изящно и надёжно написать с помощью рекурсии, в то время как итерационное решение трудно запрограммировать и легко сделать ошибки. Примером тому служат а лгоритм быстрой сортировки и алгоритмы обработки древовидных структур данных. Языковые понятия опираются исключительно на рекурсию, а не на ит ерацию. Даже для обычных языков типа С и Паскаль рекурсию, вероятно, следу ет использовать более часто, чем это делается, из-за краткости и ясности п рограмм, которые получаются в результате. Рекурсия отражает черту абстрактного мышления, проявляющуюся в самых р азличных приложениях (в математике, синтаксическом анализе и трансляци и, древовидной сортировке и обработке данных с динамической структурой, шахматных задачах и т.д.). Пользование ею избавляет от необходимости посл едовательного (и часто, утомительного) описания процессов. Таким образом, рекурсия не является чем-то нарочито усложнённым и предна значенным для касты посвящённых, а представляет собой ещё одно средство программирования, которым можно пользоваться удачно или злоупотреблят ь, как и всяким другим. Урок таков: следует избегать рекурсивного решения там, где есть очевидно е итеративное решение, и использовать его тогда, когда без рекурсии прос то не обойтись. “Итерация свойственна человеку, а рекурсия – богу” (Л. П итер Дойч). СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ: 1. Бен-Ари М. Языки программирования. П рактический сравнительный анализ: Пер. с англ. – М.: Мир, 2000. – 366 с., ил. 2. Зуев Е . А . Turbo Pascal. Практическое программиро вание. – М.: Приор, 1997. – 336с. 3. Кнут Д. Искусство программирования , том 1. Основные алгоритмы, 3-е изд.: Пер. с англ. – М.: Издательский дом "Вильямс ", 2000. – 720 с. 4. Немню гин С.А. Turbo Pascal . – СПб.: Издательство “Питер” , 2000. – 496 с., ил. 5. Немню гин С.А. Turbo Pascal : практикум – СПб.: Питер, 2001. – 256 с., ил. 6. Рубенкинг Н.Дж. Турбо Паск аль для Windows: в 2-х томах. Т.1. Пер. с англ. - М.: Мир, 1993 . – 536 с., ил. 7. Рубенкинг Н.Дж. Турбо Паскаль для Windows: в 2-х томах. Т.2. Пер. с англ. - М.: Мир, 1993 . – 536 с., ил.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Умному труднее прикинуться дураком, чем дураку - умным.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по информатике и информационным технологиям "Система программирования Турбо Паскаль", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru