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

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

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

 
 Ответить  Открыть новую тему 
> Кроссворд, Задание по строкам
сообщение
Сообщение #1


Новичок
*

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

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


По строкам дали задание сделать кроссворд.
Вот один из них.
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';

x[4,2]:='e';x[4,4]:='v';x[4,6]:='e';x[4,8]:='r';x[4,10]:='e';x[4,12]:='s';x[4,14]:='t';

x[12,4]:='k';x[12,6]:='o';x[12,8]:='l';x[12,10]:='o';x[12,14]:='m';x[12,16]:='b';x[12,18]:='o';

x[12,6]:='н';x[2,6]:='о';x[3,6]:='т';x[4,6]:='а';

x[18,14]:='f';x[18,16]:='u';x[18,18]:='t';x[18,20]:='b';x[18,22]:='o';x[18,24]:='l';

x[10,16]:='p';x[12,16]:='o';x[14,16]:='r';x[14,18]:='t';x[14,20]:='u';

x[18,24]:='r';x[16,24]:='e';x[14,24]:='a';x[12,24]:='l';


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.

Выдаёт ошибки. Помогите пожалуйста. Может по строкам есть кроссворды и по проще? Или не глючные.
Буду рад помощи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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.

Теперь программа деет тебе ходить по клеткам ... Осталось дополнить функциональность...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


При попадании в определённуй клетку он выводит вопрос на который надо ответить.
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
#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;

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.

Надо доделать этот вариант кроссворда до рабочего состояния. Если получиться то смогу переделать на другие вопросы потом. Нужно чтобы вводил тоже без глюков, и проверял на правильность ответ. Если так можено то помоги на премере этого кроссворда!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


Окончательный вариант кроссворда. Нужно как то упростить ввод. Приходиться постоянно нажимать Enter. И чтобы принеправельном вводе и нажатие на F1 слово меняло цвет или выводилось сообщения о неправильном ответе.
uses crt;
type vect=array [1..10,1..10] of string;
var i,j,c,v:integer;
x,y:vect;k:char;
begin
x[1,5]:='Ф';x[1,6]:='л';x[1,7]:='а';x[1,8]:='г';
x[2,2]:='з';x[2,3]:='и';x[2,4]:='з';x[2,5]:='У';
x[3,5]:='Т';x[3,6]:='у';x[3,7]:='л';x[3,8]:='а';
x[4,2]:='к';x[4,3]:='р';x[4,4]:='а';x[4,5]:='Б';
x[5,5]:='О';x[5,6]:='с';x[5,7]:='л';x[5,8]:='о';
x[6,2]:='р';x[6,3]:='е';x[6,4]:='а';x[6,5]:='Л';
clrscr;
c:=2;v:=2;
textcolor(green);
writeln(' ЪДВДВДВДї ');
writeln(' 1 і і і і і ');
writeln(' ЪДВДВДЕДЕДБДБДЩ');
writeln('2 і і і і і');
writeln(' АДБДБДЕДЕДВДВДї ');
writeln(' 3 і і і і і');
writeln(' ЪДВДВДЕДЕДБДБДЩ');
writeln('4 і і і і і');
writeln(' АДБДБДЕДЕДВДВДї');
writeln(' 5 і і і і і');
writeln(' ЪДВДВДЕДЕДБДБДЩ');
writeln('6 і і і і і');
writeln(' АДБДБДБДЩ');

writeln('1. Для выхода нажмите Esc');
writeln('2. Для ввода нажмите Enter');
gotoxy(35,5); writeln('1. Один из составляющих визитной карточки любой страны?');
gotoxy(35,6); writeln('2. Футбольная кличка Зидана?');
gotoxy(35,7); writeln('3. Куда с самоварами не ездят?');
gotoxy(35,8); writeln('4. Морская закуска к пиву?');
gotoxy(35,9); writeln('5. Столица Норвегии?');
gotoxy(35,10); writeln('6. Футбольный <Королевский клуб>');

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 10 do
for j:=1 to 10 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,20);
writeln('Спасибо за просмотр программы');
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 19.04.2024 0:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name