![]() |
|
|
![]()
|
|
| gerda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2005 Репутация: нет Всего: нет |
помогите пожалуйсто с програмкойб никак не могу сделать
дан буквенный рубеж с а до 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 сделала маленький набросок в файлах но навсякий слу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 |
|||
|
||||
| Бегемот |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 26.1.2005 Где: На границе Европы и Азии Репутация: 1 Всего: 3 |
Привет,gerda.
Несовсем понятно в чём проблема-то. У тебя рабочий код, за исключением маленьких нюансов: - неподключены conio.h и stdio.h - непонятно зачем подключен iostream, - за место StrToInt применяй явное преобразование типов (int) ... или вопрос в выводе в те места, куда сходил конь, вместо единичек - "X"? |
|||
|
||||
| gerda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2005 Репутация: нет Всего: нет |
в этом тоже проблема
спасибо за советб попробаю |
|||
|
||||
| gerda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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ему не работаетб ПОМАГИТЕ, пожалуйсто |
|||
|
||||
| AntonChik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.10.2005 Где: Красноярск Репутация: 1 Всего: 1 |
а че выдает??? мне вломы так вот сразу разбираться тем более компилять твой исходник...
--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
Вообще я задание не понел, так как не вникал, но то чтобы код работал, если я правильно понел исходник, надо так.
Это сообщение отредактировал(а) Neitron - 15.11.2005, 13:24 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| gerda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2005 Репутация: нет Всего: нет |
програмка какбы работает... она виводит Wrong parameters... я ввожу, и она выклю4ается!
|
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
gerda
Run->Parametrs Введи в поле Parametrs "5 5" например (без кавычек) -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| gerda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.11.2005 Репутация: нет Всего: нет |
сделала новый вариант, сдесь выводятся только парние числа, по которым прошелся конь, а что нужно сделать для тогоб, чтобы нарисовалась шахматная доска и на ней можно было бы видеть места, куда конь можен пригнуть с указ. участка???
#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; } |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |