PASCAL - Zadaci, resenja, problemi, izazovi...

JBHOI?

Za BHOI mi ne treba,sve je ovde http://bhoi.net/

JBHOI,nisam ja junior.:mrgreen:

A to što se tiče datoteka,je*iga tako se 10x brže pregledavaju zadaci.
Ako te nešto zanima,slobodno pitaj.

Sad mi profesor dao zadatak u petak da nekog malog iz Topole naučim što se tiče toga.


A ja,,,pa malo dinamičko,gore-pomenuti backtracking,binarna drveća i pretrage(od binarnih do sekvencijalnih).:mrgreen:

Ništa posebno,što se tiče grafova ako bude takav zadatak(a sigurno da hoće) ima da naj*bem.Sledeće godine očekujem puno više(možda čak i odlazak na olimpijadu(ima baš puno da se spremam preko ljeta)).

Imaš ti kakvih očekivanja?

Nego jesi bio ti na onim pripremama?Koji si ti bio,ako si bio.:think:
 
nisam bio.......nemam neka velika ocekivanja jer radim u pascalu manje od mjesec dana............koje si ti godiste??...............i ja planiram aktivno pripremanje preko ljeta i onda iduce godine da krenem sa "visokom metom"............a vidi......prosle godine na JBHOI nije bilo zadataka sa datotekama a na sajtu im pise u pravilima BHOI da ce biti datoteka........nzm............zbunjujuce.......:DD....hajde molim te ako imas neke funkcije(naredbe) sa stringovima poput copy i insert daj mi neki link ili posalji na mail..............u brojevnim promenjivim sam napredovao do backtrackinga a o stringovima nista nzm.............hvala...........:)))))))))
 
Poslednja izmena:
:dontunderstand: Sa standardnog ulaza potrebno je ucitati nekoliko reci.Svaka rec se nalazi u zasebnom redu i sastoji se samo od malih slova engleske abecede, duzine do 100 znakova.Na ulazu moze biti max 100 reci.Rec koja oznacava kraj ucitavanja i ne uzima se u obzir je rec "zadnja".Slova nj, lj, i dz se tretiraju kao dva odvojena slova.Za potrebe ovog zadatka samoglasnici su a, e, i, o, u.
Potrebno je na standardni izlaz ispisati drugu po redu najtezu rec.Tezina reci definisana je brojem parova susjednih suglasnika u reci.U slucaju pojave vise od dva suglasnika uzastopno u reci, svaka dva susjedna suglasnika poveceva tezinu za jedan.
Rec: Tezina:
ja 0
olovo 0
skok 1
stvar 2
stvarnost 4

rezultat ovde je rec stvar (2) jer je druga rec koja ima naveci broj parova suglasnika...............inace ne postavljam zadatke na forum da mi ih drugi resavaju, ali ovo mi je hitno zbog takmicenja...........pls...........resenje mora da bude bez funkcija i procedura...........hitno mi je.........hvala...:D:D:D
 
ucitavas redom rec po rec dok ne dodjes do reci zadnja

kod svake reci ides
br:=0;
for i:=1 to length(rec)-1 do
if (not rec in ['a','e','i','o','u']) and (not rec[i+1] in ['a','e','i','o','u']) then
inc(br);

i imas neke dve promenljive koje zoves max1 i max2 koje su ti tezina najteze i druge najteze i najteza1 i najteza2 koje su bas te 2 reci

na pocetku ih max1 i max2 postavis na -1 recimo i onda kod svake reci gledas ovako

if br>max1 then begin
max2:=max1;
najteza2:=najteza1;
max1:=br;
najteza1:=rec;
end else if br>max2 then
max2:=br;
najteza2:=rec;
end;

i na kraju samo ispises najteza2
 
Mislis sporedne.

Mada, misim da moze i bez toga.

Kod:
br:=0;
for red:=1 to 50 do
   for d:=0 to red-1 do
      begin
         i:=red-d;
         j:=1+d;
         inc(br);
         a[i,j]:=br; 
      end;
for kolona:=2 to 50 do
   for d:=0 to kolona-1 do
      begin
         i:=50-d;
         j:=kolona+d;
         inc(br);
         a[i,j]:=br;
      end;

Trebalo bi da odradi posao, ali nisam testirao. Prvo popunjavas od [1,1] do sporedne dijagonale ukljucujuci i nju. Radis tako sto ides od [red,1] do [1,red] koristeci ovu promenljivu d koja ti kaze koje je sledece polje. Isto radis i u drugom delu, samo od [50,kolona] do [kolona,50].
 
Pozdrav svima.
Posto vidim da ste svi veoma dobro upoznati sa programiranjem,hteo bih da vas nesto pitam.
Da li je moguce negde na ovom forumu da dobijem resenja na zadatke?
Imam 5 zadataka koji treba da se rese,to su zadaci iz oblasti koncentricnih ciklusa,jednodimenzionalnih i dvodimenzionalnih nizova i datoteka.
Svi zadaci su na onom osnovnom nivou,samo sto sam ja pocetnik u programiranju pa nisam u mogucnosti da ih uradim tj pokusavao sam ali bez uspeha.
Takodje me interesuje na kom mestu bih mogao da nadjem primere zadataka i resenja iz ovih navedenih oblasti?
Imam tekstove zadataka,pa ako je neko voljan da mi pomogne neka mi javi da postujem te zadatke.
Nadam se da cete biti u mogucnosti da mi pomognete,bio bih vam zahvalan.
 
Evo zadataka.

1.Napisati program kojim se za dvodimenzionalni niz izracunava suma elemenata iznad glavne dijagonale.

2.Napisati program kojim se ispisuje tablica mnozenja brojeva od 1 do 5.

3.Napisati program kojim se ispisuju trocifreni brojevi veci od 200 a manji od 500 (koristiti koncentricne cikluse).

4.Napisati program za nalazenje broja elemenata dvodimenzionalnog niza n*m manjih od 50.

5.Dat je slog stanovnik sa sledecim podacima,ime prezime i starost.Napisi program kojim se unose stanovnici jednog grada a zatim se izracunava prosecna starost stanovnika.


Unapred hvala na pomoci.
 
Ajd pusticu ti jedan zadatak iz koncentricnih ciklusa sto smo radili.

Program gnezdo;
var i,j:integer;
begin
for i:=1 to 3 do (spoljasnji)
begin
for j:=5 to 9 do (unutrasnji)
writeln (',i=',i,'j=',j);
writeln
end;
end.

i=1 j:=5
i=1 j:=6
i=1 j:=7
i=1 j:=8
i=1 j:=9

i=2 j:=5
i=2 j:=6
i=2 j:=7
i=2 j:=8
i=2 j:=9

i=3 j:=5
i=3 j:=6
i=3 j:=7
i=3 j:=8
i=3 j:=9


U ovom slucaju i je spoljasnji,sporo se menja a uvek je prvi.

Toliko smo radili.
 
1.Napisati program kojim se za dvodimenzionalni niz izracunava suma elemenata iznad glavne dijagonale.

Kod:
var
   n,i,j,suma:integer;
   a:array[1..100,1..100] of integer;
begin
   write('Unesite dimenziju kvadratne matrice: ');
   readln(n);
   for i:=1 to n do
      for j:=1 to n do
         begin
            write('unesite element na poziciji (',i,',',j,'): ');
            readln(a[i,j]);
         end;
   suma:=0;
   for i:=1 to n do
      for j:=i+1 to n do
         suma:=suma+a[i,j];
   writeln('suma elemenata iznad glavne dijagonale je ',suma);
end.

2.Napisati program kojim se ispisuje tablica mnozenja brojeva od 1 do 5.

Kod:
var
   i,j:integer;
begin
   for i:=1 to 5 do
      begin
         for j:=1 to 5 do
            write('i*j:3,' ');
         writeln;
      end;
end.

4.Napisati program za nalazenje broja elemenata dvodimenzionalnog niza n*m manjih od 50.

Kod:
var
   i,j,br,n,m:integer;
   a:array[1..100,1..100] of integer;
begin
   write('unesite visinu matrice: ');
   readln(n);
   write('unesite sirinu matrice: ');
   readln(m);
   for i:=1 to n do
      for j:=1 to m do
         begin
            write('unesite element na poziciji (',i,',',j,'): ');
            readln(a[i,j]);
         end;  
   br:=0;
   for i:=1 to n do
      for j:=1 to m do
         if a[i,j]>50 then
            br:=br+1;
   writeln('postoji ',br,' elemenata vecih od 50);
end.

5.Dat je slog stanovnik sa sledecim podacima,ime prezime i starost.Napisi program kojim se unose stanovnici jednog grada a zatim se izracunava prosecna starost stanovnika.

Kod:
type
   stanovnik=record
                ime,prezime:string;
                starost:integer;
             end;
var
   i,n,suma:integer;
   covek:array[1..100] of stanovnik;
begin
   write('unesite broj stanovnika: ');
   readln(n);
   for i:=1 to n do
      begin
         write('unesite ime ',i,'-tog stanovnika: ');
         readln(covek[i].ime);
         write('unesite prezime ',i,'-tog stanovnika: ');
         readln(covek[i].prezime);
         write('unesite starost ',i,'-tog stanovnika: ');
         readln(covek[i].starost);
      end;
   suma:=0;
   for i:=1 to n do
      suma:=suma+covek[i].starost;
   writeln('prosecna starost stanovnika je ',suma/n,' godina');
end.
 
Hahahah, koncentricni, koja fora. Nema smisla da se zovu koncentricni, al ajde. Jos ja mislim o cemu se radi kakvi ciklusi, a ono ova smejurija. Jedini nacin za resavanje tog zadatka preko njih je po meni da se koriste 3 ciklusa za svaku cifru po jedan sto je izuzetno besmisleno, al ajde kad se tako trazi.
Kod:
var
   i,j,k:integer;
begin
   for i:=2 to 4 do
      for j:=0 to 9 do
         for k:=0 to 9 do
            if (i<>2) or (j<>0) or (k<>0) then
               writeln(i,j,k);
end.
 

Back
Top