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

array je tip podatka za niz ;)

Koliko se ja secam sintakse paskala to bi izgledalo nekako ovako:
Kod:
BEGIN
var i,sum:integer;               /*Deklaracija i inicijalizacija promenljivih*/
prosek:real;
a=array [1..13] of integer;
sum:=0;

for i=1 to 13 do   /*Ucitavanje ocena u niz*/
  readln(a[i]);

for i=1 to 13 do    /*Pravljenje sume el. tog niza*/
  sum:=sum+a[i];

prosek:=sum/13;  /*Delis sa brojem predmeta da dobijes prosecnu ocenu*/
writeln("Prosek je:",prosek);  /*Stampanje proseka na standardni izlaz */
END.


Ps.nadam se da ne odgovaram previse kasno
 
Poslednja izmena:
ej jel bi tko htio napisati kod za zadatak:UČITATI BINARNI BROJ KAO STRING I ISPISATI VRIJEDNOST U DEKADSKOM SUSTAVU. u pascalu......
hitno mi je potrebno....a ja se u to ne razumijem baš nimalo :))

Kod:
program bin_u_dek;

var
  s_bin : string;
  duz, c, i, dek : integer;

function exp (x, y : integer) : integer;
var
  k : integer;
begin
  exp := 1;
  for k := 1 to y do
    exp := exp * x;
end;

begin
  dek := 0;
  write ('Broj u binarnom zapisu -> ');
  readln (s_bin);
  duz := length (s_bin);
  for i := duz downto 1 do
    begin
      val (s_bin [i], c);
      dek := dek + c * exp (2, duz - i);
    end;
  writeln ('Broj ', s_bin, ' u dekadnom zapisu ima oblik: ', dek, '.');
end.

Obrazloženje: Prvo pravimo funkciju stepenovanja - exp. Nakon što učitamo string, izdvajamo svaki njegov karakter i pretvaramo u cifru c.
Nadam se da sam bio od pomoći. Ukoliko ne znaš funkcije u Pascal-u, obrati mi se.

P. S. Nadam se da se nisam prekasno obratio. :)
 
molim vas ako neko moze ove zadatke da mi resi treba mi do ponedeljka uvece!

1.dat je niz realnih brojeva od n elemenata.odrediti i odstampati srednju vrednost elemenata niza i sortirati niz u opatajuci poredak pa ga prikazati.

2.dat je niz celih brojeva od n elemeneta.stampati sve clanove niza koji su parni i odrediti koliko ima neparnih.

3.dat je niz realnih brojeva od n elemenata.formirati niz koji sadrzi clanove datog niza vece od 10 i prikazati dobijen niz.

4.dat je niz realnih brojeva od n elemenata.napraviti novi niz b tako da vazi: b=(3*a-1)/3 ,i=1,2...n.

5.odrediti i odstampati najveci element niza.

6.stampati sve clanove niza koji su deljivi sa 9.

znam da je mnogo :lol::lol: ali ako bi neko mogao ovo da uradi ili barem nesto bio bi mu zahvalan!!!
 
molim vas ako neko moze da mi uradi ove zadatke do ponedeljka uvece

1.dat je niz realnih brojeva od n elemenata.odrediti i odstampati srednju vrednost elemenata niza i sortirati niz u opadajuci poredak pa ga prikazati.

2.dat je niz celih brojeva od n elemenata.stampati sve clanove niza koji su parni i odrediti koliko ima neparnih.

3.dat je niz realnih brojeva od n elemenata.formirati novi niz koji sadrzi clanove datog niza vece od 10 i prikazati dobijen niz.

4.odrediti i odstampati najveci element niza.

5.stampati sve clanove niza koji su deljivi sa 9.

znam da je mnogo :))) ali ako bi neko mogao ovo da uradi ili barem nesto bio bi mu zahvalan!!treba mi do ponedeljka uvece za skolu a ja nista ne znam da uradim! :S
 
a jel se razumjes u dvodimenzionalne i jedno dimenzionalne nizove u paskalu treba mi pomoc oko toga hitno:worth:

Recimo da imaš veliki unos. Na primer, unosiš 1000 brojeva i svaki mora da bude upamćen. Iz tog razloga ne praviš 1000 promenljivih, već praviš NIZ sa 1000 elemenata.

Umesto
Kod:
var
  a1, a2, a3, a4, a5 : integer;
pišeš
Kod:
var
  a : array [1 .. 5] of integer;

Dakle, kada deklarišeš niz u var klauzi, prvo pišeš ime promenljive, pa dve tačke ( : ), zatim pišeš array i u uglastoj zagradi pišeš koje su "pozicije" elemenata niza. Nakon najmanje pozicije pišeš dve tačke, a potom najveću poziciju. U ovom konkretnom primeru, pozicije su od 1 do 5. Nakon uglaste zagrade pišeš of i tip niza. To može da bude integer, real, string, char... Tip niza se odnosi na njegove elemente - oni su celi ili realni brojevi ili znakovi...

Takođe, "adresa" ili "pozicija" elementa u nizu može da bude i znak. Tada deklarisanje niza ima ovaj oblik:
Kod:
var
  a : array ['A' .. 'Z'] of integer; //mogu da budu i drugi znakovi

Ukoliko nekom elementu niza želiš da daš neku vrednost, tada pišeš:
Kod:
a [1] := 8;

"Pozicija" na kojoj se nalazi deo niza može da bude i promenljiva. Na primer, ukoliko se niz standardno učitava, neophodno je prvo uneti dužinu niza (neki prirodan broj n), a zatim koristiti jednu for petlju:
Kod:
program ucitaj_niz;

var
  n, i : integer;
  a : array [1 .. 50] of integer;

begin
  readln (n);
  for i := 1 to n do
    readln (a [i]);
end.
Dakle, učitava se vrednost svakog i-tog elementa, pri čemu je i u intervalu između 1 i n. Ovaj program radi pod pretpostavkom da n nije veće od 50 i da su svi elementi celi brojevi. U zadatku se uvek posebno naglašava koja je gornja granica niza. Ukoliko nije navedena, najverovatnije se koristi bez korišćenja nizova.

Primer: Treba da odrediš koja je "pozicija" (ili "redni broj") elementa čija je razlika sa aritmetičkom sredinom svih članova niza najveća. Prvo se učitava broj elemenata niza n, a u sledećih n redova se učitavaju brojevi tog niza. Pretpostavlja se da su brojevi realni i da n nije veće od 100.
Kod:
program primer1;

var
  n, i, poz : integer;
  niz : array [1 .. 100] of real;
  zbir, sred, max : real;

begin
  readln (n);
  for i := 1 to n do
    begin
      readln (niz [i]);
      zbir := zbir + niz [i];
    end;
  sred := zbir / n;
  for i := 1 to n do
    if abs (sred - niz [i]) > max then
      begin
        max := abs (sred - niz [i]);
        poz := i;
      end;
  writeln (poz);
end.

Ovo su sve bili jednodimenzionalni nizovi. Dvodimenzionalni nizovi (matrice) su slični. Jedina prava razlika među njima da, dok je element jednodimenzionalnog niza određen jednim parametrom (mislim na broj ili promenljivu unutar uglaste zagrade, poput a - tu je i taj parametar), dvodimenzionalni nizovi su predstavljeni sa dva parametra - baš kao neka tačka u koordinatnom sistemu ili polje u tabeli.

Davanje vrednosti nekom elementu matrice je prikazanu u donjem primeru - u uglastoj zagradi treba da napišeš dve vrednosti razdvojene zarezom.

Dvodimenzionalni nizovi se rade potpuno isto kao jednodimenzionalni. Na primer, treba da se učitaju svi članovi i da se odredi pozicija elementa matrice čija je razlika sa prosekom svih elemenata najveća. Dimenzije matrice su m i n, pri čemu ti brojevi nisu veći od 20 i elementi matrice su realni brojevi.
Kod:
program primer2;

var
  m, n, j, i, pozx, pozy : integer;
  matrica : array [1 .. 20, 1 .. 20] of real;
  zbir, pros, max : real;

begin
  readln (m, n);
  for j := 1 to n do
    begin
      for i := 1 to m - 1 do
        begin
          read (matrica [i, j]);
          zbir := zbir + matrica [i, j];
        end;
      readln (matrica [m, j]);
      zbir := zbir + matrica [m, j];
    end;
  pros := zbir / (m * n);
  for j := 1 to n do
    for i := 1 to m do
      if abs (pros - matrica [i, j]) > max then
        begin
          max := abs (pros - matrica [i, j]);
          pozx := i;
          pozy := j;
        end;
  writeln (pozx, ', ', pozy);
end.

Nadam se da je ovo bilo od koristi. :)
 
Reko već sam otvorio temu,al videh ovde zadaci i to u Paskalu,pa ajd i ovde da pitam.
Daklem rade u Pakalu,a ja znam samo nešto osnovno tako da su ti zadaci za mene španska sela,pa ako bi mogao neko da odradi jedan primer što je dobio,evo ovako:

Kineski car Ciu Ši je razvijao svoje carstvo i svako selo je bilo u obavezi da mu u toku godine pošalje loptu od ćilibarda određenog poluprečnika.On je lopte slagao na pod u jednoj od svojih odaja,tako da čine trougao jednakih stranica.Kada bi osvajao sela ili osnivao nova uvek je vodio računa o broju i o tome da kada te godine dobije po loptu od svih sela može da ih doda na svaku stranicu po jedan red i da opet dobije trougao jednakih stranica.Napisati program u kome se zadaje trenutan broj lopti N na jednoj stranici trougla,a koji izračunava koliko sela ukupno car mora da ima te godine da bi dopunio svoj trougao do novog trougla.
Primer. Ulaz: N=4

Inače radi se u paskalu i potrebno mi je do 30. septembra.Hvala puno unapred.
 

Back
Top