Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C] Эррей [20][20] 
:(
    Опции темы
custard
Дата 4.5.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



нужно написать код на  С ,юзая эррей [20][20]

Коммандs

1-не писать,двигатся
2-писать ,двигатся
3-на право
4-на лево
5,n-двигатся вперед ,n штук
6-принтовать эррей [20][20]
9-выход из програмы(!)

пример 1:

user posted image

пример 2:

user posted image

Это сообщение отредактировал(а) Alexeis - 5.5.2007, 13:15
PM MAIL   Вверх
apook
Дата 4.5.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не что то интересное но непонятное


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
ama_kid
Дата 4.5.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



не то, чтобы непонятное, но если требуется писать на чистом С - можно уткнуться на парсинг строки пятой команды... Так-то не сложно, но вот этот парсинг (пусть даже и теоретически несложный) как-то напрягает...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
GIK
Дата 4.5.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


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

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



Цитата

1-не писать,двигатся
2-писать ,двигатся
3-на право
4-на лево

куда двигатся, куда писать, зачем двигатся?
Вот примерчик, его можно подмять под свои нужды:
Код

#include <vcl.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <cstdlib.h>
#include <fstream.h>



void print(int **mas){
 int i, j;
  for(i=0; i<20; i++)
  {
     for(j=0; j<20; j++)
     {

        std::cout<<mas[i][j]<<"-";

     }
   std::cout<<'\n';
  }
};

void put(int **mas, int i, int j, int n){

  mas[i][j]=n;


};



int main(int argc, char* argv[])
{
  int **mas= new int* [20], i, j, n;
  for(i=0; i<20; i++)
   mas[i]=new int[20];
  for(i=0; i<20; i++)
   for(j=0; j<20; j++)
    mas[i][j]=0;

  std::cout <<"1 dobavlenie \n";
  std::cout <<"6 vivod \n";
  std::cout <<"9 udalenie \n";


  short ch=111;
  while(ch!=0){
   cin>>ch;
   switch(ch){
    case 1: std::cout<< "vvedite liniu:";
            std::cin>>i;
            std::cout<< "vvedite posiciu:";
            std::cin>>j;
            std::cout<< "vvedite chislo:";
            std::cin>>n;
            put(mas, i, j, n);
            break;
    case 2:
            break;

    case 6: print(mas);
            break;
    case 9: for(i=0; i<20; i++) delete [] mas[i];
            delete [] mas;
            return 1;
            break;

    default : cout<<"Wat???"; break;

   }
  }


     for(i=0; i<20; i++)
       delete [] mas[i];
     delete [] mas;
        return 0;
}




--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
GIK
Дата 4.5.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


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

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



Цитата

требуется писать на чистом С - можно уткнуться 

Опа, снова не заметил... сори.


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
custard
Дата 5.5.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Не что то интересное но непонятное 


что непонятно?
мне на С нужно,С++ незнаю,что такое парсинг?

ну если 1-то не надо принтовать звезды ,а просто пройти 5 мест
если 2-то надо 
3 направо,4 налево
5,N-принтовать н штук
в примере 2 все должно ясно быть 

внизу на английском если кто знает

user posted image

Это сообщение отредактировал(а) Alexeis - 5.5.2007, 13:17
PM MAIL   Вверх
GIK
Дата 5.5.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


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

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



Цитата

ну если 1-то не надо принтовать звезды ,а просто пройти 5 мест
если 2-то надо 
3 направо,4 налево
5,N-принтовать н штук
в примере 2 все должно ясно быть 


custard, этого не достаточно  smile 
Тебе нужно расписать вопрос по подробнее (понятнее). Вот например корректный вопрос :
Нужно подвинуть на 3 знака вправо в строке 1, начиная со 2-го эллемента, и после передвижения заполнять нулями.
Например есть матрица 5x5 и мы передвигаем эллемены на 3 позиций вправо в строке 1:
1, 2, 2, 1, 3 
3, 7, 2, 6, 3
9, 4, 2, 2, 3
3, 7, 2, 6, 3
9, 4, 2, 2, 3

итог:
1, 0, 0, 0, 2   //передвинули на 3 эллемента вправо заполняя нулями
3, 7, 2, 6, 3
9, 4, 2, 2, 3
3, 7, 2, 6, 3
9, 4, 2, 2, 3

Задай корректный вопрос и тебе помогут разобратся  smile 






--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
srd
Дата 5.5.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


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

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



Написано "в лоб", потому за глупый местами код просьба сильно не пинать  smile 
Код

#include <stdio.h>
#include <memory.h>

#define FLOOR_SIZE 20
#define FILL_CELL '*'
#define BLANK_CELL '_'

enum
{
    PEN_UP = '1',
    PEN_DOWN,
    TURN_RIGHT,
    TURN_LEFT,
    MOVE_FORWARD,
    PRINT,
    END = '9'
};

enum {DN, RT, UP, LT};

int main()
{
    char floor[FLOOR_SIZE][FLOOR_SIZE];
    int cmd = END;
    int x = 0;
    int y = 0;
    int pen = 0;
    int orient = RT;

    memset(floor, BLANK_CELL, sizeof floor);

    do
    {
        switch (cmd = fgetc(stdin))
        {
        case PEN_UP:
            pen = 0;
            break;

        case PEN_DOWN:
            pen = 1;
            floor[y][x] = FILL_CELL;
            break;

        case TURN_RIGHT:
            --orient;
            if (orient < DN) orient = LT;
            break;

        case TURN_LEFT:
            ++orient;
            if (LT < orient) orient = DN;
            break;

        case MOVE_FORWARD:
            if (fgetc(stdin) == ',')
            {
                int step;
                scanf("%d", &step);
                if (step <= 0) break;
                while (step--)
                {
                    switch (orient)
                    {
                    case DN:
                        ++y;
                        break;
                    case RT:
                        ++x;
                        break;
                    case UP:
                        --y;
                        break;
                    case LT:
                        --x;
                        break;
                    default:
                        abort();
                        break;
                    }
                    if (x < 0) x = 0;
                    if (x >= FLOOR_SIZE) x = FLOOR_SIZE - 1;
                    if (y < 0) y = 0;
                    if (y >= FLOOR_SIZE) y = FLOOR_SIZE - 1;
                    if (pen) floor[y][x] = FILL_CELL;
                }
            }
            break;

        case PRINT:
            {
                int i, j;
                for (i = 0; i < FLOOR_SIZE; ++i)
                {        
                    for (j = 0; j < FLOOR_SIZE; ++j)
                        fputc(floor[i][j], stdout);
                    fputc('\n', stdout);
                }                    
            }
            break;

        default:
            break;
        }
    }
    while (cmd != END);
}



Это сообщение отредактировал(а) srd - 5.5.2007, 15:38


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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