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

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

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

> изображения
Zoya
сообщение 27.12.2005 18:51
Сообщение #1


Гость






Доброго времени суток!
У меня проблема, "Составить программу, которая по заданному числу возможных изображений (не менее 10) на экране давала бы возможность переключения между различными видами изоюражении."
Просто нет сил уже что-то писать, преподавателю все не нравится smile.gif Может вы поможите ?)
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 27.12.2005 18:57
Сообщение #2


Гость






Цитата
Просто нет сил уже что-то писать, преподавателю все не нравится
Отсюда можно сделать вывод, что уже было несколько вариантов, которые были признаны неудачными? Тогда приведи их, может и получится что-то подправить...

А если никаких вариантов нет, то объясни подробнее - что за изображения, откуда берутся, что означает
Цитата
возможность переключения между различными видами изоюражении
(что именно должно происходить, при каких условиях)...
 К началу страницы 
+ Ответить 
Zoya
сообщение 27.12.2005 19:38
Сообщение #3


Гость






[quote name='volvo' date='27.12.2005 18:57' post='57128']
Тогда приведи их, может и получится что-то подправить...

Первый раз я сделала в графе, в окне 10 маленьких окошек, и с помощбю курсора можно их переключать, просто изменяется текстsmile.gifНо препод сказал, что нужно делать в текстовом режиме
Недавно появились наброски другого варианта
program screenswitcher;
uses crt;


type charplace=record
char:byte;
attr:byte;
end;
type screen=record
data:array[0..1999] of charplace;
x,y:byte;{cursor position [optional]}
end;
const MAXSCREENS=10;
type screens=array[1..MAXSCREENS] of screen;

function LoadScreen(var scr:screens;n:byte):boolean;
var i:integer;
begin {screen resolution in textmode is (80 cols x 25rows)=2000 characters}
for i:=0 to 1999 do{in array [0..1999]}
begin
mem[$B800:($0000+2*i)]:=scr[n].data[i].char;
mem[$B800:($0001+2*i+1)]:=scr[n].data[i].attr;
end;
LoadScreen:=true;
end;

function SaveScreen(var scr:screens;n:byte):boolean;
var i:integer;
begin
for i:=0 to 1999 do
begin
scr[n].data[i].char:=mem[$B800:($0000+2*i)];
scr[n].data[i].attr:=mem[$B800:($0001+2*i+1)];
end;
end;
{switching from screen p to screen n}

function SwitchScreen(var scr:screens;ch:char;p,n:byte):boolean;
var i:integer;
begin
SaveScreen(scr,p);
LoadScreen(scr,n);
Repeat
ch:=readkey;
if ord(ch)=80 then
begin
p:=(p+1) mod MAXSCREENS;
LoadScreen(scr,p);
end;
if ord(ch)=72 then
begin
p:=(p-1+MAXSCREENS) mod MAXSCREENS;
LoadScreen(scr,p);
end;

Until (ord(ch)=27);

end;

function ClearScreens(var s:Screens):boolean;
var i,j:integer;
begin
for i:=1 to MAXSCREENS do
for j:=0 to 1999 do
begin
s[i].data[j].char:=$20;
s[i].data[j].attr:=84;
end;
ClearScreens:=true;
end;

var CurrentScreen:integer;
s:screens;
i:integer;
BEGIN
clrscr;
ClearScreens(s);
{for i:=1 to MAXSCREENS do }
begin
writeln('This is screen number ',i);
SwitchScreen(s,i,);
end;
currentscreen:=0;
{mem[$B800:0000]:=ord('A');}
writeln('attr is:',mem[$B800:0000]);
readln;
end.

не знаю, почему не работает..sad.gif

Пользуемся тегами !

Сообщение отредактировано: volvo - 7.11.2006 17:37
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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