Afişează mesaje
Pagini: [1]
1  Comunitate - feedback, proiecte si distractie / Off topic / Răspuns: This is so cool : August 09, 2010, 15:20:56
if($sex='female') == FAIL!!
2  Comunitate - feedback, proiecte si distractie / Off topic / Răspuns: Carti : August 04, 2010, 02:51:09
Citat
Eu cred ca din mesajul meu intelegi ce am vrut sa scriu
Gandeste-te la o limba vorbita ca la un standard. In cazul nostru, limba romana este un standard web: fiecare l-a implementat cum l-a dus capul, si uite cam cum a ajuns programarea web.

Dar ignorati ce e scris mai sus, mi-am adus aminte de asta si m-am gandit s-o postez.
3  Comunitate - feedback, proiecte si distractie / Off topic / Răspuns: Carti : Iulie 16, 2010, 18:26:47
E amuzant ca doua din patru raspunsuri au greseli gramaticale, dar se comenteaza pe tema asta. Pentru C, vezi C Programming: A Modern Approach. E in engleza, nu stiu daca se gaseste si in romana/Romania, dar este printre cele mai bune carti de C. Vezi, totusi, ca informatica nu se rezuma la C/C++, deci dupa ce inveti sa nu mai faci greseli puerile vei vrea sa cauti si carti despre algoritmi, daca ce faci la scoala nu te multumeste.
4  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Ce-am gresit? : Martie 07, 2010, 19:28:07
Nu văd using namespace std; pe nicăieri. Trebuie specificat și asta, ideal după ce incluzi headerele. Poate în versiunea în limba română au luat-o pe scurtătură, însă eu am cartea în engleză, iar linia asta apare. while-ul acela nu este pus degeaba. Face programul să nu se termine după ce ai introdus primul număr și ți-a dat output-ul, ci atunci când scrii 0. Fără el, îi dai, să zicem, că vrei 3 cărți, el ți le arată și iese. Cu el, vei mai putea cere alte 4 cărți și ți le va da. Și tot așa până scrii 0, iar programul își termină execuția. Iar ca specificații ce nu apar în carte, folosește header-ele specifice C++ fără .h-ul de la sfârșit (ex.: <iostream.h> devine <iostream>), iar cele din C tot fără .h, dar cu un c la început (<math.h> devine <cmath>), pentru a evita warning-urile de tip "deprecated/antique header". Și vezi că poți defini și inițializa funcția "în același timp". De exemplu, în loc să faci ca în carte (sursa 1), poți face ca în sursa a doua:
Cod:
...
int o_functie(int n);
...
int main() {
    o_functie(2);
    ...
    return 0;
}
...
int o_functie(int n) {
    cout << n++;
}
Cod:
int o_functie(int n) {
    cout << n++;
}

int main() {
    o_functie(2);
    ...
    return 0;
}
...
Revenind la topic, mie codul ăsta îmi compilează și merge după cum am spus mai sus, fără bucla infinită (while(1)). Am adăugat using namespace std și am înlocuit tip[r] și numar cu tip și numar[r]. Greșeala era de lingvistică Smile
Cod:
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
int aiurea(int n);
void trage ();

char *tip[4]={"inima", "trefla", "romb", "frunza"};
char *numar[13]={"as", "doi", "trei", "patru", "cinci", "sase", "sapte", "opt", "noua", "zece", "valet", "dama", "popa"};

int main(){
int n,i;
srand(time(NULL));
cout<<"Introduceti numarul de carti de tras";cin>>n;
for(i=1;i<=n;i++)
trage();
return 0;}
void trage(){
int r,s;
r=aiurea(13);
s=aiurea(4);
cout<<tip[s]<<" de "<<numar[r]<<endl;}
int aiurea(int n){
return rand()%n;}
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : August 12, 2009, 13:23:30
Ideea e că nu pot învăța din sursele altora, pentru că, oricât m-aș uita la un exemplu, nu mă pot concentra, și mă gândesc la ce topping pun pe pizza Smile Prefer ceva gen pseudo-cod, să simt că fac și eu ceva.

Mulțumesc de ajutor, voi căuta să îmi extind cunoștințele pe cât posibil înainte de a încerca probleme cu un nivel ridicat de dificultate.
6  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : August 12, 2009, 09:13:27
Ah, OK! Acum înțeleg. Mulțumesc mult, voi încerca să îl rescriu.

Am încercat să îl rescriu, dar tot 0 puncte iau. Am testat doar cu numerele impare din Exemplu, deci nu mai poate fi vorba de aceeași eroare, dă calumea la mine, dar la evaluator nu. Asta e sursa modificată.
Cod:
#include<fstream>
using namespace std;

int putere(int cifra) {
int numar = 1;
for(int i = 0; i < cifra; i++) {
numar *= cifra;
}

return numar;
}

int main() {

ofstream fout("cifra.out");
ifstream fin("cifra.in");

int cifra, d, t;
fin >> t;
for(d = 0; d < t; d++) {
int z = 0;
fin >> cifra;
for(int i = 1; i <= cifra; i++) {
z += putere(i);
z %= 10;
                 }
fout << z << endl;
}


return 0;
}
7  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : August 12, 2009, 09:00:33
Păi nu asta trebuie făcut? Uite, aici e problema. Și eu asta fac. Ultima cifră a sumei loop flag-ului curent + cele precedente.

Ideea e că unul din noi nu a înțeles ceva.

Cu sursa postată, asta obțin eu dacă îl testez local, pe baza Exemplului, și e corect, pentru că asta e dat și pe pagina problemei. Dacă îmi mai poate da cineva test cases-uri să verific, aș fi recunoscător...
Cod:
1
5
2
8
3
8  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : August 12, 2009, 08:19:46
Eu nu văd nimic modificat în prima sursă De fapt, văd modificat scope-ul, dar cum al meu e global față de FOR, nu cred că e relevant, iar în a doua, dacă scriu așa cum scrii tu, nu ar trebui să scrie în fișier Z-ul final, deci, în cazul Exemplului, 3143?

Am văzut ce s-a scris, însă nu înțeleg de ce trebuie luate ultimele două cifre, și care e treaba cu cifrele acelea din array. Ultimele două cifre, cică dau ca rest la împărțirea cu patru ultima cifră. De ce trebuie să împărțim prin patru pentru a o afla?

Ideea e că mie îmi merge cu Exemplul, și alte trei teste mici făcute de mine. L-am pus să îmi arate ce face la fiecare pas din FOR, și e corect, atât timp cât numărul poate fi depozitat într-un INT.
9  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : August 12, 2009, 01:07:44
Am si eu o problema. Am facut urmatoarea sursa, am incercat cu valorile din Exemplu, si a mers. Cand o trimit, insa, primesc 0 puncte.

Cod:
#include<fstream>
using namespace std;

int putere(int cifra) {
int numar = 1;
for(int i = 0; i < cifra; i++) {
numar *= cifra;
}

return numar;
}

int main() {

ofstream fout("cifra.out");
ifstream fin("cifra.in");

int cifra, d, t;
int z = 0;
fin >> t;
for(d = 0; d < t; d++) {
fin >> cifra;
z += putere(cifra);
fout << z%10 << endl;
}


return 0;
}

Edit: Cu ce numere testeaza evaluatorul? Stiam ca int-ul nu poate trece de 2 milioane. Toate testele trec de 2 milioane, sau mai exista o problema la sursa? Ar ajuta sa-l fac unsigned long int, sau nu pot decat cu un vector? Scuzati-mi lipsa de cunostinte, insa acestea se rezuma la primele 3 capitole din "Thinking in C++". La scoala nu am facut informatica anul asta, iar intr-a cincea/a sasea abia ne preda despre main(), int main(), sau void main(), ce scriam fiind la alegerea noastra...
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines