informatician Posted December 12, 2010 Report Posted December 12, 2010 Fisierul text triunghiuri.in contine datele referitoare la N triunghiuri, astfel:pe prima linie se afla numarul N al triunghiurilor, 0 < N < 100;pe urmatoarele N linii se gasesc câte sase numere întregi x1, y1, x2, y2, x3, y3, separate prin câte un spatiu, reprezentând coordonatele (x1, y1), (x2, y2) si (x3, y3) ale celor 3 vârfuri ale unui triunghi în planul xOy.Consideram declararea tipului Punct:C/C++typedef struct Punct { x, y: integer;};si prototipul/antetul functiei dist:C/C++double dist(Punct A, Punct ;/C/C++ care:a) Contine definitia completa a functiei dist, care calculeaza distanta dintre doua puncte din planul xOy ale caror coordonate sunt transmise prin intermediul parametrilor A si B; Determina si afiseaza pe ecran numarul triunghiurilor care au aria mai mare decât o valoare reala citita de la tastatura.Am incercat o rezolvare, dar nu i-am dat de capat.. Quote
Patrunjel Posted December 12, 2010 Report Posted December 12, 2010 Pai cum sa te astepti sa fii in stare sa programezi daca tu nu stii sa diferentiezi o declaratie de variabile din C++ cu una din Pascal?Si inca ceva, in C++ nu sunt sigur ca exista typedef struct Punct .Ma refer la typedef, nustiu ce sens are el pe-acolo (da' nu-s 100% sigur ca nu-i bine), totusi merita sa mai verifici odata sursa. Quote
informatician Posted December 12, 2010 Author Report Posted December 12, 2010 Pai cum sa te astepti sa fii in stare sa programezi daca tu nu stii sa diferentiezi o declaratie de variabile din C++ cu una din Pascal?Si inca ceva, in C++ nu sunt sigur ca exista typedef struct Punct .Ma refer la typedef, nustiu ce sens are el pe-acolo (da' nu-s 100% sigur ca nu-i bine), totusi merita sa mai verifici odata sursa.Auzi, nu eu am scris aceasta problema!Acesta este enuntul, dar mi-am dat seama ca e gresit acuma cand mi-ai zis tu!trebuia sa fie int x,y;..nu x,y:integer;! Quote
AlStar Posted December 12, 2010 Report Posted December 12, 2010 A-nceput Evaluarea in Educatie - Informatica ? Quote
phreak Posted December 12, 2010 Report Posted December 12, 2010 C++ Keywords: typedefa) - aia-i cerinta sau precizare?Eu cred ca n-ai copiat problema calumea sau in intregime. Quote
informatician Posted December 12, 2010 Author Report Posted December 12, 2010 A-nceput Evaluarea in Educatie - Informatica ?Aha , mai am problema asta si fac 100.(restul au fost banale)PS.phreak, da sunt sigur ca acesta este enuntul! 1 Quote
AlStar Posted December 12, 2010 Report Posted December 12, 2010 Te-am prins...frauda...Tu vrei sa faci puncte cu capu' altuia... nu-i frumos! Quote
phreak Posted December 12, 2010 Report Posted December 12, 2010 Daca aia-i cerinta adevarata de la un CONCURS in care confunda c++ cu pascal ... no comment. Quote
informatician Posted December 12, 2010 Author Report Posted December 12, 2010 Te-am prins...frauda...Tu vrei sa faci puncte cu capu' altuia... nu-i frumos!Este singura problema care nu mi-a iesit, de aceea am cerut ajutor, dar vad ca numai critici mi se aduc.Voi incerca solutionarea problemei!Va rog inchideti topicul.PS.phreak sunt 100% sigur ca aceea e cerinta, acum am verificat si eu! Quote
AlStar Posted December 12, 2010 Report Posted December 12, 2010 Daca aia-i cerinta adevarata de la un CONCURS in care confunda c++ cu pascal ... no comment.Is multe erori de scriere la concursu' asta... Quote
phreak Posted December 12, 2010 Report Posted December 12, 2010 Daca ei nu sunt in stare sa scrie un enunt calumea , eu de ce ar trebui sa fiu in stare sa rezolv aberatiile lor? @informaticianu : eu n-as scrie nimic si i-as zice profei ca e gresit enuntul. Quote
AlStar Posted December 12, 2010 Report Posted December 12, 2010 @informatician: sa observam situatia din urmatoarea perspectiva: esti la bac, sau un alt examen, si nu reusesti sa faci o problema.. Ce faci? Intrebi prin sala cum sa rezolvi? Daca e munca individuala, sa ramana munca individuala. Quote
informatician Posted December 12, 2010 Author Report Posted December 12, 2010 @informatician: sa observam situatia din urmatoarea perspectiva: esti la bac, sau un alt examen, si nu reusesti sa faci o problema.. Ce faci? Intrebi prin sala cum sa rezolvi? Daca e munca individuala, sa ramana munca individuala.Da corect..voiam doar o sugestie!Oricum o sa-i dau de capat pana la urma.PS.Oricum aceasta pentru multi NU va fi o munca individuala. Quote
cmiN Posted December 12, 2010 Report Posted December 12, 2010 C++ code by cmiN - 42 lines - codepadEroarea este de un epsilon > 0 (->0) (adica daca ii dai ca valoare: x, iar aria unui triunghi va da tot x atunci x de triunghi va fi mai mare ca x introdus ... limita din dreapta)#include <iostream>#include <fstream>#include <math.h>#define fname "triunghiuri.in"using namespace std;struct Punct { int x, y;};double dist(Punct A, Punct { return sqrt(pow((B.x - A.x), 2) + pow((B.y - A.y), 2));}int main(){ int n, i, nr = 0; double val, lat[3], sp; Punct tgl[3]; cout << "Valoare: "; cin >> val; ifstream fin(fname); fin >> n; while (n-- > 0) { for (i = 0; i < 3; i++) { fin >> tgl[i].x >> tgl[i].y; } lat[0] = dist(tgl[0], tgl[1]); lat[1] = dist(tgl[0], tgl[2]); lat[2] = dist(tgl[1], tgl[2]); // Heron sp = (lat[0] + lat[1] + lat[2]) / 2; if (sqrt(sp * (sp - lat[0]) * (sp - lat[1]) * (sp - lat[2])) > val) { nr++; } } fin.close(); cout << nr; system("pause >nul"); return 0;} Quote
informatician Posted December 12, 2010 Author Report Posted December 12, 2010 C++ code by cmiN - 42 lines - codepadEroarea este de un epsilon -> 0 (adica daca ii dai ca valoare: x, iar aria unui triunghi va da tot x atunci x de triunghi va fi mai mare ca x introdus ... limita din dreapta)#include <iostream>#include <fstream>#include <math.h>#define fname "triunghiuri.in"using namespace std;struct Punct { int x, y;};double dist(Punct A, Punct { return sqrt(pow((B.x - A.x), 2) + pow((B.y - A.y), 2));}int main(){ int n, i, nr = 0; double val, lat[3], sp; Punct tgl[3]; cout << "Valoare: "; cin >> val; ifstream fin(fname); fin >> n; while (n-- > 0) { for (i = 0; i < 3; i++) { fin >> tgl[i].x >> tgl[i].y; } lat[0] = dist(tgl[0], tgl[1]); lat[1] = dist(tgl[0], tgl[2]); lat[2] = dist(tgl[1], tgl[2]); // Heron sp = (lat[0] + lat[1] + lat[2]) / 2; if (sqrt(sp * (sp - lat[0]) * (sp - lat[1]) * (sp - lat[2])) > val) { nr++; } } fin.close(); cout << nr; system("pause >nul"); return 0;}Multumesc mult! Quote
nightkhaos Posted December 21, 2010 Report Posted December 21, 2010 Enuntul nu are nimic , nu confunda c cu pascal pur si simplu e un limbaj de pseudocod mai special, aria triungiurilor o afli cu formula lui euclid(cu semiperimetrele) mai ai nevoie de o formula care sa iti calculeze lungimea dreptelor si ai terminat(prin cartea de cls 11 sau 12 ceva cu panta:))poti declara o clasa Dreapta unde in constructor setezi lungimea dreptei si o metoda care iti returneaza valoarea .public class Dreapta{ private float Val; Dreapta(Punct x,Punct y) { Val=Calc_Distanta(x,y); }public float GetVal(){return Val;}} Quote
Robert1995 Posted December 23, 2010 Report Posted December 23, 2010 Am fost la evaluare in educatie , subiectul de clasa a IX - a a fost o gluma , cel mai greu lucru pentru mine a fost sa scriu in pseudocod + nu ma asteptam sa ceara cineva rezolvari la un concurs de informatica de 2 bani pe un site mai mult despre hacking Quote