#programowanie #cpp #asm

Ja bardzo przepraszam, że kaleczę i w ogóle dokumentacje powinienem ogarnąć wpierw.
Ale zainteresowało mnie tylko coś i chciałem sprawdzić.

Jadę więc:
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zortabla_rt: Zmienną i deklarujesz w zasięgu (scope) pętli for, a następnie używasz jej w zasięgu funkcji sprawdzenie. Zmień na

int i = 1;
for (; i < n; i++)

W ten sposób zmienna jest w zasięgu funkcji i możesz jej używać w wszystkich lokalnych zasięgach wewnątrz funkcji.
  • Odpowiedz
#programowanie #cpp Mam pytanie odnośnie tego kodu. Program ma służyć do odczytywania, dodawania, mnożenia i testowania sumy wyniku macierz. Przy funkcji mnożenia macierzy zaznaczyłem miejsce w którym program mi się sypie ( visual nie pokazuje błędów po prostu crashuje program) oraz nie jestem pewien jak dokładnie zrobić funkcję to testowania tego czy suma dodawania wcześniej pobranych tablic, jest zgodna z takim samym realnym wynikiem tychże macierzy. ps. Wiem
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lukaszwasyl oprócz tego co pisali ludzie wyżej to zmienił jeszcze jedna rzecz. Jest taka zasada DRY(dont repeat yourself). W skrócie, jeżeli jakiś kod masz napisać w kilku miejscach, to zamknij go w funkcję i wywołuj ta funkcje. W Twoim kodzie to będzie np wyświetlanie macierzy
  • Odpowiedz
@Hankete @RobieInteres : jeszcze lepszym wyjsciem niz makro #define N 30 jest po prostu napisac const int N=30, wtedy tworzymy tablice w ten sposob: int tab[N], dziala tak samo jak makro bo kompilator i tak to zoptymalizuje i wstawi w to miejsce liczbe a nie zmienna. Jest to lepsza praktyka bo kiedys byc moze chcialbys takie stale opakowac np w przestrzen nazw
  • Odpowiedz
@RobieInteres: jako ciekawostke można dodać, że sam zapis
int n = 30;
int tab[n];

jest dopuszczalny w C i z tego powodu kompilatory C++ pewnie będą to przepuszczać, ale VLA (variable length array) nie jest częścią standardu C++ :)

Spróbuj może napisać ten sam kod, ale z wykorzystaniem kontenerów biblioteki standardowej, np std::vector
  • Odpowiedz
