Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Nerc
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 5
#1

Создать программу, что бы она выводила буквы линиями и их закрашивала - Turbo Pascal

29.04.2011, 22:09. Просмотров 2140. Ответов 8
Метки нет (Все метки)

Добрый вечер.
Для учебы мне необходимо было создать программу, что бы она выводила буквы линиями и их закрашивала.
Я вроде написал такую прогу, но сначала у меня возникла проблема с ее запуском. Я запустил свою прогу, и Паскаль показал, что у меня не хватает (или не может определиться) GRAPH.TPU. Пошарился по и-нету, вроде ошибку исправил. Дальше создал приложение, ее запускаю, у меня появляется терминал на несколько секунд и закрывается. В Паскале ALT+F5 показало, что отсутствует файл EGAVGA.BGI, хотя он в папке BGI есть и все пути в DERICTORIES прописаны. Но возникла следующая проблема:
Когда я запускаю свою программу, то терминал у меня иногда показывает, что отсутствует файл EGAVGA.BGI, то просто закрывается без ошибки и никаких действий не происходит (программа не выполняется)
НО! у меня есть еще одна программа, которая то же использует граф режим (делит экран на 4 части разными цветами и пишет в них цифры) и она работает. Ошибок нет, все определилось замечательно.
Вот листинг 1-ой программы:
Pascal
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
{Графические возможности. Графический режим. Система координат}
uses Crt, Dos, Graph;
var
  GraphDriver: Integer; {графический драйвер}
  GraphMode: Integer; {графический режим}
  ErrorCode: Integer; {код ошибки граф.режима}
begin
  GraphDriver := Detect; {автораспознование граф.драйвера }
  InitGraph(GraphDriver, GraphMode, ' '); {инициализация графики}
  ErrorCode := GraphResult;
  if ErrorCode <> grOk then {если ошибка при инициализации графики} 
  begin
    Writeln(GraphErrorMsg(ErrorCode)); {выводим сообщение об ошибке}
    Halt(1);
  end;
  SetColor(White); {цвет линий - белый}
  SetLineStyle(SolidLn, 0, ThickWidth); {тип линий - сплошная, толстая}
  Rectangle(100, 100, 120, 200); {рисуем букву П}
  Rectangle(120, 100, 170, 120);
  Rectangle(170, 100, 190, 200);
  SetFillStyle(SolidFill, Red); {тип закраски - сплошная, красная }
  FloodFill(110, 110, White); {3 строки для закраски буквы П}
  FloodFill(130, 110, White);
  FloodFill(180, 110, White);
  Rectangle(220, 100, 310, 120); {рисуем букву Т}
  Rectangle(255, 120, 275, 200);
  SetFillStyle(SolidFill, Green); {тип закраски - сплошная, зеленая}
  FloodFill(230, 110, White);
  FloodFill(265, 130, White);
  Rectangle(340, 100, 410, 120); {рисуем букву Г}
  Rectangle(340, 120, 360, 200);
  SetFillStyle(SolidFill, Blue); {тип закраски - сплошная, синяя}
  FloodFill(350, 110, White);
  FloodFill(350, 130, White);
  ReadKey; {ждем нажатия любой кнопки}
  CloseGraph; {закрываем граф. режим}
end.
А вот листинг 2-ой программы:
Pascal
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
{Модуль CRT. Работа с клавиатурой и экраном}
uses Crt;
procedure DrawNumber(c: Integer); {Рисует число в окне}
begin
  TextBackground(c); {устанавливает цвет фона выводимых символов}
  GotoXY(15, 4); {перемещаем курсор для начала рисования цифры 5}
  Write('    '); {рисуем первую верхнюю линию цифры 5}
  GotoXY(15, 5); {перемещаем курсор для начала рисования второй линии 5}
  Write(' ');
  GotoXY(15, 6);
  Write('    ');
  GotoXY(18, 7);
  Write(' ');
  GotoXY(15, 8);
  Write('    ');
 
  GotoXY(21, 4); {перемещаем курсор для начала рисования цифры 3}
  Write('    '); {рисуем первую верхнюю линию цифры 3}
  GotoXY(24, 5);
  Write(' ');
  GotoXY(21, 6);
  Write('    ');
  GotoXY(24, 7);
  Write(' ');
  GotoXY(21, 8);
  Write('    ');
end;
 
begin
  ClrScr; {очищаем экран}
  Window(1, 1, 40, 12); {создаем левое верхнее окно}
  TextBackground(1); {устанавливаем цвет закраски}
  ClrScr; {очищаем экран, что бы оно закрасилось}
  DrawNumber(2); {рисуем число в окне}
  Window(41, 1, 80, 12); {правое верхнее окно}
  TextBackground(2);
  ClrScr;
  DrawNumber(1);
  Window(1, 13, 40, 25); {левое нижнее окно}
  TextBackground(3);
  ClrScr;
  DrawNumber(4);
  Window(41, 13, 80, 25); {правое нижнее окно}
  TextBackground(4);
  ClrScr;
  DrawNumber(3);
  ReadKey; {ждем нажатия любой клавиши}
