Hei!
Olen aloitteleva C++-koodari. Haluaisin kokeilla mihinkä mun uusista Maceista on. Ajattelin jotakin piin desimaaleja laskevaa ohjelmaa. Tämä laskisi piin desimaaleja ja tallentaisi aina desimaalin tekstitiedostoon.
Löytyykö samanlaisia ehdotuksia tietokoneen laskentatehon selvittämiseksi? Voisi jättää koneen vaikka viikoksi rouskimaan piin desimaaleja ja katsoa sitten tuotoksia..
Olen aloitteleva C++-koodari. Haluaisin kokeilla mihinkä mun uusista Maceista on. Ajattelin jotakin piin desimaaleja laskevaa ohjelmaa. Tämä laskisi piin desimaaleja ja tallentaisi aina desimaalin tekstitiedostoon.
Löytyykö samanlaisia ehdotuksia tietokoneen laskentatehon selvittämiseksi? Voisi jättää koneen vaikka viikoksi rouskimaan piin desimaaleja ja katsoa sitten tuotoksia..
Vastaukset 137
Vanhimmat
Kuulostaa vaikealta jopa uusille Maceille. Aloittelevan koodarin on parempi ensiksi laskea tekstitiedostoon esimerkiksi kolmosen käänteisluvun desimaaleja. Kerro jos tarvitset apua niin kirjoitan pseudokoodin.
No kirjoita pseudokoodi jos viitsit niin katsotaan mihin Applen ARM64 M1 pystyy..
Voi helle tuuteli! Piin laskemiseen on netti täynnä ohjelmakiidia ja laskutuoimitus on helppo.
Ei tervi kummoinenkaan nassikka olla että kääntää ohjelma macille. Tai muulle.
Luultavasti aloittelevalle koodarille olisi kuitenkin hyödyllisempää opetella ajattelemaan itse kuin oppia googlettamaan ja copypasteamaan.
No pistä kääntäen. C++ -kielellä.
KOLLIVAROITUS PAIKALLAAN!
NYT KOLLIVAROITUS PAIKALLAAN! Distinformaation levitys sen toimesta valtaisaa!
Just ja luuletko muka, että ohjelmoimaan oppii copy pastettamalla? Kenestäkään ei koodaria sillätavalla tule.
T. miksuh
M1 mac on surkeen hidas!
Ei vastaa ede i3 prossua.
🦧🦧🦧🦧🦧🦧🦧🦧🦧
Olisko syy kun windows koodataan Intiassa!
Siellä! Windowsissahan ei ole mitään tietosuojaa.
Sitä on moni ihmetellyt. Windows onkin myrkkyä 🤑
########################################
Ei ne ole mitään superkoneita.
Apple on tietynlainen supertietokone.
BuaHahhahhahahahhahaahaaaa
Supersurkea tietokoneen irvikuva joo.
Apple on tietynlainen Casio laskin!
Helpompi tapa on käyttää hakukonetta että selvittää laitteen speksit.
Kirjoitusvirhe: että -> kun.
MENE HOITOON!
Huomasin että tuossa tulee vastaan se kuinka suuria lukuja 64-bittinen rekisteri pystyy säilömään.
64-bit registers or variables biggest number: If you use unsigned integers however, the value starts at 0 and 2^64-1 (18,446,744,073,709,551,615) becomes it's highest value, but unsigned integers cannot represent negative values. [Stack Overflow]
Supertietokoneissa on varmaan kustomoidut tietotyypit jne..?
Algoritmista riippuen piin desimaaleja voi laskea loputtomiin jopa 16-bittisillä rekistereillä. 64-bittiset rekisterit helpottavat tehtävää, mutta periaatteessa algoritmissa työstetään vain "jakojäännöstä", ei koko piin likiarvoa desimaaleineen.
Ossaatko koodia. Laita laskutoimitusta C++ -kielellä.
Voisin laittaakin, mutta nyt ei ehdi kun on aivan oikeitakin ongelmia ratkaistavana. Wikipediassa on esitelty useampikin algoritmi piin likiarvon laskemiseen. Eikun koodaamaan! Aloita Excelillä, että löydät yhtälöt algoritmin takana. Siis yhtälöt, joissa käytät vain kokonaislukuja. Liukulukutyypit eivät sovellu tähän.
MENE HOITOON!
______✞_____
[ Windows ]
´´´´´´´´´´´´´´´´´
Pyllymaja News 🏚️
Kollivapunen joutaa museoon!
Se on totta! K-o-l-l-i-m-a-a-t-t-o-r-i-.
Joo nassikkavaihapapparainen 80 +
Winkurahihhuli!
Suck me .. win
fuck me, kiss my ass, suck my dick ... m$-windows!
Appleissa, joo, on se kumma kun Apple ei itse käytä omia servereitään mm iCloud pilvessä vaan siellä on LinuxServerit.
Microsoft teki saman. Windows serverit ei kelvannut vaan Microsoft teki oman Linux järjestelmän Azuren.
Superkone on siis laskentayksikkö, jota usein käytetään netin kautta nykyään, monimutkaiseen laskentaan. Superkoneiden käyttöliitymissä on jonkin verran eroja missä muodossa ne haluaa tehtäviään. Nykyään superkoneiden kanssa on myös Kvanttikoneita joita voidaan hyödyntää ongelmanratkaisussa.
Mitä sillä on merkitystä mikä Linuxpaska jossakin datakeskuksessa pyörii? Ei se edes kiinnosta ketään..
Kiinnostaa se ohjelmistokehittäjiä kun Linux on se mikä ajaa ohjelmia.
Softat tehdään lähes täysin datakeskuksiin ja käyttöliittymäpuoli sitten toimii paikallisesti siinä Applessa.
Tarkoitat siis varmaan Unix-servereitä sillä Linux=Unix.
Olennainen juttu on Linux, koska containerit tehty toimimaan Linux kernelin varassa. Näillä on paljon parempi hyötysuhde kuin virtuaalikoneilla jotka virtualisoivat koko raudan.
Netissä kuka vaan voi saada Superkoneen tai Kvanttikoneen tai molenpien tekemään laskentatehtävänsä.
Se pitää kuitenkin olla järkevä. Sivustolle annetuista tehtävistä noin puolet pääsee tositoimiin, koneiden luppoajan täytteeksi.
Windows laskee väärin! Ihan paska!
Ajattelin että olisin malliksi laittanut C++ kielisen esimerkin joka olisi ajossa ollessaan kertonut hiirikursorin paikan kun hiirtä siirrellään.
Peruin suunnitelmat kun kukaan ei selvästikkään ymmärrä C++ ohjelmoinnista tuon taivaallista.
Oliko C++ joku musiikkitermi?
"c++. kirjoita koodi joka näyttää hiiren osoittimen koordinaatin"
#include <iostream>
#include <windows.h>
int main() {
POINT p;
if (GetCursorPos(&p)) {
std::cout << "Hiiren koordinaatit: x = " << p.x << ", y = " << p.y << std::endl;
}
return 0;
}
Tämä koodi käyttää GetCursorPos-funktiota, joka hakee hiiren sijainnin näytöllä ja tallentaa sen POINT-rakenteeseen. Sitten se tulostaa x- ja y-koordinaatit konsoliin.
Huomaa, että tämä koodi toimii Windows-käyttöjärjestelmillä. Jos käytät jotain muuta käyttöjärjestelmää, sinun on ehkä käyttää erilaisia funktioita hiiren koordinaattien saamiseksi.
No laita sellainen hiirikursorin paikan kertova ohjelmanpätkä tähän niin ajan sen Xcodella mun Macilla. Katsotaan toimiiko!
Voihan halvattu! Tuo on Windowsille. Sama pitäisi saada Macille..
Mulla on Mac jossa ARM64 M1 -keskusprosessori.
Voi taata sen että tehot eivät lopu kesken.
C++:n tunnen oikein hyvin.
Niin hyvin että tiedän, että sillä ei kannata ohjelmoida juuri mitään ellei nyt ole sinne datakeskuksiin jotain numeronmurskausta tekemässä. Open MPI on oikein kiva.
Miksi hitossa sitten haluaisi C++:lla jotain hiiren kursorin sijaintia selvitellä? Siihen on kätevämpiäkin tapoja.
Käy esimerkiksi tällaisella koodilla selaimen konsolissa:
onmousemove = (e) => console.log("mouse location:", e.x, e.y)
He hee, kopiointisi meni näköjään pieleen ja syynä lienee se ettet tiennyt mikä liittyy asiaan ja mikä ei.
No nyt sitten jokainen tuli tietoiseksi ettet osaa etkä ymmärrä C++ ohjelmoinnista yhtään mitään mutta et ymmärrä myöskään JavaScript kielestä senkään vertaa.
MKar harrasti aikoinaan samanlaista näyttöjen antamisia väittämilleen "Minä osaan xx määrän ohjelmointi kielijä ja opin joka vuosi uuden". Enkä yllättyisi vaikka nytkin viestin kirjoitti sama kusettaja.
mulla toimii tuo koodi chromessa
Käänsin Ubuntussa mingw64:llä w64-version ja testasin wine:lla, hyvin toimii getCursorPos.
$ x86_64-w64-mingw32-g++ mousepos.c
--> a.exe
$ export WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/9.3-posix"
$ wine a.exe
Hiiren koordinaatit: x = 849, y = 1021
-Toisaalta olisin hämmästynyt, jos ei olisi toiminut, sen verta "perus" asia lukea hiirtä
Valehtelet tapasi mukaan ja turha tuossa on Googlen Chromea korostaa, JavaScript-moottori on verkkoselaimeen kuuluva osa, joka vastaa JavaScript-koodin suorittamisesta.
Hönö, olisit laittanut näkyviin sen koodin joka toimii.
oli ensimmäinen viestini tähän keskusteluun???
"Huomaa, että tämä koodi toimii Windows-käyttöjärjestelmillä."
Virheellinen ohje siis.
Ohje siis todennäköisesti toimii Macissa.
Mac jossa ARM64 M1 on jäätyilevä nuhapumppu!
Älä välitä, täällä on joku vihainen nuorimiesoletettu, joka purkaa turhautumistaan lähes jokaiseen kommenttiin, epäilemättä tähänkin.
Itse et taida ymmärtää ohjelmoinnista tuon taivaallista. Laasoat vain...
Laasoat vain. Et tunne C-kieltä etkä C++-kieltä.
"The C++ in the invisible foundation of everything." - Bjarne Stroustrup
Ei ole. Et tiedä Maceista mitään.
Voitko selkeämmän tavan kuin tämän?
onmousemove = (e) => console.log("mouse location:", e.x, e.y)
Sitten nähdään onko siitä mihinkään tämän ongelman ratkaisussa.
Oletko sinä se sama hönö joka uhkaili sulkea S24 sivuston, samanlaista päätöntä paskan inttämistä.
Et ole mitään kääntänyt missään, mutta olet kopioinut stackoverflow.com sivulta tänne koodia ymmärtämättä edes mitä se tekee.
Sekoitat nyt pahasti.
Kerro nyt vaan parempi tapa esittää hiiren kursorin sijainti. macOS:ssa toimiva koodi kiitos.
Niillä on linuxkerneli alla ja Windows-emulaattori siinä päällä pyörimässä että saavat edes joitakin ohjelmia toimimaan. Katastrofi on valmis. Tämän lisäksi kopioidaan Stackoverflowsta koodia tänne ymmärtämättä mitään siitä. Linuxkoodarit asialla...
Älähän laasoa siinä. Macit ovat tehokkaita kuin mitkä. Macit ovat oikeita Unix-koneita toisin kuin Linuxit.. joten laasoat vain. Annahan olla, poika.
Mutta superkonelaskennassa alla on Linux.
Loppu häämöttää koodaajien suosikkikielille? Valkoinen talo kehottaa lopettamaan C- ja C++ -koodaamisen
1.3.202418:21
Valkoisen talon kansallisen kyberturvallisuusviraston mukaan ohjelmistokehittäjät voivat vähentää kyberhyökkäysten luomaa uhkaa välttämällä kieliä, joissa on muistiturvallisuuden haavoittuvuuksia. Ohjelmointikielet C ja C++ kuuluvat viranomaisten mukaan näihin kieliin.
Heh heh.
Hmmm...
Valkoisen talon kyberturvallisuusasiantuntijat kehottavat ohjelmistokehittäjiä luopumaan ohjelmointikielistä, joissa on havaittu vuosien varrella muistiturvallisuuden haavoittuvuuksia. Näihin kieliin lukeutuvat myös suositut kielet C ja C++.
Miten sun hiires liittyy avaukseen?
Valkoisen talon kyberturvallisuusasiantuntijat kehottavat ohjelmistokehittäjiä luopumaan ohjelmointikielistä, joissa on havaittu vuosien varrella muistiturvallisuuden haavoittuvuuksia. Näihin kieliin lukeutuvat myös suositut kielet C ja C++.
NUHAPUMPPUHAN TOI PROSSU ON, ja mitä vittua tee hiiren kursorin koodilla jos Pii pitäisi laskea!
PELLET!
Enemmän kuin sinä! ARM64 M1 jäätyilee jatkuvasti, ei pyöritä jouheesti.
Saastuu windows, Ei Windowsin käytölle ole mitään perusteita. Todellakaan!
Mittee nyy see siinoolii kaaa,, Nyt Kolliivaappu vajoo masennuksen syöväreihin!
Lähtisitkö K....† R.I. P.
Osta Chromebook!
Matoisia omenoita en ostaisi!
Mene sinä hoitoon!
Uudet macit on nuhapumppuja!
Älä laasoa siinä. Niissä on tehoja enemmän kuin mitä tarvitsee. Todellisia ARM-tehomyllyjä.
Joo niisä on ihme jäätyilyä, joka ilmenee typeränä nykimisenä.
Opettele kirjoittaan hönö.
Äkäslompolon hostellipalo on todellisen poromafian toimia!
Mulla on nyt Xcode ja Mac kuumana. Valmiina ajamaan supertietokoneohjelmia. Koodatkaa ajankuluksi sellainen pieni softa joka laskee piin desimaaleja ja tallentaa ne sitten tiedostoon. Laittakaa lähdekoodi tänne niin jysäytän sen mun 64-bittisestä ARM-koneesta läpi.
Mutta mikset käyttäisi bc:tä eli mielivaltaisen tarkkuuden laskin-kieltä?
$ echo "scale=15;4*a(1)" | bc -l
3.141592653589792
Sitten vaan asettaa esim. scale=10000 ja odottaa.
Kuluvan ajan saa myös:
$ time echo "scale=15;4*a(1)" | bc -l
3.141592653589792
real 0m0,005s
user 0m0,000s
sys 0m0,006s
Koko ketju tähän asti täyttä MKar-sontaa. Tässä ensimmäinen järkevä ratkaisu joka osoittaa Bash Shell komentojen tehokkuuden.
Desimaalien määrä
scale=140
Tarkoittaako Bash Shell komentojen tehokkuus myös epätarkkuutta? Mikä on tehokkuuen arvo silloin? Piin likiarvo 15 desimaalilla on 3,141592653589793 eikä tuo edellä esitetty.
scale taitaa nimenomaan määrittää halutun tarkkuuden tuossa arctan(1) :lle, kerrotaan neljällä mikä pitää ottaa huomioon virhetarkastelussa. Virhekin tulee siis kerrottua neljällä, mistä viimeisen desimaalin virhe johtuu. Bc on tässä mielessä ehkä hiukan vaativa käyttää, koska se edellyttää virhetarkastelun tekemistä. Toisaalta ongelma ei ole suuri: Laske yksi desimaali enemmän ja ongelma katoaa. Samalla selviää, miksi viimeinen desimaali on aina parillinen luku.
Oikeassa olet vääräpää, en ole aiemin kiinnittänyt tuohon huomiota, kiitos.
Hitto, mihin tässä enään voi luottaa?
"Toisaalta ongelma ei ole suuri: Laske yksi desimaali enemmän ja ongelma katoaa."
Noinkohan? Desimaalit voi katkaista useammin kuin kerran. Sen sijaan pyöristäminen useammin kuin kerran ei onnistu ilman virheen mahdollisuutta.
Siis miten "yksi desimaali enemmän" on laskettu, onko se katkaistu vai pyöristetty? Joka tapauksessa tämä Bc ei oikein vakuuta, mitä laskennan luotettavuuteen tulee.
Suuren suuri w10 tunkiosta?
tietokone huollot on läjäpäin täynnä toimimattomia wintoy$-koneita.
♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️♻️
"Joka tapauksessa tämä Bc ei oikein vakuuta, mitä laskennan luotettavuuteen tulee."
Tuossahan itse määritellään ensin tarkkuus: "scale=15" antaa 15 numeroa. Jos näillä menet laskemaan vielä jotain teet virhetarkastelun. Virhe on siis funktioille 9e-16 ja lopullinen maksimi virhe 4*9e-16=3.6e-15. Pyöristetään tämä virheraja vielä ylöspäin 1e-14, jolloin ollaan varman puolella. Katkaistulle luvulle virhe on tätä pienempi.
Virhe on siis pienempi kuin miljoonasosan(=ppm) miljoonasosa. Ainakin jos osaa matematiikkaa tuohan on erittäin tarkka. Jätetään kotitehtäväksi käydä katsomassa bc:n lähdekoodista onko kyseessä katkaistu vai pyöristetty numero. bc on laskemista varten toteutettu tuo "-l" ottaa käyttöön mathlib:in. Tästä kerrotaan, että funktiot laskevat desimaaleja scale:n määrään asti - luku on siis katkaistu.
Laskenta on myös luotettavaa, koska saat samoilla lähtöarvoilla joka kerta saman tuloksen.
Älkää sotkeko mitään Linuxpaskaa tähän sitten ei kyllä tule asiasta yhtään mitään..
Ei ole olemassa sellaista paskaa on vain sinä ja sinun luulosairautesi joka ei anna sinulle rauhaa, emmekä me voi sinua mitenkään auttaa.
Tuossa tuo GNU-projektin tuotos olisi myös windows-ympäristöön:
https://gnuwin32.sourceforge.net/packages/bc.htm
Oikeassa olet siinä, että Linux-puolella tuo yleensä on esiasennettuna tai löytyy valmiina pakettivarastosta.
Linuxilla 100 desimaalia.
3,14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679
MENE K-O-L-L-I HOITOON
Laita lähdekoodi tähän niin ajan sen Xcodella.
💩 💩💩💩💩💩💩💩💩💩 💩
Windows on ihan sysipaska kurttaus
Kaatuilee ja päivitykset sen jumittaa, mikään siinä ei toimi kuin vakoilu. SILKKAA PASKAA!
ALAS SAIMAANAPINAN TROLLITEHDAS !
Peruϟϟuomalais ♿ k_ o_l_l_i_m_a_a_t_t_o_r_i !
Ei kauneushoitola ole peppumaja...
Linux-intoilijat ovat juuri niitä suuria skeidansuoltajia jotka haukkuvat Windows 11 tietoturvaa mutta itse ajavat kaikkia ohjelmia aina admin-oikeuksin eivätkä välitä mihin loodaan salasanojaan syöttävät. Sitten tulevat tänne laasoamaan "ceissinsä" kanssa että Windows 11 on paska.. huhhuh!
Applehan ei kamalaisti ei poikkea Linuxeista.
Applella ja Linuxilla EI OLE MITÄÄN tekemistä toistensa kanssa. Ei mitään.
✞✞✞ Windows ✞ ✞ ✞ HÄVETTÄÄ!
K-o - l-l- i-m -a-a-t- t-o -r-i persilmäili konettaan kun windoosa päästi savumerkit ja kajareista kuului bongorummutusta ja ruudulla ennen pimentymistä vilisi intiankielistä tekstiä.
Ihan kesken homopornon katselun!
TAAS VETÄSIT EMÄVALEEN!
Miksi et osaa kirjoittaa?
Maistuuko sulle viinikumit?
Ei kauneushoitolat ole mitään peppumajoja..
Mitä siellä kauneushoitolassa tapahtui?
Putkahtiko kauneushoitolan altaaseen jotain ruskeaa?
SE TYKKÄÄ PASKANPUHUNNASTA JA VALHEISTA!
Valkoisen talon kyberturvallisuusasiantuntijat kehottavat ohjelmistokehittäjiä luopumaan ohjelmointikielistä, joissa on havaittu vuosien varrella muistiturvallisuuden haavoittuvuuksia. Näihin kieliin lukeutuvat myös suositut kielet C ja C++.
Tuollaiset haavoittuvuudet eivät ole kiinni C:stä ja C++:sta vaan niistä jotka näillä ohjelmointikielillä ohjelmia tekevät.
C:llä on tehty kaikki merkittävät ohjelmistot.
Apinatko paremmin tietää kuin valkoisen talon asiantuntijat?
Tuon Valkoisen talon raportin käyttämät "asiantuntija" koostuvat Microsoftin ja Google blogikirjoituksista. Taitaa olla liian kevytmielisesti tehty raportti.
Tuon raportin pohjalla on lähinnä Googlen ja Microsoftin blogipostaukset. Ei vaikuta kovin asiantuntevalta raportilta. Se on C++:n kanssa tekijästä kiinni minkälaisen ohjelman ja koodin kirjoittaa. Jos ei osaa tehdä turvallista niin sitten ei osaa.. Ei se ole auton vika jos kuski on törttö.
On sikäli totta, että ohjelmointikielillä joissa käsitellään osoittimia ja on manuaalinen muistinhallinta, voi saada näihin liittyviä virheitä aikaiseksi.
Valkoisen talon asiantuntijat ohje pätee kuitenkin lähinnä aloittelijoille, sillä C:lle on kyllä verifiointityökaluja ja käytäntöjä joilla voidaan varmistua koodin luotettavuudesta.
Esimerkiksi NASA:n asiantuntijat sitten esimerkiksi käyttävät C:tä kohteissa missä ohjelma ei saa kaatua, kun C:n yksinkertaisuus auttaa tekemään ohjelmia äärimmäisen toimintavarmoja ohjelmia.
Oikeasti ohjelmointikielet valitaan projektin tarpeiden mukaan.
Yhdessä tuota raporttia kommentoineessa artikkelissa oli huomioitu että raportissa käytettävät "asiantuntijalähteet" olivat Microsoftin ja Googlen blogikirjoituksia. Varsinkin C:llä voi tehdä hyvinkin virheellisiä ja vaarallisia ohjelmia muistinkäsittelyn kannalta. On kuitenkin niin että se on paljon itse koodarista kiinni minkälaista koodia hän kirjoittaa ja testaako hän tekemänsä ohjelmakoodin virheiden ja bugien varalta. Sellaiseen on olemassa paljon työkaluja. Assert() -metodi on hyvä jolla ohjelma kaatuu heti jos ehto ei täyty.
Se on osoitus C:n ylivoimaisuudesta että NASA käyttää sitä kaikissa kriittisissä sovelluksissa jotka eivät saa kaatua. Voiko ns. kovempaa tunnustusta saada. Luulen että turvattomuus ohjelmissa syntyy siitä että ne ovat paremminkin hyvin laajoja ohjelmistoja joissa on todella paljon ominaisuuksia ja toiminnallisuutta. Sellaisen hallinta on vaikeaa ja työlästä käydä kymmeniä tuhansia koodirivejä lävitse edes siihen tehdyillä työkaluilla. Luulisin niin.
Näkemykseni mukaan ongelma turvallisuuden kannalta on siinä kun kaikki on verkotettu keskenään ja kaiken pitää onnistua mahdollisimman helposti ja vaivattomasti. Pelkästään ohjelmistojen eri osien eriyttäminen saattaisi vaikuttaa paljonkin niiden turvallisuuteen.. ei yhden .EXE:n kautta tarvitse kaikkia asioita pystyä hoitamaan.
Eli ratkaistaan ongelma kieltämällä työkalu? Mitä seuraavaksi? Todetaan, että työkalu X pystyy toteuttamaan saman ongelman(niinkuin ne kaikki pystyy) joten kielletään myös työkalu X. Sitäpaitsi, kyseinen ongelma on ratkaistu ja siihen sortuvat aloittelevat koodaajat useammin kuin takaportin terroristit: Taitaa jopa lint osata varoittaa merkkijonon ylivuodosta puskurissa ilman että sitä on vielä tapahtunut, mikä taitaa olla yleisin ylivuototyyppi.
Täyttä valetta! Nasa ei koodaa C-kielellä!
Eikä kuopion trollitehtaassa parempaan pystytty kuin Nasa-valheeseen!
Nasa ei koodaa C-kielellä!
ÄLÄ TAAS LEVITÄ DISTINFORMAATIOTA!
Nasa ei koodaa c kielellä!
Nasa ei myöskään käytä Windowsia!
NASA:n tapa käyttää C:tä luotettavuuskriittisissä kohteissa tosin on sitä, että sitä käytetään yksinkertaisesti. Eivät edes käytä muistin varausta ja vapautusta joten niihin liittyviä bugejakaan ei voi olla. Ohjelma ei voi myöskään jumiutua pitkäkestoiseen looppiin jollain syötteellä koska silmukat saavat pyöriä vain rajatun verran ja jne.
C:tä ei muutenkaan ole suunniteltu siihen, että prosessi olisi yltiöpäisen kompleksinen, vaan se on tarkoitettu ennemminkin pieniä, yksinkertaisia prosesseja varten joita käsketään korkeammalta tasolta.
Jos nyt tarvitsee varata muistia heapista niin harvemmin tässä tarvitsee nykyään yhtään mitään pointteripelleilyä vaan siihen löytyy työkalut joilla asian voi välttää. Eli toisin sanoen, C++:aa ei käytännössä tarvitse. Sen käyttö on hyvinkin rajallista nykyään.
Siis työkalu valitaan sen mukaan mitä ollaan ratkomassa. Ei mitään järkeä valita sellaista kieltä joka soveltuu tehtävään huonosti.
Kyllä muuten ohjelmoi. C on yleisesti käytetty matalalla tasolla, luotettavuuskriittisissä kohteissa.
Luulen että C-kielen ja C++ -kielen käyttökohteet ovat eri. C++ on tehty kompleksien kokonaisuuksien ohjelmointiin. Siinä on luokat ja objektit, joita C-kielessä ei ole. C soveltuu mielestäni matalamman tason ohjelmointiin. C++:lla taas rakennetaan isompia ja laajempia ohjelmistoja.
Se on todella paljon koodarista kiinni minkälaista ohjelmakoodia saa aikaan sekä tietysti yrityksestä minkälaista se vaatii ja hyväksyy.
Miten C++:lla varaat muistia dynaamisesti heapistä jos et pointtereilla?
C++:lla pointterien käyttöä ei oikein voi välttää.
Sen sijaan C++:n käyttöä voi, ja kannattaakin useinkin välttää. Toki näitä tilanteita on joissa se on juurikin oikea työkalu mutta melko harvoin.
Ajonaikaista muistin varausta ja vapautusta ts. dynaamista allokointia ei yleensä karteta bugien vuoksi vaan siksi, että siihen liittyy heap-muistin pirstoutuminen. Se ei ole bugi vaan vaikeasti ennustettava ongelma, joka saattaa kaataa systeemin aivan kuten ohjelmointivirhekin.
Standardikirjaston työkalut ja menetelmät dynaamisen muistin käsittelyyn ovat alkeellisia ja tuskin täyttäisivät NASA:n vaatimuksia. Tehokkaampi muistinkäsittely pienentää ongelmaa oleellisesti, muttei poista sitä kokonaan, kuten kaiken muistin allokointi staattisesti tekee.
"Ajonaikaista muistin varausta ja vapautusta ts. dynaamista allokointia ei yleensä karteta bugien vuoksi vaan siksi, että siihen liittyy heap-muistin pirstoutuminen. Se ei ole bugi vaan vaikeasti ennustettava ongelma, joka saattaa kaataa systeemin aivan kuten ohjelmointivirhekin."
Oikein. Mutta systeemin kaatuminen on juurikin se bugi mitä halutaan välttää.
Miksi C++:n käyttöä pitää mielestäsi välttää?
Se on oikeastaan melko harvoin sopivin työkalu.
Joitakin esimerkkejä:
1. Client sovellus selaimen ulkopuolella
Se onnistuu C++:lla, mutta sovelluksen kehittäminen laadukkaasti on huomattavan haastavaa johtuen prosessorin natiivikoodista ja heikommasta ABI yhteensopivuudesta.
Kun se softan kun kuitenkin pitäisi toimia tyyliin Android, ChromeOS, Debian, iOS, MacOS, Red Hat, Suse, Ubuntu, Windows
Mutta ei rajoitu tähän, vaan on ARM ja AMD64 arkkitehtuurit ja ABI yhteensopivuus helposti sen verran hutera että voi joutua kääntämään versiot nykyiselle sekä edelliselle käyttöjärjestelmäversiolle.
Ei ole vaikeata hahmoittaa että tuo on ylläpitohelvetti. C++ osaltaan joudutti Nokian markkina-aseman täydellistä romahdusta. Nokia oli surullisen kuuluisa tästä, että sovellus ei toimi saman firman eri puhelinmalleissa vaan piti käännellä uusiksi eri puhelimille. Microsoft aikoinaan tuki paljonkin C++:aa mikä osaltaan selittää kielen suosiota nykyäänkin mutta törmäsivät jo 90-luvulla pahoihin ongelmiin tämän kanssa, että lähtivät ensiksi seikkailemaan Javan kanssa mutta lopulta päätyivät kehittämään C# kielen.
2. Client sovellus selaimessa
Tämä sitten onnistuu C++:lla hyvin kääntämällä webassemblylle. Toki DOM:n käyttö hidasta, että ihan mitä tahansa sovellusta sillä ei tehdä. Sen sijaan on oikein järkevää kääntää C++:lla joku moduuli mikä hoitaa laskentaa webassemblylle ja jota kutsutaan sitten JS puolelta käsin.
3. Sulautettu UI
Tässä on helposti etuja Qt:tä käyttämällä. Sama tilanne toki voi tulla raskaasti vakioidulla ympäristöllä.
4. Raskas laskenta useamman serverin kokonaisudessa
Tässä C++ on hahvoilla Open MPI:n kautta
5. Backendin tekeminen melkein mihin tahansa sovellukseen
Helposti paljon heikompi suorituskyky kuin Java/C#, ja natiivikoodi tekee sen, että datakeskuksen ARM:lle kääntelee niin kehitys lokaalisti hankalaa.
---
Ja ohjelmointikieli yleisesti:
C++ on aika sotkuinen, on pointterit, ja siinä voi helposti joutua lisäämään huomattavan paljon riippuvuuksia standardikirjaston ulkopuolelle. Iso etu kylläkin on se, että kieli on standardisoitu. Se on itseasiassa yksi tärkeimpiä syitä valita C++ sinne missä C++:aa on järkevää käyttää.
Käytännössä C++:n käyttö on nykyään muutamassa middlewaressa (suorituskykysyyt), löytyy sulautetuista siellä missä C++:lla on vahvuuksia ja raskaassa laskennassa.
Eli kun täällä on koodinpätkiä hiiren kursorin sijainnista ja ohjeessa jotain Windowsin rajapintakutsua niin kyllä tämä nyt tuntuu siltä, että tässä yritetään tehdä sitä esimerkkitapausta 1. jossa C++ on oikeasti ihan paska. Jos se edes olisi Qt:llä haettu kursorin sijainti niin voisi uskoa että tässä nyt tehdään jotain sularia. Selaimeen kun tekee, tai tekee mahdollisesti vaikka pelimoottoria niin silloinkin rajapintana on SDL.
En tiedä onko oikea paikka mutta mitä tämä koodinpätkä tarkoittaa: cout << (char)authentication;
-----
#include <string>
#include <iostream>
using namespace std;
int main()
{
int authentication = 1;
cout << (char)authentication;
return 0;
}
Nyt kysyit pahan. Ehkä Jesse tietää vastata, kunhan äitinsä on syöttänyt iltapäivän Piltin. Mutta ainakin Jesse osaa heittää tähän jonkin hoitoonkehotuksen, kauneushoitolavitsin tai kakkaemojin, josta me kaikki suuresti iloitsemme.
Tietysti jos kauneushoitolan kylpyammetta pitää wc-altaana ja vapauttaa sinne itsensä... hyhhy! Likaista...
Miten se liittyy tähän viestiketjuun? Ole ystävällinen ja avaa toinen ketju noita juttuja varten vaikka Terveys-otsikon alle. Emme ehkä jää kaipaamaan, vaikka siirtyisit kokonaan kommentoimaan em. keskusteluun.
cout << (char)authentication;
Tulostaa koodisivun merkin jonka indeksi on 1.
Kasvata sitä 1:stä vaikka 64:jään niin tulostaa @ -merkin.
TESTAA MITÄ TÄMÄ TEKEE
#include <iostream>
using namespace std;
int main()
{
int authentication = 65+24;
while (authentication --> 65)
{
cout << ( char )authentication;
}
return 0;
}
Tarkoitatko ascii -koodisivun vai mitä koodisivua tarkoitat? Unicode?
Tarkoitan järjestelmän käytössä olevaa koodisivua jonka on yksi näistä:
locale --charmaps
tarkemmin ottaen tämä:
locale --all-locales
TAPPION HINTA!
$$$$$$$$$$$$$$$$$$$$$$$$$
”Voiton hinta” – Zelenskyi kuluttaa 115 miljoonaa dollaria itsestään kertovaan Hollywood-elokuvaan
Julkaistu 29.02.2024 13:08, 3863 lukukertaa, 1 kommentti
Paramount Pictures alkaa kuvamaan "sankarillista elämäkertaa", joka on omistettu Ukrainan presidentti Vladimir Zelenskyin elämälle, jonka nimi on "The Price of Victory". Kävi samlla ilmi, että sotatilassa olevan maan presidentti voi kuluttaa 115 miljoonaa dollaria itsestään kertovaan elokuvaan.
ITSERAKAS APINA!
KUOPIONAPINA SE VAAN JAKSAA!
Onko kauneushoitolan amme jo pesty? Kuka kakassa haluaa uida...
TKL:n linjoista 52B menee Laasonporttiin. Tuletko päätepysäkille, olen jo menossa sinne?
Saksan rautatiet pyörivät Windows 3.11:sta.
Siinä teille Microsoft Windowsin bullshittaajat:
Age is just a number for 30-year-old Windows 3.11 still powering German high-speed trains
[https://www.neowin.net/news/age-is-just-a-number-for-30-year-old-windows-311-still-powering-german-high-speed-trains/]
🍑🍒🍑🍒🍑🍒🍑🍒🍑
😍 Kuumat tytöt odottavat sinua -> https://us4.fun/kissgirl?18287786
🔞💋❤️💋❤️💋🔞💋❤️💋❤️💋🔞