Как начать писать программу на C

Многие люди задаются вопросом, как начать писать ту или иную программу. Возможно, лучший совет — просто начать писать макет требуемой программы. У вас появятся идеи и чувство будущего проекта.

Есть два стандартных метода реализации программы: подход «сверху-вниз» (top-down) и «снизу-вверх» (button-up).

Программирование «сверху-вниз» означает — писать код, вызывающий функции, которые вы ранее не определили, и работать через главный алгоритм перед тем, как писать функции.

Ясно, что программирование «сверху-вниз» — это очень абстрактный путь программирования, потому-что оно начинается с использования функций, которые вы не планировали, и которые, вероятно вы толком не знаете, как построить.

Отличие программирования «снизу-вверх» в том, что программист сначала пишет базовые функции, которые, как он полагает, будут необходимы в какой-то момент написания программы и потом работает над более обширными частями кода.

Вся соль в том, что оба подхода фокусируются на действиях программы больше, чем на самом объекте программы — переменных. Во всяком случае, лучший путь написания программы — это выявить нужные переменные, а потом просмотреть код, чтобы понять, что с ними происходит.

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

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

Давайте посмотрим пример того, как начать реализацию программы. Вы пишите программу для магазина системы проката видео. вычисляющая валовой доход от сдачи напрокат дисков с видео. Возможно, вскоре вы захотите дополнить программу возможностью отслеживания прибыли с определенного видео, взятого напрокат за 2 доллара в сутки или 3 доллара в сутки, и спрашивающую, на сколько дней она была сдана напрокат. В конце концов, если цена равна 0, осуществляется выход из программы.

Вам требуется также подсчитать количество дней проката тех видео, стоимость которых равна 3 долларам в день и 2 долларам в день. Лучший путь думать о структуре программы, такой – это определить информацию. которая вам нужна для того, что высчитать валовой доход:

  1. Вы нуждаетесь в переменной, сохраняющей конечную сумму в конце программы.
  2. Вам нужна временная переменная, хранящая код вычислений осуществлённой сделки.
  3. Вам нужна временная переменная для хранения информации о сроке, на который взят диск .
  4. Вам нужна переменная для хранения информации о кол-ве дней, на которые взят напрокат каждый диск.
  5. Вам нужна переменная для вывода кол-ва дней, на которые взят напрокат диск с видео ценой 3 доллара в сутки.
  6. И, наконец, вам нужна переменная, для вывода количества дней, на которые взято напрокат видео ценой в 2 доллара в сутки.

Как только вы поняли, что вам нужны эти переменные, вы уже легко представите, как перевести их в термины для представления друг другу. Например, вы знаете, что сумма валового дохода, это — число дней, на которые взят напрокат диск стоимостью 2 доллара в сутки. Также вы знаете соотношение для видео ценой 3 доллара в сутки.

Вам надо понять, что «код» сделки определяет то, какими переменными манипулировать, когда оператор вводит число дней, на которые взято напрокат определенное видео (хотя бы для того, чтобы прибавить число дней для видео стоимостью 2 или 3 доллара). Возможно, вам потребуется цикл в вашей программе (хотя вам необязательно выводить это из переменных).

Код может выглядеть подобным образом:

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

Перевод с английского.

Переводчик: tevinmukenindi. 17.05.2011

Закладка Постоянная ссылка.

Комментарии запрещены.