1

(11 відповідей, залишених у C/C++)

Це означає, що стандарт не визначає, як функції працювати конкретно із цим параметром, різні компілятори обробляють її по-різному.

А питання не по темі: хто розробляє C зараз? Є стандарт, який написав розробник мови (в 1972 здається), і зараз кожен кому не лень - пише свій компілятор?

Нема так як в пітоні - Гвідо Ван Россум, який рішає куди все рухається?

2

(11 відповідей, залишених у C/C++)

Це нас просто вчать в універі по CS50. А вони ці круті "перці" написали свою бібліотеку: https://github.com/cs50/libcs50/ і пропонують студентам використовувати їхню функцію GetInt: https://github.com/cs50/libcs50/blob/80 … s50.c#L500

Це, як на мене, взагалі дічь: ось студенти ми вам спростили життя: для навчання написали бібліотеку, там вам ввід-вивід (і ще щось) реалізовано вже нормально, але я самому таке зробити і як бути в реальному житті - мовчок

3

(11 відповідей, залишених у C/C++)

fflush(stdin) не має визначеної документацією поведінки,

Це тобто означає, ніби функція є, але що вона робить не відомо ?)

А що вам заважає взяти більшу довжину рядка? 20 символів вистачить для будь-якого цілого (от тільки не треба брехати fgets, що в буфері 4 символи, якщо їх там 3).

А якщо юзер введе 25 символів - знову станеться каша: перекине символи, що залишились (5) на наступний ввід.

Як зчитати всі-всі символи?

4

(12 відповідей, залишених у *nix)

В мене теж було таке. На сервері. dpkg-reconfigure помогло, з другого разу. Треба було вибрати тільки en

5

(11 відповідей, залишених у C/C++)

З fgets теж проблема, як читати від початку і до кінця?

    do {
        char height_str[3];
        printf("height: ");
        fgets(height_str, 4, stdin);

        height = strtol(height_str, &ptr, 10);
    } while ( height <= 0 || height > 23);

Бо якщо отак, то забере 3 елементи, а якщо елементів було введено більше - то просто перекине на наступний ввід

6

(11 відповідей, залишених у C/C++)

Ще б була можливість очистити той буфер.

        fflush(stdin);

- нічого не робить

7

(11 відповідей, залишених у C/C++)

Допоможіть роздуплитись з C.

Прихований текст
Якась сішка важка і низькорівнева. Тут навіть нереально отримати тип даних змінної

Отож треба ввести з клави int. Але треба перевіряти якщо юзер ввів не ціле число - то капець: треба показати ще раз ввід.

#include <stdio.h>

int main() {
    int height;
    int is_input_ok;
    do {
        printf("height: ");
        is_input_ok = scanf("%d", &height);
    } while (is_input_ok == 0);

    printf("after while");

}

Отаке є. Зчитуєм, десь нагуглив що scanf повертає 1 або 0, якщо ввід був ок. Компілиться, але: якщо ввести букви якісь: то просто зациклюється і прінтить на екран ("height: "). І не запитує ввід. Ну що за хрінь?

8

(17 відповідей, залишених у Python)

koala написав:

Перше наближення на Python:

def boolean(s):
    for i in range(2**len(s)):
        print('{',','.join(c for n,c in zip(('0'*len(s)+bin(i)[2:])[-len(s):],s) if n=='1'),'}')
>>> boolean("abc")
{  }
{ c }
{ b }
{ b,c }
{ a }
{ a,c }
{ a,b }
{ a,b,c }

Друге наближення:

def boolean(s):
    for i in range(2**len(s)):
        yield [c for n,c in zip(('0'*len(s)+bin(i)[2:])[-len(s):],s) if n=='1']
>>> print(list(boolean("abc")))
[[], ['c'], ['b'], ['b', 'c'], ['a'], ['a', 'c'], ['a', 'b'], ['a', 'b', 'c']]
>>> print(list(boolean([1,2,3])))
[[], [3], [2], [2, 3], [1], [1, 3], [1, 2], [1, 2, 3]]


Я правильно все зрозумів:

1. Ми перебираємо всі числа від нуля до довжини булеана.

2.

('0' * len(s) + bin(i)[2:])[-len(s):]

Це число переводимо в бінарний формат.

3. І тут можемо якраз зробити це:

000 123 => {}
001 123 => {3}
010 123 => {2}
....

Так, геніально ж.
Дякую

9

(17 відповідей, залишених у Python)

koala написав:

Все просто. Потужність булеана дорівнює 2^p (p - потужність множини). Знаєте чому? Бо кожен елемент множини може як входити, так і не входити (2 варіанти) в елемент булеана. А отже, є взаємно однозначна відповідність між двійковими числами довжини p та елементами булеана (наприклад, 00...0 - це {}, а 11...1 - це початкова множина). Тепер зможете сформувати булеан?

Звісно, можна вручну реалізовувати операцію додавання (чи віднімання) 1 від числа за допомогою сірників та клею побітових операцій, але нащо, якщо це вже є вбудоване в процесор?

Здається, я починаю розуміти, зараз спробую написати на папері алгоритм

10

(17 відповідей, залишених у Python)

Master_Sergius написав:

Ну, можна погуглити трішки і зрозуміти що то таке той булеан взагалі.
Якщо X – множина {x,y,z}, то булеан (множина усіх підмножин):
{}, {x}, {y}, {z}, {x,y}, {x,z}, {y,z}, {x,y,z}

Ну і якби звідси задача уже не є складною. Якщо писати на Python, можна поглянути на бібліотеку itertools.

Та це все я загуглив. Як виглядає булеан - зрозуміло.
А от iteertools - banned to use. Самому треба написати

11

(17 відповідей, залишених у Python)

Прийшов мій час засирати форум лабами.

Тож, вчуся я в НУ Львів Політех. Комп. науки. Перша лаба, з дискретки.

Треба вивести булеан множин. Можна на пітоні, можна на сішці. Я взагалі не викопаю, алгоритму.

було таке

a = [1, 2, 3]

i = 0
result = []
current = ''

lens = 2
used = []
while i < len(a):
    if a[i] not in used:
        pass
        current += str(a[i])
        used.append(a[i])
        print current
        if len(current) == lens:
            result.append(current)
            current = ''
            if i != (len(a) - 1):
                i = 0
            else:
                i += 1
        else:
            i += 1
    else:
        i += 1

print result

Рахує ок лише на певній стадії. Тобто якщо є множина a, b. c то код вище виведе ab. Не модифікував далі.

Нагуглив що булеан має шукатись через рекурсію, але теж не зрозуміло як. з вікі: https://image.prntscr.com/image/9y_Dr7Q8S1y7H5Lbamnftg.png

-------------

Ще нагугли c код: але в ньому розібратись не можу, також не зрозумів алгоритму (побітовий зсув тут до чого взагалі?)

#include<iostream>

void Print(char *a, int n, int i)
{
    if (n)
    {
        if (n & 1)
            std::cout << a[i] << " ";
        Print(a, n >> 1, i + 1);
    }
}

int main()
{
    int r, i, size;
    char a[] = {'a', 'b', 'c'};
    size = sizeof(a) / sizeof (*a);
    r = 1 << size;
    for (i = 0; i < r; i++)
    {
        Print(a, i, 0);
        std::cout << "\n";
    }
    return 0;
}

Буду дуже радий за будь-яку допомогу. Просто супер було б якби я вкурив алгоритм.

Якщо хтось напише мені на пітоні - віддячусь (переносити тему в розділ пошуку роботи, думаю не треба).

Прихований текст
Чесно, от зараз - це просто влом. Можливо, це, і потрібний матеріал, але просто влом справді.

12

(6 876 відповідей, залишених у Інше)

І що ви думаєте панове?

https://stackoverflow.blog/2017/09/06/i … th-python/

13

(16 відповідей, залишених у PHP)

Цікаво, скільки пройде часу поки вас тут забанять  :D

14

(5 відповідей, залишених у Бази даних)

Якщо серйозно, то робіть свій продукт, форму з підпискою і просувайте продукт)

15

(5 відповідей, залишених у Бази даних)

Не давайте йому цього! Зараз заспамить тут всіх! :P

16

(33 відповідей, залишених у Обговорення)

ping написав:
Q-bart написав:
iovchynnikov написав:

Я створив ішью щодо перекладу згідно з їх інструкціями: https://github.com/liuderchi/atom-i18n/issues/101
Почну перекладати у вільний час, бо сам користуюся. Запрошую долучатися, брати 1-2 файли і перекладати. Дайте знати який файл взяли там в коментарях.
How-to: https://github.com/liuderchi/atom-i18n/ … IBUTING.md

О, ви молодець! Мені Atom не зайшов, через те що дуже глюкав навіть просто з коробки чистий без плагінів і теми. В сублаймі поставив щось схоже на python ide + десяток різних плагінів під веб - і все чудово!

Але до перекладу долучусь якось

а чому вже тоді не пішарм? воно вже по швидкодії , мабуть, однаково.

Нє! Стояв якось ще дуже давно в мене той піхарм. Так от, глюкання атома порівняно з ним - дитяче цвірінькання.

А про саблайм я напевно непр. сказав. Я поставив Anaconda plugin: автокомпліт і виправлення помилок по PEP8: якість коду, як на мене, зросла в рази

17

(33 відповідей, залишених у Обговорення)

iovchynnikov написав:

Я створив ішью щодо перекладу згідно з їх інструкціями: https://github.com/liuderchi/atom-i18n/issues/101
Почну перекладати у вільний час, бо сам користуюся. Запрошую долучатися, брати 1-2 файли і перекладати. Дайте знати який файл взяли там в коментарях.
How-to: https://github.com/liuderchi/atom-i18n/ … IBUTING.md

О, ви молодець! Мені Atom не зайшов, через те що дуже глюкав навіть просто з коробки чистий без плагінів і теми. В сублаймі поставив щось схоже на python ide + десяток різних плагінів під веб - і все чудово!

Але до перекладу долучусь якось

18

(33 відповідей, залишених у Обговорення)

А перекласти самому і закинути pull request?

ping написав:

Як реалізовано првнотекстовий пошук?

Його нема. Тільки фільтр поки що.

Але варто мати на увазі, коли кількість книг перевалить за 30-50 штук

ping написав:

додайте реєстрацію через гітхаб для людей, які ( напевне - суспільно-небезпечні ) і не мають акаунтів у соц. мережах.

Це можливо. Хоча я думав ще, видалити всі соціалки крім фб, щоб не було, що регаються з кількох і можуть 3 книжки взяти відразу.

Хоча, емейл в аккаунта один (гугл - виключення - його точно видалю). А для твітера і фб тоді все ок. І можна гітхаб додати