![]() |
Цитата:
|
Цитата:
Читать Кнута в начале - просто бесполезно. Должна быть задача и необходимость ее оптимизации чтобы оправдать дни, затраченные на понимание отдельных абзацев в его книгах. Проще всего учиться программировать от задачи. Необходимо взять конкретную простую задачу и пытаться ее решить. Выбор конкретного языка программирования второстепенен. По своему опыту я бы начал с Pascal. По ходу решения задачи будут возникать вопросы, которые следует задавать знающим людям. Это долгий путь, но его достоинство в том, что он таки приведет к желаемому результату. Удачи в этом нелегком деле. Буду рад помочь советом или кусочком исходника в качестве примера ;) |
Цитата:
Цитата:
ПыСы да, забыл добавить. Это все ИМХО, конечно :beer: |
Цитата:
Оригинально Roxy просила подсказать как проще всего научиться программировать. Вот и давайте расскажем девушке как придти к поставленной цели. Любая конкретная задача написанная на Java, C++ или Pascal даст ей для понимания азов программирования в десять раз больше, чем все наши разговоры на тему как это сделать лучше. Оригинально Roxy хотела учить C++ - значит с языком определились. Осталось определиться со средой разработки, а задачу для себя она сможет придумать сама - или мы сможем помочь в этом вопросе. |
v_mirgorodsky я очень признательна за понимание..))) Мне хотелось бы освоить с++, я искала книги, которые, как говорят для чайников. Но беда в том, что время идет, а определения нет.
|
Язык программирования не нужно учить абстрактно как стихотворение. Как я уже сказал, самым продуктивным методом обучения является обучение от практической задачи. В свое время мне так дали первый урок по Pascal. Мы с преподавателем написали программу для конвертации десятичных чисел в шестнадцатиричные. Эта подход дал мне возможность понять общую структуру программы, правила использования простейших операторов, определений, переменных и т.д. Так же советую поступить и Вам.
Возьмите себе простейшую задачу и попытайтесь ее решить. С конкретной средой программирования можно определиться исходя из наличных ресурсов - компьютера и интернет соединения. Первые кнопки - создание файлов, настройка среды, компиляция - я подскажу. Дальше пытаемся решить Вашу задачу и смотрим на результат - если не получилось - задаем конкретные вопросы, корректируем и уходим на следующую итерацию. Я по молодости тоже пытался учить языки программирования как абстрактные правила записи указаний компилятору. Поверьте, из этого ничего не получилось. Это сродни как учиться плавать по книжке - вы будете знать все о необходимом движении рокой или ногой, которое необходимо выполнить, однако это знание не даст Вам возможности правильно выполнить его в воде. Книга поможет понять как правильно, однако приобрести необходимый навык можно только в воде. Так и с программированием. Книга обрушит на Вас огромный пласт знаний, однако практический навык применеия этих знаний вырабатывается только на практике. По поводу книги - Вам сейчас подойдет любая, в которой присутствуют базовые элементы синтаксиса языка C++. Пока не пытайтесь осмыслить структуру объектов и объектное программирование - понимание и ощущение этих тонких материй придет со временем. Если модератор не против, то можно открыть удаленную школу программирования прямо в контексте этой нити, если против - то можно создавать новые нити вопросы по мере необходимости. Удачи Вам в Вашем начинании. |
Опять меня оставили один на один с проблемой. Объясните с чего начать, вот что меня прежде всего интересует. Покажите дорогу, по которой идти, а дальше приложится. Я не поняла кто говорит про Паскаль, то про Си, то еще про что-то. Скажите с чего начать, чтоб разбираться в СИ++? Вы даже между собой не пришли к конкретному решению, а представляете насколько сложно мне разобраться в изложенном вами?
PS v_mirgorodsky если это желание ни сиюменутно, то я за школу. Я уже отправила модератору такую просьбу. |
Давайте по порядку. Pascal - это меня учили программировать на Pascal. В Вашем случае есть желание учиться программировать на С++ - значит с языком программирования определились.
Далее необходимо определиться со средой разработки. Из хороших вариантов, IMHO, Microsoft Visual Studio 6.0 - занимает всего один диск без компактов со справкой. Из ее минусов - может быть сравнительно сложно доставаема в наше время. Если с доставанием будут проблемы - сообщите, я попытаюсь помочь решить. Когда раздобудете пакет - его будет необходимо проинсталлировать на компьютер. Для правильного выполнения этого шага мне будет необходима дополнительная информация о Вашей машине - CPU, его скорость, объем жесткого диска и т.п. Когда будет чего инсталлировать - поговорим подробнее. Далее - придумайте себе задачу. Для начальных примеров я бы взял один из простых алгоритмов сортировки - легко придумать числа, легко проверить что алгоритм не ошибается, в реализации присутствуют циклы, ветвления, работа с массивами. Естесственно - выбор за Вами. Вы можете остановиться на этой задаче, а можете взять свою. Для начала следует брать задачи без необходимости ручного ввода информации и без пользовательского интерфейса - они проще. Дальше когда определитесь с задачей - начинаем ее реализовывать. Для самой первой задачи я просто напишу простую реализацию, а Вы ее изучите на предмет понимания как она работает и почему применены такие или другие приемы. Естественно - у Вас возникнут вопросы - много. Думаю, что мы сообща форумом постараемся на них ответить. После этого придумаем что Вам необходимо самостоятельно изменить в программе дабы получить другую функциональность. И так далее. После какой-то итерации разберетесь с синтаксисом, научитесь компильровать свои проекты и тогда сможете двигаться дальше. Если такой план действий подходит, то пост содержит очень конкретный перечень шагов, которые Вам необходимо предпринять ;) |
Вложений: 1
Доброе время суток! На данный момент я отношусь к числу новичков, которые хотят чему-то научится но встает одно НО когда ты начинаешь кодить то зачастую тебя бросает из крайности в крайность – от тупого отчаяния до ложного ощущения полного понимания… зачастую книги проливают свет на какую-то часть, а элементарные мелочи с которыми я сталкиваюсь ставят в полный тупик. Я заоплодил задания данные нам в институте, какие-то идут сразу без запинки, а над другими мона сидеть по два три дня и ничего в итоге не сделать. Плпн действий есть, есть не много литературы (Бьерн Страуструп «С++ язык программирования; весьма понравившееся мне книга «Обьектно-ориентированное программирование в С++» Р.Лафоре) но остаются мелочи которые я не могу понять, начинаешь спрашивать одногрупников, большинство делает методом «научного тыка» и толком объяснить ничего не может, мол попробуй так или так, а ведь хочется понять почему так….... Не спорю при долгом и упорном пыхтении за монитором и клавиотурой в обнимку дело идет, но все-же слишком медленно. К томуже должен заметить у разных людей разная логика мышления и разная память ктото: схватывает быстро кто то медленно (отношусь ко второму варианту до меня доходит все медленно но если бойдет то на всю жизнь).
Если кто сможет помочь ссылочкой на литературу мягко гря "для особо тупых" буду признателен |
Цитата:
Цитата:
Цитата:
|
Я бы хотел поддержать v_mirgorodsky и напомнить, что гораздо эффективнее на форуме общаться в формате вопрос-ответ... Больше конкретики, господа присяжные заседатели...
|
Вложений: 1
Когда я учился на первом курсе, читал неплохие лекции одного нашего универовского препода по C++. Точнее, там много "сишных" вещей, но в целом это все же C++. После прочтения можно просто переходить к ООП.
Кому интересно, могу поискать и поделиться. Решил приложить "введение".. |
Вложений: 1
В первую очередь хочу сказать v_mirgorodsky огромное Спасибо за советы которые он мне дал, но по его настоянию решил разместить свои вопросы для всеобщего обозрения….
Мой вариан в тех заданиях которые я скинул «28». :confused: ) Весьма интересует всевозможные защиты от некорректного ввода. :confused: ) Задание 4 пункт 3: « упорядочить все элементы массива по убыванию, начиная с первого наименьшего элемента и до конца. Пример: Исходный массив: 5 3 6 7 1 8 9 9 2 3 итоговый массив: 5 3 6 7 9 9 8 3 2 1» Я знаю что это элементарно.. но увы мне это пока не удалось осуществить :idontnow: :confused: ) я пока в тупике с динамически распределяемой памятью Задачи 5 и 6 :idontnow: В добавок к своим вопросам прикреплю свои детища которые накодил, с удовольствеем выслушаю Ваши замечания. Буду весьма признателен за ваши советы!!! |
Просмотрел я Ваш код.
защиты от некорректного ввода В Вашем случае вы надеетесь на реализацию iostream - не самый плохой способ и наименее затратный. В Вашем случае использование других техник защиты будет однозначно сложнее и не приведет к улучшению функциональности. Единственное, что я бы изменил - это вынес в отдельную функцию участок кода, отвечающий за ввод значения. Это существенно улучшило бы читаемость вашего исходника в задаче 2. Прототип функции ввода одного значения типа double мог бы выглядеть так: double InputVariable(char *PromptMessage); Думаю, что реализация тела такой функции будет задачей несложной. А почему в примере 3 вы применили scanf() вместо ранее применяемого iostream? начиная с первого наименьшего элемента и до конца Вот здесь поконкретнее - что вызывает проблему? Поиск самого первого наименьшего элемента тривиален. Это один цикл с одним if внутри. До входа в цикл считаем элемент с индексом 0 наименьшим, заводим две переменные - MinIdx = 0; и MinValue = ValueArray[0]; Далее просматриваем все элементы массива до конца, начиная с индекса 1. Если значение очередного элемента меньше чем MinValue, то переписываем его значение в MinValue, а его индекс в MinIdx. По выходу из цикла в MinValue будет значение первого наименьшего элемента в массиве, в MinIdx - его индекс. сортировка Сортировать массив будем методом пузырька. Абсолютно неоптимальный алгоритм с точки зрения временных затрат в пересчете на элемент массива, однако очень простой. При сортировке пузырьком по убыванию сравниваются два рядом стоящих элемента, если элемент с меньшим индексом меньше элемента с большим индексом, то рядом стоящие элементы меняются местами. Далее индекс увеличивается, берется следующая пара элементов и все повторяется. Реализация состоит из двух вложенных циклов и одного if. Если возникнут сложности с реализацией, сообщите, я приведу реальный пример кода и поясню как он работает. Думаю, что на сегодня Вам будет достаточно ;) На остальные вопросы постараюсь ответить завтра :) |
Цитата:
Уолтер Савитч. Язык C++. Курс объектно-ориентированного программирования. Очень доступно объясняет как простые так сложные понятия. Также у этого автора есть книга по продвинутым темам С++ и по структурам даных (очень хорошие примеры). Но вот только в електронном варианте я их не видел. Еще хорошая Брюс Еккель. Философия С++. Первый и второй том. Эта посложнее. Но объясняет хорошо. Есть здесь: _http://c-books.info/books/load.php?ty=c Кстати. На Питере сейчас на книги Савитча скидки (смешная цена). Если ты из России то можеш взять: _http://shop.piter.com/book/978594723582/ _http://shop.piter.com/book/978546900407/ |
Цитата:
|
Цитата:
Мне кажется у многих начинающих программеров есть проблема - они не знают как начать. Научиться программировать и научиться писать законченные аппликации - это немного разные вещи. 1 это довольно просто - надо выучить синтакс языка, понять управляющие структуры и встроенные тупы данных - и научиться ими манипулировать ( и пользоваться дебуггером). 2 невозможно без 1, но уже заставляет знать принципы построения GUI, принципы работы аппликаций. Потом уже можно выбрать GUI-builder, выбрать IDE, любимый дебаггер, и расцветку синтакса. kharson, посмотри здесь, может тебе поможет http://www.eclipse.org/swt/examples.php |
crawler , молоток или пистолет мне поможет:idontnow:
Ты абсолютно прав насчет первой и второй частей. Я взял пару книг, поглядел уроки, мелочи из первой части вроде получаются. Но как правильно пишет v_mirgorodsky , надо решать простые практические задачи, это и интересно, и подталкивает куда лучше, чем рисование сферического коня в вакууме. Беда в том, что рядом нет никого, кто бы мог эти самые первые шаги или листинги нарисовать :( Сначала хотелось сделать прогу, которая рисует что-то типа счетов: подставляет значения из базы в форму. Понял, что это ирреально, опустил планку на задачку, которая просто подставляет введенные в поле значения в заранее приготовленную форму и эту форму печатает. Ну и снова ни хрена. Казалось бы, чего проще-то? В васике такое на раз, даже в ворде обычном легко делается, а в серьезном языке программирования легче застрелиться :( Ну и куда ж тыкаться-то? |
Цитата:
Вот тебе ссылка на тьюторил, если вдруг не знаешь где искать... |
kharson, зайди http://www.eclipse.org/downloads/, скачай и установи подходящий Java runtime environment (JRE) и Eclipse (это хороший IDE).
Затем иди на http://www.onjava.com/pub/a/onjava/2...1/eclipse.html , и повтори пошагово то что там нарисовано. получишь калькулятор ;) пример /7y3uK заточен под другую GUI, так что не пытайся мешать, выбери что-то одно. |
Не надо путать человека только. В Java считается дурным тоном накликивать интерфейс в гуидизайнерах. Те примеры которые идут в официальном тьюториле - они под любой IDE работать будут. А ты занимаешься пропагандой эклипса, судя по всему. На эклипс рано садиться, пусть попробует сначала в ультраэдите с подсветкой синтаксиса по прогать и компилировать из коммандной строки, иначе начнутся вопросы "что такое CLASSPATH, почему у меня падает NoClassDefFoundError ClassNotFoundException". потом можно пробовать NetBeans IDE, т.к. она самая простая, а вот с приобретением опыта пересаживаться на более можную и навороченную IDE со всякими автокомплитами, инспекшенсами и пр...
|
crawler, /7y3uK пасиб, что время тратите :) Я понял, что лучшая книга - это официальный туториал, только с моим английским это не катит. В общем-то я собираю инфу, JCreator, именно простой, с подсветкой синтаксиса, установил и простые примеры в окошке гоняю уже довольно легко. Знаки могу в строчке правильно расставить, строчки побить ну и подобное (только не смейтесь, ага?) ;)
Дальше хочется большего, чтобы это хоть как-то с реалом соприкасалось, поэтому и выдумываю сам себе задачи, пока попроще. Зашел на Эклипс пару месяцев назад и сразу оттуда ушел - страшно. Скачал NetBeans, стандартный - мне его выше крыши, ну и та же песня - если в книге пример нахожу, он работает (ну если опечатки правильно выловлю), а что-то свое, то есть шаг влево, шаг вправо - фиг. Вот и получается, что алгоритмически и смыслово задача элементарная, а в джаве уже непосильная. Так и придется, наверное, кучу книг читать и опыт накапливать, про практику забывая :( Книги, которые попадаются, тоже расчитаны на приличных программеров. Я только понятия общие помню, поэтому для меня это неподъемно. И чем дальше, тем все грустнее и грустнее :( |
ну так ты пиши, что именно не получается, какие именно эксцепшены валятся... более предметно, если сможем, то поможем... Но это уже другой топик
|
/7y3uK, я не пропагандирую, просто мне кажется что в начале накликивать гуи намного эффективнее, чем писать руками. Заодно наинаешь понимать как работают виджеты. А когда уже ясен механизм создания и работы ГУИ, можно и руками делать.
kharson, зайди в JCreator хелпе в секцию 'Create your first Java project'. Насколько я понял там все с картинками. |
Цитата:
пока там сайт лежит, но, имхо, должен скоро подняться, тогда дам прямую ссылку http://skipy.dev.juga.ru |
Ребят, пасиб еще раз! Примеры с Jcreator я смотрел. Не знаю, насколько это здесь уместно, если что, модератор пост в нужную тему сдвинет. Есть простейшая (ну на мой дилетантский взгляд) задача:
окошко (хоть в web, хоть на компе), там текстовое поле. Данные ввел, они сохранились. При следующем вводе окошко превращается уже в поле со списком, в которое можно либо данные добавить, либо выбрать из уже имеющихся. При нажатии кнопки "печать" последние вставленные данные (или выбранные) подставляются в какое-либо место в заранее заготовленной форме и все это дело печатается. В общем, читая книги по-порядку, пока я даже до этой элементарщины не добрался. Может действительно я не тем инструментом пользуюсь? Или рановато это еще для новичков? |
Ты описываешь не сложную задачу. Но не ожидай найти в книге решение именно этой задачи. В языке есть "кирпичики" из которых программист собирает то что ему нужно. Если ты не понимаешь какие "кирпичики" использовать - спроси, но задавай пожалуйста точные вопросы, например "как сохранить информацию между запусками программы?" (кстати ответ - надо писать в файл).
Надеюсь чем-то помог. |
kharson, я думаю что тебе еще рано самому придумывать себе задачи. Ты еще не понял основы. Сначала просто повтори программы из хелпа. И построчно разбери что они делают. А уже когда будешь точно знать что конкретно делает каждая строчка, и как она взаимодействует с остальными, сможешь комбинировать "кирпичики".
|
Да, наверное мне еще со своими задачами рановато :( Просто я ощущаю, что интерес тухнет и абстрактные примеры в книге помогают, конечно, но не зажигают. Мне кажется, что если прога, пусть и простенькая, но реальная, заработает, это продвинет серьезно.
Ладно, буду грызть дальше, а там поглядим, кто кого :) |
| Часовой пояс GMT +4, время: 07:32. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.