LINUX.ORG.RU

Что такое переменная?

 


0

1

Понимаю что можно загуглить, но там что-то не понятно, поэтому спрошу тут. Что можно считать переменной, а что нет, а то мне по заданию нельзя их использовать, а я хз что это такое.


Используй регистры.

anonymous
()

си

Объяви всё const и переменных не будет. Только с такими ограничениями ты даже цикл не сделаешь... Что за задание-то у тебя?

Crocodoom ★★★★★
()

где задание ?

anonymous
()

2 тема за сегодня с «заданиями от препода» походу зачеты скоро....

whitedevil
()
Ответ на: комментарий от anonymous

О, это полезная штука. Я только пдф видел.

hotpil ★★★★
()
Ответ на: комментарий от Deleted

Я не совсем в ладах со словацкой, поэтому побеседовать о тонкостях вот этого вот всего явно не получилось б

Nullum
() автор топика
Ответ на: комментарий от anonymous

Если я правильно понял: У меня есть что-то, у чего есть значение, при условии, что значение меняется то это переменная, в обратном оно таковым не является

Nullum
() автор топика
Ответ на: комментарий от Nullum

:D

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

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

(В плеере заиграло что-то на словацком, пока я набирал пост. Магия, ппц!)

Deleted
()
Ответ на: комментарий от Deleted

видишь символ > ? Так вот это робот, который может двигаться ставить жетоны(появляется цифра), а также собирать их. При всём он должен рисовать букву, с учётом, что он может появится в любом месте и смотреть в любом направлении, а мир может быть любой высоты. Но тут надо циклы, для них у меня есть условия, которые могут быть правдивые или ложные, а потом всё понятно. А ещё надобно использовать loop, и неплохо было б setStepDelay( 100 ).

Вопрос в том, могу ли я использовать всё это добро, и не затесались ли здесь переменные. В остальном думаю справлюсь.

Nullum
() автор топика
Ответ на: комментарий от Deleted

Там есть специальные условия, тип стена впереди, сбоку, робот смотрит в ту сторону, в иную, и так далее

Nullum
() автор топика
Ответ на: комментарий от Nullum

тебе же написали про рекурсию, любой цикл можно в них оформить; и если c - то gcc вроде умеет TCO

anonymous
()
Ответ на: комментарий от anonymous

Константный — объект, а не переменная.

anonymous
()
Ответ на: комментарий от Nullum

Дык. Возьмём такой псевдокод, вычимсляющий ширину поля:

посмотреть налево;
пока (перед мордой не стена) {
    идти на одну клетку;
}

ширина_поля = 1;
посмотреть направо;
пока (перед мордой не стена) {
    ширина_поля += 1;
    идти на одну клетку;
}

(Аналогичный алгоритм для определения высоты.)

ширина_поля — переменная. Это жопа.

Этот алгоритм легко переделать на рекурсивный без переменных.

Но вот всё задание в целом... Чо-та жестко, если это первый курс. А судя по тому, что ты не уверен, что такое переменная, это именно первый курс. :D

Не самое кайфовое писать рекурсивные простынки на Си. Тут реально бы Хаскель подошел.

Deleted
()
Ответ на: комментарий от Deleted

Де-факто мне не нужно знать размеры мира. Никто мне ведь не мешает сделать букву побольше. Я сейчас скопирую часть другого кода(из предыдущих заданий), а ты просто отпиши, есть ли там переменные. И не слишком ругай(только чуть-чуть)

#include <karel.h>
void jumpOver();
void turnRight();
int main(){

turnOn("olympics5.kw");

setStepDelay( 250 );

void turnRight(){
loop ( 3 ){ turnLeft();}
}
void jumpOver(){
turnLeft();
loop ( 2 ){
while ( rightIsBlocked() ){ movek();}
turnRight();
movek();
}
while ( frontIsClear() ){ movek();}
turnLeft();
}


while ( noBeepersPresent() ){
jumpOver();
while (  noBeepersPresent() && frontIsClear() ){ movek();} }


turnOff();
return 0;

Nullum
() автор топика
Ответ на: комментарий от Nullum

loop ( 3 )

Ололо, студентам дают какие-то левые макросы вместо стандартной сишечки. %)

Интересно, если сдать преподу задание с использованием loop, а потом затраллить его тем, что там внутри переменная... Нет, лучше не пробовать такое трололо.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Если привлечь буст, эти макросы могут просто раскрываться в n-разовый повтор кода. И все будет честно: никаких переменных.

anonymous
()

Посмотрел условия задачи, если робот умеет «убирать метки» и определять есть ли «метка» спереди(сзади), можно сделать без переменных и без рекурсии.

anonymous
()
Ответ на: комментарий от anonymous

Т.е. всё зависит от команд, которые может выполнять робот.

anonymous
()
Ответ на: комментарий от anonymous

если робот умеет «убирать метки» и определять есть ли «метка» спереди(сзади), можно сделать без переменных и без рекурсии.

Каким образом?

Deleted
()
Ответ на: комментарий от Deleted

Я бы сказал что это задание для школьников :)

Самое сложное определить середину.
Появляемся.
Идём до левого края.
Идём до верхнего края, попутно выкладываем метки.
Идём до нижнего края, попутно выкладываем метки.
Дальше повторяем пока есть метка под нами:
 Идём до последней метки в верху, убираем её
 Идём до последней метки в низу, убираем её

Ну а дальше думаю не сложно :)

anonymous
()
Ответ на: комментарий от anonymous

Идём до верхнего края, попутно выкладываем метки.
Идём до нижнего края, попутно выкладываем метки.

а это где храниться будет?

outsider ★★
()
Последнее исправление: outsider (всего исправлений: 1)
Ответ на: комментарий от anonymous

Надо у ТСа попросить .a и .h файлы робота.

Deleted
()

переменная — от «переменная величина», то есть всё, что может меняться. переменные в твоей задачке — состояние поля и положение карела.

anonymous
()
Ответ на: комментарий от anonymous

Но так как они задаются по вообще отдельной схеме, не связанной с самой программой, то мне не стоит волноваться на их счёт. Спасибо всем, думаю вопрос закрыт

Nullum
() автор топика
Ответ на: комментарий от anonymous

Центр можно значительно быстрей найти:

- идем влево до упора
- идем вверх до упора
- идем до упора по диагонали вправо-вниз, выкладывая метки
- идем влево до упора
- идем по диагонали вправо-вверх, пока не наткнемся на метку в своем поле или поле справа (или сверху)

это и считаем условной серединой.

anonymous
()
Ответ на: комментарий от anonymous

И в api не видел получение высоты/ширины поля.

anonymous
()

переменная это не постоянная </thread>

quester ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.