Вопросы по программированию

Автор Богдан, 03 Листопад 2007, 11:41:18

Попередня тема - Наступна тема

icedove

Цитата: Edd.Dragon від 04 Травень 2010, 10:41:49
Зачем?

Цитата: Edd.Dragon від 03 Травень 2010, 11:32:24
ну так файл-то заголовочный
делай только С-шку без H и ее же инклудь. так вроде можно.


Edd.Dragon

#801
Не, ты наверное не понял, что я имею ввиду.

Имеем 3 файла


#include <stdio.h>

void func1()
{
printf("func1 otput\n");
}



#include <stdio.h>

void func2()
{
printf("func2 otput\n");
}



#include <stdio.h>
#include <stdlib.h>

//#include "lib1.c"
//#include "lib2.c"

int main()
{
    func1();
    func2();

    return 0;
}


Почему инклуды закоментированы? Зависит от того, как ты работаешь с проектом. Если ты пользуешься IDE-шкой (интегрированной средой разработки), например, Code::Blocks или другой, то они обычно сами (не все) за тебя создают во время процесса билда корректный make-файл на основании содержимого проекта. Т.е. в нашем случае билдится main.c. Поскольку в нем есть инклуды двух либ, то компилируются и они. А потом все линкуется в один exe. Что мы получим? Директивой include в текст main.c по сути вставляется код тех двух либов. Значит все 3 функции будут скомпилированы в файле main.o. А потом еще либовые функции окажутся повторно при компиляции lib1.o и lib2.o. При воссоединении получим все ту же ошибку. Потому я закоментировал инклуды и все отлично компилится (окромя варнингов, что я неявно использую функции из других файлов), т.к. все исходники в проекте автоматически будут скомпилированы и слинкованы. Естетсвенно это не няшно, но работает.

Другой вариант - ты правишь make-файл собственно ручно. Тогда ты инклуды не коментируешь, а в мейке ты компилируешь только сам main.c в main.o. Ничего к нему не линкуешь, т.к. текст реализаций библиотек уже в нем (препроцессор его вставил вместо инклудов). И снова все работает.

____________

Ну а по-нормальному процесс следующий:


#include <stdio.h>
#include <stdlib.h>

#include "lib1.h"
#include "lib2.h"

int main()
{
    func1();
    func2();

    return 0;
}


где инклуды препроцессор заменяет содержимым заголовочных файлов, т.е. прототипами func1 и func2. Исключительно для того, чтобы компилер не паниковал и не ругался. Т.е. компилироваться будет main.c с пачкой прототипов. А потом еще скомпилятся реализации и залинкуются к exe-шнику - все в порядке!

Вот у тебя в исходной проблеме и main.c содержал реализации функций и потом еще в качестве реализации видимо повторно был скомпилирована ашка за неимением соответствующей ей сишки. Если бы make-файл ті писал вручную, то проблема по всей видимости не возникла бы.

______________

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



βεερ_βooρ

Цитата: Edd.Dragon від 04 Травень 2010, 14:25:57Если бы make-файл ті писал вручную
Он его писал вручную. Я гарантирую это.
Но он был жестоко наказан за нарушение модульной инкапсуляции.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

icedove

Цитата: βεερ_βooρ від 04 Травень 2010, 13:40:50
Он его писал вручную. Я гарантирую это.
Но он был жестоко наказан за нарушение модульной инкапсуляции.

Писал вручную да.

ЦитатаЕсли ты пользуешься IDE-шкой (интегрированной средой разработки), например, Code::Blocks или другой, то они обычно сами (не все) за тебя создают во время процесса билда корректный make-файл на основании содержимого проекта.

vim :)

ЦитатаЗначит все 3 функции будут скомпилированы в файле main.o. А потом еще либовые функции окажутся повторно при компиляции lib1.o и lib2.o.

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

Хочу задать очередной вопрос.

http://paste.pocoo.org/show/209676/

