Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 754 Morcovi : Aprilie 04, 2010, 10:47:14
Bune-s alea 12 ponturi pentru programatori C++ de la articole.
Am sarit de la 80 la 100 numa pt ca am inversat dimensiunile (si semnificatiile evident) de la o matrice a[ j ][ i ] in loc de a[ i ][ j ] (nu zic ce insemnau ca poate dau spoilere pentru cei care chiar vor sa rezolve problema)

Pe testu 8 am sarit de la 928ms la 224ms  Banana
2  infoarena - concursuri, probleme, evaluator, articole / Articole / Răspuns: 12 ponturi pentru programatorii C/C++ : Aprilie 02, 2010, 19:37:51
Cum se poate afla in windows memoria folosita de program? In linux ma folosesc frumos de time, ca stie si asta (sincer nu stiu exact parametrii... ii dau -v (verbose-u default) si acolo stiu ce caut), dar in windows n-am nici o idee cum se face (in cazul in care sunt la concursuri inainte de ONI si se intampla sa am restrictii de memorie).

Observatie pentru cei care nu stiau ca time iti da si memoria - in Ubuntu (nu stiu daca si in alte distributii) programul time original este mutat in /usr/bin/ si ce se acceseaza simplu cu time nu permite alte optiuni (precum -v). In loc de time folositi:

Cod:
/usr/bin/time -v program
3  infoarena - concursuri, probleme, evaluator, articole / Informatica / Probleme la citirea din fisiere fara eof : Ianuarie 28, 2010, 15:55:50
Salut lume.

Am un device extern care comunica cu un programel de-al meu prin /dev/ttyUSB# (unde # e un numar...). Acele fisiere din /dev pentru cei care nu stiu... sunt niste buffere care pur si simplu dau mai departe informatiile primite din exterior & dau mai departe informatiile puse in ele inspre exterior.

Problema de baza este... ca acele buffere nu prezinta sfarsit si am o mica buba la citirea lor.
Ideea este ca programul meu trebuie sa citeasca la fiecare X ms din acel fisier (asa e gandit device-ul...) dar in momentul in care n-am destui bytes in acel fisier, programul meu sta ca prostul si asteapta sa apara => nu face nimic pt mult timp => lag. Eu as fi vrut ca daca nu exista bytes acolo, sa sara peste un ciclu din acela de X ms, nu sa le strice pe toate. Ce ma deranjeaza si mai tare, este faptul ca daca device-ul este conectat la calculator, dar oprit, atunci el nu trimite bytes, si programul stagneaza de tot, nu pot nici macar sa-l opresc (evident fara un kill -9 : D).

Cum verific eu daca mai exista ceva sau ca nu exista destul in acel fisier inainte sa-l citesc?
Si cum sar eu la capatul fisierului? (in cazul in care trebuie sa neglijez bytes in plus din el)

Toate intrebarile de mai sus sunt C/C++ specific. Sunt de acord sa folosesc orice, stream-uri, fisiere de tip cstdio etc... dar nu invat alt limbaj doar pentru asta. Folosesc acel fisier pt ca device-ul cu care comunic este custom made. Nu e cumparat, e facut de un prieten de-al meu si in esenta un ATMEL programat de noi, si nu prezinta API-uri sau high level packet sending ca sa le pot citi asa. Esential e ca trimite bytes conform cerintelor noastre, dat exista si packet loss pentru care apar problemele de mai sus.

PS... daca se poate solutiile sa nu fie legate de multithreading. Daca nu gasesc alta solutie oi invata si asta, dar daca se poate sa-mi dati sugestii din alte domenii ale C-ului.
4  infoarena - concursuri, probleme, evaluator, articole / Informatica / Se poate face smecheria asta ca sa scapi de numere mari? : Martie 31, 2009, 11:29:24
Nu se poate cumva declara un struct in C care sa contina o variabila pe n bytes (n nr mare) pe care sa poti folosi operatiile obisnuite (+, -, *, /, mod, poate chiar si functiile din math.h.....) ca sa nu mai scri tu operatii cu numere mari?
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 408 Coduri : Aprilie 20, 2008, 10:26:47
codul 2 1 1 e gresit pentru 10.... scrie in enunt ca n3 = max (n1, n2)
2 * 5 = 10 - n1 corespunde lui 2, n2 corespunde lui 3 si n3 corespunde lui 10
n1 = 3
n2 = 3
prin urmare si n3 ar trebui sa fie egal cu 3
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines