1

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

0xDADA11C7 написав:
koala написав:
0xDADA11C7 написав:

А мені не подобається С++, бо ті хто пишуть плюсами рідко послуговуються ВінАПІ - більше boost`ами та QT

Яким чином boost корелює із WinAPI?

Шар абстракції жеж

Ви про boost::detail::winapi? Ним хто реально користується?

2

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

Білоруська - найближча мова до української, особливо поліські діалекти обох мов близькі.
Але все ж це інша мова.

3

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

0xDADA11C7 написав:

А мені не подобається С++, бо ті хто пишуть плюсами рідко послуговуються ВінАПІ - більше boost`ами та QT

Яким чином boost корелює із WinAPI?

github, якщо вас їхні умови влаштовують.

5

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

ur_naz написав:
Torbins написав:

Мені здається, що C# краще

VB.NET - це той же C#, тільки з іншим синтаксисом

А англійська - та ж українська, тільки з іншим синтаксисом.

6

(8 відповідей, залишених у Pascal/Delphi)

Для чого масиви, якщо все можна робити окремими змінними?
Для чого функції, якщо все можна в begin-end записати?
Для чого структурне програмування, якщо є goto?

І ще 100500 питань від людей, яким ліньки читати підручник.

7

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

Модель - це дані, що відображають об'єкт моделювання.

8

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

Ну дивіться. У вас є модель (внутрішнє представлення) вашої симфонії одним пальцем по білих клавішах однієї октави - list, і два зовнішніх представлення - ноти на формі та відтворення музики. З другим легше - якщо видалити ноту, то play буде брати всі дані з моделі. Але друге представлення ви формуєте послідовно, функцією add, яка ніде, крім внутрішнього стану форми, не зберігає, що саме вона додала. Отже, вам слід або додати в add збереження зображень нот у відповідний список, або перебирати всі віджети форми функцією winfo_children(), шукати зображення нот і знищувати їх, а потім циклом по нотах симфонії створювати їх заново.

Стосовно квадратних дужок - є різні асемблери з різними позначеннями; квадратні дужки зазвичай означають непряму адресацію, тобто "взяти адресу операнду в тому, що стоїть в квадратних дужках".
RET, ще раз, це повний аналог POP IP (напряму так не можна).
Ну і https://edge.edx.org/c4x/BITSPilani/EEE … ual_1_.pdf

10

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

В таблиці на вікі І - істинно = 1, Х - хибно - 0. Перепишіть таблицю звідти і порівняйте зі своєю (на вікі вона догори дригом, якщо так зрозуміліше).

0. Recuva не пробували використовувати?
1. Ви шукаєте певну комбінацію (початок jpg-файлу), перебираючи по 4 байти. Оскільки початки файлів вирівняні по кластерах, а їхній розмір - ступінь 2, це працює. Але ви при цьому додаєте до лічильника i 1, а не 4.
2. Ніхто не гарантує неперервність файлів на диску. Розірвані файли ваша програма відновити не в змозі.
3. Вікі каже, що ще є варіант FF D8 FF DB. І взагалі

check=[b'\xFF\xD8\xFF\xDB',b'\xFF\xD8\xFF\xE0',b'\xFF\xD8\xFF\xE1']
...
if bufer in check:

виглядає краще.
4. Якщо посеред файлу зустрінеться сигнатура jpg (а це може бути як випадково, так і, скажімо, вкладений thumbnail), то ваша програма розіб'є його на шматки. Може, краще розібратися в тому, як зберігаються jpg, і перевіряти, чи дійсно все ще читається той самий jpg? Це, до речі, допоможе не різати весь диск на окремі файли (із купами сміття в кінці), а витягати саме фотографії.

12

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

У мене сьогодні гарний настрій :)

from tkinter import *
from PIL import Image, ImageTk
from pygame import mixer
import time

class Note:

    def __init__(self,name,key,height,mp3,image):
        self.name   = name
        self.key    = key
        self.height = height
        self.mp3    = mp3
        self.image  = ImageTk.PhotoImage( Image.open(image) )
        
    def play(self):
        mixer.init()
        mixer.music.load(self.mp3)
        mixer.music.play()
        time.sleep(0.5)
        mixer.music.stop()

    def event_add_note(self,form):
        def add(event):
            form.canvas.create_image(form.current_position,self.height,image=self.image) #
            form.plus()
            self.play()
            form.list.append(mp3)
        return add

