2013-12-15 4 views
0

У меня возникли проблемы с созданием собственных вложенных операторов выбора (ifs) и операторов повторения (для циклов, whiles и do-whiles). Я могу понять, что делают самые простые операции повторения и выбора, и хотя мне требуется немного больше времени для обработки того, что делают вложенные операторы, я все еще могу получить общий смысл кода (сохраняя счет контрольных переменных и т. Д.). Тем не менее, реальная проблема сводится к построению этих утверждений, я просто не могу для жизни меня строить свои собственные утверждения, которые правильно выравниваются с псевдокодом.предложения по правильному построению вложенных операторов

Я совершенно новичок в программировании в целом, поэтому не знаю, является ли это опытом или у меня просто нет очень логичного ума. Это ОЧЕНЬ деморализует, когда мне требуется около часа, чтобы закончить один вопрос в книге, когда мне кажется, что это займет всего лишь часть времени.

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

+0

Вы пытаетесь решить вопросы на каком-либо языке программирования? Если вы этого не сделаете, сделайте это! Программирование касается написания программ :-) Если вы делаете, какой язык и какие инструменты вы используете? –

+0

Это касается Java? Тем не менее, этот вопрос, вероятно, вне темы (возможно, основанный на мнениях, слишком расплывчатый и т. Д.) И может закрыться. – Anna

ответ

1

Прежде всего, вы должны понять это:

An if statement defines behavior for when **a decision is made**. 

A loop (for, while, do-while) signifies **repetitive (iterative) work being done** (such as counting things). 

Как только вы поймете это, то следующий шаг, когда они сталкиваются с проблемой, чтобы попытаться разорвать эту проблему в небольших, управляемые компоненты:

i.e. decisions, that provide you with the possible code paths down the way, 
and various work you need to do, much of which will end up being repetitive, 
hence the need for one or more loops. 

например, говорят, что мы имеем эту простую задачу:

Учитывая положительное число N, если N четное, COUNT (число, дисплей) от 0 (ноль) до N с шагом 2, если N нечетно, считать от 0 до N с шагом 1.

Во-первых, давайте разложим эту проблему.

Шаг 1: Получить значение N. Для этого нам не нужны какие-либо решения, просто получить его, используя предпочтительный метод (из файла, чтения консоли и т.д.)

Шаг 2: Примите решение: N нечетное или даже?

Шаг 3: В соответствии с решением, принятым на шаге 2, работают (счет) - мы будем перебирать от 0 до N, с шагом 1 или 2, в зависимости от четности N, и отобразить число в каждом шаг.

Теперь мы код:

//read N  
int N; 
cin<<N; 

//make decision, get the 'step' value 
int step=0; 
if (N % 2 == 0) step = 2; 
else step = 1; 

//do the work 
for (int i=0; i<=N; i=i+step) 
{ 
    cout >> i >> endl; 
} 

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

На самом деле сложная фаза обычно является проблемой распада. То есть, где вы фактически думаю.

Кодирование всего лишь перевод вашего мышления, чтобы компьютер мог вас понять.

Смежные вопросы