Jump to content

Kā konkrēti izpaužas C++ valodas tuvums "dzelžiem".


Raimonds1
 Share

Recommended Posts

Raimonds1

Tas ir diezgan labi pārdomāts projekts.

Un mani interesē arī sabiedriskās attieksmes.

Neko nekur sūdzēt netaisos.

 

Link to comment
Share on other sites

laikamTak
Pirms 1 minūtes , Raimonds1 teica:

mani interesē arī sabiedriskās attieksmes

es, kā sabiedrības pārstāvis, saku - karogs tavās rokās!!!

  • Atbalstu 2
Link to comment
Share on other sites

  • 3 months later...

Izturība apkārtējā vidē https://xtv.lv/rigatv24/video/4OW7q3EypvY-24_02_2020_dr_apinis_2_dala   5.minūte 50.sekunde

Tas ilgais laiks, ko vīruss var būt vidē ir ne tikai negatīvs faktors, bet arī ir iespēja to vīrusu ietekmēt, lai iegūtu fragmentus. Varbūt pat ar izotopu metodi. Nav ar tiem jādarbojas organismā. Var darīt kā ar pusvadītāju kristālu.

Protams, matemātiskais modelis labi noderētu.

Link to comment
Share on other sites

Konkrētais izotops sabrūk neparedzami. Tas tā statistiski ir noteikts laiks, kurā puse no konkrētā izotopa atomiem ir sabrukuši.

 

Tāpēc teorētiskais modelis, kuru tieši izotopu izmantot un kādi tieši tie unikālie vīrusa apvalka fragmenti varētu būt, ir svarīgs.

Var, protams, mēģināt bez nekādas modelēšanas un skatīties, kas sanāks.

Un nav jau tā, ka tie atšķeltie fragmenti tā uzreiz saglabāsies, turpat uz stikliņa paliks un neturpināsies tas struktūras sabrukums, tur vajag modelēt visādus citus pasākumus, piemēram 1.2.3.4 un tā tālāk.

Tāpēc tas ir diezgan matemātisks pasākums un tur, protams, kaut kas jāzin par bioloģiskajām struktūrām.

 

Man jautājums bija - vai kāds zina, kas nodarbojas ar ko tādu

https://www.sciencedirect.com/topics/chemistry/quantum-chemistry

https://www.youtube.com/results?search_query=quantum+chemistry

 

 

Link to comment
Share on other sites

  • 4 weeks later...
Raimonds1

https://fold.it/  1.31 min

kas meklē, tas atrod

reizēm valsts televīzija vakara ziņās sagatavo sižetu un te tas ir

izotopu gadījumā tur vajadzēs modificēt, bet ideja tā pati


Vairāk matemātikas, telpisko modeļu un izotopu sabrukuma laika modeļi.

Link to comment
Share on other sites

  • 6 months later...
Raimonds1

Nu, vispirms ar to, ka programmas darbības ar skaitļiem netiek programmētas ar jebkuriem skaitļiem, bet jau sākumā nosaka, ka darbosies ar 

 

Keyword

 

Variable Type

Range

Storage Required

char

character (or string)

 

–128 to 127

1 byte

int

integer

–32768 to 32,767

 

2 bytes

short (or short int)

short integer

–32768 to 32,767

2 bytes

 

long

long integer

–2,147,483,648 to 2,147,483,647

4 bytes

unsigned char

unsigned character

0 to 255

1 byte

unsigned int

unsigned integer

0 to 65,535

2 bytes

unsigned short

unsigned short integer

0 to 65,535

2 bytes

unsigned long

unsigned long integer

0 to 4,294,967,295

4 bytes

float

single-precision floating point (accurate to 7 digits)

+ or -3.4 x 1038 to + or -3.4 x10-38

4 bytes

double

double-precision floating point (accurate to 15 digits)

+ or -1.7 x 10-308 to + or -1.7 x10308

8 bytes

 
 

Tā var attiecīgajai programmai noteikt konkrētus skaitļošanas resursus.

 

Tad vēl ir tādi bitu operatori, kas ļauj darboties ar bināriem skaitļiem

 

 

Operators     Meaning of operators  
&                      Bitwise AND  
|                        Bitwise OR  
^                       Bitwise XOR  
~                      Bitwise complement  
<<                    Shift left  
>>                    Shift right  

 

 

Link to comment
Share on other sites

@Raimonds1, Tad jau Scala arī ir tikpat tuva dzelžiem kā C++. Scalā arī ir binārie operatori un statisku tipu sistēma. 😀

Labots - Salmo
Link to comment
Share on other sites