Функция сравнивает 2 "картины", представленных в виде матриц. Циклы for располагают вторую картину в 8 положений и сравнивает его с первой. Есть ли какой-то другой алгоритм или способ объединение 8 циклов?

FalseMan


icedove


Edd.Dragon

#806
Цитата: icedove від 04 Травень 2010, 16:53:23Есть ли какой-то другой алгоритм или способ объединение 8 циклов?
Смысла особого нет объединять, а если для компактности кода, то можно сделать примерно так:


int matrix_equal(stMatrix *_fMatrix, stMatrix *_sMatrix, int di, int dj)
{
for (register int i = 0; i < _fMatrix -> n ; i++)
{
for (register int j = 0; j < _fMatrix -> m; j++)
{
if (matrix_show(_fMatrix, j, i) != matrix_show(_sMatrix, (dj ? dj - j : j), (di ? di - i : i))) return false;
}
}
return true;
}

int matrix_compare(stMatrix *_fMatrix, stMatrix *_sMatrix)
{
int _m = _fMatrix -> m,
int _n = _fMatrix -> n;
if (_m == _sMatrix -> m && _n == _sMatrix -> n)
{
if(matrix_equal(_fMatrix, _sMatrix, 0, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, 0, _n - 1)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _m - 1, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _m - 1, _n - 1)) return 1;
}
else if ((_m == _sMatrix -> n) && (_n == _sMatrix -> m))
{
if(matrix_equal(_fMatrix, _sMatrix, 0, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, 0, _m - 1)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _n - 1, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _n - 1, _m - 1)) return 1;
}
return 0;
}


Добавлено: 04 Травень 2010, 16:03:47

http://paste.pocoo.org/show/209715/

Добавлено: 04 Травень 2010, 17:12:23

Или вообще вот так http://paste.pocoo.org/show/209718/  :D

icedove

#807
Цитата: Edd.Dragon від 04 Травень 2010, 17:02:18
Смысла особого нет объединять, а если для компактности кода, то можно сделать примерно так:


int matrix_equal(stMatrix *_fMatrix, stMatrix *_sMatrix, int di, int dj)
{
for (register int i = 0; i < _fMatrix -> n ; i++)
{
for (register int j = 0; j < _fMatrix -> m; j++)
{
if (matrix_show(_fMatrix, j, i) != matrix_show(_sMatrix, (dj ? dj - j : j), (di ? di - i : i))) return false;
}
}
return true;
}

int matrix_compare(stMatrix *_fMatrix, stMatrix *_sMatrix)
{
int _m = _fMatrix -> m,
int _n = _fMatrix -> n;
if (_m == _sMatrix -> m && _n == _sMatrix -> n)
{
if(matrix_equal(_fMatrix, _sMatrix, 0, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, 0, _n - 1)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _m - 1, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _m - 1, _n - 1)) return 1;
}
else if ((_m == _sMatrix -> n) && (_n == _sMatrix -> m))
{
if(matrix_equal(_fMatrix, _sMatrix, 0, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, 0, _m - 1)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _n - 1, 0)) return 1;
if(matrix_equal(_fMatrix, _sMatrix, _n - 1, _m - 1)) return 1;
}
return 0;
}


Добавлено: Tue May  4 14:03:47 2010

http://paste.pocoo.org/show/209715/

Добавлено: Tue May  4 15:12:23 2010

Или вообще вот так http://paste.pocoo.org/show/209718/  :D

Для матриц:

100
100

001
001

выдает некорректное значение

matrix_equal(_fMatrix, _sMatrix, 0, 0) в двух ифах выдает те же значения

и во всех случаях второго ифа надо чтобы первый коэффициент был j а не i

βεερ_βooρ

Цитата: icedove від 04 Травень 2010, 16:53:23Просто тогда надо писать команды для преобразования каждого модуля в объектный файл.
Учи матчасть
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

icedove


βεερ_βooρ

Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Edd.Dragon

Цитата: icedove від 04 Травень 2010, 18:29:42выдает некорректное значение
Ну я ж его не проверял! Суть показал как компактно сделать.

ODY

#812
ребята, помогите, где пишутся макросы для ворда? девушка попросила помочь, а я не знаю даже в чем его писать...
Вибачте, але ви не маєте права на перегляд спойлерів.

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

FalseMan

Цитата: ODY від 27 Червень 2010, 16:25:47
ребята, помогите, где пишутся макросы для ворда? девушка попросила помочь, а я не знаю даже в чем его писать...
Вибачте, але ви не маєте права на перегляд спойлерів.

вот такие вот задания, подскажите где их запрограммировать, куда жать что б было весело?))
http://tinyurl.com/27udmld
http://tinyurl.com/23wjvsp
Is that REALLY so hard?

avator

Привет всем!
у меня вопрос
Как с помощью регулярных выражений (regexp) вписать фильтр на числа от 1 до 18? От 0-9 - без проблем : \b[0-9]
но как задавать числа из 2х и более цифр?
i5 2130| Zalman Flex+Noctua NF-S12B| Asus P8Z68-V LX | Kingstone 1600Mhz DDR3 2 x 4Gb| HIS 6850 IceQ X| Creative X-Fi XtremeGamer| HDD WD5000AAKS| Chieftec APS-600C| Case ASUS Verto| DELL 2209WA | mouse Razer Lachesis

hob

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

program p1;
uses crt;
var a:array[1..10, 1..10] of integer;
       i, j, sum, kil: integer;
       const n=10;
begin clrscr;
for i:=1 to n do
for j:=1 to n do
a[i, j]:=random(100);

sum:=0;
kil:=0;
for i:=1 to n do
for j:=1 to n do
if (a[i, j]>0) then
       
        begin inc(kil);
        sum:=sum+a[i, j]
end;
writeln;
writeln('sum=', sum);
writeln('kilkist=', kil);
readln;
end.


Как решить, задействуя процедуру?

Phantom of the Opera

#816
Цитата: hob від 26 Вересень 2010, 16:03:07Как решить, задействуя процедуру?
Залежить від того, який код кинути в процедуру

тут є приклад використання процедур: http://pascalprogramming.byethost15.com/lesson7.php
"Мыслящий ум - тот, который постоянно учится, никогда не делая заключений; стили и шаблоны уже приведены к заключениям, и, таким образом, они не могут способствовать мышлению." Брюс Лі

hob

Цитата: Phantom of the Opera від 26 Вересень 2010, 15:14:03
Залежить від того, який код кинути в процедуру
Трошки не зрозумів, що ти маєш на увазі. За посилання дякую, начебто вже розібрався :)

resiver

а что разве ета тема закрыта? :(
Подпись отображается внизу каждого Вашего сообщения. Вы также можете использовать BB код и смайлы.

hob

#819
Нужна ваша помощь по дельфи. Не работает одна программа, могу отправить код, если нужно.
Вопрос закрыт, уже разобрался.

thrustmaster

Хто знає, де тут помилка: код HTML

Цитата{$searchstring|replace:'"':'&quot;'|replace:"\'":"'"|default:""}

бо Опера пише, що десь в цьому рядку і не відкриває сайт...

user_lol

Цитата: thrustmaster від 26 Січень 2011, 23:10:42
Хто знає, де тут помилка: код HTML
Це далеко не ХТМЛ, а який сайт?

thrustmaster

Цитата: user_lol від 28 Січень 2011, 00:06:28Це далеко не ХТМЛ, а який сайт?

HTML, бо я його писав...все вже вирішив..я просто цей рядок витер і пошук і без нього тепер робить)))

Mantikor

#823
Помогите решить проблему, написал небольшой скрипт проверки паролей:
1. после ввода пароля(больше 6 символов) активируется второе поле
2. после подтверждения пароля активируется кнопка сабмит
Так вот проблема в том, что кнопка сабмит активируется в Chrome, Firefox, а в Opеra - нет.
Не могу понять в чем загвоздка. Если кто знает как это реализовать на document.getElementById, буду бдагодарен за подсказку

<form action="" name="form" method="post">
    password<br />
    <input type="password" id="pas1" name="pass1" onKeyUp="simile('form','pass1','pass2','submit')">
    <span style="color:gray"><i>min 6 characters</i></span><br />
    <input type="password" id="pas2" name="pass2" onKeyUp="simile('form','pass1','pass2','submit')" disabled><br />
    confirm password<br />
    <input type="submit" id="sbm" name="submit" id="pass22" value="send" disabled>
</form>

<script type="text/javascript">
    function simile(form, pass1, pass2, submit) {
        PASS1 = document.forms[form].pass1.value;
        PASS1count = document.forms[form].pass1.value.length;
        PASS2 = document.forms[form].pass2.value;
        DISABLED = document.forms[form].pass2;
        SUBMIT = document.forms[form].submit;
        if(PASS1count >= 6) {
            DISABLED.disabled = 0;
        }
        else {
            DISABLED.disabled = 1;
        }
       
        if(PASS1 == PASS2 && PASS1count >= 6) {
            SUBMIT.disabled = 0;
        }
        else {
            SUBMIT.disabled = 1
        }
    }
</script>

Bismark

Всем здрасте! :)
Вот возник такой вопрос...
Можно ли как-то в языке C прочитать из переменной типа char (один байт) отдельные биты???
Нашел в инете такой вариант (для С++, но это пока не столь важно):
Цитата
struct BITS
{
      bool b1 :1;
      bool b2 :1;
      bool b3 :1;
      bool b4 :1;
      bool b5 :1;
      bool b6 :1;
      bool b7 :1;
      bool b8 :1;
};

void myfunction()
{
   char cByteRead;
   BITS b;

   cByteRead = 'a';

   cout << "The full byte has a meaning of...: " << cByteRead << endl;
   cout << "...which is in int:" << (int)cByteRead << endl;

   b = *(BITS*)(&cByteRead);
   cout << b.b1 << endl;
   cout << b.b2 << endl;
   cout << b.b3 << endl;
   cout << b.b4 << endl;
   cout << b.b5 << endl;
   cout << b.b6 << endl;
   cout << b.b7 << endl;
   cout << b.b8 << endl;
}
Мне нужен конечно не вывод информации, а просто возможность получения значения бита, что этот метод позволяет сделать.
Но может быть есть варианты попроще???

user_lol

#825
Цитата: Bismark від 31 Травень 2011, 23:38:51
Можно ли как-то в языке C прочитать из переменной типа char (один байт) отдельные биты???
Можна отримати побітовим зсувом в циклі до необхідного біта - >> or <<
Або перетворити остачею від ділення:
#include<conio.h>
#include<stdio.h>

main()
{
    char x='a';
    int a[8];
    for(int i=0;i<8;i++)
    {
                    a[i]=x%2;
                    x/=2;
                    printf("%d",a[i]);//0 - молодший розряд, 7 - старший(!)
    }
    scanf("%d");
}

Bismark

Цитата: user_lol від 01 Червень 2011, 00:22:44
Можна отримати побітовим зсувом в циклі до необхідного біта - >> or <<
Або перетворити остачею від ділення...
Дякую за відповідь!
Але мені треба дещо інше...
Насправді мене цікавить, чи є якісь готові функції для такої задачі?
Щоб не використовувати цикли... Просто треба виконати вказану операцію за найменший час, тому ідеально було б, якби була якась можливість для зчитування конкретного біту, типу Byte.Bit1 щоб зчитати байт номер 1 зі змінної типу char, під назвою Byte.

P.S. біт треба читати вибірково, саме потрібний за номером, а не послідовно всі.

user_lol

