Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массивы, конь на шахматной доске 
:(
    Опции темы
gerda
Дата 14.11.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2005

Репутация: нет
Всего: нет



помогите пожалуйсто с програмкойб никак не могу сделать smile

дан буквенный рубеж с а до h и натуральное число n=<8. Например а1. Парное число расматривается на шахматном столике, на котором находится конь. Cоздать шахматний столик, отметив X те места которие конь прошел и остальние 0

как я понилаб это виглядит так если мы вводим b1, то;

a b c d e f g h
1x x x x
2 x x
3x x x
4
5
6
7
8

а в пустих местах 0.
конь просто должен с одного у4астка отпригать все места....




например если бы вместо коня нужно было бы поставить дамку то при вводе b2
1 2 3 4 5 6 7
a x x x
b x x x x x x x x
c x x x
d x
e x
f x
h x



сделала маленький набросок в файлах smile
но навсякий слу4ий напишу и сюда...


#include<iostream>


// Проверяем удовлетворяет ли конкретная клетка условиям
int check(int ii,int jj,int horisontal, int vertical)
{
if((ii==horisontal-1)&&(jj==vertical-2)) return 0;
if((ii==horisontal+1)&&(jj==vertical-2)) return 0;
if((ii==horisontal-2)&&(jj==vertical-1)) return 0;
if((ii==horisontal+2)&&(jj==vertical-1)) return 0;
if((ii==horisontal-2)&&(jj==vertical+1)) return 0;
if((ii==horisontal+2)&&(jj==vertical+1)) return 0;
if((ii==horisontal-1)&&(jj==vertical+2)) return 0;
if((ii==horisontal+1)&&(jj==vertical+2)) return 0;
return 1;
}
int main(int argc, char* argv[])
{
if(argc!=3)
{
cprintf("%s","Wrong parameters");
getch();
return -1;
}
int horisontal = StrToInt(argv[1])-1;
int vertical = StrToInt(argv[2])-1;


int desk[8][8];
for(int ii=0;ii<8;ii++)
{
for(int jj=0;jj<8;jj++)
{
if(check(jj,ii,horisontal,vertical)==0) desk[ii][jj]=1;
else desk[ii][jj]=0;
cprintf("%d%s",desk[ii][jj]," ");
}
cprintf("%s","\r\n");
}
getch();
return 0;
}

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  lab2.cpp 1,08 Kb
PM MAIL   Вверх
Бегемот
Дата 14.11.2005, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: 1
Всего: 3



Привет,gerda.
Несовсем понятно в чём проблема-то.
У тебя рабочий код, за исключением маленьких нюансов:
- неподключены conio.h и stdio.h
- непонятно зачем подключен iostream,
- за место StrToInt применяй явное преобразование типов (int)
... или вопрос в выводе в те места, куда сходил конь, вместо единичек - "X"?
PM MAIL   Вверх
gerda
Дата 14.11.2005, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2005

Репутация: нет
Всего: нет



в этом тоже проблема smile просто програмка не работаетб ошибки какието smile
спасибо за советб попробаю smile
PM MAIL   Вверх
gerda
Дата 15.11.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2005

Репутация: нет
Всего: нет



#include <iostream>
#include <conio.h>
#include <stdio.h>
int w;
int check(int ii,int jj,int horisontal, int vertical)
{
if((ii==horisontal-1)&&(jj==vertical-2)) return 0;
if((ii==horisontal+1)&&(jj==vertical-2)) return 0;
if((ii==horisontal-2)&&(jj==vertical-1)) return 0;
if((ii==horisontal+2)&&(jj==vertical-1)) return 0;
if((ii==horisontal-2)&&(jj==vertical+1)) return 0;
if((ii==horisontal+2)&&(jj==vertical+1)) return 0;
if((ii==horisontal-1)&&(jj==vertical+2)) return 0;
if((ii==horisontal+1)&&(jj==vertical+2)) return 0;
return 1;
}

main(int argc, char* argv[])
{
if(argc!=3)
{
cprintf("%s","Wrong parameters");
getch();
cin >> w;
return -1;
}
int horisontal = int(argv[1])-1;
int vertical = int(argv[2])-1;



int desk[8][8];
for(int ii=0;ii<8;ii++)
{
for(int jj=0;jj<8;jj++)
{
if(check(jj,ii,horisontal,vertical)==0) desk[ii][jj]=1;
else desk[ii][jj]=0;
cprintf("%d%s",desk[ii][jj]," ");
}
cprintf("%s","\r\n");
}
getch();

cin >> w;
return 0;
}


не понимаю, по4ему не работаетб ПОМАГИТЕ, пожалуйсто smile
PM MAIL   Вверх
AntonChik
Дата 15.11.2005, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



а че выдает??? мне вломы так вот сразу разбираться тем более компилять твой исходник...
--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
Neitron
Дата 15.11.2005, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



Вообще я задание не понел, так как не вникал, но то чтобы код работал, если я правильно понел исходник, надо так.
Код

#include <iostream.h>
int horisontal;
int vertical;
int check(int ii,int jj)
{
        if((ii==horisontal-1)&&(jj==vertical-2)) return 0;
        if((ii==horisontal+1)&&(jj==vertical-2)) return 0;
        if((ii==horisontal-2)&&(jj==vertical-1)) return 0;
        if((ii==horisontal+2)&&(jj==vertical-1)) return 0;
        if((ii==horisontal-2)&&(jj==vertical+1)) return 0;
        if((ii==horisontal+2)&&(jj==vertical+1)) return 0;
        if((ii==horisontal-1)&&(jj==vertical+2)) return 0;
        if((ii==horisontal+1)&&(jj==vertical+2)) return 0;
        return 1;
}

main(int argc, char* argv[])
{
if(argc!=3)
{
        cout << "Wrong parameters";
        cin >> "";
        return -1;
}
horisontal = *argv[1] - '0' - 1;
vertical = *argv[2] - '0' - 1;

int desk[8][8];
for(int ii=0;ii<8;ii++)
{
        for(int jj=0;jj<8;jj++)
        {
                if(check(jj,ii)==0) desk[ii][jj]=1;
                else desk[ii][jj]=0;
                cout << desk[ii][jj] << " " ;
        }
        cout << endl;
}

cin >> "";
return 0;
}


Это сообщение отредактировал(а) Neitron - 15.11.2005, 13:24


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
gerda
Дата 16.11.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2005

Репутация: нет
Всего: нет



програмка какбы работает... она виводит Wrong parameters... я ввожу, и она выклю4ается! smile
PM MAIL   Вверх
Neitron
Дата 16.11.2005, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



gerda
Run->Parametrs
Введи в поле Parametrs "5 5" например (без кавычек)


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
gerda
Дата 19.11.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2005

Репутация: нет
Всего: нет



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

#include <iostream>
using namespace std;
int main()
{unsigned char koord[2],izvade[2]; int reizes,cikls;
cikls=0;
cout << "Дан буквенный рубеж с a до h и натуральное число n <= 8. Например, а2.\n";
cout << "-------------------------------------------------------------------------------------------------------------\n";
do {
reizes=1;
do {
cout<<"\nВедити координати где находится конь:";
cin>>koord;
if((koord[0]<97)||(koord[0]>104)||(koord[1]<49)||(koord[1]>56)) cout<<"Ведите провельные координаты!\n";
} while((koord[0]<97)||(koord[0]>104)||(koord[1]<49)||(koord[1]>56));
if((koord[0]-2>=97)&&(koord[1]-1>=49)) {izvade[0]=koord[0]-2;izvade[1]=koord[1]-1; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]-2>=97)&&(koord[1]+1<=56)) {izvade[0]=koord[0]-2;izvade[1]=koord[1]+1; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]-1>=97)&&(koord[1]-2>=49)) {izvade[0]=koord[0]-1;izvade[1]=koord[1]-2; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]-1>=97)&&(koord[1]+2<=56)) {izvade[0]=koord[0]-1;izvade[1]=koord[1]+2; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]+1<=104)&&(koord[1]-2>=49)) {izvade[0]=koord[0]+1;izvade[1]=koord[1]-2; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]+1<=104)&&(koord[1]+2<=56)) {izvade[0]=koord[0]+1;izvade[1]=koord[1]+2; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]+2<=104)&&(koord[1]-1>=49)) {izvade[0]=koord[0]+2;izvade[1]=koord[1]-1; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
if((koord[0]+2<=104)&&(koord[1]+1<=56)) {izvade[0]=koord[0]+2;izvade[1]=koord[1]+1; cout<<reizes<<". Skaitlis ir "<<izvade[0]<<izvade[1]<<endl;reizes++;}
cout<<"\nНажмите 1, чтобы продолжить!\n";
cin>>cikls;
}while (cikls==1);
return 0;
}
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.