Kas tur neticams?  Kāds sakars dzelžiem ar mainīgo tipiem vai bitu operācijām. To tak var uz papīra darīt. Vispār bez dzelžiem.😁

Labots - Jurkins
Link to comment
Share on other sites

On 10/10/2020 at 4:21 PM, Raimonds1 said:

Nu, vispirms ar to, ka programmas darbības ar skaitļiem netiek programmētas ar jebkuriem skaitļiem, bet jau sākumā nosaka, ka darbosies ar 

 

Keyword

 

Variable Type

Range

Storage Required

char

character (or string)

 

–128 to 127

1 byte

int

integer

–32768 to 32,767

 

2 bytes

short (or short int)

short integer

–32768 to 32,767

2 bytes

 

long

long integer

–2,147,483,648 to 2,147,483,647

4 bytes

unsigned char

unsigned character

0 to 255

1 byte

unsigned int

unsigned integer

0 to 65,535

2 bytes

unsigned short

unsigned short integer

0 to 65,535

2 bytes

unsigned long

unsigned long integer

0 to 4,294,967,295

4 bytes

float

single-precision floating point (accurate to 7 digits)

+ or -3.4 x 1038 to + or -3.4 x10-38

4 bytes

double

double-precision floating point (accurate to 15 digits)

+ or -1.7 x 10-308 to + or -1.7 x10308

8 bytes

 
 

Tā var attiecīgajai programmai noteikt konkrētus skaitļošanas resursus.

 

Tad vēl ir tādi bitu operatori, kas ļauj darboties ar bināriem skaitļiem

 

 

Operators     Meaning of operators  
&                      Bitwise AND  
|                        Bitwise OR  
^                       Bitwise XOR  
~                      Bitwise complement  
<<                    Shift left  
>>                    Shift right  

 

 

 

Tabulā nav gadījumā kļūda? Int un short int - abi ir 2 baitus gari? Int nav gadījumā jābūt 4 baitiem?

Link to comment
Share on other sites

Raimonds1

Kaut kad droši vien izdomās valodu, kurā būs ar kursoru un peli pārvietojams klucītis - kalkulators, kurā varēs attēlā ieķeksēt vienu no 200 variantiem - ko rēķināt - atvaļinājuma dienas kalendārā, pavadoņa orbītu un tās izmaiņas vai vēl ko.

 

4 bitu loģika https://www.allaboutcircuits.com/projects/how-to-build-your-own-discrete-4-bit-alu/

 

Gan jau kādam mikrokontrolierim ir iespēja pavisam vienkāršām loģiskām funkcijām programmā paredzēt atmiņā rezervēt tikai 4 vai 8 bitus un darbināt tikai šāda līmeņa ALU vienību.

Tā tad arī ir tā rūpe par dzelžiem, lai netiktu izmantoti nevajadzīgi lieli resusi.

 


Savukārt kaut kad nākotnē programmētājs laikam skaitīsies tas, kas salipinās veselus bibliotēkās atrodamu programmu blāķus un par tādām finesēm nedomās vispār.

Link to comment
Share on other sites

pirms 2 stundām , Raimonds1 teica:

Gan jau kādam mikrokontrolierim ir iespēja pavisam vienkāršām loģiskām funkcijām programmā paredzēt atmiņā rezervēt tikai 4 vai 8 bitus un darbināt tikai šāda līmeņa ALU vienību.

 

Ko tu tur murgo atkal par lietām no kā neko nejēdz. Mikronoktrolierim pa lielam (ja tas ir 32bitu) ir pilnīgi vienalga vai operēt ar 4 bitiem vai 8, vai 1, viņš tikuntā veiks 32 bitu operāciju un pārējos bitus ignorēs. Nekāda ietaupījuma tur atsevišķi veicos 4 vai 8 bitu operācijas nebūs. Drīzāk pat zaudējums, jo naksies lietot atsevišķu hārdwāri.

 

Tak nipērc kautkādu FPGA dev kitu un uzdizainē pats savu CPU, varēsi izpausties savās bezjēdzīgajās idejās.

 

pirms 4 stundām , Jacob teica:

Tabulā nav gadījumā kļūda? Int un short int - abi ir 2 baitus gari?

Var arī mierīgi būt 4 vai pat 8. Nav nekur definēts cik lielam ir jābūt int, bet ir teikts cik ir minimums, un tas ir 16 biti.  

Link to comment
Share on other sites

7 hours ago, AndrisBB said:

Var arī mierīgi būt 4 vai pat 8. Nav nekur definēts cik lielam ir jābūt int, bet ir teikts cik ir minimums, un tas ir 16 biti.  

 

