mboost-dp1
Tråden til dumme spørgsmål
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
OxxY (18652) skrev:Overvejet at følge undervisningen og undervisningsmaterialet? Hmm?
Har du overvejet at holde fornærmende antagelser for dig selv? Det er en enkelt opgave jeg ikke kan finde ud af, som jeg og hele min gruppe har siddet og bakset med i flere timer. Den burde ikke tage mere end et par minutter men vi er allesammen kommet frem til at der er noget galt i selve opgaven. Forelæseren har dog genbrugt den fra sidste år, så må antage at han er blevet konfronteret med fejl allerede, hvis der var nogle. Derfor må der være en løsning til opgaven, men vi har bare allesammen givet op efterhånden. Det er bare mig der er stædig og ikke kan acceptere ikke at kunne løse en opgave der tilsyneladende skulle være simpel men bare ikke er det.
Daniel-Dane (18650) skrev:Windcape kan sikkert fortælle dig, hvorfor du ikke skal bruge det.
Men Haskell er så pænt!
Qw_freak (18654) skrev:hvad er opgaven?
Vi har fået opgivet definitionen på en funktion fold, der ser således ud:
fold op init [] = init
fold op init (x:xs) = x `op` fold op init xs
Vi skal så definere en funktion revOp af typen revOp :: a -> [a] -> [a], således at man kan kalde fold via
fold revOp [] xs, som så skal returnere det samme som hvis man brugte reverse xs. For eksempel så fold revOp [] [1,2] returnerer [2,1].
Tænker at det har noget at gøre med : operatoren så man kan konstruere listen via 1 : (2 : []) i forbindelse med forrige eksempel, men så mangler den jo at blive reversed. ++ operatoren virker ikke da x ikke er en liste. Vi må heller ikke ændre på definitionen af fold. Er lidt på bar bund...
Mark Jensen vil prøve de sjove porte på bundkortet:
De hersens eSATA-porte, der sidder til ekstern udtag på bundkortet - hvorledes fungerer det. Jeg har søgt lidt og fundet både sådan et kabel her, og sådan et her.
Ved det første går jeg ud fra, at man ikke blot kan sætte en harddisk til, da der ikke løber strøm igennem - korrekt?
Og ved det andet kabel formoder jeg, at den hiver 12V direkte fra eSATA-porten. Men her har jeg så læst, at der også er nogle e-SATA-porte, som kun leverer 5V.
Kan jeg blot sætte en almindelig harddisk til, og genkendes den som en harddisk eller et flytbart drev?
Jeg har et Asus P5K-E/WiFi bundkort i øvrigt.
De hersens eSATA-porte, der sidder til ekstern udtag på bundkortet - hvorledes fungerer det. Jeg har søgt lidt og fundet både sådan et kabel her, og sådan et her.
Ved det første går jeg ud fra, at man ikke blot kan sætte en harddisk til, da der ikke løber strøm igennem - korrekt?
Og ved det andet kabel formoder jeg, at den hiver 12V direkte fra eSATA-porten. Men her har jeg så læst, at der også er nogle e-SATA-porte, som kun leverer 5V.
Kan jeg blot sætte en almindelig harddisk til, og genkendes den som en harddisk eller et flytbart drev?
Jeg har et Asus P5K-E/WiFi bundkort i øvrigt.
Mark Jensen er træt af Gmail
Er det muligt at ændre hvilke google services disse links fører til i gmail? Jeg benytter dem sjældent som de er nu, men kunne godt bruge dem hvis der for eksempel var et til google reader.
Er det muligt at ændre hvilke google services disse links fører til i gmail? Jeg benytter dem sjældent som de er nu, men kunne godt bruge dem hvis der for eksempel var et til google reader.
Mark Jensen vil måle sin egen med andres
Jeg er lidt i tvivl, om vores forskellige storage systemer yder det optimale.
Hvor pokker finder man et sigende skema, hvor man kan sammenligne IO/S og MB/S på hhv. diske, raids, san, nas osv.?
Jeg er lidt i tvivl, om vores forskellige storage systemer yder det optimale.
Hvor pokker finder man et sigende skema, hvor man kan sammenligne IO/S og MB/S på hhv. diske, raids, san, nas osv.?
IK-test fejler?
Er jeg den eneste der ikke lige kan se en logisk løsning på denne?
http://jalabaja.dk/jj/ik.png
Løsningen skulle være:
"Tredje og anden række lægges sammen for at få første række"
Men det passer ingen steder.
Er jeg den eneste der ikke lige kan se en logisk løsning på denne?
http://jalabaja.dk/jj/ik.png
Løsningen skulle være:
"Tredje og anden række lægges sammen for at få første række"
Men det passer ingen steder.
Qw_freak (18666) skrev:Emil Melgaard (18665) skrev:63941 - 58763 = 5178
Løsningen må være 0.
tog ca. 2sek at se det... Tror JJ var lidt træt igår....
Tror bare jeg har siddet og stirret mig blind på den opgave.
Løste lidt over 100 af den slags i går, havde fejl i 4 (incl. denne) så det går nok.
markjensen skriver i kode
Jeg sidder og forsøger at programmere C++ i forbindelse med semesterprojektet. I den forbindelse skal jeg gerne forholdsvis dynamisk oprette et array (det skal ikke være dynamisk i gængs forstand, men størrelsen skal udregnes iht. konstanter).
Det er den sidste linje der giver mig et problem. Jeg kan sagtens få den til ikke at give problemer ved at fjerne (double), men det er jeg nødt til for at runde ordentlig op (ceil() giver også fejl). Kan det bare ikke løses på den måde? Hvis jeg ikke har skrevet (double) vil compileren bare dividere to integers og returnere et integer direkte, hvilket ikke er hvad jeg ønsker (eller der det?), da det så ikke betyder noget at jeg lægger 0,5 til. Jeg skal gerne uddybe hvad det er jeg vil hvis det ikke er tydeligt nok.
Fejlkode:
Jeg sidder og forsøger at programmere C++ i forbindelse med semesterprojektet. I den forbindelse skal jeg gerne forholdsvis dynamisk oprette et array (det skal ikke være dynamisk i gængs forstand, men størrelsen skal udregnes iht. konstanter).
const int FS = 4000;
const int DTMF_TONE_LENGTH = 35;
const int N = (int)((double)FS/DTMF_TONE_LENGTH*2+0.5);
const int BUFFER_TIME = 3;
const int SLEEP = BUFFER_TIME*1000+1000;
const int GOERTZEL_N = BUFFER_TIME*FS;
const int OUTPUT_SIZE = (int)(GOERTZEL_N/(double)N+0.5);
Det er den sidste linje der giver mig et problem. Jeg kan sagtens få den til ikke at give problemer ved at fjerne (double), men det er jeg nødt til for at runde ordentlig op (ceil() giver også fejl). Kan det bare ikke løses på den måde? Hvis jeg ikke har skrevet (double) vil compileren bare dividere to integers og returnere et integer direkte, hvilket ikke er hvad jeg ønsker (eller der det?), da det så ikke betyder noget at jeg lægger 0,5 til. Jeg skal gerne uddybe hvad det er jeg vil hvis det ikke er tydeligt nok.
Fejlkode:
1>c:[dir]\main.cpp(21): error C2057: expected constant expression
1>c:[dir]\main.cpp(21): error C2466: cannot allocate an array of constant size 0
du prøver på at fortælle hvilken størrelse arrayet skal være ved compile time, men så klog er compileren ikke.
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
int main(int argc, char* argv[])
{
const int FS = 4000;
const int DTMF_TONE_LENGTH = 35;
const int N = (int)((double)FS/DTMF_TONE_LENGTH*2+0.5
);
const int BUFFER_TIME = 3;
const int SLEEP = BUFFER_TIME*1000+1000;
const int GOERTZEL_N = BUFFER_TIME*FS;
const int OUTPUT_SIZE = (int)(GOERTZEL_N/(double)N+0.5);
int* goertzelOutput =new int[OUTPUT_SIZE];
goertzelOutput[3]=5;
cout << goertzelOutput[3];
return 0;
}
husk at delete []
:)
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
int main(int argc, char* argv[])
{
const int FS = 4000;
const int DTMF_TONE_LENGTH = 35;
const int N = (int)((double)FS/DTMF_TONE_LENGTH*2+0.5
);
const int BUFFER_TIME = 3;
const int SLEEP = BUFFER_TIME*1000+1000;
const int GOERTZEL_N = BUFFER_TIME*FS;
const int OUTPUT_SIZE = (int)(GOERTZEL_N/(double)N+0.5);
int* goertzelOutput =new int[OUTPUT_SIZE];
goertzelOutput[3]=5;
cout << goertzelOutput[3];
return 0;
}
husk at delete []
:)
oh...ummm......aldrigt brug arrays hvis det kan undgåes- collection klasser er meget bedre :) (vector) og husk at tilgå med at kommandoen.
Og brug de nye casting metoder http://msdn.microsoft.com/en-us/library/5f6c9f8h(v...
Og brug de nye casting metoder http://msdn.microsoft.com/en-us/library/5f6c9f8h(v...
Jeg vil helst undgå pointere og at bruge noget fra heap. Jeg har nemlig en løsning som virker 100 % (bruger ca. 15 ms på at beregne 3 sekunders data) og har brugt for lang tid på den i forvejen. Hvis jeg skal til at bruge pointere (hvilket jeg har forsøgt, men fejlede udpræget med) er det et set-back jeg ikke har tid til. Min løsning lige nu er at regne det ud i hånden og så skrive løsningen ind selv (lige nu 86 - der er en fejl i udregningen af N), men det undgår man jo helst når man har konstanterne stående allerede.
Mamad (moveax1ret) (18673) skrev:læs http://www.fredosaurus.com/notes-cpp/newdelete/50d...
Jeg tror ikke der står noget der, som ikke er gennemgået både i min tekstbog (Engineering Problem Solving with C++) eller i undervisningen - jeg kunne stadig ikke få mine pointere til at gøre som de skulle. Nok mig der har misforstået noget elementært, men det må jeg tage efter projektet er afleveret.
Lige nu kan jeg sagtens benytte arrays (der er et maksimum-antal input til arrayet som defineres endeligt senere), så jeg vil gerne undgå at ændre på min løsning.
Det skal siges at mit forsøg med pointere var at lave en klasse med en masse funktionalitet, hvor der så skulle overføres en pointer til inputarray (det er måden vores lydsamples gemmes) og outputarray, og så skulle klassen så bare iterere pointerne efterhånden som programmet tyggede sig igennem samples.
Så vidt jeg ved kan det ikke lade sig gøre- for at allokere et statisk array (stack) skal compileren kende størrelsen......comileren kan ikke rigtigt regne ( jo lidt måske http://99-bottles-of-beer.net/language-c-c++-prepr... ).
Men ikke med doubles ihvertfald.
Så enten må du bide i det sure æble og bruge en pointer.....eller bare bruge en vector.
(Jeg frygter at der kommer en og sætter mig på plads- c++ er meget komplekst)
Men ikke med doubles ihvertfald.
Så enten må du bide i det sure æble og bruge en pointer.....eller bare bruge en vector.
(Jeg frygter at der kommer en og sætter mig på plads- c++ er meget komplekst)
jeg har skrevet lidt om pointers, stack og heap her....måske giver det bedre mening end din tekstbog........
Stack:
Ting på stacken forsvinder af sig selv- og skal ikke slettes. De slettes når de går ud af scope.
De laves sådan her:
string a("stackstring");
int a=3;
Vi kan passe stack ting ind i funktioner og de kan tilgå dem fint, og bliver så slettet når den kaldende funktion når til end og scope.
Heap:
Ting på heapen lever der indtil de bliver slettet, det er sjældent at vi er intereserede i det, men nogle gange kan det ikke undgåes- især når vi kalder libaries kan vi
risikere at få returneret noget der lever på heapen.
For at noget lever på heapen skal man bruge keywordet new når man laver det.
Husk- det er ikke som java, new er generelt ikke godt at bruge.
Hver gang du skriver new skal du stille dig selv spørgsmålet- hvornår er vi færdige med det objekt? og deri kan du så delete det objekt.
det deletes med delete kommandoen.
en heap allokering ser sådan ud:
string* a=new string("heapstring");
int a=3;
int* pa=&a;
Pointers:
hvis der sættes en * efter en type under deklaration betyder det at typen er en pointer til typen efter *
string* a=new string("heapstring");
hvis der sættes en stjerne foran en pointer bliver den dererenceret.
*a="heapstring changed";
hvis der i en funktion deklaration sættes en pointer foran typen ved et argument betyder det at den vil modtage en pointer til den forventede type.
string reverseString(string* inputString) {}
For at trække pointeren ud af et objekt sættes et & foran;
string a("rrrrrrrrr");
string* pa=&a;
Stack:
Ting på stacken forsvinder af sig selv- og skal ikke slettes. De slettes når de går ud af scope.
De laves sådan her:
string a("stackstring");
int a=3;
Vi kan passe stack ting ind i funktioner og de kan tilgå dem fint, og bliver så slettet når den kaldende funktion når til end og scope.
Heap:
Ting på heapen lever der indtil de bliver slettet, det er sjældent at vi er intereserede i det, men nogle gange kan det ikke undgåes- især når vi kalder libaries kan vi
risikere at få returneret noget der lever på heapen.
For at noget lever på heapen skal man bruge keywordet new når man laver det.
Husk- det er ikke som java, new er generelt ikke godt at bruge.
Hver gang du skriver new skal du stille dig selv spørgsmålet- hvornår er vi færdige med det objekt? og deri kan du så delete det objekt.
det deletes med delete kommandoen.
en heap allokering ser sådan ud:
string* a=new string("heapstring");
int a=3;
int* pa=&a;
Pointers:
hvis der sættes en * efter en type under deklaration betyder det at typen er en pointer til typen efter *
string* a=new string("heapstring");
hvis der sættes en stjerne foran en pointer bliver den dererenceret.
*a="heapstring changed";
hvis der i en funktion deklaration sættes en pointer foran typen ved et argument betyder det at den vil modtage en pointer til den forventede type.
string reverseString(string* inputString) {}
For at trække pointeren ud af et objekt sættes et & foran;
string a("rrrrrrrrr");
string* pa=&a;
Måske - men de ældre årgange er blevet undervist i Java, men har aldrig haft brug for det. Så hellere blive kastet brutalt ud i C++ (en fryd efter vi havde Assembly-programmering sidste semester), end at bruge et halvt års undervisning på at lære et sprog man ikke får brug for under sin uddannelse :)
Anyways, here's the kicker. Visual Studio kan godt beregne værdien korrekt når man lader musen hover over OUTPUT_SIZE. Men compileren gider ikke :/
Anyways, here's the kicker. Visual Studio kan godt beregne værdien korrekt når man lader musen hover over OUTPUT_SIZE. Men compileren gider ikke :/
det er fordi det bliver udregnet ved runtime, men når man definerer et statisk array skal det foregå compile time...... læs linket fra tidligere.
Fik løst Haskell opgaven jeg nævnte tidligere, på egen hånd :)
Troede tidligere at `op` bare var en måde at passe en operater på, men fandt ud af at fx div 2 1 er det samme som 2 `div` 1.
Kom frem til løsningen ved at evaluere fold manuelt med en udefineret revOp.
Og så var det jo let nok at finde ud af opgaven når det var gjort tydeligt hvorfor typen er revOp :: a -> [a] -> [a].
revOp x [] = [x]
revOp x (y:ys) = y : ys ++ [x]
Troede tidligere at `op` bare var en måde at passe en operater på, men fandt ud af at fx div 2 1 er det samme som 2 `div` 1.
Kom frem til løsningen ved at evaluere fold manuelt med en udefineret revOp.
fold revOp [] [1,2] =
(1 `revOp` (2 `revOp` [])) =
(revOp 1 (revOp 2 []))
Og så var det jo let nok at finde ud af opgaven når det var gjort tydeligt hvorfor typen er revOp :: a -> [a] -> [a].
markjensen læser Grundlov
Har newz.dk været i gang med at løbe ærinder for APG, eller svigter min hukommelse mig når jeg husker at der var en tråd på forummet, hvor en gut fortalte at han havde haft besøg af politiet og var blevet truet med 6 års fængsel? Han linkede til http://gratisfilm.info/antipiratgruppen-har-meldt-...
Har newz.dk været i gang med at løbe ærinder for APG, eller svigter min hukommelse mig når jeg husker at der var en tråd på forummet, hvor en gut fortalte at han havde haft besøg af politiet og var blevet truet med 6 års fængsel? Han linkede til http://gratisfilm.info/antipiratgruppen-har-meldt-...
Alrekr (18687) skrev:Jeg husker der var en tråd her på forum - men nu kan jeg ikke finde den. Enten husker jeg forkert, eller også er der tale om at crew har slettet tråden.
Ahhh.. nu forstår jeg vist. Ærindet var, at newz.dk måske havde slettet tråden for APG. :D
Jeg var træt til morgen :<<
Bachy (18690) skrev:Jeg læste den på Nordic-t for et par dage siden, og det viste sig at gutten florede over hele nettet, og fik spredt sin historie (Og linket til hans HP) temlig godt :)
Jojo. Jeg spurgte egentlig fordi der var en mandsperson der havde set historien på nettet, og han spurgte så på Google+ om det var en and. Så ville jeg lige finde tråden herinde - men væk var den.
Alrekr (18694) skrev:#18692 + #18693
meh. Der er intet ulovligt i hvad han gør - han opfordrer ikke til noget. Han lægger guides op til at blive anonym på nettet (hvilket han selv fejler ved, åbenbart), og så skal han straffes hårdere end Jønke blev for mord?
Rolig nu, som de skrev inde på Nordic, så slipper han med 99% sansynlighed med en bøde for de torrents han måtte have på sin maskine, værer går det ikke.
Noget andet er, foreløblig har jeg kun set hans side af historien, også et interview i comon (Som nok er at betegne som IT fagtes EB/BT site ;) )
*Edit*
Første meldinger fra apg lød vist nok på at de mistænkte ham for at være en af bagmændende bag NXGT trackeren
Alrekr (18694) skrev:#18692 + #18693
meh. Der er intet ulovligt i hvad han gør - han opfordrer ikke til noget. Han lægger guides op til at blive anonym på nettet (hvilket han selv fejler ved, åbenbart), og så skal han straffes hårdere end Jønke blev for mord?
Det er så en helt anden snak. Prøv i øvrigt at lægge mærke til at han konstant nævner at "det skal han så 6 år i fængsel for". Realiteten er nok nærmere at han bliver idømt at betale eller anden erstatning - sikkert alt for lille og sikkert uden for retten.
Men det lyder jo mere sensationelt at skrive at man skal 6 år i fængsel.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.