|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.11.2008, 19:43 | #1 |
Регистрация: 25.11.2008
Сообщений: 7
|
Задача "Ход конем"
уважаемые форумцы прошу помочь в решении задачи:
Даны две литеры- латинская буква (от а до h) и цифра (от 1 до 8), например а2 или g5. Рассматривая их как координаты поля шахматной доски, на котором находится шахматный конь, нарисовать шахматную доску, пометив крестиками все поля, которые бьет этот шахматный конь, и ноликами все остальные. Программа должна выводить последовательность на экран и в файл "output.txt". просто начал изучать С++ не так давно, и что-то даже не понимаю хода решения, буду рад любому совету и помощи! помогите хотя бы разобраться в последовательности и ходе решения. |
25.11.2008, 20:05 | #2 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 158
|
Хм... Так проблемы с кодом или с алгоритмом? Короче ))) Код:
Что-то я сегодня добрый ) В винде скомпилиный файл запускаем через Shift+Enter, чтоб окно не пропало сразу. Или вставляем в файл перед return оператор getch() (надо тогда заинклудить conio.h) Последний раз редактировалось rpy3uH; 25.11.2008 в 20:23. |
25.11.2008, 20:25 | #3 |
Регистрация: 25.11.2008
Сообщений: 7
|
theos
спасибо огромное!!! буду ща разбираться... а можно тебе задать несколько вопросов по решению?? ЗЫ блин все-таки наш препод не умеет объяснять Последний раз редактировалось WormsSs; 25.11.2008 в 20:40. |
25.11.2008, 20:29 | #4 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 158
|
Код:
Остальное, я надеюсь, понятно. |
26.11.2008, 00:05 | #5 |
Форумчанин
Регистрация: 17.11.2008
Сообщений: 233
|
У тебя прога неправильно работает... Вот введи "a4" и посмотри...
точнее у тебя не соответствуют буквы и цифры!!! |
26.11.2008, 20:32 | #6 |
Регистрация: 25.11.2008
Сообщений: 7
|
theos еще раз спасибо что так бысто откликнулся!
я вчера попробовал запустить, но компилятор выдает 1 ошибку bool inRange(int x,int y) указывает на эту скобку:Declaration syntax error поэтому вообще не удалось ее запустить, а вообще полистал свои лекции(кстати нашел про ASCII ты прав, а я чет не допер до такого) не на шел там функции inRange(что она вообще значит) и что inp-что это за тип??? и %s?? и вот эта строчка strlwr(inp); // в нижний регистр тоже не очень понятна так я в принципе кое-что понимаю в твоей проге, но те вопросы выше я задаю, потому что мы такого еще не проходили( StarWorm а ты раз нашел ошибку, можешь помочь исправить эту программу?? ЗЫ народ я конечно задаю очень нубские вопросы,но надеюсь на ваше понимание и помощь! |
27.11.2008, 16:41 | #7 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 158
|
Так, чтоб поменять местами буквы-цифры вместо
Код:
Код:
inRange, собственно наша функция. И определена она правильно. (почитайте ещё и про функции - очень занимательно) Странно, что у Вас не компилится. Что-то значит Вы делаете не так... У Вас вообще какой компилятор? Программу копипастом вставляли? inp - имя переменной. В неё мы читаем ввод с клавиатуры. Соответственно %s значит 'строка'. То есть читаем строку. strlwr(inp); - переводит строку в нижний регистр (вместо больших букв будут маленькие). Это нужно если Вы вдруг введёте, например, не 'a4', а 'A4'. Иначе дальше inp[0] - 'a' выдаст некорректный результат. |
27.11.2008, 17:57 | #8 |
Регистрация: 25.11.2008
Сообщений: 7
|
компилятор Turbo C++ , нет программу переписывал ручками, то что надо добавил(точто вы писали ниже(эт я знаю))
все разобрался с inp, тупой вопрос), про %s значит 'строка', понял, просто нам еще не рассказывали про этот тип(( раз пошла такая пьянка может посоветуете что почитать про функции?? и еще такой вопрос как вывести в файл output.txt?? нам рассказывали как-то через структуру типо FILE или через "stream" (библиотека <fstream.h>) ЗЫ еще раз спасибо за помощь и объяснение)) |
27.11.2008, 20:34 | #9 |
Пользователь
Регистрация: 19.11.2008
Сообщений: 35
|
char inp[32];
... scanf("%31s", inp); WormsSs, в Сях не типа "строка". Строка в сях - это массив символов. char inp[32]; - это строка, содержащая 31 значащий символ плюс символ '\0' - символ конца строки. scanf("%31s", inp); - ввод строки, ограниченной 31 символом. Нужно для того, чтобы не произошло переполнения inp. Почитать на раннем этапе посоветовал бы книжку Березин, Березин "C и С++" - вроде так называется. |
27.11.2008, 20:47 | #10 |
Пользователь
Регистрация: 19.11.2008
Сообщений: 35
|
По поводу файла - см. изменения в коде. Код адаптирован под борланд С++ - ибо дома другого нету))
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder | AleksP | C++ Builder | 7 | 11.04.2009 13:06 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) | Dorvir | Microsoft Office Excel | 2 | 28.03.2008 10:03 |
"Транспортная задача", "Поиск решения" | Perroman | Microsoft Office Excel | 3 | 12.12.2007 17:12 |
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" | MAcK | Компоненты Delphi | 11 | 24.10.2007 10:49 |