Vismaz C valodā, tas ir atkarīgs no arhitektūras, cik noprotu. Uz 16-bitu athitektūras tas bija 16 biti, uz 32-bitu arhitektūras - 32 biti. Uz 64-bitu arhitektūras tas palika 32 bitu garš.

 

Jā, garums nav noteikts, tik noteikts ir tas, ka int nevar būt īsāks par short (16 biti, bet arī nav noteikts)

Labots - Jacob
Link to comment
Share on other sites

Nav tas atkarīgs tīkai no arhitektūras. Tas var būt atkarīgs ko C bibliotēkas, vai pat vairāk no compailer(kompilātora?), ja tas izdomās ka int ir 32 biti, tad tā arī būs arī uz 8 bitu sistēmas. 

Link to comment
Share on other sites

Jebkurā gadījumā es reti lietoju int, pa lielam tikai tad, ja ir jau esošs kods un visur ir tā lietots. Ja rakstu savu vai jaunu kodu, tad arī norādu vai tas ir int32_t vai  uint8_t ,tīri lai izvairītos no problēmām vēlāk. Lielākajā daļā gadījumu tam nav nozīmes, bet ja tiešām tas kautkāds kods kur tieši ar kautkādiem buferiem jāstrādā (kas man sanāk bieži) tad tas ir kritiski.

Tas pats arī uz Linuxa tagad faktiski visi procesi lieto d-bus, lai komunicētu. Tur ļoti svarīgi datu tipi un izmēri, ar standarta int vai signed int, short utt,ātri var iebraukt auzās.

Ja godīgi, tad vispār nezinu kas tie par ķēmiem, kuri lieto visādus short, long , long ong utt, tak definē uint64_t un miers :D

 

Labots - AndrisBB
Link to comment
Share on other sites

Raimonds1

Izdomāt var kompilators un izdomāt var arī programmētājs.

Kaut kur pirms daudz lapām aprakstīju zoles kārtij visus parametrus vienā 16 bitu rindiņā sarakstītus.

Vai to darīs kompilators un kā - ej nu sazini. Gan jau ir veids, kā to noskaidrot.

Link to comment
Share on other sites

Atceroties tavu izdomājumu, tak secinājums bij ka tavi biti to programmu padarīs vēl lēnāku nekā ja vienkārši lietotu pilnus vardus (32 bit) :D

 

Link to comment
Share on other sites

Raimonds1

Varbūt tajā piemērā arī tā ir, tomēr tā ir objekta visu īpašību ierakstīšana un nolasīšana 16, 32 vai 64 bitu skaitļa konkrētos bitos un to gan jau var izmantot citos projektos.

 


Funkcija punktu skaits 2,3,4,10,11 - 4 bitos

Funkcija kārts atbilstība trumpjiem - 4 bitos utt.

Link to comment
Share on other sites

Raimi, Tu vari uz viena kalkulatora reizē saskaitīt  4+5 un 2+3? Ar uzsvaru uz "reizē"?

Link to comment
Share on other sites

Raimonds1

Vispirms - tie 5 miljoni ir izveidojuši lieliskus, briljantus projektus kas darbojas, nezinu, cik procentus, lai būtu 99.9%

Daļa no tiem projektiem nemaz nav ne brilljanti, ne lieliski.

Man kā neprogrammētājam, kas tomēr kaut ko zin no pamatshēmām un algoritmiem, reizēm tomēr izdodas atrast fantastiskas nesakritības. 

Tāpat interesanta ir dažu projektu vadītāju attieksme pret citu nozaru likumsakarībām.

 

Tad nu es tur kaut ko meklēju, kaut ko taustos, varbūt kaut ko atradīšu.

 

Būtībā jau mani interesē tas moments, kad algoritmiski viss ir izdomāts, vajadzētu tik likt visu kopā un tad sākas visādas interesantas problēmas, iebildes un pārējais.

 

 

 

Pirms 10 minūtēm , Jurkins teica:

Raimi, Tu vari uz viena kalkulatora reizē saskaitīt  4+5 un 2+3? Ar uzsvaru uz "reizē"?

Ja Tu domā to, ka pēc zoles gājiena no vienas bitu rindas reizē jālasa kārts atbilstība prasītajam kārts veidam, kārts stiprums, punktu skaits, gājienu secība, tad tas man ir tādā idejas-pieļāvuma līmenī, ka tādi procesi VARĒTU NOTIKT PARALĒLI. 

Kā tur īsti ir, es nezinu.

 