#827
Цитата: Bismark від 01 Червень 2011, 00:37:40
Щоб не використовувати цикли...
Щоб не використовувати цикли:
Наприклад є число 10->1010. Треба взнати 3 біт. Зсуваєш на 2(a>>2). І якщо число парне - 0, непарне - 1.
ЗІ про готову функцію не чув, та тут і немає що писати  :)

Bismark

Цитата: user_lol від 01 Червень 2011, 00:44:46
Щоб не використовувати цикли:
Наприклад є число 10->1010. Треба взнати 3 біт. Зсуваєш на 2(a>>2). І якщо число парне - 0, непарне - 1.
ЗІ про готову функцію не чув, та тут і немає що писати  :)
Вже знайшов потрібний мені спосіб, але все одно дуже дякую за поради!

demon lord

хелло читающим , возник такой вопрос, прошу помочь кого не отяготит.
есть задание, написать программу на ассемблеры которая будет из строки со словами разделёнными 1 или неск. пробелами выводить первые буквы каждого слова, есть ранее сделанная  прога которая ищет в строке  введенный символ
Вибачте, але ви не маєте права на перегляд спойлерів.

Спасибо за внимание.


Votan14

Прошу помощи по MySQL. Подскажите метод спарсить базы данных исполнителей и текстов песен с сайта pesenki.ru. Заранее спасибо откликнувшимся.
Пейте пиво с детских лет - у дебилов проблем нет!

greg.re1234

Доброго времени суток! В бейсике была возможность сделать def balabla, как сделать то же в Python?
Можно ли дефайнить функцию без аргументов, и добавлять/удалять аргументы из функции в процессе execution flow?
Вопрос был бы идиотским если бы я не rtfm'ил его пятый раз подряд с нулевым результатом. Спасибо.

Edd.Dragon

http://ru.wikibooks.org/wiki/Учебник_Python_2.6

ЦитатаТакже есть возможность определять функции с переменным количеством аргументов. Для этого существует три формы, которые также можно использовать совместно.

Это что ли?

user_lol

#833
Цитата: RIP21 від 14 Січень 2012, 23:24:35
Вибачте, але ви не маєте права на перегляд спойлерів.

Все рівно не спиться, тримай тобі накидав  ;)
Вибачте, але ви не маєте права на перегляд спойлерів.

Mantikor

Как исполнить php код на сайте/форуме/блоге?
Точнее как проверить доступны ли функции exec, shell_exec, system, is_resource, passthru для исполнения на сайте/форуме/блоге?

Edd.Dragon

#835
В смысле? С чего бы стандартные распространенные движки вообще потенциально где-то имели код, выполняющий у себя (на сервере) текст, пришедший от юзера? С какой целью? Максимум, по недосмотру они позволят на клиенте у одного юзера (при просмотре форума) выполнить скрипт, запощенный другим. Да и такие разителные дыры уже в общем-то в прошлом.

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

Если ж имеешь ввиду что-то другое - изложи более понятно.

Mantikor

Цитата: Edd.Dragon від 22 Березень 2012, 23:15:18В смысле? С чего бы стандартные распространенные движки вообще потенциально где-то имели код, выполняющий у себя (на сервере) текст, пришедший от юзера? С какой целью? Максимум, по недосмотру они позволят на клиенте у одного юзера (при просмотре форума) выполнить скрипт, запощенный другим. Да и такие разителные дыры уже в общем-то в прошлом.
Да я тоже это знаю, решил проверить. А вдруг кто-то знает чтонить новое?
Цитата: Edd.Dragon від 22 Березень 2012, 23:15:18Если же ты имеешь ввиду чей-то ньюбский самописный движок, то откуда нам знать, какие там есть возможности взаимодействия клиента с сервером, если мы его не видели? И вообще такой вопрос звучит как "Поможыте ломануть вражину!", что уголовно.
Ничего уголовного, просто тестирование))
Спасибо пока.

P.S. Во время составления ответа на твой пост, в голову пришла очень интересная мысль. Так что мой вопрос свою цель исполнил.

Edd.Dragon

Цитата: Mantikor від 23 Березень 2012, 00:02:39А вдруг кто-то знает чтонить новое?
Ну тут мало чего нового. Если движок делает exec/eval из юзерских данных - это просто тупость. Так им и надо.

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

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

А выполнение кода на сервере - это разве что через дыры в веб/php/sql-серверах, а не через php-код, в котором вообще не должно быть ни единого eval-а или хотя бы ни единого, выполняющего произвольный код юзера.

[Raymond]

Так как часто появляется много свободного времени, захотелось попробовать научиться программировать.
Для начала, я не знаю какой язык выбрать. Судя по тому, что я читал/слушал думаю про С++ или Python. Можно с одного из них начинать?
Если да, то какие есть хорошие русскоязычные самоучители?
А, важное уточнение, математику и английский язык знаю плохо. С Турбо Паскалем справлялся лучше других в группе, то есть просто плохо, а не ужасно, как остальные политологи. Но уже ничего не помню.
Что можете посоветовать?

Mantikor


Edd.Dragon

Цитата: RaymonD 88 від 21 Травень 2013, 14:33:08Что можете посоветовать?
Цели определить. А то бесцельно учиться просто программировать? Что именно программировать?

Если базовые алгоритмы - тогда ищешь учебники и c++ отличный вариант для этого. ООП можно как на c++, так и на том же C# или Java тренироваться. А если выберешь c++, то в зависимости от задач - возникает вопрос в чем работать. Писать консольные приложения - без разницы. Оконные - существенная разница, кто какие способы для этого предлагает. А язык, грубо говоря, не важен. Но с языком еще культура паровозом тянется, и вот эти возможности или степень гемморности решения той или иной задачи.

К слову говоря, всякие там сортировки, работу с матрицами или даже рисование можно учить и на js в браузере. Вообще не тарясь никакими лишними средствами разработки и не изучая ничего лишнего, кроме HTML, устройства DOM (документа в браузере) ну и основ программирования. И будет это выглядеть как-то так  :

Вибачте, але ви не маєте права на перегляд спойлерів.


Пример рабочий. И никаких компиляторов не нужно! Браузер уже готов к работе ))
Но меня в такой "учебе" напрягает HTML, мешающий восприятию. Зато это конечно не текстовая консоль - что хочу, то и делаю (в смысле визуализации результатов), причем довольно малой кровью.

[Raymond]

Цитата: Edd.Dragon від 21 Травень 2013, 15:26:39Цели определить. А то бесцельно учиться просто программировать? Что именно программировать?
Ну вот пока, по причине отсутствия знаний даже не знаю с чего начать. Пока что есть просто желание попробовать научиться делать хоть что-то. А там уже посмотрю, что делать.
Цитата: Edd.Dragon від 21 Травень 2013, 15:26:39А язык, грубо говоря, не важен. Но с языком еще культура паровозом тянется, и вот эти возможности или степень гемморности решения той или иной задачи.
Понимаю, но надо же всё-таки выбрать хоть какой то язык.
Цитата: Edd.Dragon від 21 Травень 2013, 15:26:39И будет это выглядеть как-то так  :
Как и можно было ожидать, ничего кроме html-тегов не понял :)
Цитата: Edd.Dragon від 21 Травень 2013, 15:26:39Если базовые алгоритмы - тогда ищешь учебники и c++ отличный вариант для этого.
Бьерн Страуструп. Язык программирования С++
Этот пойдёт? Или есть что-то проще? Ну и про Python думаю, люди рассказывают, что он довольно простой.
Правда, раньше читал это и не превозмог один из первых абзацев
Вибачте, але ви не маєте права на перегляд спойлерів.




Edd.Dragon

