Pro

C/C++ este un limbaj multi-paradigmă de nivel mediu, orientat pe obiecte, folosit pe scară largă în industria software datorită echilibrului dintre viteză şi complexitate. Dacă ai nelămuriri în legătură cu acest limbaj sau vrei să ne înveți ceva chiar tu, intră aici.

Pro

Postby adrianav500 » 21 Dec 2011, 19:05

Buna!Sunt 50 % incepator si nu prea ma descurc la aceasta problema.
Puteti sa ma ajutati,va rog????

De ziua ei, Dora a primit cadou un telefon mobil cu cartelă pentru reţeaua favorită. Suma disponibilă pe cartelă este de E Eurici dar oferta este grozavă pentru convorbiri. Astfel, pentru fiecare minut de convorbire în care a fost sunată dintr-o altă reţea decât reţeaua ei, cartela se încarcă cu 1 Euric dar, dacă sună ea într-o altă reţea, Dora va consuma câte 2 Eurici din creditul de pe cartela ei pentru fiecare minut de convorbire. Între membrii reţelei Dorei, toate convorbirile sunt gratuite indiferent de durata convorbirii, fie că sună ea, fie că este sunată.
Toate numerele din reţeaua Dorei au patru cifre şi se termină cu cifra 9 iar numerele din alte reţele au tot patru cifre şi se termină cu cifra 5. Când sună Dora, ea formează întâi cifra 1 înaintea numărului pe care îl apelează. Când este sunată, apare cifra 2 înaintea numărului de la care primeşte apelul.
Cerinţă

Scrieţi un program care, ştiind E, valoarea iniţială a creditului de pe cartela primită cadou, cele N numere corespunzătoare convorbirilor pe care le-a avut Dora şi duratele acestora exprimate în minute, să determine valoarea creditului rămas pe cartelă la terminarea convorbirilor.
Date de intrare

De pe prima linie a fişierului text alo.in se citesc E, valoarea creditului iniţial de pe cartelă şi N numărul de convorbiri. De pe următoarele N linii se citesc perechi de forma Nr D unde Nr reprezintă numărul corespunzător convorbirii, iar D durata acesteia.
Date de ieşire

În fişierul text alo.out se va scrie pe prima linie S (numărul de Eurici care sunt disponibili pe cartela Dorei după cele N convorbiri).
Restricţii

5≤ E ≤100
2≤ N ≤500
1≤ D ≤50
Convorbirile în care sună Dora se încadrează în limita creditului de pe cartelă de la momentul respectiv.
Exemple

alo.in alo.out Explicaţii
10 5
12345 4
12439 15
21335 30
18375 10
22359 20

12
12345 4–Dora sună la numărul 2345 care nu face parte din reţeaua ei şi vorbeşte 4 minute. De pe cartelă se consumă 4*2=8 Eurici
12439 15-Dora sună la numărul 2439 din reţeaua ei şi vorbeşte 15 minute gratis
21335 20-Dora este sunată de la numărul 1335 care nu este din reţeaua ei şi vorbeşte 30 minute: Cartela se încarcă cu 30*1=30 Eurici
18375 10-Dora sună la numărul 8375 care nu face parte din reţeaua ei şi vorbeşte 10 minute. De pe cartelă se consumă 10*2=20 Eurici
22359 30- Dora este sunată de la 2359 din reţeaua ei şi vorbeşte 20 minute gratis
Suma rămasă: 10-8+30-20=12 Eurici
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: Pro

Postby eni4ever » 21 Dec 2011, 20:48

Salut domnu' "50 % incepator",
Nu vrei să ne scrii cele 50% de care ești în stare ca să știm ce mai trebuie să completăm pentru a te ajuta să atingi un procent mai mare ? Nu de alta, dar poate se găsește un bun-voitor din comunitate care să-ți dea un cod în C++ pe care să nu-l poți înțelege. În felul acesta pierdem amândoi : tu că nu te alegi cu răspunsul și noi că nu ne alegem cu mulțumirea.
There's a good lad ...
0,0p / 0 votes
Image

"Rațiunea vine în umbre scurte numite suferințe." Victor Adăscăliței
"Bender: Anything less than immortality is a complete waste of time.
Zoidberg: Then suicide it is! Step into my office ..." Futurama S06E06
User avatar
eni4ever
DWord
 
Joined: 03 Jan 2010
Location: Timișoara
Status: 57.83

Re: Pro

Postby jolgau » 21 Dec 2011, 20:55

O idee ....

E = eurici
9 -> reteaua Dorei
5 -> reteaua diferita
1 -> inseamna ca Dora suna
2 -> inseamna ca Dora este apelata

Deci ...

Daca numarul incepe cu 1 si se termina cu 5 atunci
Consumul va fi dublu.

Daca numarul incepe cu 1 si se termina cu 9 atunci
Convorbirea este gratis.

Daca numarul incepe cu 2 si se termina cu 5 atunci
Dora primeste nr1 eurici.

Daca numarul incepe cu 2 si se termina cu 9 atunci
Convorbirea este gratis.
0,0p / 0 votes
User avatar
jolgau
Bit
 
Joined: 11 Dec 2010
Status: 0

Re: Pro

Postby adrianav500 » 21 Dec 2011, 20:59

#include<fstream.h>
int main() {
int h,n,nr,nrdenr=0,loc=0;

ifstream f("concurs3.in");
ofstream g("concurs3.out");
f>>h;
f>>n;
f>>nr;

if(h==nr) g<<"DA";
else g<<"NU"<<'\n';
if(h/100%10==nr/100%10)
nrdenr++;
g<<nrdenr<<'\n';
if((h/100%10*10)+(h/10%10)==(nr/100%10*10)+(nr/10%10))
loc++;
g<<loc;
f.close(); g.close();
return 0;
}


L.E. (-- 21 Dec 2011, 19:58 --)

hopa


L.E. (-- 21 Dec 2011, 19:59 --)

am pus alta problema


L.E. (-- 21 Dec 2011, 19:59 --)

La un concurs de matematică participă elevi din mai multe şcoli din diferite oraşe. Pentru a se putea deosebi între ele lucrările lor, fiecare lucrare este codificată printr-un număr natural cu 3 cifre, să zicem abc, unde a (cifra sutelor) este codul oraşului, b (cifra zecilor) este codul şcolii din oraşul a, iar c (cifra unităţilor) este codul unui elev din şcoala b din oraşul a. Exemplu: lucrarea cu codul 328 este lucrarea elevului cu codul 8 de la şcoala cu codul 2 din oraşul cu codul 3.
Se cunosc: un cod (al lucrării unui elev H, prietenul nostru), numărul n de lucrări premiate şi codurile acestora.
Cerinţă

Se cere să se rezolve cerinţele:
a) Verificaţi dacă H este premiant, sau nu.
b) Determinaţi numărul de premii luate de elevii din oraşul lui H (inclusiv H, dacă a fost premiat).
c) Determinaţi numărul de premii luate de elevii din şcoala lui H (inclusiv H, dacă a fost premiat).
Date de intrare

De pe prima linie a fişierului de intrare concurs3.in se citeşte codul lui H; de pe linia a doua fişierului se citeşte valoarea n, iar de pe linia a treia se citesc cele n coduri premiate. Codurile premiate sunt separate prin câte un spaţiu.
Date de ieşire

Cele 3 răspunsuri se vor afişa în fişierul de ieşire concurs3, pe câte o linie. Pentru prima cerinţă se va afişa pe prima linie a fişierului un mesaj (DA sau NU), după cum H a luat, sau nu a luat premiu. La cerinţele b) şi c) se va scrie câte un număr pe linia a doua respectiv pe linia a treia a fişierului de ieşire.
Restricţii

n este un număr natural nenul, n<=20
Codul de oraş (cifra sutelor din fiecare cod) este de la 1 la 5, inclusiv.
Codurile şcolilor din fiecare oraş (cifra zecilor) este de la 0 la 9, inclusiv.
Codul elevilor (cifra unităţilor) este tot de la 0 la 9 inclusiv.
Mesajul DA/NU se va afişa cu majuscule.
Se acordă 30% din punctaj pentru prima cerinţă rezolvată corect, 70% din punctaj pentru primele două cerinţe rezolvate corect şi punctajul integral pentru toate cele 3 cerinţe rezolvate corect.

Observaţie
Datele de intrare sunt corecte (nu necesită validare).
Exemple

concurs3.in concurs3.out Explicaţii
234
6
123 232 125 222 421 235
NU
3
2
a) codul lui H nu se regăseşte printre cele citite (premiate), deci mesajul este NU
b) lucrările premiate din orasul lui H (cu cifra sutelor egală cu 2) sunt în număr de 3: 232, 222 şi 225
c) lucrările premiate din şcoala lui H (cu cifra sutelor egală cu 2 şi cu cifra zecilor egală cu 3) sunt în număr de 2: 232 şi 235.
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: Pro

Postby cata45 » 21 Dec 2011, 21:18

Siteul campion da si sugestii de rezolvare dupa ce incerci o rezolvare :) . Daca esti incepator (sau...ma rog....50% incepator) nu crezi ca ar trebui sa "ataci" probleme mai usoare?

Problema asta s-a dat la OJI 2004 la clasa a IX-a. Daca esti in clasa a IX-a si esti in primul an de programare iti sugerez sa rezolvi problemele de la OMI (Olimpiada Municipala Iasi) pe cele mai usoare.
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Pro

Postby adrianav500 » 21 Dec 2011, 21:25

pai nu stiu unde gresesc,da am luat 25
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: Pro

Postby cata45 » 21 Dec 2011, 21:49

Aici este borderoul tau de evaluare pe sursa.
Mesajele le consider destul de sugestive.

  1. #include<fstream>
  2. //poti folosi<fstream> in loc de <fstream.h> (acesta din urma este considerat deprecated)
  3. using namespace std; //daca folosesti <fstream> trebuie sa pui asta
  4. //fisierele le poti declara asa, insa este bine si cum ai facut tu
  5. fstream f("concurs3.in", ios::in),
  6.         g("concurs3.out", ios::out);
  7. long H, n, nr, cod, i, s, ok, z1, s1, nroras=0, nrscoala=0, z;
  8. int main()
  9. {
  10.     f>>H; //citeste codul lui H
  11.     f>>n; //citeste numarul de elevi
  12.     z1=(H/10)%10; //calculeaza scoala si orasul lui H
  13.     s1=(H/100)%10;
  14.     ok=0;
  15.     for(i=1; i<=n; i++) //citeste codurile celor n elevi
  16.     {
  17.         f>>cod;
  18.        
  19.         if(cod==H) //daca elevul citit are codul lui H inseamna ca H participa la concurs
  20.             ok=1; //inseamna ca ok devine 1 (daca H nu participa ok ramane 0)
  21.        
  22.         z=(cod/10)%10; //calculez orasul si scoala elevului curent
  23.         s=(cod/100)%10;
  24.         if(s==s1) //daca H este din oras cu elevul curent
  25.             nroras++; //numar colegii din oras
  26.         if(z==z1 && s1==s) //daca sunt de la aceeasi scoala si din acelasi oras
  27.             nrscoala++;//numar colegii de scoala
  28.     }
  29.     if(ok==1) g<<"DA"<<endl; //daca ok-ul a ramas 0 afisez NU altfel afisez DA
  30.     else g<<"NU"<<endl;
  31.     g<<nroras<<endl; //afisez colegii din oras si scoala
  32.     g<<nrscoala<<endl;
  33.     f.close(); //inchide fisierele
  34.     g.close();
  35.     return 0;
  36. }


L.E: Apropo...gresesti ca citesti un singur nr. (Doar primul cod) trebuie sa le citesti pe toate (n coduri) . Sper ca ai inteles sursa mea. M-am chinuit sa scriu cat mai pe inteles. Daca ai nelamuriri ma poti intreba.
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Pro

Postby adrianav500 » 21 Dec 2011, 21:55

am luat 0 p :( ...
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: Pro

Postby cata45 » 21 Dec 2011, 21:59

Ai o eroare decompilare.Probabil ai copiat gresit codul dat de mine. Cu exact codul de mai sus iau 100.
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Pro

Postby adrianav500 » 22 Dec 2011, 09:16

tot 0 iau,,,,,,,,,,,.


L.E. (-- 22 Dec 2011, 08:16 --)

erori:
nu cunoaste f,g
improper use ifstream
statemeng mising unde nu trebuie
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: Pro

Postby morpheus » 22 Dec 2011, 13:28

Nu stiu ce erori obtii si cu ce compilator incerci sa compilezi, dar codul ala e compilabil cu orice compilator C++ standard.
0,0p / 0 votes
User avatar
morpheus
Word
 
Joined: 30 Dec 2009
Location: Bucharest, Romania
Status: 54.84

Re: Pro

Postby adrianav500 » 11 Jan 2012, 16:03

l-am facut in pascal e ok


L.E. (-- 11 Jan 2012, 14:59 --)

OLIMPIADA DE INFORMATICA, ETAPA LOCALA, FEBRUARIE 2011

Problema 2 : Ferma Clasa a V a

Unchiul John are ani grei in spate de agricultura. Asa ca şi-a infiintat o fermă la tara pentru a creste animale domestice de diferite specii: purceluşi, gaini, măgari, ponei, rate, gaste, oi, capre sau iepuri. Dorind sa aiba o evidenţa clara a animalelor domestice de la ferma sa, John a numerotat custile astfel încât sa stie cati masculi, femele şi pui traiesc în fiecare cusca.
Astfel, toate custile au un număr format din 4 cifre, unde prima cifra (de la stânga la dreapta) reprezinta numărul speciei (pot fi maxim 9 specii), a doua cifra reprezinta numărul de masculi ce traiesc în acea cusca (pot fi maxim 9 masculi), a treia cifra reprezinta numărul de femele (pot fi maxim 9 femele), şi în fine ultima cifra a numărului reprezinta numărul de pui (pot fi maxim 9 pui) ce aparţin speciei din acea cusca.
Cerinţa
Cunoscându-se numărul de custi de la ferma lui John, numerele acestora precum şi numărul unei specii date sa se determine:
- numărul de masculi al unei specii date
- numărul total al animalelor de la fermă.
- numărul maxim de pui dintr-o cusca.
- câte custi au număr maxim de pui.

Date de intrare
De la tastatura se citesc un număr a nenul, reprezentând numărul unei specii date, apoi un număr n reprezentând numărul de custi şi apoi n numere naturale de 4 cifre, care reprezinta numerele custilor.

Date de ieşire
Pe primul rând de ecran se va afisa numărul de masculi ai speciei date.
Pe al doilea rând al ecranului se va afisa numărul total al animalelor de la fermă.
Pe al treilea rând al ecranului se va afisa numărul maxim de pui dintr-o cusca.
Pe al patrulea rând al ecranului se va afisa numărul custilor cu număr maxim de pui.

Restricţii şi precizari
- numărul de custi este mai mic decât 100
- în fiecare cusca exista cel puţin un mascul şi cel puţin o femela.
- numărul speciei este un număr nenul cuprins intre 1 şi 9.
- numărul de pui dintr-o cusca poate fi nul.

Exemplu
Date de intrare Explicaţie Date de ieşire
561232 5215 3340 5325 2450 5124 6 masculi din specia 5 (2+3+1)6 custicusca 1 : 2 masculi, 3 femele, 2 pui cusca 2 : 2 masculi, 1 femele, 5 pui cusca 3 : 3 masculi, 4 femele, 0 pui cusca 4 : 3 masculi, 2 femele, 5 pui cusca 5 : 4 masculi, 5 femele, 0 pui cusca 6 : 1 masculi, 2 femele, 4 pui Numărul total al animalelor : 48 Numărul maxim de pui : 5 Numărul de custi cu număr maxim de pui: 2 (animalele din custile 2 şi 4) 6 48 5 2

uitati codul meu:
#include<fstream.h>
int main()
{
int mascul,femela,pui,tot,maxp=0,custimaxpui=0,a,n,nr,i,nrmascsp,specie,max;
ifstream f("ferma.in");
ofstream g("ferma.out");
f>>a>>n;
for(i=1;i<=n;i++)
{
f>>nr;
pui=nr%10;
femela=nr/10%10;
mascul=nr/100%10;
specie=nr/1000;
if(specie==a) nrmascsp++;
tot=mascul+femela+pui;


g<<nrmascsp<<tot<<maxp<<custimaxpui;
f.close(); g.close();
return 0;
}
0,0p / 0 votes
User avatar
adrianav500
Bit
 
Joined: 21 Dec 2011
Status: 0

Re: Pro

Postby cata45 » 11 Jan 2012, 18:00

^ Foloseaste tagul code cand postezi cod pentru ca se strica indentarea sursei si nu se mai intelege mare lucru. (acum se intelege, dar daca postezi un cod de 150 de linii nu sta nimeni sa isi bata capul pe unde se inchid acoladele si care de unde vine.)
Si ce legatura are problema de la clasa a V-a cu topicul deschis pentru alta problema? Si...inca ceva... care este intrebarea sau nelamurirea ta din ultimpul post?

Doar niste sfaturi...sper sa nu te superi :)
0,0p / 0 votes
The EARTH without ART is just EH.
User avatar
cata45
Byte
 
Joined: 02 Sep 2010
Status: 9

Re: Pro

Postby eric56 » 11 Jan 2012, 18:38

Mai exact, adrianav500 , da-i din nou copy paste la program si posteaza-l aici, dar dupa ce dai pe full editor, si acolo sus ai B(bold) , i (italic) , u(undeline) quote, code , selecteaza-ti codul ,da-i click pe code si apoi submit ca sa te putem ajuta.
0,0p / 0 votes
Respecta si vei fi respectat
User avatar
eric56
Bit
 
Joined: 19 Dec 2011
Status: 0


Return to C / C++

Who is online

Users browsing this forum: No registered users and 0 guests