Chciałem sterować układem 4xLED (podstawa do nauki sterowania dwoma silnikami DC) na raspberry pi 3b za pomocą bluetootha i telefonu. Ogarnąłem GPIO, ale nigdzie nie ma podpowiedzi jak sterować za pomocą BT. Zainstalowałem bluez man ale nie mogę prawidłowo przeprowadzić parowania, mogę przesłać plik do telefonu, ale nie mogę w drugą strone? Zależałoby mi żeby kod był w c++, wie ktoś jak taki kod by wyglądał? Jakieś biblioteki, przykłady z neta?
#
lukiboys - Chciałem sterować układem 4xLED (podstawa do nauki sterowania dwoma silnik...

źródło: comment_WgEiZdj99Fx8QLDtGMEcVjIxegq900xe.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 0
@mattcabb Patrząc po podobnych pracach to obciążenie jest max na wszystkich rdzeniach. Można użyć wifi, ale to wymaga dostępu do sieci a BT jest zawsze i u każdego. To kolejne ograniczenia fajnie by było ich uniknąć.
  • Odpowiedz
@lukiboys: Dokumentacja modułu bluetooth i robisz komunikacje po uarcie używając komend AT. Jak nigdzie nie znalazłeś bibliotek to samemu musisz taką obsługę zrobić.
  • Odpowiedz
@bambosze_babuni: Oczywiście, patrz podlinkowany wyżej manual gcc. Jeśli dorzucę =, to wyrzuca "implicit declaration of function 'asm'" Co z reszta jest zgodne z prawda, bo wygląda to wtedy jak wywołanie f-cji asm, a nie o to chodzi. Tym bardziej, że on wyrzuca "oczekiwałem 'asm' a tam jest 'asm'" i mam takie trochę wtf.
  • Odpowiedz
@Saly: @GotoFinal: Doszedłem do tego o co chodzi, chciałem odpisać, że "tez nie działa, ale może gcc ma jakiś magiczny wyłącznik asm" i wtedy mnie tknęło, mam ustawiony -std=c11 ... no właśnie, po zmianie na domyślny poszło poprawnie. Tylko teraz mam nagle milion ostrzeżeń w innych częściach kodu. No ale, najwyraźniej w nowym C nie ma "asm", szkoda tylko, że ten komunikat jest taaaki pomocny, jak to w
  • Odpowiedz
Cześć Mirki, jestem kilka lat na wykopie, ale mało się udzielam. Mam problem programistyczny, więc postanowiłem, że zapytam tutaj bo sporo tu #programista15k. Jestem programistą C++ z ponad 10 letnim stażem i chce zapytać o coś z nie mojej działki.

Szykuję się do małego hobbystycznego projektu webowego. Jako backend chciałem użyć golang bo język wydaje mi się ciekawy, ale może jednak użyję czegoś popularniejszego. Szukałem ostatnio pracy i ilość
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@entro: Wojnę Java vs. C# czas zacząć!

A tak serio, pisz w tym w czym umiesz.

Ja bym pisał w Java+Spring+Angular.
Jak lubisz C#, to możesz wymienić i pisać
  • Odpowiedz
Ale są błędy, których nie widać w logu kompilacji, np zamiast if(a == 5) dasz if(a = 5) i szukasz cały dzień. Kto tak nie miał? :D
  • Odpowiedz
@cochese: Dzięki. Oglądałem to już wcześniej - dobry wykład.
Co nie zmienia faktu że nadal kucuję w C ( ͡° ͜ʖ ͡°)

Jednak takie biblioteki MBED od STM szanuję.
  • Odpowiedz
Bawił się ktoś z was QT, a konkretnie QGraphicsScene?
Chodzi mi o to, że item jest repaintowany tylko wtedy gdy w funkcji advance() zmieni swoją pozycję. A co jeśli pozycja jest ta sama, a obiekt obraca się?

#qt #cpp
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

GUI w C++ w czym polecacie robić? Bawiłem się wxWidgets, ale niestety dla trochę zaawansowanych rzeczy dokumentacja jest za słaba, a w Internecie przykładowych programów jest jak na lekarstwo.

#cpp #programowanie
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@DJ_Luki: Zależy do czego.
Aplikacje desktopowe, mobilne i wbudowane?
Potwierdzam tylko Qt5.
Tylko że obecnie Qt to już nie czyste C++ ale QML.

Proste GUI do Vulcana / OpenGLa
  • Odpowiedz
MIrki chciałbym spróbować napisać kilka aplikacji w C++ na andka wykorzystując Qt ale mimo że ogarnąłem już środowisko to nie wiem za bardzo jak zacząć, a mianowicie czy powinienem używać bibliotek Qt czy SDK androidowego. Przydałby mi się jakiś tutorial dla początkującego ale nic ciekawego znaleźć nie mogę.

Jeśli jest tutaj ktoś kto kto robił już takie cuda i pomógłby mi z tym byłbym bardzo wdzięczny

[ #naukaprogramowania #cpp
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Czokowoko: Pijesz najzwyklejsze aplikacje, najlepiej widoki pisać na QtQuick w QMLu, bo do tego służy. Natomiast przed procesem kompilacji trzeba sporo ustrojstwa zainstalować, co jest trochę skomplikowane, bo potrzebujesz biblioteki Qt5 na Androida + android SDK + android NDK. Z tym ostatnim (NDK) są trochę problemy zainstalować bo trzeba w odpowiednie miejsce rozpakować. W SDK powinieneś mieć ściągnięte biblioteki do odpowiedniego API Androida. Jak już masz to pozostaje skonfigurować w
  • Odpowiedz
@Czokowoko: QtCreator chyba jeszcze chyba chciał link do Anta. Dokładnie tak, android jest linuxem więc niby maż dostęp w C++ do niskopoziomowych bibliotek, ale lepiej ograniczać się do czystego Qt.
Aha jeżeli ci się QML nie spodoba, to i tak lepiej maksymalnie ograniczać JavaScript ale dalej w nim robić niż w QtWidget. Teraz wyszła nowa biblioteka do QML, QtQuick.Controls 2 która ma skórkę Material Design i wygląda jak Android. Komunikacja
  • Odpowiedz
@Saly: bo nie widziałem nigdy rozpisanej funkcji na oczy. Znam funkcje stosu i rozpisuje jak potrafię, następnie szukam w necie gotowych i patrzę jak daleko byłem od celu. Z każda struktura danych tak robię. Może to głupie, ale wydaje mi się, ze pozwala mi to bardziej zrozumieć jak to wszystko działa. @artven: a to nie pokaże mi czasem błędów w kodzie? Kod jest poprawny tylko nie do końca
  • Odpowiedz
Witam. Posiadam taki łańcuch znaków:

$GPRMC,083559.00,A,4717.11437,N,00833.91522,E,0.213,,060117,,,D*7E
I potrzebuję z niego powyciągać wartości oddzielone przecinkami do poszczególnych zmiennych. Próbuję używać do tego funkcji sscanf() z następującym łańcuchem formatującym:

%*[^GPRMC]GPRMC,%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%*s
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PrawieJakBordo: zawsze mozna dac najpierw "czarny" brightness i "wyswietlic" te same segmenty, po czym przywrocic brightness i wyswietlic nowe.
W ten sposob zadne segmenty nie zostana nigdy podswietlone po poprzednim, niezaleznie od napisu.
  • Odpowiedz