Pagini: 1 [2] 3 4   În jos
  Imprimă  
Ajutor Subiect: 480 Ecuatii 2  (Citit de 30907 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #25 : Ianuarie 24, 2010, 15:35:55 »

Ai pus %D la primul fscanf Smile
Memorat
johsonsbabi
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #26 : Ianuarie 24, 2010, 16:22:46 »

ms frumos  Huh nu inteleg de ce pe teste a mers si pe infoarena nu /:| chestiile astea sunt ciudate, nu cred ca o sa inteleg vreodata
Memorat
miculprogramator
Nu mai tace
*****

Karma: 65
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #27 : Ianuarie 24, 2010, 16:31:01 »

Limbajele C si C++ sunt CaseSensitive, adica fac diferenta intre majuscule si minuscule.

Spre exemplu, pot sa declari variabilele min, Min sau MIN si fiecare va stoca o valoare diferita. In Pascal min este tot una cu MIN. Smile
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #28 : Ianuarie 24, 2010, 16:38:33 »

ms frumos  Huh nu inteleg de ce pe teste a mers si pe infoarena nu /:| chestiile astea sunt ciudate, nu cred ca o sa inteleg vreodata
Defapt daca compilezi cu
Cod:
g++ file_name.cpp -static  -W -O2 -o file_name -lm
(pt c++ ) 
Cod:
gcc file_name.c -static  -W -O2 -o file_name -lm
(pt c )
nu o sa mearga... Smile
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #29 : Ianuarie 24, 2010, 17:06:11 »

Linux-ul este case sensitive, windows-ul nu.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #30 : Ianuarie 24, 2010, 17:26:18 »

 Huh Adica ce vrei sa zici, ca windows-ul nu este case sensitive? Eu cred ca da  d'oh!
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #31 : Ianuarie 24, 2010, 17:27:33 »

Linux-ul este case sensitive, windows-ul nu.
Daca te referi la comenzi da Smile
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #32 : Ianuarie 24, 2010, 20:41:30 »

Ma refeream la comenzi, la fisiere, si probabil poate fi si "%D" case insensitive pe windows. Nu stiu, pt ca nu lucrez pe windows. In orice caz, cred ca difera de la un compilator la altul cum gestioneaza acest format.
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #33 : Ianuarie 25, 2010, 13:07:56 »

Ma refeream la comenzi, la fisiere, si probabil poate fi si "%D" case insensitive pe windows. Nu stiu, pt ca nu lucrez pe windows. In orice caz, cred ca difera de la un compilator la altul cum gestioneaza acest format.
Difera de la compilator la compilator nu de la OS la OS. Si pe linux merge sursa, compilata cu
Cod:
g++ file_name.cpp -o file_name
Si asta e o parte ciudata cu ce influenteaza acele flaguri ( vezi mai sus ) ( adica de ce fara ele mere perfect sursa ) ?. 
Memorat
bugy
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #34 : Februarie 24, 2010, 10:30:15 »

salut, Shocked
cum e posibil sa iau raspuns gresit pe toate testele.... stiind ca-mi da bine pe teste de la oji .. iar pe campion am luat 100 de puncte pe ea  Raised eyebrow
heeeelp pls Smile
Memorat
mathboy
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« Răspunde #35 : Februarie 24, 2010, 10:39:32 »

Aceeasi problema o avea un coleg . Inlocuieste citirea cu scanf ("%s\n", a) si dupa ai grija de cazurile in care trebuia sa imparti la 0.
« Ultima modificare: Februarie 26, 2010, 11:21:45 de către Dragos-Alin Rotaru » Memorat
bugy
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #36 : Februarie 25, 2010, 21:23:55 »

asta era  Very Happy Ok Yahoo!
mrs frumos. poate mai sunt si alti patiti ca mine  Whistle
Memorat
vladtarniceru
De-al casei
***

Karma: 81
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #37 : Februarie 28, 2010, 17:35:11 »

Salut  Very Happy
Cum se face ca iau 20 de puncte wink ?Adica nu-mi dau seama la ce am gresit(dar presupun ca stiu)
Cod:
#include<fstream.h>
#include<string.h>
#include<math.h>
 ifstream f("ecuatii2.in");
  ofstream g("ecuatii2.out");
    int mod(double a){
        if(a<0) return a*-1;
        return a;
    }
    int cifra(char a){
        if(a>='0' && a<='9') return 1;
        return 0;
    }
    int main(){
        char a[256],semn='+';
        int nr2,n,i,l,j,ret,l2;
        double lit,cif,nr,nr3;
        f>>n;
        for(i=1;i<=n;i++){
            f>>a;//f.get(a,255);
            f.get();
            j=0;
            while(a[j]!='=') j++;
            nr2=j;
            l=strlen(a);
            l2=l;
            semn='+';
            j=0;
            lit=0;
            cif=0;
            while(/*a[j-1]!='=' && a[j]!='=' && j<l*/j<nr2){//mergi pana la egal('=')
                //g<<"da\n";
                if(cifra(a[j])){//daca a[j] este cifra
                    nr=0;
                    if(j>0) semn=a[j-1];
                    while(cifra(a[j]) && a[j]!='='){//cat timp a[j] este cifra
                        nr=nr*10+(a[j]-'0');
                        j++;
                    }
                    if(semn=='+'){
                        if(a[j]=='x') lit=lit+nr;
                        else
                        cif=cif+nr;
                    }
                    else if(semn=='-'){
                         if(a[j]=='x') lit=lit-nr;
                         else
                         cif=cif-nr;
                    }
                }
                else
                if(a[j]=='x'){if(j>0) semn=a[j-1];if(semn=='+') lit++;else lit--;}
                j++;
            }
            j=j-(j-nr2);
            ret=j+1;
            j++;
            //g<<a[j]<<"\n";
            semn='+';
            l=l2;
            while(j<l){
                if(cifra(a[j])){//daca a[j] este cifra
                    if(a[j-1]!='=') semn=a[j-1];
                    nr=0;
                    while(cifra(a[j]) && j<l){//cat timp a[j] este cifra
                        nr=nr*10+(a[j]-'0');
                        j++;
                    }
                    if(semn=='+'){
                        if(a[j]=='x') lit=lit-nr;
                        else
                        cif=cif-nr;
                    }
                    else if(semn=='-'){
                         if(a[j]=='x') lit=lit+nr;
                         else
                         cif=cif+nr;
                    }
                }
                else
                if(a[j]=='x'){if(a[j-1]=='-' || a[j-1]=='+') semn=a[j-1];if(semn=='+') lit--;else lit++;}
                j++;
            }
            //if(cif<0) cif=cif*-1;
            //if(lit<0) lit=lit*-1;
            //if(cif<0){cif=cif*-1;lit=lit*-1;}
            nr3=cif/lit;
            if(nr3<0) cif=cif*-1;//aici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!cred ca nu e bine ca //uneori afiseaza numar negativ  :-k
            if(lit!=0) g<<cif/lit<<"\n";
            else
            if(lit==0 && cif!=0) g<<"imposibil\n";
            else
            if(lit==0 && cif==0) g<<"infinit\n";
            //g<<cif<<" "<<lit<<"\n";
            //g<<a[0]<<"\n";
        }
        g.close();
        return 0;
    }
Memorat
okros_alexandru
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #38 : Martie 17, 2011, 19:30:02 »

Nu inteleg de ce i-au Time limit exceeded pe toate testele .
Pe testele de la OJI imi iese perfect .
Memorat
DevilShadow
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #39 : Martie 18, 2011, 18:00:09 »

S-au pastrat testele oficiale? Ca eu primesc doar 90 de pc  Cry si am verificat cu testele de la OJI si am vz ca imi dau toate bn... Nu stiu unde am gresit... La testul 9 imi zice ca ii gresit...
Ma poate ajuta cineva?
Memorat
romircea2010
Strain
*

Karma: 18
Deconectat Deconectat

Mesaje: 35



Vezi Profilul
« Răspunde #40 : Mai 24, 2011, 22:35:20 »

Junc Raul Cosmin:
Si eu am patit la fel dar am rezolvat google'ind un pic.
Ca sa iti iasa trebuie sa incluzi biblioteca
Cod:
<iomanip>
, iar pentru afisare (eu am folosit stream-uri) trebuie sa scrii:
Cod:
g<<fixed;
g<<setprecision (4)<<x<<"\n";
unde
Cod:
x
iti este necunoscuta.
bafta!  Very Happy
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #41 : Iunie 09, 2011, 09:17:35 »

Ce trebuie afisat pentru ceva de genu' 5=5 ? (exista teste de acest fel?)
Memorat
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #42 : Iunie 09, 2011, 13:57:18 »

Pai daca ar exista un astfel de test,fara x,in caz de egalitate ar trebui afisat "infinit",iar altfel "imposibil"  Huh
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #43 : Iunie 09, 2011, 17:14:10 »

arunci i8nseamna ca nu e de la asta. Iau doar 10 puncte...si pe testele de la oji 100... Daca afisez cu precizie mai mare are ceva?
Cod:
fout<<setprecision(10)<<val;
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #44 : Iunie 09, 2011, 17:23:42 »

Cel mai probabil, nu. Insa vezi ca setprecision face ceva rotunjuri implicite dupa un numar oarecare de cifre dupa virgula (nu mi-e foarte clar procedeul). Ca sa afisezi exact cu 10 zecimale ar trebui sa faci:

Cod:
fout << fixed << setprecision(10) << val;

Testeaza intai la tine pe calculator si vezi daca observi diferente.
Memorat

Am zis Mr. Green
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #45 : Iunie 09, 2011, 18:08:41 »

Mda,la ONI am avut ceva probleme cu acest setprecision la evaluarea pe linux  Thumb down

Cred ca ai putea incerca mai bine sa pui citirea/afisarea pe cstdio , iar la afisare sa folosesti asta pentru afisare cu precizie  peacefingers :
Cod:
printf("%.4f\n",sol);
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #46 : Iunie 09, 2011, 18:18:15 »

gata... am rezolvat... nu era de la precizie. Cred ca era de la citire, insa am rescris sursa complet si iau 100 de puncte chiar daca da rateuri grosolane pe anumite teste.
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #47 : August 11, 2011, 23:46:30 »

Am vazut multe surse de 40 puncte, si eu la fel nu pot trece de 40, cei care au reusit sa gaseasca problema spuneti-mi si mie care e faza, pls Brick wall
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #48 : August 12, 2011, 00:48:45 »

LE: Ooops, a fost o greseala prosteasca la determinarea coeficientilor, dar am rezolvat deja Ok  Banana
Memorat
predator5047
Strain


Karma: -4
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #49 : August 26, 2011, 21:44:19 »

Nu inteleg de ce iau doar 40P pe evaluatorul de la oji iau 100P , nu inteleg unde gresesc.Am folosti fprintf in loc de fout<<fixed<<setprecision(4) am incercat sa cresc precizia la  10  nimic nu merge.
Sursa mea:
Cod:
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
void eval(char *ec,int n,int & mem,int & x);
int main()
{
    ifstream fin("ecuatii2.in");
    FILE *g=fopen("ecuatii2.out","w");
    char ec[250];
    int n,xs,xd,ms,md;
    fin>>n;
    fin.get();
    for(int i=1;i<=n;++i)
    {
        xs=xd=ms=md=0;
        fin.get(ec,999,'=');
        xs=xd=ms=md=0;
        eval(ec,strlen(ec),ms,xs);
        fin.get();
        fin.get(ec,999,'\n');
        xd=md=0;
        eval(ec,strlen(ec),md,xd);
        fin.get();
        if(ms==md&&xs==xd)
            fprintf(g,"infinit \n");
        else
        {
            int ter=ms-md,x=xs-xd;
            if(x==0 && ms!=md)
                fprintf(g,"imposibil \n");
            else
            {
                double rez=(double)ter/(x*-1);
                fprintf(g,"%.4f \n",rez);
            }

        }
    }

    fin.close();
    fclose(g);
    return 0;
}

void eval(char *ec,int n,int & mem,int & x)
{
    int nr=0; char c,semn;
    for(int i=0;i<n;++i)
    {
        nr=0;
        if(ec[i]>='0'&&ec[i]<='9')
        {
            if(i==0) semn='+';
            else semn=ec[i-1];
            while(ec[i]>='0'&&ec[i]<='9'&&i<n)
            {
                c=ec[i];
                nr=nr*10+atoi(&c);
                ++i;
            }
            if(i==n) --i;
            if(ec[i]=='x')
            {

                if(nr==0) ++x;
                else if(semn=='+') x+=nr;
                else x-=nr;
                ++i;
            }
            else
            {
                if(semn=='+') mem+=nr;
                else mem-=nr;
            }
        }
        else if(ec[i]=='x')
        {
            if(i==0) semn='+';
            else semn=ec[i-1];
            if(semn=='+') ++x;
            else --x;
        }
    }
}
 
Memorat
Pagini: 1 [2] 3 4   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines