Pascal: školski zadaci

poruka: 546
|
čitano: 167.885
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Pascal: školski zadaci

Treba mi pomoć oko jednog zadatka.

 

Zadatak glasi:

Zadaj cijeli broj i ispiši mu svaku znamenku posebno. Na kraju ispiši zbroj svih znamenaka tog broja.

 

ZADATAK TREBA URADITI POMOĆU REPEAT UNTIL PETLJE.

 

Najviše se mučim sa tim kako da mu zapišem znamenke.

Znao bih uraditi zadatak da je određeno da li je to troznamenkasti,dvoznamenkasti broj i sl. ali ovdje nije određeno.

 

Nadam se da mi možete pomoći.

HVALA

Poruka je uređivana zadnji put pet 15.4.2011 18:23 (patch123).
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci

Kako ćeš dobiti prvu znamenku? Podijelit ćeš broj s 1000000 (ako gledamo da su brojevi 32-bitni, znači ako idu +/-2000000), zar ne? Ako je rezultat dijeljenja 0, onda znači d aje broj manji od milijun pa ne ispisuješ tu znamenku nego broj dalje dijeliš s 1000000 / 10. I opet gledaš - ako je rezultat <> 0, to je ta znamenka (prva u ovom slučaju), pa je ispisuješ, a broj umanjuješ za znamenka * 100000 (ili, bolje, napravišbroj mod 100000). I tako ideš sve dok ćeš dijeliti s 1.

15 godina
offline
Re: Pascal: školski zadaci

Evo.

 

program forum;var x,zz,suma:integer;beginwriteln('Upisi broj');readln(x);suma:=0;writeln('Znamenke broja su');repeat   zz:=x mod 10;   writeln(zz);   suma:=suma+zz;   x:=x div 10;until x = 0;writeln('Suma znamenki je ',suma);readln;end.

HTC Desire Android
Poruka je uređivana zadnji put pet 15.4.2011 18:59 (emerik).
16 godina
moderator
offline
Re: Pascal: školski zadaci
emerik kaže...

Evo.

Indentacija?

 

Također, ovo ti ispisuje znamenke od zadnje prema prvoj.

15 godina
offline
Re: Pascal: školski zadaci

pa ne piše u zadatku da mora od prve prema zadnjoj

HTC Desire Android
16 godina
moderator
offline
Re: Pascal: školski zadaci
emerik kaže...

pa ne piše u zadatku da mora od prve prema zadnjoj

Ne piše. Ali isto tako, mi brojeve čitamo s lijeva nadesno. Pa bi bilo čudno da broj čitamo tako, a njegove znamenke s desna ulijevo. {#}

14 godina
neaktivan
offline
Pascal: školski zadaci

Ili manje komplicirano:

 

Program forum;
  var n,sz,bz,x:integer;
 begin
  writeln('Upisi broj:');
  readln(n);
    sz:=0;
     bz:=0;
   repeat
     x:=n mod 10;
    sz:=sz+x;
    bz:=bz+1;
    n:=n div 10;
   until n=0;
   writeln('Broj znamenki je: ',bz,' ,a suma znamenki je: ',sz);
 readln;
end.

[SLOBODNO STISNEŠ HVALA ONOME TKO TI JE POMOGAO]
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci
emerik kaže...

Ako hoćeš mogu prepraviti.

LOL. Ne moraš radi mene. Možeš radi sebe i radi ovoga koji je postavio pitanje, da vidi kako se to rješava. {#}

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Pascal: školski zadaci
Plahi kaže...

Ili manje komplicirano:

 

Program forum;
  var n,sz,bz,x:integer;
 begin
  writeln('Upisi broj:');
  readln(n);
    sz:=0;
     bz:=0;
   repeat
     x:=n mod 10;
    sz:=sz+x;
    bz:=bz+1;
    n:=n div 10;
   until n=0;
   writeln('Broj znamenki je: ',bz,' ,a suma znamenki je: ',sz);
 readln;
end.

Hvala.

Ovaj mi se program čini najjednostavniji.

 

Možeš li mi samo objasniti zašto ne radi za brojeve sa 5 ili više znamenki ?

 

Hvala vam puno svima,još ako bi netko uspio saznati kako ispisati znamenke po redu (slijeva nadesno)

13 godina
neaktivan
offline
Re: Pascal: školski zadaci

Dobra su i prethodna resenja.

Prethodno moze sa nizom, pa da ispise u pravom redosledu.

Evo u pravom redosledu bez niza.

 

program cifre;  var n,c,sum:integer;m:longint;   begin    readln(n);     m:=1;     repeat      m:=m*10;     until n div m=0;     m:=m div 10;     sum:=0;     writeln('Cifre broja su:');     repeat      c:=n div m;      sum:=sum+c;      n:=n-c*m;      m:=m div 10;      writeln(c);      until m=0;     writeln('Suma cifara je ',sum);     readln;   end.

16 godina
moderator
offline
Re: Pascal: školski zadaci
patch123 kaže...
Možeš li mi samo objasniti zašto ne radi za brojeve sa 5 ili više znamenki ?

Zato jer koristiš 16-bitni kompajler, pa su ti varijable tipa Integer 16-bitne, tj. imaju raspon od -32000 do 32000. Zamijeni Integer s LongInt.

13 godina
neaktivan
offline
Re: Pascal: školski zadaci
Plahi kaže...

 

Možeš li mi samo objasniti zašto ne radi za brojeve sa 5 ili više znamenki ?

 

Hvala vam puno svima,još ako bi netko uspio saznati kako ispisati znamenke po redu (slijeva nadesno)

Ne radi zato sto je n definisano kao integer, za vece brojeve (do oko 2 000 000 000) definisi ga kao longint

Poruka je uređivana zadnji put ned 17.4.2011 23:07 (flin).
14 godina
neaktivan
offline
Pascal: školski zadaci

Hvala puno svima.

Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Pascal: školski zadaci

u free pascalu imas i int64, tj od -2^63 do 2^63-1

 
0 0 hvala 0
13 godina
neaktivan
offline
Pascal: školski zadaci

Napisati program koji u datoteku armstrong.txt ispisuje sve armstrongove brojeve do zadanog broja n. Broj je armstrongov ako je on jednak zbiru kubova njegovih cifara. Raspored ispisa u datoteci je sljedeci: u prvom redu ispisati broj do kojeg trazite armstrongove brojeve, a u drugom redu jedan iza drugog ispisati armstrongove brojeve.

 
0 0 hvala 0
15 godina
offline
Re: Pascal: školski zadaci

Nisam još učio datoteke,ali ti mogu napisati takav običan program.

HTC Desire Android
13 godina
neaktivan
offline
Re: Pascal: školski zadaci

Program Amstrong;  var n,i,br,s:longint;      c:byte;      f:text;      begin       Assign(f,'Amstrong.txt');       rewrite(f);       readln(n);       writeln(f,n);       for i:=1 to n do        begin         br:=i;         s:=0;         repeat          c:=br mod 10;          s:=s+c*c*c;          br:=br div 10;         until br=0;         if i=s then write(f,i,' ');        end;       close(f);   end.

13 godina
neaktivan
offline
Re: Pascal: školski zadaci

Mnogo hvala!{#}

Samo jedno pitanje u vezi s ovim: da li ima alternativa za "c:byte"?

 

Zadaci sa pitagorinim i fibonacijevim brojevima se ne bi znatno razlikovali?!

 

 

1. Napisati program koji u datoteku jednadzba.txt ispisuje jednacinu kvadratne jednadzbe i njena rjesenja.

2. Iz datoteke prica.txt na ekranu ispisati kao rezultat koliko rijeci ima u toj datoteci. Broj rijeci je za jedan veci od broja praznih mjesta.

3. Napisati program koji u datoteku ucenik.txt upisuje prezime i ime ucenika, ocjene iz predmeta i srednju ocjenu na kraju. (ako ima 1 iz bilo kojeg predmeta, srednja ocjena je 1)

16 godina
moderator
offline
Re: Pascal: školski zadaci
flin kaže...

Program Amstrong;


var

  n,i,br,s:longint;  c:byte;  f:text;

begin  Assign(f,'Amstrong.txt');  rewrite(f);  readln(n);  writeln(f,n); 

  for i:=1 to n do  begin    br:=i;    s:=0;   

    repeat      c:=br mod 10;      s:=s+c*c*c;      br:=br div 10;    until br=0;    

    if i=s then write(f,i,' ');  end; 

  close(f); end.

Nisi još na čisto s tim kako indentirati kod? Uvijek uvlači za dva znaka (eventualno iznimno tri) - nikad jedan, jer se to premalo uvlačenje pa se ne vidi. Glavni begin..end ne treba uvlačiti, kao da je to na hijerarhijski nižoj razini od prvog var-a - jer nije. Također, blokove repeat-until, for itd. možeš odvojiti i vertikalnim razmacima - bit će preglednije. {#}

Poruka je uređivana zadnji put pon 18.4.2011 22:10 (mbaksa).
16 godina
moderator
offline
Re: Pascal: školski zadaci
nedzad kaže...

Mnogo hvala!{#}

Samo jedno pitanje u vezi s ovim: da li ima alternativa za "c:byte"?

Jel znaš što je byte? Cijeli broj, veličine jednog bajta - dakle, ima raspon od 0..255 ako se ne varam (mislim da nije predznačeni - nek me netko ispravi ako sam fulao). Koji su sve cjelobrojni tipovi? Valjda ćeš naći neki među njima. {#}

Poruka je uređivana zadnji put pon 18.4.2011 22:13 (mbaksa).
14 godina
neaktivan
offline
Re: Pascal: školski zadaci
mbaksa kaže...
nedzad kaže...

Mnogo hvala!{#}

Samo jedno pitanje u vezi s ovim: da li ima alternativa za "c:byte"?

Jel znaš što je byte? Cijeli broj, veličine jednog bajta - dakle, ima raspon od 0..255 ako se ne varam (mislim da nije predznačeni - nek me netko ispravi ako sam fulao). Koji su sve cjelobrojni tipovi? Valjda ćeš naći neki među njima. {#}

  • byte - 1 byte - brojevi od 0 do 255
  • smallint  - byte - brojevi od -128 do 127
  • word - 2 bytes - brojevi od 0 do 65535
  • integer - 2 bytes - brojevi od -32 768 do 32 767
  • longint - 4 bytes - brojevi od -2 147 483 648 do 2 147 483 647
  • int64 - 8 bytes - brojevi od -263 do 263-1

16 godina
moderator
offline
Re: Pascal: školski zadaci

I koji ćeš izabrati?

13 godina
neaktivan
offline
Pascal: školski zadaci

1. Napisati program koji u datoteku jednadzba.txt ispisuje jednacinu kvadratne jednadzbe i njena rjesenja.

 

Resenje

 

program Kvadratna;var a,b,c,D:real; x1r,x1i,x2r,x2i:real;  f:text; begin   assign(f,'Jednadzba.txt');   rewrite(f);   writeln('Unesite koeficijente kvadratne jednacine');   write('a=');   readln(a);   write('b=');   readln(b);   write('c=');   readln(c);   D:=sqr(b)-4*a*c;   if D>=0 then     begin      x1r:=(-b+sqrt(D))/(2*a);      x2r:=(-b-sqrt(D))/(2*a);      x1i:=0;x2i:=0;      end   else     begin      x1r:=-b/(2*a);      x2r:=x1r;      x1i:=sqrt(-D)/(2*a);      x2i:=-sqrt(-D)/(2*a);     end;  writeln(f,a:0:2,'x^2+',b:0:2,'x+',c:0:2,'=0');  writeln(f,'x1=',x1r:0:2,'+',abs(x1i):0:2,'i');  writeln(f,'x2=',x2r:0:2,'-',abs(x2i):0:2,'i');  close(f);  readln;end.

 
1 0 hvala 0
13 godina
neaktivan
offline
Pascal: školski zadaci

2. Iz datoteke prica.txt na ekranu ispisati kao rezultat koliko rijeci ima u toj datoteci. Broj rijeci je za jedan veci od broja praznih mjesta.

Malo je nejasan zadatak, ali evo jedno jednostavnije resenje.

 

program rijeci;var brreci:integer;    f:text;s:char;begin  assign(f,'prica.txt');  reset(f);  brreci:=1;  while not eof(f) do    begin      read(f,s);      if s=' ' then brreci:=brreci+1;    end;  writeln('Broj reci je ',brreci);  close(f);end.

 
1 0 hvala 0
13 godina
neaktivan
offline
Pascal: školski zadaci

Evo i treci.

 

Poruka je uređivana zadnji put uto 19.4.2011 9:25 (flin).
 
0 0 hvala 0
13 godina
neaktivan
offline
Pascal: školski zadaci

3. Napisati program koji u datoteku ucenik.txt upisuje prezime i ime ucenika, ocjene iz predmeta i srednju ocjenu na kraju. (ako ima 1 iz bilo kojeg predmeta, srednja ocjena je 1)

 

Evo primer za n ucenika.

 

program ucenik; var ime,prezime:string;  ocene:array[1..20] of byte;  pr:real;  s,i,j,n,brp:integer;  nedovoljan:boolean;  f:text; begin    assign(f,'ucenik.txt');    rewrite(f);    write('Unesite broj ucenika:');    readln(n);    for i:=1 to n do     begin      write('Unesite ime ucenika:');      readln(ime);      write('Unesite prezime ucenika:');      readln(prezime);      write('Unesite broj predmeta:');      readln(brp);      write('Unesite ',brp,' ocena:');      for j:=1 to brp do        read(ocene[j]);        readln;        write(f,ime,' ',prezime);        s:=0;        nedovoljan:=false;        for j:=1 to brp do          begin            s:=s+ocene[j];            if ocene[j]=1 then                nedovoljan:=true;            write(f,ocene[j]:2);          end;       pr:=s/brp;       if nedovoljan then          writeln(f,' 1.00')       else         writeln(f,pr:5:2);     end;    close(f);end.

 
1 0 hvala 0
13 godina
neaktivan
offline
Re: Pascal: školski zadaci
mbaksa kaže...

I koji ćeš izabrati?

Integer. {#}

 

@flin, mnogo, mnogo hvala, zaista!

 

Moze li pomoc oko zadataka sa pitagorinim i fibonaccijevim brojevima? Da li je ovo tacno?

 

 

Program Pitagora;

  var n,x,y,z:integer;

    f:text;

    begin

     Assign(f,'Pitagora.txt');

     rewrite(f);

     readln(n);

     writeln(f,n);

     for x:=1 to n do

     for y:=1 to n do

     begin

      z:=sqrt(sqr(x)+sqr(y));

      if (z-round(z))=0 then write(f,x,y,round(z));

     end;

     close(f);

   end.

 

 

Poruka je uređivana zadnji put sri 20.4.2011 22:40 (nedzad).
16 godina
moderator
offline
Re: Pascal: školski zadaci
nedzad kaže...

Moze li pomoc oko zadataka sa pitagorinim i fibonaccijevim brojevima? Da li je ovo tacno?

Loše si indentirao kod - pogledaj moj kod pa radi po uzoru na njega - ovako je nepregledno.

 

Druga stvar - koji točno je tekst zadatka? Jer ovako kako gledam, tvoje rješenje nema smisla - ako sam dobro uspio skužiti tvoje rješenje, ti u svom zadatku u biti gledaš je li zaokruženi korijen kvadriranog broja jednak izvornom broju! A to je apsurd. U biti gledaš je li dobivaš li zaokruživanjem početni broj.

 

Također, možeš li objasniti čemu služi write(f,x,y,round(z))? Na naredba ispisuje sve te brojeve jedan iza drugog bez ikakvog razmaka i sve u jednom redu, odnosno u više iteracija dobiješ nepregledan niz znamenki!

13 godina
neaktivan
offline
Re: Pascal: školski zadaci

1. Napisati program koji u datoteku fibonacci.txt ispisuje brojeve fibonaccijevog niza do zadanog broja n. Raspored ispisa u datoteci je sljedeci: u prvom redu ispisati broj elemenata niza, a u drugom redu sve elemente niza.

 

2. Napisati program koji u datoteku pitagora.txt ispisuje sve pitagorine brojeve do zadanog broja n, pri cemu svaka kombinacija od 3 broja ide u novi red.

16 godina
moderator
offline
Re: Pascal: školski zadaci

Prvo zaboravi na datoteke - ti trebaš znati radi li ti program ispravno, zar ne? Onda prvo napraviš program koji ispusuje na ekran. I kad si 100% siguran da ti program radi ispravno, onda složiš da ispisuje u datoteku.

 

Što su pitagorini brojevi? To se misli na sve a, b i c, koji odgovaraju a2 + b2 = c2? Pa onda samo listaš a i b do broja n i ispisuješ a, b i korijen od a2+b2, zar ne? Gdje je tu problem? c treba biti prirodni broj? Onda gledaš je li sqrt(c) = floor(sqrt(c)). Jesi to pokušao testirati s round-om?

 

Ovo s Fibonnacijevim brojevima - samo moraš pamtiti dva plošla broja, a aktualni broj je njihov zbroj. Pretprošli broj postaje prošli, prošli postaje dotadašnji aktualni.

Nova poruka
E-mail:
Lozinka:
 
vrh stranice