Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Как стать программистом


Гость TALLER

Рекомендуемые сообщения

Здравствуйте.

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

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

Ну и конкретизирую. Меня интересуют следующие вопросы:

1. Чему стоит начинать учиться (точное название ПО)

2. Где его (ПО) можно скачать (желательно, в принципе могу и сам найти)

3. Какие книги порекомендуете

4. С чего порекомендуете начать

Буду очень благодарен за любую информацию.

!

Предупреждение:

Нет необходимости плодить идентичные посты.

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

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

Изменено пользователем Yezhishe
Ссылка на комментарий
Поделиться на другие сайты

Для того, чтобы стать Программистом - надо не представлять себе жизни без кода. Надо жить этим. В противном случае получится Шеф-Повар, у которого его собственная работа вызывает отвращение... Вкусно он приготовит?

Много ль будет посетителей в том заведении, где он (с позволения сказать) "работает"? Так и тут - "О! Программисты неплохо зарабатывают! А ну-кась, изучу-ка чего да начну бабло сшибать!"

IMHO - в корне неверный подход.

Ссылка на комментарий
Поделиться на другие сайты

Рекомендую книгу Язык программирования C (Керниган Б. У., Ритчи Д. М.)

ПО можно пользуват lcc-win32n

После изучения C, можно C++, а потом вопрос что хочете писать... можно Java / .NET, можно PHP, Python, Objective C если для iPhone/iPad... а в польне возможно что C++ вас будеть вполне устраивать

Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

Рекомендую книгу Язык программирования C (Керниган Б. У., Ритчи Д. М.)

ПО можно пользуват lcc-win32n

После изучения C, можно C++, а потом вопрос что хочете писать... можно Java / .NET, можно PHP, Python, Objective C если для iPhone/iPad... а в польне возможно что C++ вас будеть вполне устаивать

Скачал книгу. Вопрос застопорился на компиляторе. Скачивал разные, при попутке скомпилировать легкий код большинство писало, что не найден модуль. Установил Дев С++. Такое не пишет. Выполняю код - появляется черное окно и пропадает. А как результат то работы посмотреть?

Я, конечно, извиняюсь за глупые вопросы, но уже часа 3 тестирую компиляторы на то, чтобы они мне hello, world написали. Я вполне успешно писал проги на Делфи, поэтому смысл программирования на Си в принципе понятен, но с выводом разобраться не могу

Ссылка на комментарий
Поделиться на другие сайты

TALLER:

Выполняю код - появляется черное окно и пропадает. А как результат то работы посмотреть?
Поставь в конце кода (перед последней закрывающей фигурной скобкой)

getchar();

Это задержит вывод на экране до нажатия Enter.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

TALLER:

Поставь в конце кода (перед последней закрывающей фигурной скобкой)

getchar();

Это задержит вывод на экране до нажатия Enter.

Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

У меня проблемы с использованием getchar() теперь,прошу помочь разобраться, самому что-то не получается.

вот например код

include <stdio.h>

main()

{

int c;

c = getchar();

while (c != EOF)

{

putchar©;

c = getchar();

}

}

Т.е. происходит копирование того, что напишешь.

Ввожу 2, жму ентер, выдает 2 и т.д., а как сделать чтобы цикл закончился, как обозначить этот EOF?

Вопрос 2:

Программа для подсчета символов

#include <stdio.h>

main()

{

long nc;

nc = 0;

while (getchar() != EOF)

++nc;

printf ("%d\n", nc);

}

Естественно, чтобы получить результат нужен конец файла EOF, который я не знаю как обозначить, поэтому результат получить не могу.

И все же такой вопрос: когда происходит проверка условия цикла, когда я ввожу любой символ или когда жму Ентер?

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

А если второе, то ++nc будет выполняться после нажатия ентер, и тогда программа подсчитает не кол-во символов, а кол-во нажатия ентер.

Значит проверка условия не осуществляется ни в том, ни в другом случае. А когда тогда?

Выходит

Ссылка на комментарий
Поделиться на другие сайты

TALLER: может вам всё же стоит начать изучение не с языка Си, а с Паскаля? У где то 1.5 года назад у меня возникла проблема, мои дети решили научиться писать программы и я стал искать и тов. Тролль предложил мне http://pascalabc.net/ - попробуйте, там встроенные подсказки и тд, те полный набор. Хотя вы писали

За время обучения я программировал на Делфи, но не часто на самом деле встречаю объявления о том что такие требуются.
, тогда может стоит попробовать на JS? Синтаксис схож, а проблем будет меньше. Достаточно изучить 2-3 языка или хотя бы один в совершенстве - проблем с другими не будет.

Ответы на ++nc и nc++ это уже 100 раз везде описано, те как правильно писать... сорри может я не прав, просто комментировал весь топик.

надо писать хотя бы так:

#include <stdio.h>main(){long nc=0;while (getchar() != EOF) { ++nc; printf ("%d\n", nc);}};
Ссылка на комментарий
Поделиться на другие сайты

TALLER: может вам всё же стоит начать изучение не с языка Си, а с Паскаля? У где то 1.5 года назад у меня возникла проблема, мои дети решили научиться писать программы и я стал искать и тов. Тролль предложил мне http://pascalabc.net/ - попробуйте, там встроенные подсказки и тд, те полный набор. Хотя вы писали , тогда может стоит попробовать на JS? Синтаксис схож, а проблем будет меньше. Достаточно изучить 2-3 языка или хотя бы один в совершенстве - проблем с другими не будет.

Ответы на ++nc и nc++ это уже 100 раз везде описано, те как правильно писать... сорри может я не прав, просто комментировал весь топик.

надо писать хотя бы так:

#include <stdio.h>main(){long nc=0;while (getchar() != EOF) { ++nc; printf ("%d\n", nc);}};

