1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
По строкам дали задание сделать кроссворд. Вот один из них.
uses crt; type vect=array [1..7,1..8] of string; var i,j,c,v:integer; x,y:vect;k:char; begin x[1,2]:='в';x[2,2]:='о';x[3,2]:='з';x[4,2]:='г';x[5,2]:='л';x[6,2]:='а';x[7,2]:='с'; x[1,4]:='л';x[2,4]:='а';x[3,4]:='т';x[5,4]:='ы'; x[6,5]:='а';x[7,5]:='с'; x[1,6]:='н';x[2,6]:='о';x[3,6]:='т';x[4,6]:='а'; x[1,8]:='с';x[2,8]:='п';x[3,8]:='е';x[4,8]:='к';x[5,8]:='т';x[6,8]:='р'; x[1,3]:='и';x[1,5]:='ь';x[1,7]:='ю'; x[3,1]:='д';x[3,3]:='о'; x[6,3]:='т';x[6,4]:='л';x[6,6]:='с'; clrscr; c:=2;v:=2; textcolor(green); writeln(' ЪДї '); writeln(' і і '); writeln('ЪДВДЕДЕДВДВДВДї'); writeln('і і і і і і і і'); writeln('ГДЕДЕДЕДБДЕДЕДЩ'); writeln('і і і і і і '); writeln('ГДЕДЕДЕДї ГДґ '); writeln('і і і і і і і '); writeln('ГДЕДБДБДЩ ГДЕДї'); writeln('і і і і і'); writeln('ГДЕДВДВДї ГДЕДЩ'); writeln('і і і і і і і '); writeln('ГДЕДБДБДЩ АДЩ '); writeln('і і '); writeln('ГДЕДВДВДВДВДї '); writeln('і і і і і і і '); writeln('АДБДБДБДБДБДЩ '); gotoxy(c,v); repeat gotoxy(c,v); k:=readkey; case k of #72: begin v:=v-2;gotoxy(c,v);end; #75: begin c:=c-2;gotoxy(c,v);end; #77: begin c:=c+2;gotoxy(c,v);end; #80: begin v:=v+2;gotoxy(c,v);end; #13: begin i:=c div 2;j:=v div 2; readln(y[i,j]);gotoxy(c,v);end; #59: begin for i:=1 to 7 do for j:=1 to 8 do if (y[i,j]<>' ')and(y[i,j]<>x[i,j]) then begin textcolor(red); gotoxy(i*2,j*2);write(y[i,j]); gotoxy(i*2,j*2); textcolor(green); end; end; end; gotoxy(20,15);writeln(' '); gotoxy(20,10);writeln(' ');
if (c>1)and(c<15)and(v=4)then begin gotoxy(20,10);writeln('восклицание');gotoxy(c,v);end; if (c>1)and(c<13)and(v=16)then begin gotoxy(20,10);writeln('цвета радуги по сути');gotoxy(c,v);end; if (c>1)and(c<9)and(v=8)then begin gotoxy(20,10);writeln('одежда рыцаря');gotoxy(c,v);end; if (c>1)and(c<9)and(v=12)then begin gotoxy(20,10);writeln('музыкальный знак');gotoxy(c,v);end; if (c>11)and(c<15)and(v=10)then begin gotoxy(20,10);writeln('профессионал');gotoxy(c,v);end; if (v>2)and(v<17)and(c=2)then begin gotoxy(20,15);writeln('столица Литвы');gotoxy(c,v);end; if (v>1)and(v<9)and(c=6)then begin gotoxy(20,15);writeln('укрепленная огневая точка');gotoxy(c,v);end; if (v>2)and(v<13)and(c=12)then begin gotoxy(20,15);writeln('книга карт');gotoxy(c,v);end; until readkey=#27; clrscr; gotoxy(20,15); writeln('Спасибо за просмотр программы'); readln; end.
Чё то в глючный какой-то. Не всегда работает как надо. Хотел переделать вот в такой
uses crt; type vect=array [1..18,1..24] of string; var i,j,c,v:integer; x,y:vect; k:char; begin x[2,7]:='b';x[4,7]:='r';x[6,7]:='a';x[8,7]:='z';x[10,7]:='i';x[12,7]:='l';x[14,7]:='i'; x[16,7]:='a';
clrscr; c:=2;v:=2; textcolor(green); writeln(' ЪДї'); writeln(' і і'); writeln('ЪДВДВДЕДЕДВДВДї '); writeln('і і і і і і і і'); writeln('АДБДБДЕДЕДБДБДЩ'); writeln(' і і '); writeln(' ГДґ'); writeln(' і і'); writeln(' ГДґ ЪДї'); writeln(' і і і і'); writeln(' ЪДВДЕДЕДВДВДЕДґ ЪДї '); writeln(' і і і і і і і і і і'); writeln(' АДБДЕДЕДБДБДЕДґ ГДґ'); writeln(' і і і і і і'); writeln(' ГДґ ГДґ ГДґ'); writeln(' і і і і і і'); writeln(' АДЩ ЪДЕДЕДВДВДЕДґ '); writeln(' і і і і і і і'); writeln(' АДБДБДБДБДБДЩ'); gotoxy(c,v); repeat gotoxy(c,v); k:=readkey; case k of #72: begin v:=v-2;gotoxy(c,v);end; #75: begin c:=c-2;gotoxy(c,v);end; #77: begin c:=c+2;gotoxy(c,v);end; #80: begin v:=v+2;gotoxy(c,v);end; #13: begin i:=c div 2;j:=v div 2; readln(y[i,j]);gotoxy(c,v);end; #59: begin for i:=1 to 16 do for j:=1 to 8 do if (y[i,j]<>' ')and(y[i,j]<>x[i,j]) then begin textcolor(red); gotoxy(i*2,j*2);write(y[i,j]); gotoxy(i*2,j*2); textcolor(green); end; end; end; gotoxy(20,15); writeln('Спасибо за просмотр программы'); readln; end.
Выдаёт ошибки. Помогите пожалуйста. Может по строкам есть кроссворды и по проще? Или не глючные. Буду рад помощи!
barlog, 2 ошибки: первая - синтаксическая, июо ловится компилятором... Ты открыл цикл Repeat, но не закрыл его... Слова Until у тебя в программе нет...
Вторая - более серьезная: программа будет компилироваться, но работать правильно начнет только тогда, когда ты эту ошибку исправишь... Коды стрелок - расширенные, т.е. сначала идет символ с кодом #0, и только потом - сам код клавиши (поищи по форуму, было несколько раз, почему это делается, и как с этим работать)...
С учетом этого, нижнюю часть программы (начиная от слова Repeat) я бы переделал так:
repeat gotoxy(c,v); k:=readkey; case k of #13: begin i:=c div 2;j:=v div 2; readln(y[i,j]);gotoxy(c,v);end; #0: case readkey of #72: begin v:=v-2;gotoxy(c,v);end; #75: begin c:=c-2;gotoxy(c,v);end; #77: begin c:=c+2;gotoxy(c,v);end; #80: begin v:=v+2;gotoxy(c,v);end; #59: begin for i:=1 to 16 do for j:=1 to 8 do if (y[i,j]<>' ')and(y[i,j]<>x[i,j]) then begin textcolor(red); gotoxy(i*2,j*2);write(y[i,j]); gotoxy(i*2,j*2); textcolor(green); end; end; end; end; until k = #27;
gotoxy(20,15); writeln('Спасибо за просмотр программы'); readln; end.
Теперь программа деет тебе ходить по клеткам ... Осталось дополнить функциональность...