class Form:

    def __init__(self):
        self.root             = Tk()
        self.current_position = 10 # колишнє a
        self.list = [] #YAGN deque
        self.canvas = Canvas(width=500,height=300,bg="white",cursor="pencil")
        self.canvas.pack()
        for y in range(50,150,20):
            self.canvas.create_line(0, y, 500, y, width=2,fill="black")

        self.scr = Scrollbar(self.root)
        self.scr.config(command = self.canvas.xview,orient = HORIZONTAL )
        self.scr.pack()

        self.button_close = Button(self.root,text='Press to destroy window')
        self.button_close.place(x = 0,y = 0)
        self.button_close.bind('<Button-1>',self.destroy)
        
        self.button_play = Button(self.root,text = 'Press to replay')
        self.button_play.place(x = 200,y = 0) 
        self.button_play.bind('<Button-1>',self.play)

        notes = [Note("Do","a",140,"1.mp3","notaall.png"),
                 Note("Re","s",130,"2.mp3","notaall.png")
                #тут продовжити; на майбутнє - можна окремо підвантажувати з файла
                ]

        for note in notes:
            self.root.bind(note.key,note.event_add_note(self))

        self.root.mainloop()

    def plus(self):
        self.current_position += 30
        for y in range(50,150,20):
            self.canvas.create_line(0, y, 500+self.current_position, y, width=2,fill="black")

    def destroy(self,event):
        self.root.destroy()

    def play(self,event):
        for note in self.list:
            note.play()

if __name__ == "__main__":
    main_form = Form()

13

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

N1ck написав:

Де ви бачите print(play_note)??

Єдине місце, де воно зустрічається на цій сторінці - ваш допис від 16:44:33. Я жодного разу цього виразу не писав, тому не знаю, чому ви у мене це питаєте.

Прихований текст
Ви в курсі, що Python ніколи не сплутає ідентифікатори, що відрізняються хоча б однією літерою чи цифрою?

14

(13 відповідей, залишених у C#, .NET)

>>> random.seed(0)
>>> random.random()
0.8444218515250481
>>> random.seed(0)
>>> random.random()
0.8444218515250481
>>> 

15

(13 відповідей, залишених у C#, .NET)

ping написав:

це саме у java  чи так у всіх?

>>> r=random.random()
>>> r
0.2506796874037358
>>> r=random.random()
>>> r
0.7496781950911465
>>> r=random.random()
>>> r
0.2725175896705927
>>> 

У всіх, хто використовує програмний ГПВЧ.
Ви тут жодного разу не проводите ініціалізацію, відповідно, незрозуміло, чого ви очікуєте.

16

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

Добре, опускаємося до рівня дитячого садочка.
Що буде, якщо у виразі

print(play_note1)

зробити замість слова "print" слово "play_note"?

Прихований текст
І ви взагалі знаєте, що таке функція, список, рядок і т.д., чи навмання ліпите шматочки чужого коду докупи в надії, що воно запрацює?

17

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

Які саме слова в реченні "так ви не print робіть, а play_note" вам незрозумілі? З якого саме слова (чи з якої комбінації слів) ви зробили висновок, що там має бути event?

І ніколи не питайте, так програма працює чи ні. Ви можете перевірити, так чи ні, значно швидше і надійніше, ніж ми, просто її запустивши. Якщо вам щось не зрозуміло - то питайте про це прямо: що бачите, що очікуєте, і якісь свої міркування чи опис спроб це вирішити. Не змушуйте нас здогадуватися.

18

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

koala написав:

можна зробити одну функцію play_note з параметром, і саме цей параметр додавати в Mylist.

def play_note(mp3):
    mixer.init()
    mixer.music.load(mp3)
    mixer.music.play()
    time.sleep(0.5)
    mixer.music.stop()
N1ck написав:
print(play_note1)
koala написав:

Так ви не print робіть, а play_note.

N1ck написав:
play_note1(event)

Ви оце серйозно?

19

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

Так ви не print робіть, а play_note.
І згорніть всі ці create_line з рядків 54-58 у цикл:

for y in range(50,150,20):
    c.create_line(0, y, 500, y, width=2,fill="black")

От зі plus - складніше. Я так розумію, ви хочете розтягнути лінії; натомість, ви сторюєте нові, які на них накладаються. Гм... Рядки 54-58:
staff = [c.create_line(0, y, 500, y, width=2,fill="black") for y in range(50,150,20)]
plus:

def plus():
    global a
    a = int(a)
    a += 30
    for y in range(50,150,20):
        c.coords(staff, 0, y, 500+a*2, y)

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

20

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

Вчіть пітон. Тут є досить багато ентузіастів, включно з перекладачем https://uk.wikibooks.org/wiki/Пориньте_у_Python_3