Да я логику то программирования понимаю, причем неплохо. Я эти коды не придумывал, они с книги. Я не прошу мне помочь написать что-то, я прошу помочь разобраться в вопросах, описанных выше.

Ссылка на комментарий
Поделиться на другие сайты

PS Уроки C-программирования.

2. Цикл "while" в Си.

Сегодня Вы рассмотрите подробно циклы while и do-while в языке Си. Начнем с первого из них: с оператора while. Оператор цикла while имеет следующую структуру:

while (условие) оператор;

Названный оператор может быть простым, составным или даже пустым. Цикл будет выполняться до тех пор, пока условие цикла принимает значение "истинно". В том же случае, когда условие нарушается (то есть оно просто не выполняется), управление передается следующему за командой цикла while оператору. Думаю, что всем ясно, что в последнем случае условие принимает значение "ложь".

Вы написали

while (getchar() != EOF)

++nc;

printf ("%d\n", nc);

те printf просто не работает, надо просто было использовать {} в примере я это и показал.

Или же я просто поторопился и не прочитал что вы хотите))))

Изменено пользователем Indomito
Ссылка на комментарий
Поделиться на другие сайты

TALLER: что бы получить EOF нажми ctrl-z нажатие на Enter тут не при чём - я ответил? :sm(100):

#include<stdio.h>int main(void){  char c;  while((c=getchar())!='\n') printf("%c",c);  return 0;}

можно так, те то нажатия ввода

Ссылка на комментарий
Поделиться на другие сайты

TALLER: что бы получить EOF нажми ctrl-z нажатие на Enter тут не при чём - я ответил? :sm(100):

Не совсем. И как использовать вайл можно было не писать, вопрос то не в этом был, возможно вы его не поняли, потому что мы мыслим разными категориями. Но узнав, как обозначается ЕОФ, я в остальном разобрался на практике. Спасибо

Ссылка на комментарий
Поделиться на другие сайты

TALLER: ты хотел читать из файла что ли.... но при чём тут входной поток консоли :sm(100):

TALLER: и ещё... посмотри файл stdio.h там описание EOF это константа ... кажется (-1), ну и по этому её нельзя получить вводом с клавиатуры, те можно, но как я описал выше.

Изменено пользователем Indomito
Ссылка на комментарий
Поделиться на другие сайты

TALLER: ты хотел читать из файла что ли.... но при чём тут входной поток консоли :)

TALLER: и ещё... посмотри файл stdio.h там описание EOF это константа ... кажется (-1), ну и по этому её нельзя получить вводом с клавиатуры, те можно, но как я описал выше.

Ну если интересно.

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

Например

while n<100 do

/../

n := n+1

А здесь же

while ((c = getchar()) != EOF)

++n

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

Вот в первом случае прога зашла в цикл и делает его без остановки пока n не станет равна 100.

А как во втором? По идеи после запуска прога должна войти в цикл, но если счетчик не связан с условием, почему она не зацикливается? Или она вошла в цикл и ждет когда я символ введу, а потом проверяет его на условие и если это не ЕОФ прибавляет к н единицу и ждет следующий символ?

( для справки: это я изучаю книгу Язык программирования С, она здесь на форуме есть, можешь посмотреть)

Ссылка на комментарий
Поделиться на другие сайты

TALLER:

вот например код

include <stdio.h>

main()

{

int c;

c = getchar();

while (c != EOF)

{

putchar©;

c = getchar();

}

}

Т.е. происходит копирование того, что напишешь.

Ввожу 2, жму ентер, выдает 2 и т.д., а как сделать чтобы цикл закончился, как обозначить этот EOF?

EOF вводится, если нажать в новой строке (после Enter) клавишу F6 - старинное соглашение MS-DOS. На экран при этом выведется ^Z. Или, как написал уже Indomito, вместо F6 можно нажать Ctrl+Z.

И в начале примера куда-то пропал символ # перед include, но это, видимо, ошибка копирования.

Программа для подсчета символов

#include <stdio.h>

main()

{

long nc;

nc = 0;

while (getchar() != EOF)

++nc;

printf ("%d\n", nc);

}

Естественно, чтобы получить результат нужен конец файла EOF, который я не знаю как обозначить, поэтому результат получить не могу.

И все же такой вопрос: когда происходит проверка условия цикла, когда я ввожу любой символ или когда жму Ентер?

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

А если второе, то ++nc будет выполняться после нажатия ентер, и тогда программа подсчитает не кол-во символов, а кол-во нажатия ентер.

Значит проверка условия не осуществляется ни в том, ни в другом случае. А когда тогда?

С EOF уже разобрались. Чтобы задержать вывод printf на экране, перед закрывающей фигурной скобкой надо вставить getchar(); - с этим уже разбирались. Есть правда, и другие способы, но этот вроде бы проще.

Проверка в цикле ждет ввода с клавиатуры, а клавиатура посылает в программу то, что было в нее введено, из своего буфера при нажатии Enter. Так что при нажатии Enter клавиатура пошлет программе всю цепочку введенных символов, включая код клавиши Enter, и цикл начнет крутиться, забирая и проверяя по одному все эти символы, и приостановится, съев Enter, поскольку getchar будет ждать нового символа. Выход из цикла произойдет при съедании EOF, то есть кода клавиши F6 после Enter. Так что printf напечатает общее число введенных символов, причем в их число будут входить служебные символы от клавиши Enter.

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

P.S. В форме сообщения есть кнопка Код (символ решетки). Код надо оформлять с помощью этой кнопки, подобно цитатам - тогда сохраняются отступы и не преобразуются некоторые комбинации символов, считающиеся служебными, как это произошло у тебя с ( c), превратившимся в ©.

Изменено пользователем Тролль
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...