Sida 13 av 70
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:00:18
av AndLi
Al_Bundy skrev:säter skrev:Al_Bundy skrev:C är ett jävligt dåligt språk.
Kan du vidareutveckla detta lite?
Behöver jag ens det? Visst.
För mig är C ett bråkigt språk som ej tillåter användaren att göra det den vill. Tänk om man skulle kunna programmera uC:s med Java eller annat högnivåspråk och samtidigt få det effektivt och lätt. Tydligen så har ingen gjort detta än, vilket jag måste ge C ett plus i kanten för.
Det var en annorlunda vinkling av kritiken man hör om C, normalt brukar vara att det just tillåter användaren att göra vad som helst som får kritik för att användaren/programmeraren måste ha full koll för att inte ta sönder något. Men visst kan man inte C så blir det ju svårt att göra det man vill, upplever samma sak med JavaScript, helt värdelöst, det förstår mig inte...
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:11:46
av Al_Bundy
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:13:25
av Al_Bundy
AndLi skrev:
Det var en annorlunda vinkling av kritiken man hör om C, normalt brukar vara att det just tillåter användaren att göra vad som helst som får kritik för att användaren/programmeraren måste ha full koll för att inte ta sönder något. Men visst kan man inte C så blir det ju svårt att göra det man vill, upplever samma sak med JavaScript, helt värdelöst, det förstår mig inte...
Det är inget fel att hålla koll. Men varför går det inte passera en 2D array igenom en funktion och i funktionen så ska man mäta dimensionen på denna 2D array?
Varför kan inte C returnera flera värden samtidigt?
Varför har dem...medvetet...byggt C på detta vis?
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:16:24
av AndLi
Du kan väl aldrig mäta dimensionen på en 2D array i C?
Vilka språk kan returnera flera värden samtidigt?
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:31:50
av Al_Bundy
Moderna högnivåspråk.
Jag har inte lyckats det.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:35:50
av AndLi
Och på vilket sätt menar du att C inte kan returnera flera värde samtidigt?
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:41:10
av sodjan
> Vilka språk kan returnera flera värden samtidigt?
Här måste man vara lite mer specifik innan man säger vad som går eller inte går.
Visst, en funktion kan bara ha ett returvärde. Men flera parametrar kan vara
"by reference" och på det sättet returnera värden till anropande rutin. Och sen
kan (väl?) returvärdet från funktionen vara en struct som i sig kan innehålla valfritt
antal värden av olika datatyp.
Jag har inte sett något språk ("modernt högnivåspråk" eller inte) som kan ha flera
separata returvärden, vore kul med ett exempel.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:47:20
av Shimonu
Python kan gör anrop av typen
Det är enda exemplet jag vet på rak arm.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:53:12
av schnilsch
I Go kan man returnera flera värden.
https://gobyexample.com/multiple-return-values
Har för mig att det finns några flera men hittar inget vettigt.
Kan vara så att det har varit "wrappers" till Javascript, typ Typescript som kompileras om till vanlig Javascript.
I flera nyare språk så kan man ju returnera odefinierade objekt med all data.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 17:56:59
av Al_Bundy
MATLAB, Julia, R osv.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 18:04:47
av hawkan
Inte så smidigt i C. Men det går såklart att lösa.
T ex returnera en pekare till en struct som innehåller all data man kan önska sej.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 18:16:35
av Sado
C# fr.o.m ver 7.0.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 18:28:47
av hummel
Al_Bundy skrev:AndLi skrev:
Det var en annorlunda vinkling av kritiken man hör om C, normalt brukar vara att det just tillåter användaren att göra vad som helst som får kritik för att användaren/programmeraren måste ha full koll för att inte ta sönder något. Men visst kan man inte C så blir det ju svårt att göra det man vill, upplever samma sak med JavaScript, helt värdelöst, det förstår mig inte...
Det är inget fel att hålla koll. Men varför går det inte passera en 2D array igenom en funktion och i funktionen så ska man mäta dimensionen på denna 2D array?
Varför kan inte C returnera flera värden samtidigt?
Varför har dem...medvetet...byggt C på detta vis?
Ofta genererar en pekare mindre kod än att passa en stor datastruktur vid anrop.
Du får snabbare kod (vilket du efterfrågar) genom pass by reference.
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 18:33:00
av hummel
sodjan skrev:> Vilka språk kan returnera flera värden samtidigt?
Här måste man vara lite mer specifik innan man säger vad som går eller inte går.
Visst, en funktion kan bara ha ett returvärde. Men flera parametrar kan vara
"by reference" och på det sättet returnera värden till anropande rutin. Och sen
kan (väl?) returvärdet från funktionen vara en struct som i sig kan innehålla valfritt
antal värden av olika datatyp.
Jag har inte sett något språk ("modernt högnivåspråk" eller inte) som kan ha flera
separata returvärden, vore kul med ett exempel.
Även Lua som används i Mach4 klarar det. Men om det är någon fördel vet jag inte. Enkelt att returnera flera saker via struct (eller rättare sagt en pekare till en struct).
Re: Matrisberäkningar med för STM32?
Postat: 14 januari 2019, 18:39:15
av Mr Andersson
Känns som om vi kommit en bit ifrån ämnet nu men C har inte pass by reference. Du skickar en pekare by value. Ändrar du pekaren i en underfunktion är den fortfarande oförändrad en nivå upp.
Alla språk som har "flera returvärden" gör det genom att returnera en tuple eller struct och kompilatorn har syntax-socker för att slå sönder dem i flera variabler. Men för mycket socker blir man fet av.
För att återgå till matriserna. Al skrev tidigare, om jag inte minns fel, att han har 0,2s från att data kommer in tills ett reglerbeslut ska tas. Det känns som ganska gott om tid, 36x36-matriser är inte speciellt stora. Ska göra lite tester senare hur många man hinner med på den tiden.