.
|
Lista Forumurilor Pe Tematici
|
. | Inregistrare | Login
POZE .
Nu sunteti logat.
|
Nou pe simpatie: OnutzaGirl din Galati
 | Femeie 23 ani Galati cauta Barbat 24 - 51 ani |
|
!_30
Administrator
 Din: Iaşi
Inregistrat: acum 19 ani
Postari: 433
|
|
Buna seara ,
Aceasta sectiune doreste sa vina in sprijinul elevilor de clasele a 12-a , care dau bacu la informatica ( varianta Pascal ).
Periodic vor fi afisate rezolvarile problemelor de la Partea a III de la TOATE subiectele de bac , informatica 2007 .
Astept critici , opinii , sugetii , alte rezolvari , defecte , optimizari ai algoritmilor ... 
_______________________________________ We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer) Fără Sens|Nebunie| invisible scanner
|
|
| pus acum 19 ani |
|
|
nickushor
Newbie
Din: Ploiesti
Inregistrat: acum 19 ani
Postari: 9
|
|
no comment !_30 ! e foarte bine ce faci u pe acest forum in legatura cu ajutorarea cat mai multor elevi la acest domeniu dar a intervenit o mik problema pe un forum unde esti criticat pt simplul fapt ca aceste rezolvari sunt postate pe un forum inadecavat adik nu este unul "educational" cik...oricum, efortul si daruirea ta trebuiesc apreciate indiferent dak aceste rezolvari ar fi aparut chiar si pe un forum al unui site PORNO bafta multa si...cat mai multe probleme 
_______________________________________ imposible is nothing
|
|
| pus acum 19 ani |
|
leobush
Membru nou
 Inregistrat: acum 19 ani
Postari: 39
|
|
dak ai putea sa bagi si rezolvarile de la Partea aII-a ar fi ceva si mai si.bafta
|
|
| pus acum 19 ani |
|
flo_flow_supremacy
Membru activ
 Inregistrat: acum 19 ani
Postari: 238
|
|
Si ma rog cine a zie asta ? Cui nu-i convine de forum PA !
_______________________________________ I belive I'm destined for great things Mr James.
|
|
| pus acum 19 ani |
|
|
nickushor
Newbie
Din: Ploiesti
Inregistrat: acum 19 ani
Postari: 9
|
|
pentru flo_flow_supremacy care ma rugat sa ii spun cine a zis kestia de mai sus in legatura cu problemele. nu vreau sa dau nume de site ci doar partea aceea in care se face referire la posturile lui !_30
Am fost pe Rezolvari Informatica, link plasat "prin bunavointa" putin mai sus, este un site cu solutii fara explicatii, cod fara comentariu, pe scurt, copy-paste functioneaza, intelegera nu functioneaza. Codurile nu au "colorare si evidentiere de sintaxa" (syntax hai-lait), e ca si cum as rezolva eu o problema prin a tipari raspunsul cu cateva indicatii criptice pe drum.
E bine pe lume cu o astfel de pagina, ar fi bine daca ar fi si mai buna. (O pagina didactica trebuie sa-l invete ceva pe om, nu sa arate ceva de forma: Eu stiu, tu intelegi ce stiu eu? Pai vezi?!)
IAR UN LINK DE PE O ASTFEL DE PAGINA CU TITLUL [MERGI LA FETELE/FEMEILE] ESTE INACCEPTABIL
Oameni buni, chiar trebuie ca de pe aceasta pagina sa se ajunga prin doua click-uri acolo?! Chiar trebuie sa decimam educatia printr-un link pe asa ceva, unde sta mare si tare scris "HACK GROUP TEAM?" (E *ca si cum* ar scrie pe o scoala pe peretele din fata: "Instructiuni de intrat prin spate!"
"Multumim" pentru abuz!
comentariul in intregime 
_______________________________________ imposible is nothing
|
|
| pus acum 19 ani |
|
!_30
Administrator
 Din: Iaşi
Inregistrat: acum 19 ani
Postari: 433
|
|
@ leobush : Posteaza ce nu stii de la Subiectul II , si vei primi rezolvarea cu explicatii in maxim 24 de ore .
Pana la urma nu conteaza unde postez rezolvarile . Daca lucrarile unui mare fizician ar fi scrise pe o bucata de hartie igienica , nu cred ca ar "mârâi" nimeni.
Ideea cu aceste variante , e doar o "alta" rezolvare . Cand esti in pana de idei , recurenta te omoara . 
_______________________________________ We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer) Fără Sens|Nebunie| invisible scanner
|
|
| pus acum 19 ani |
|
leobush
Membru nou
 Inregistrat: acum 19 ani
Postari: 39
|
|
Din fisierul date.in de pe prima linie se citeste un numar natural n, iar de pe urmatoarele linii, n numere naturale. Sa se scrie in fisierul date.out, numerele care sunt perfecte, pe acelasi rand, despartite prin cate un spatiu.o rezolvare va rog.
|
|
| pus acum 19 ani |
|
leobush
Membru nou
 Inregistrat: acum 19 ani
Postari: 39
|
|
La problema urmatoare,nu stiu din ce cauza,dar nu imi afiseaza nimic. {Din fisierul date.in de pe prima linie se citeste un numar natural n, iar de pe urmatoarele linii, n numere naturale. Sa se scrie in fisierul date.out, numerele care sunt prime, pe acelasi rand, despartite prin cate un spatiu.}
Code:
var f,g:text;n,i,j,a:integer;
function prim(n:integer):boolean;
var i:integer;
begin
for i:=2 to n-1 do
if n mod i=0 then prim:=false;
end;
begin
assign(f,'date.in');reset(f);
assign(g,'date.out');rewrite(g);
readln(f,n);
for i:=1 to n do readln(f,a);
if prim(a)then write(g,a,' ');
close(f);
close(g);
end. |
|
|
| pus acum 19 ani |
|
flo_flow_supremacy
Membru activ
 Inregistrat: acum 19 ani
Postari: 238
|
|
!_30 da-mi grade!!!! Sau vezi,rezolva tu ce probleme sunt pe topicul asta.
Modificat de flo_flow_supremacy (acum 19 ani)
_______________________________________ I belive I'm destined for great things Mr James.
|
|
| pus acum 19 ani |
|
!_30
Administrator
 Din: Iaşi
Inregistrat: acum 19 ani
Postari: 433
|
|
S-a rezovat.
@ leobush : incearca sa nu abuzezi prea mult de bunavointa acestui forum . Incearca sa restrangi intrebarea , sa dai si varianta la care ai dubii , ca nu ghicim din stele.
Ca sa te lamuresc la problema : Functia de verificare prim ar trebui sa fie facuta eficienta in modul urmator ( Nu ca nu ar fi bine cum ai facut tu , dar nu este eficient din punctul de al timpului de rulare ) . Daca te uiti peste variante , acesta este un caz frecvent .
Code:
function prim(n:integer):boolean;
var i:integer;
ok:boolean;
begin
ok:=true; { folosim si o variabila intermediara , sa se vada clar ce facem }
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then ok:=false;
prim:=ok;
end; |
Acum , intrebare : nu-ti afiseza nimic in output sau in fisier . Daca raspunsul tau este in fisierul "date.out" , raspunsul ar fi urmatorul :
Code:
for i:=1 to n do readln(f,a);
if prim(a)then write(g,a,' '); |
- iti lipseste begin dupa for i:=1 to n . Ce se intampla cu codul tau ? De n ori se va citi a si programul tau va verifica ultimul numar daca e prim sau nu . Incearca ca ultimul numar sa fie prim . Atat timp cat iti lipseste begin din corpul instructiunii , nu se va executa decat prima instructiune dupa do , de citire din fisier , ( de n ori ) . Dupa ce se va termina repetitiva ( for ) , se va verifica daca ultimul numar citit e prim . Nu a fost prim , deoarece nu ti-as afisat nimic . Deci , ramane sa pui begin dupa do , si end dupa testarea primului si merge .
Partea de cod de mai sus , este practic buba . Pune-i begin dupa do , ca mai jos :
Code:
for i:=1 to n do begin
readln(f,a);
if prim(a)then write(g,a,' ');
end; |
Nu uita sa intelegi optimizarea functiei prim , e un hint pentru bac .
Cat cu afisarea numerelor perfecte , nu este asa de greu . Numar perfect : Suma divizorilor , fara el insusi , este egala cu numarul .
Functia care verifica daca un numar este perfect , este urmatoarea , in rest e identic cu programul precedent :
Code:
function perfect(n:integer):boolean;
var i,s:integer;
ok:boolean;
begin
ok:=false; s:=0;
for i:=1 to trunc(sqrt(n)) do
if n mod i=0 then s:=s+i;
if s=n then ok:=true;
perfect:=ok; { functia calculeaza suma divizorilor , apoi verifica daca sunt egali cu numarul transmis de parametru }
end; |
Bafta ! 
_______________________________________ We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer) Fără Sens|Nebunie| invisible scanner
|
|
| pus acum 19 ani |
|
leobush
Membru nou
 Inregistrat: acum 19 ani
Postari: 39
|
|
multumesc.aceste probleme sunt de la atestat.
|
|
| pus acum 19 ani |
|
!_30
Administrator
 Din: Iaşi
Inregistrat: acum 19 ani
Postari: 433
|
|
Pentru asta suntem aici . Daca ar colabora mai multa lume doritoare , pasionata de informatica , am putea face o mica baza de date cu probleme "interesante" , rezolvarile de la atestat informatica cat si cele de la bac . Dar ce sa-i faci , lumea nu prea se " implica " , cere si pleaca .
Sunt forumuri specializate cu "matematica" pentru bac 2007 ( variante rezolvate bac 2007 matematica ) , si ma gandeam ca acest forum se va putea specializa in rezolvarea variantelor la informatica ( Pascal + C ) .
Astept propuneri , intrebari , rezolvari ( bac 2007 + atestat 2007 informatica ) , criticii si orice altceva . 
_______________________________________ We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer) Fără Sens|Nebunie| invisible scanner
|
|
| pus acum 19 ani |
|
leobush
Membru nou
 Inregistrat: acum 19 ani
Postari: 39
|
|
la Var 5(bac),Partea a III-a,1,programul de pe site nu cred ca e bine facut.Eu am facut asa:
var i,nr:integer;a,b,x,t:longint; procedure sub(var n:longint;k:byte); var inv,i:longint; begin inv:=0; while n<>0 do begin inv:=inv*10+n mod 10; n:=n div 10; end; i:=0; while inv>0 do begin if (inv mod 10<>k)then n:=n*10+ inv mod 10 else if i=0 then i:=1 else n:=n*10+inv mod 10; inv:=inv div 10; end; end; begin readln(a,b); for i:=0 to 9 do begin x:=a;t:=b; sub(a,i);sub(b,i); if (a<>x)and(b<>t)then inc(nr); end; write(nr); readln; end. Si nu da la fel rezultatele.Va puteti uita?
|
|
| pus acum 19 ani |
|
!_30
Administrator
 Din: Iaşi
Inregistrat: acum 19 ani
Postari: 433
|
|
L-ai incercat pe cel de aici ?
Din cate stiu eu , parca merge . Pentru simplul motiv ca am abordat alta cale decat a ta , nu inseamna ca nu afiseaza corect .
S-ar putea sa gresesc , in acest caz te rog corecteaza-ma . ( Nu am la indemana niciun compilator de Pascal pentru Linux , decat text , ca as fi incercat problemele ). 
Iti voi "exemplifica" algoritmul dat de mine pe n=5 . Adevarat , e cam "dupa coada" rezolvata problema , dar ce sa-i faci , mare-i informatica.
Partea I
Code:
program pascal;
var a1:array[1..100,1..100] of integer;
var i,j,n,a,b:integer;
begin
readln(n); { citim n = 5 } |
Partea II
Code:
a:=n; { dup-a cum v-ati dat seama aici umplem diagonala principala cu n , a luand valoarea lui n , din diverse motive }
while a<>0 do begin
for i:=1 to a do
a1[i,a-i+1]:=a;
dec(a);
end; |
- a devine n , a=5 ( o sa vedeti mai tarziu de ce am folosit aceasta variabila intermediara } . Nu mi se impune eficienta si rapiditatatea executiei problemei , deci ma pot "juca" cum doresc. - umplem diagonala secundara cu a = 5 . - i=1 => a1[1,5-1+1]:=5 ( a1[1,5]:=5 ) , faci pe model si ai umplut diagonala secundara cu 5 ( adica n , adica a ).
Partea III
Code:
a:=n-1; { aici umplem partea de sub diagonala secundara cu secventa de numere }
while a<>0 do begin
b:=n;
for i:=n-a+1 to n do begin
a1[i,b]:=a;
dec(b);
end;
dec(a);
end; |
- continuand pe exemplu ( n = 5 ) , avem : a = 4 . - cat timp a <> 0 ( initial a este 4 , adica n-1) , b devine 5 ( b = 5 ). - i=n-a+1 deci primul i va fi : i:=5-4+1 = 2 a[2,5]:=4 ; analog restu ( am sa dau toate exemplele sa te prinzi de algoritm ) ; dec(b) b:=4 , i:=3 =>a[3,4]:=4 ; dec(b) , i:=4 => a[4,3]:=4 ; i=5 ; dec(b) => a[5,2]:=4; - sa nu uitam la sfarsit sa scadem si a-ul , deci a va deveni 4-1 => a=3; continuam algoritmu si umplem matricea :P
Code:
a:=1; { aici umplem partea de dedesupt diagonala secundara cu secventa de numere }
while a<>n do begin
b:=a;
for i:=1 to a do begin
a1[i,b]:=a;
dec(b);
end;
inc(a);
end; |
- aceasta parte umple partea de susul diagonalei secundare cu secventa corecta . - ex : a=1 ( a <> 5 ) i = 1 => a[1,1]=1; ( b=1) ; a=2 ( 2 <> 5 ) => i=1 => a1[1,2]=2( b=2) , dec(b) => a1[2,1]=2; a devine 3 => b = a => b=3 ; for i:=1 to 3 do ; a1[1,3]=3 ; dec(b) , i=2 => a1[2,2]:=3; samd .. pana se umple tot .
Cam asa l-am gandit eu . Daca ai intrebari nu ezita .
_______________________________________ We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer) Fără Sens|Nebunie| invisible scanner
|
|
| pus acum 19 ani |
|
|
drdelphi
Newbie
Inregistrat: acum 19 ani
Postari: 1
|
|
!_30 a scris:
...
Cat cu afisarea numerelor perfecte , nu este asa de greu . Numar perfect : Suma divizorilor , fara el insusi , este egala cu numarul .
Functia care verifica daca un numar este perfect , este urmatoarea , in rest e identic cu programul precedent :
Code:
function perfect(n:integer):boolean;
var i,s:integer;
ok:boolean;
begin
ok:=false; s:=0;
for i:=1 to trunc(sqrt(n)) do
if n mod i=0 then s:=s+i;
if s=n then ok:=true;
perfect:=ok; { functia calculeaza suma divizorilor , apoi verifica daca sunt egali cu numarul transmis de parametru }
end; |
Bafta !  |
O sa-i ai pe constiinta pe cei care pica bacu` din cauza ta :-) Linia for i:=1 to trunc(sqrt(n)) do trebuie inlocuita cu for i:=1 to n div 2 do
De exemplu 6 este numar perfect (1 + 2 + 3). Programul tau verifica doar divizorii 1 si 2 (3 > sqrt(6)).
Bafta
|
|
| pus acum 19 ani |
|
|
olivia23
Newbie
Inregistrat: acum 19 ani
Postari: 1
|
|
cine ma poate ajuta la V14,sb III, probl.2 ???
29.5KB
|
|
| pus acum 19 ani |
|