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

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

29.04.2011, 22:09. Просмотров 2155. Ответов 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.
- попробовал скачать с разных сайтов разные версии Паскаля, но что-то не помогло.

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 22:09
Ответы с готовыми решениями:

Составить программу чтобы она выводила картинку
Составить программу чтобы она выводила картинку: ////// \\\\\\ //////...

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

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

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

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

8
Puporev
Модератор
54590 / 42094 / 29065
Регистрация: 18.05.2008
Сообщений: 99,319
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
Модератор
54590 / 42094 / 29065
Регистрация: 18.05.2008
Сообщений: 99,319
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
Модератор
54590 / 42094 / 29065
Регистрация: 18.05.2008
Сообщений: 99,319
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
Модератор
54590 / 42094 / 29065
Регистрация: 18.05.2008
Сообщений: 99,319
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

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

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

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


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

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

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