EDIT. Varbūt tādai idejai ir kāda jēga. Varbūt to bitu rindu REIZĒ  var padot 4 atsevišķiem procesora kodoliem. Uzzināšu pareizos tehnoloģijas vārdus un gan jau atradīšu.

Labots - Raimonds1
Link to comment
Share on other sites

Vēlreiz atkārtoju jautājumu 🤣:

Tu vari uz viena kalkulatora reizē saskaitīt  4+5 un 2+3? Ar uzsvaru uz "reizē"?

Link to comment
Share on other sites

Kāds tieši būs ieguvums krāmēt tavas kārts bitos?

Ātrums, programmas izmērs, elegantāks un vieglāk saprotams kods? Lai kautko darītu ir jābūt pamatojumam? Kurš no trijiem būs tavs ieguvums?

Link to comment
Share on other sites

Droši vien.

Neesu īpaši pētijus ALU iekš moderna mikrokontroliera, bet domājams ka ALU "paralēli" ne tikai saskaita, bet izpilda pilnīgi visas iespējamās darbības - atņem, sareizina un izdala, atliek tikai izvēlēties kuru rezultātu gibās.

 

Vismaz tā bij manā MiniMIPS izpildījumā, jo hardwāre jau tur ir tikuntā, vienkārši "paņem" to rezultātu kurs interesē (atkarībā no instrukcijas)

Labots - AndrisBB
Link to comment
Share on other sites

Raimonds1

Zināšana, kuri tieši 4 vai cik biti kurai tieši funkcijai vajadzīgi, kur tie atrodas, kā tos padarīt grafiski ērti redzamus,  apstrādes ātrums.


Varam pamēģināt arī bitu līmeņa OCR algoritmu aprakstu.

Link to comment
Share on other sites

Pirms 1 minūtes , Raimonds1 teica:

  apstrādes ātrums.

Tur jau tā lieta ka apstrādes ātrums būs lēnāks. Jo salīdzināt vienu bitu vajadzēs vairāk instrukcijs, kā salīdzināt veselu 32 bitu skaitli.


Uzraksti kodu cik instrukcijas būs pārbaudīt 4 bitus iekš 32 bitu atmiņas un cik 4 stsevišķus mainīgos, kuri katrs var būt 1 vai 0

Labots - AndrisBB
Link to comment
Share on other sites

Raimonds1

Tas novērš uzmanību no cita procesa. No plānošanas un algoritmiem. Tiem ir jābūt pamatā.

Link to comment
Share on other sites

Nu parādi kautkādu īsu koda piemēru, kā tu pārbaudīsi tos bitus. To slaveno funkciju kuru piemini.

Link to comment
Share on other sites

Raimonds1

https://stackoverflow.com/questions/23726544/how-do-you-compare-only-certain-bits-in-data-type

https://graphics.stanford.edu/~seander/bithacks.html

Tu noteikti ar savu praktiskās programmēšanas pieredzi un gatavu bibliotēku piemēriem mēģināsi šo visu spriedelēšanu ievirzīt kaut kādā savā gatavu, jau izstrādātu projektu apspriešanā. 

Mani šeit interesē kas cits.

 

Link to comment
Share on other sites

Priekš kam tu tos linkus iedevi? Domā es nezinu kā bitu operācijas veikt?

 

Rādi kautkādu reālu piemēru kur un kā tu to pielietosi.

Uzraksti kautkādu struktūru, kur glabāsi savas kārtis un tad funkcijas kā tu kautko apstrādāsi.

Labots - AndrisBB
Link to comment
Share on other sites

Varu pat ideju pasviest. Uzraksti funkciju, kura noteiks ar kurām kārtīm tu vari iet, kad pienāk tavs gājiens. (tu ej otrais vai trešais, uz galda jau ir kārtis un tad ir liste ar kārtīm tev rokās, nosaki kuras ir atļautās)

Link to comment
Share on other sites

11 hours ago, ieleja said:

@Raimonds1

kas tavuprāt ir tavu c++ atklājumu pateicīgā auditorija?

 

tev liekas, ka tie 5 000 000+ c++ programētāji šajos 40+ gados nav pietiekoši par visu domājuši pietiekami dziļi, lai cilvēks, kas tieši nemaz nav c++ programētājs, garāmejot viņus “vestu uz pareizā ceļa”?

 

 

Par mūsdienu C++ ar STL (ko izmanto "mūsdienu programmētāji") un līdz ar to programmu kvalitāti, kuras ir tajā sarakstītas, noteiktās aprindās ir diezgan kritiska attieksme, ja neteiktu vairāk. 

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...