Цитата: RaymonD 88 від 22 Травень 2013, 16:03:15Как и можно было ожидать, ничего кроме html-тегов не понял
Ну вот можешь попрактиковаться с Си/С++ и обнаружишь, что понимаешь и другие языки )))


Цитата: RaymonD 88 від 22 Травень 2013, 16:03:15Бьерн Страуструп. Язык программирования С++
Наверное будет лучше начать с этого:
http://cpp.com.ru/kr_cbook/index.html


[Raymond]

Цитата: Edd.Dragon від 24 Травень 2013, 13:00:12Наверное будет лучше начать с этого:http://cpp.com.ru/kr_cbook/index.html
Спасибо, уже нашёл в mobi, буду читать.

YuGa-92

#844
Цитата: Edd.Dragon від 24 Травень 2013, 13:00:12Наверное будет лучше начать с этого:
http://cpp.com.ru/kr_cbook/index.html
А я би порадив краще  починати вчити з Г. Шилдта "C++ для начинающих Шаг за шагом - Герберт Шилдт". Багато хто з неї починав (і я теж). Автор досить доступно все пояснює. І, бажано, мати під рукою книжку цього ж автора "Полный справочник С++".
Або Стенлі Ліппман "Essential C++" Саме її мені порадив один наш викладач, який в нас працює по сумісництву  ??? А основне місце праці в Global Logic. От тільки не знаю чи є переклад.
Хоча тут вже кожен своє нарадить  ;) Але з Страуструпа починати не раджу. Якось все в нього розкидано і при навчанні залишається дуже багато питань, які по словам автора - зникнуть при повторному прочитанні книги.
А от в якості другої книги буде добре.
Цитата: RaymonD 88 від 22 Травень 2013, 16:03:15Пока что есть просто желание попробовать научиться делать хоть что-то.
Тоді дійсно починай з С/С++, потім при бажанні зможеш перейти на Java, C#, PHP, JS... Ці всі мови мають схожий "Сішний"  синтаксиз і призначені для різних цілей. А перейти з одного на інший не дуже складно, якщо добре знаєш одну мову.
Якщо в голову прийшла ідея - головне щоб вона знайшла дорогу до мозку між цими банками та склянками...

[Raymond]

Только что дошел к хеловорлду. А где его писать? :D В виндовском блокноте наверно не получится... Ну и можете дать ссылку на нужное ПО(+компилятор наверно)? 
На Шилда уже завтра посмотрю, спасибо.

Edd.Dragon

Цитата: RaymonD 88 від 24 Травень 2013, 20:06:15В виндовском блокноте наверно не получится...
Получится. Только в exe он преобразовывать не умеет ))

Code::Blocks
Visual Studio Express

Garfield

Цитата: RaymonD 88 від 21 Травень 2013, 14:33:08
Так как часто появляется много свободного времени, захотелось попробовать научиться программировать.
Для начала, я не знаю какой язык выбрать. Судя по тому, что я читал/слушал думаю про С++ или Python. Можно с одного из них начинать?
Если да, то какие есть хорошие русскоязычные самоучители?
А, важное уточнение, математику и английский язык знаю плохо. С Турбо Паскалем справлялся лучше других в группе, то есть просто плохо, а не ужасно, как остальные политологи. Но уже ничего не помню.
Что можете посоветовать?
Начинай с C++. Для начала, конечно, лучше почитать "Бьярн Страуструп. Принципы и практика использования C++". Потом можно Шилдта, Липпмана, Мэйерса....

И лучше начни с процедруного программирования в С++ (чистый Си не рекомендую для начала), не хватайся сразу за ООП

βεερ_βooρ

Цитата: Garfield від 04 Червень 2013, 17:04:28Для начала, конечно, лучше почитать "Бьярн Страуструп. Принципы и практика использования C++".
1248-страничная книга для начала далеко не лучший выбор. А из всех хороших книг по С++ начинать со Страуструпа -- пожалуй найхудший вариант, так как они не расчитаны на новичков.
Лучше уж начинать с того же Шилда.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?