IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Псевдографика...
Sensitive
сообщение 19.04.2007 15:44
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


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


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.04.2007 16:08
Сообщение #2


Гость






Вот ASCII-коды всех нужных тебе символов...

Горизонтальные - символ #196
Вертикальные - #179

Угловые:
правый верхний #191
левый верхний #218
правый нижний #217
левый нижний #192
 К началу страницы 
+ Ответить 
Sensitive
сообщение 21.04.2007 14:25
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


вот всё,что я смогла сообразитьsad.gif
Подскажите,что сделать дальше,пожалуйста.
И я не смогла додуматься,как сделать,чтоб например с клавиатуры можно было вводить длину вертикальной и горизонтальной черты...
program ornam;
uses crt;
const A=#196; B=#179; C=#218;
D=#191; E=#217; F=#192;
var i:byte;
begin
clrscr;
gotoxy(1,7);
for i:=1 to 5 do
begin
write(A);
end;
write(E);
for i:=6 downto 3 do
begin
gotoxy(6,i);
write(B);
end;
gotoxy(6,2);
write©;
for i:=7 to 12 do
begin
gotoxy(i,2);
write(A);
end;
write(D);
for i:=3 to 4 do
begin
gotoxy(13,i);
write(B);
end;
gotoxy(13,5);
write(E);
for i:=12 downto 11 do
begin
gotoxy(i,5);
write(A);
end;
gotoxy(10,5);
write©;
gotoxy(10,6);
write(B);
gotoxy(10,7);
write(F);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 21.04.2007 16:16
Сообщение #4


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


А так? blum.gif
uses crt;
const A=#196; B=#179; C=#218;
D=#191; E=#217; F=#192;
var i:byte;
begin
clrscr;
gotoxy(1,7);
for i:=1 to 5 do
begin
write(A);
end;
write(E);
for i:=6 downto 3 do
begin
gotoxy(6,i);
write(B);
end;
gotoxy(6,2);
write©;
for i:=7 to 12 do
begin
gotoxy(i,2);
write(A);
end;
write(D);
for i:=3 to 4 do
begin
gotoxy(13,i);
write(B);
end;
gotoxy(13,5);
write(E);
for i:=12 downto 11 do
begin
gotoxy(i,5);
write(A);
end;
for i:=1 to 5 do begin
gotoxy(i+10,7);
write(A);
end;
write(E);
for i:=6 downto 3 do begin
gotoxy(16,i);
write(B);
end;
gotoxy(16,2);
write©;
for i:=7 to 12 do
begin
gotoxy(i+10,2);
write(A);
end;
write(D);
for i:=3 to 4 do
begin
gotoxy(23,i);
write(B);
end;
gotoxy(23,5);
write(E);
for i:=12 downto 11 do
begin
gotoxy(i+10,5);
write(A);
end;
gotoxy(20,5);
write©;
for i:=6 downto 6 do begin
gotoxy(20,i);
write(B);
end;
gotoxy(20,7);
write(#192);
for i:=1 to 5 do begin
gotoxy(i+20,7);
write(#196);
end;
gotoxy(13,5);
write(E);
gotoxy(10,5);
write©;
gotoxy(10,6);
write(B);
gotoxy(10,7);
write(F);
readln;
end.


Добавлено через 2 мин.
Результат:
Прикрепленное изображение


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sensitive
сообщение 23.04.2007 16:56
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Артемий, спасибо. Но мне же нужно сделать такой орнамент по всей ширине экрана. Это постоянно добавлять циклы? Будет же огромная программа. А никак нельзя сделать, чтобы этот кусочек повторялся до тех пор пока не привысится ширина экрана? (repeat...until) я не могу понять как это организовать.....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.04.2007 17:24
Сообщение #6


Гость






uses crt;
const
width = 80;
var
i, j:byte;

begin
clrscr;

gotoxy(1,7);
for j := 1 to (width div 10) + 1 do begin

for i := 1 to 5 do write(#196);
write(#217);
for i := 1 to 4 do begin
gotoxy(wherex - 1, wherey - 1); write(#179);
end;
gotoxy(wherex - 1, wherey - 1); write(#218);
for i := 1 to 6 do write(#196);
write(#191);
for i := 1 to 2 do begin
gotoxy(wherex - 1, wherey + 1); write(#179);
end;
gotoxy(wherex - 1, wherey + 1); write(#217);
for i := 1 to 5 do begin
gotoxy(wherex - 2, wherey); write(#196);
end;
gotoxy(wherex - 1, wherey); write(#218);
for i := 1 to 2 do begin
gotoxy(wherex - 1, wherey + 1); write(#179);
end;
gotoxy(wherex - 1, wherey); write(#192);

end;
readln;
end.

Так?
 К началу страницы 
+ Ответить 
Sensitive
сообщение 23.04.2007 23:26
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Да,volvo, так, спасибо. Совсем позабыла, кстати, про ф-цию where (x,y)...
Один только вопрос: почему в первом цикле
for j := 1 to (width div 10) + 1 do begin

прибавляем единицу?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.04.2007 23:32
Сообщение #8


Гость






Ну, я же начинаю с единицы, а не с нуля...
 К началу страницы 
+ Ответить 
Sensitive
сообщение 23.04.2007 23:43
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


А ну да, с единицыsmile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sensitive
сообщение 25.04.2007 13:11
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Я извиняюсь, а как можно сделать, чтоб этот орнамент был на весь экран.
Я так понимаю нужно выводить его по строчкам... но как это сделать?
Помогите,если сможете...
(с другим орнаментом получилось, а с этим никак!)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.04.2007 13:17
Сообщение #11


Гость






Добавь еще один - внешний - цикл:

  for k := 1 to 3 do begin { <--- Вот этот }

gotoxy(1, 7*pred(k) + 7);
for j := 1 to (width div 10) + 1 do begin

for i := 1 to 5 do write(#196);
write(#217);
for i := 1 to 4 do begin
gotoxy(wherex - 1, wherey - 1); write(#179);
end;
gotoxy(wherex - 1, wherey - 1); write(#218);
for i := 1 to 6 do write(#196);
write(#191);
for i := 1 to 2 do begin
gotoxy(wherex - 1, wherey + 1); write(#179);
end;
gotoxy(wherex - 1, wherey + 1); write(#217);
for i := 1 to 5 do begin
gotoxy(wherex - 2, wherey); write(#196);
end;
gotoxy(wherex - 1, wherey); write(#218);
for i := 1 to 2 do begin
gotoxy(wherex - 1, wherey + 1); write(#179);
end;
gotoxy(wherex - 1, wherey); write(#192);

end;

end;

 К началу страницы 
+ Ответить 
Sensitive
сообщение 25.04.2007 13:32
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Спасибо, volvo. Я не могла понять куда еще один цикл поставить-теперь понятно как.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"