0

Как знаю, есть два способа получить первый опыт по программированию. Это решать, решать задачи после каждой прочитанной темы, второй - бегло прочитать книгу и придумать себе какую-то небольшую задачу, покрывающую данные темы. Какой способ будет лучше? На данный момент начинаю знакомится с массивами, затем пойду по указателям. Если второй способ тоже вполне хорош, то не могли бы вы мне подкинуть идеи, что можно написать. Знаком с такими темами: переменные, циклы, функции, начинаю читать про массивы и после указателей временно остановлюсь.

Grundy
  • 81,538
ArniLand
  • 1,089
  • 8
  • 25
  • 60

5 Answers5

1

Я советую смело браться за выполнение небольших проектов, даже если нет опыта. Реальные знания и навыки получите в "боевых" условиях.

Bandicoot87
  • 579
  • 9
  • 28
1

В общем случае, если вы владеете основами программирования, пробовать решать задачи. При этом нужно, ДО написания кода, рисовать БЛОК-Схемы. В этом случае вы научитесь основам алгоритмического и логического мышления.

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
0

Нет, лучше всего оба способа сочетать.

Задачи на очень простых примерах показывают и закрепляют знание, что с предметом исследуемой темы можно сделать.

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

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

0

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

Для примера, задача №1: дана квадратная матрица размерности N, заполненная нулями. Сделать элементы главной диагонали равными единицам; элементы над главной диагональю сделать двойками; и элементы под главной диагональю сделать тройками. Размерность матрицы задавать при запуске программы.

C_sharper
  • 1
  • 2
  • @C_sharper О том, как пользоваться редактором, можно посмотреть по ссылке: http://hashcode.ru/markdown_help/ Для рисования псевдографики нужно предварить ее четырьмя пробелами, как и код программ. – Nicolas Chabanovsky Mar 07 '11 at 21:26
  • Из http://www.norvig.com/python-iaq.html: Q: Hey, can you write code to transpose a matrix in 0.007KB or less?

    m = [(1,2,3), (4,5,6)] zip(*m)

    [(1, 4), (2, 5), (3, 6)]

    (там ещё интересные хохмы есть) Пример из старого питона, в python 3 оформление чуть другое.

    – alexlz Mar 08 '11 at 04:58
0

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

  1. Если густо со своими идеями, то можно легко найти такие книги, статейки - задачи по программированию, обычно они предполагают алгоритмические решения, (правда, бывает привязка к языку, но это редкость и моветон =) ), так вот, брать задачки оттуда. Плюс: вы разовьете неплохое мышление, научитесь строить нетривиальные алгоритмы (хотя все зависит от уровня задач и вашего уровня). Минус: найти нужное - задача только на первый взгляд легкая.
  2. Составляйте этюды, не надо, конечно, делать этюд там, где он и даром не нужен, но, к примеру, этюды на тему ветвлений, массивов и циклов, ООП и etc... вполне можно составлять. Плюс: творчество развивается, голова думает; конечно, на начальном этапе этюды будут просты, но чем больше вы будете узнавать, тем шире они станут и тем интереснее их станет писать, как говорится, если 4 fun, тогда проблем быть не должно. ) Если это из под палки, для вас первый вариант!

Из первого просто что приходит в голову, роем школьные учебники паскаля, там много задачек, причем неважно, что вы изучаете, если только правда не веб, хотя тоже вполне ) выкрутиться можно. Также Павловская - у нее есть книга, для C++, практикум с задачами, скачайте его - и вперед, а если книгу откопаете, то там, кажется, после каждой главы идут задачки.

Удачи вам!

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
rojaster
  • 500
  • 2
  • 4
  • 12