end.
В чем может быть проблема?
Заранее спасибо.
Да, и еще:
- моя ОС Win7 SP1.
- попробовал скачать с разных сайтов разные версии Паскаля, но что-то не помогло.

Не по теме:

И почему нельзя в названии топика писать проблема?


http://www.cyberforum.ru/pascal/thread71901.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 22:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создать программу, что бы она выводила буквы линиями и их закрашивала (Turbo Pascal):

Cоставить программу чтобы она выводила картинку:
Cоставить программу чтобы она выводила картинку: * ** *** **** Кол-во...

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

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

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

Как сделать программу что бы она из файла выводила нужные мне строки?
Какие использовать компаненты в Buildere? В какой компанент вставлять файл? В...

8
Puporev
Модератор
54132 / 41765 / 28875
Регистрация: 18.05.2008
Сообщений: 98,294
30.04.2011, 08:06 #2
Цитата Сообщение от Nerc Посмотреть сообщение
И почему нельзя в названии топика писать проблема?
Потому что название темы должно кратко содержать суть проблемы, чтобы эту тему можно было найти в Поиске. Согласитесь, что никто не будет вводить ключевое слово проблема.
С семеркой графический режим Турбо Паскаля будет работать если установить DosBox, или вместо ТП поставить ShoolPack, в котором уже есть DosBox.

Добавлено через 3 минуты
Кстати вторая программа не работает с графическим режимом, а только с текстовым и модулем CRT.
Графический режим это модуль Graph.
0
Nerc
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 5
30.04.2011, 11:26  [ТС] #3
Цитата Сообщение от Puporev Посмотреть сообщение
Потому что название темы должно кратко содержать суть проблемы, чтобы эту тему можно было найти в Поиске. Согласитесь, что никто не будет вводить ключевое слово проблема.
Кстати вторая программа не работает с графическим режимом, а только с текстовым и модулем CRT.
Графический режим это модуль Graph.
Ясно.
А вот SchoolPak у меня есть. И когда я открываю там свой листинг и захожу в экран пользователя, то он мне вот что выдает:http://itmages.ru/image/view/179960/f3983130
А тут ничего прописывать вручную не нужно? Оставить как есть?
http://itmages.ru/image/view/179966/3b663983
0
Puporev
Модератор
54132 / 41765 / 28875
Регистрация: 18.05.2008
Сообщений: 98,294
30.04.2011, 11:30 #4
На картинках ничего не видно.

Добавлено через 1 минуту
Nerc, Попробуйте FreePascal. В нем Паскалевская графика нормально запускается.
0
Nerc
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 5
30.04.2011, 13:30  [ТС] #5
А с самим кодом все нормально?
А в смысле не видно? 1-ый линк на скрин это запущенная моя программа, а 2-ой линк - это пути к папкам, где расположены всякие TPU, BIG и прочее.
0
Puporev
Модератор
54132 / 41765 / 28875
Регистрация: 18.05.2008
Сообщений: 98,294
30.04.2011, 13:35 #6
Да, вот во Фрее Паскаль.
1
Миниатюры
Создать программу, что бы она выводила буквы линиями и их закрашивала  
Nerc
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 5
30.04.2011, 19:58  [ТС] #7
О! точно! Спасяба!!

Добавлено через 1 час 38 минут
А вот еще вопрос, правда не по теме, но думаю ответить сможете.
Мне еще нужно составить блок-схему к моему коду, в какой среде лучше это сделать? Т.е. есть ли какие-то специализированные среды, где бы можно было сделать блок-схему?
0
Puporev
Модератор
54132 / 41765 / 28875
Регистрация: 18.05.2008
Сообщений: 98,294
30.04.2011, 20:19 #8
Да, есть FCEditor, DiamFM
0
TrueTerm
168 / 116 / 45
Регистрация: 25.12.2014
Сообщений: 384
17.02.2015, 10:19 #9
Только что решил проблему с графикой в Windows7\Dosbox\TP7.
Выдавало ошибку "Device driver file not found (EGAVGA.BGI)".
Я поместил этот файл и в текущую папку и в BGI и в корень, и пути в 3-м параметре InitGraph всяко прописывал - не помогало.
Оказалось, что нужно было снять у файла EGAVGA.BGI атрибут "только для чтения". После этого графика заработала.
1
17.02.2015, 10:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2015, 10:19
Привет! Вот еще темы с решениями:

Изменить программу, чтобы она выводила только количество слов?
#include &lt;stdio.h&gt; int main() { char ch, flag=-1; unsigned c=0, n=0,...

Изменить программу так, что бы она учитывала и маленькие и большие буквы
Опять же нужна помощь. Нужно изменить программу так, что бы она учитывала и...

Подкорректировать программу, чтобы она выводила квадрат 100х100 вместо 10х10
Данная программа выводит квадрат 10х10 нужно чтоб выводила 100х100 CSeg...

Изменить программу, чтобы она выводила ряд нечётных случайных чисел от 1 до +k
так, чтобы выводила ряд нечётных случайных чисел от 1 до +k program pr_4;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru