Pascal: školski zadaci

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

kako to da sad nema ni round ni trunc? xDDD

Ako ti neko pomogne stisni gumb HVALA!
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Pascal: školski zadaci

trebam pomoc neznam uraditi ovaj zadatak

napisati program koji n brojeva i racuna njegovu aritmeticku sredinu i zaokruzuje na dvije decimale

molim pomoc

dejo2000
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Pascal: školski zadaci

Pardon, sa div i mod :)

13 godina
neaktivan
offline
Re: Pascal: školski zadaci

sa mod

 

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

trebam pomoc neznam uraditi ovaj zadatak

napisati program koji n brojeva i racuna njegovu aritmeticku sredinu i zaokruzuje na dvije decimale

molim pomoc

Evo jedna varijanta resenja.

 

Program sredina;  var i,n,s,x:integer;      ars:real;      begin      write('Unesite koliko brojeva ');

      readln(n);       s:=0;       for i:=1 to n do        begin         read(x);         s:=s+x;        end;      ars:=s/n;      writeln('Aritmeticka sredina je ',ars:0:2);

      readln;

end.

Poruka je uređivana zadnji put ned 3.4.2011 21:02 (flin).
13 godina
neaktivan
offline
Pascal: školski zadaci

napisati program koji unosi n brojeva i broji koliko jednocifrenih brojeva ima?

dali bih neko znao uraditi mi i ovaj zadatak...

 

dejo2000
Moj PC  
0 0 hvala 0
14 godina
protjeran
offline
Re: Pascal: školski zadaci
dejo111 kaže...

napisati program koji unosi n brojeva i broji koliko jednocifrenih brojeva ima?

dali bih neko znao uraditi mi i ovaj zadatak...

 

program zadatak;

var a,n,i,x:integer;

begin

writeln('Unesi ukupan broj brojeva koje zelis provjeriti');

readln(a);

i:=0;

for x:=1 to a do

   begin

   readln(n);

   if n div 10=0 then inc(i);

   end;

writeln (i, ' brojeva u ovom skupu ima jednu znamenku');

readln;

end.

 

Masturbation rules our nation.
13 godina
neaktivan
offline
Re: Pascal: školski zadaci
dejo111 kaže...

napisati program koji unosi n brojeva i broji koliko jednocifrenih brojeva ima?

dali bih neko znao uraditi mi i ovaj zadatak...

 

Program jednocifreni;  var i,n,x,br:integer;      begin       write('Koliko brojeva zelite ');       readln(n);       br:=0;       for i:=1 to n do        begin         read(x);         if abs(x)<10 then br:=br+1;        end;      writeln('Jednocifrenih brojeva ima ',br); end.

15 godina
neaktivan
offline
Pascal: školski zadaci

Pozdrav! Imam jedan zadatak za rjesiti, nisam siguran kako.

Ulazni podatak je prirodan broj x u binarnom zapisu. Potrebno je odrediti broj jedinica binarnom zapisu toga broja.

Npr. ulaz  x=1001

ispis  Broj 1001 ima 2 jedinice u binarnom zapisu.

 

Počeo sam nešto, ali program ne radi...

 

 

program binarni;

var x,g,br_jed:integer;

begin

writeln('Upisite broj u binarnom zapisu');

readln(x);

  repeat

  g:= x mod 10;

   if g <> 0 then

   x := x div 10;

    inc (br_jed);

  until x = ?;

  writeln('Broj ima ',br_jed,' jedinice');

  readln;

end.

 

NVIDIA: The Way It's Meant to Be Played :P
Poruka je uređivana zadnji put uto 5.4.2011 14:17 (gta_4).
Moj PC  
0 0 hvala 1
16 godina
moderator
offline
Re: Pascal: školski zadaci

Normalno da ne radi kad:

  • u svakoj iteraciji uvećavaš varijablu br_jed! Znači, uopće nema veze je li broj jedinica ili ne - ti ćeš uvijek računati kao da je jedinica
  • početni broj "skraćuješ" samo ako je zadnja znamenka različita od nule!

 

Da ne znam bolje, rekao bih da si zamijenio linije    x := x div 10;    i     inc (br_jed);

 

Stavljaj vertikalne razmake prije i poslije konstrukcija kao što su if, for itd., da ti bude naprednije. Malo si razmisli o logici programa - po kojoj bi on logici trebao raditi? Prvo si napiši logiku brojanja jedinica na papir pa vidi jel ti logika programa odgovara toj matematičkoj logici.

15 godina
neaktivan
offline
Re: Pascal: školski zadaci
gta_4 kaže...

Pozdrav! Imam jedan zadatak za rjesiti, nisam siguran kako.

...

evo kod

 

program jedinice;

uses crt;

var x:string[255];

   a,b:integer;

begin

    writeln('Upisi broj');

    readln(x);

    for a:=1 to length(x) do

      begin

        if (x[a]='1') then b:=b+1;

        if (x[a]<>'0') and (x[a]<>'1') then

        begin

           writeln('broj nije u binarnom zapisu!');

           readkey;

           exit;

        end;

      end;

    writeln('U upisanom broju ima ',b,' jedinica');

    readkey;

end.

 

 

Poruka je uređivana zadnji put uto 5.4.2011 18:21 (Inferno).
15 godina
neaktivan
offline
Pascal: školski zadaci

Hvala ti, ali nismo još radili procedure niti funkcije, a program treba rješiti sa repeat petljom!

I taj string ne znam što je...

 

@mbaksa: Znači program ide:  

...

br_jed:=0;

readln(x);

m:=x;

  repeat

  g:= x mod 2;

   if g mod 2 <> 0 then begin

   inc(br_jed);

   x:= x div 2;

   end;

  until x = ?

 writeln('Broj ',m,' ima ',br_jed,' u binarmo zapisu.');

 readln;

end.

 

A što sa until? Kada će program prestati?

 

NVIDIA: The Way It's Meant to Be Played :P
Moj PC  
0 0 hvala 0
15 godina
offline
Re: Pascal: školski zadaci

Evo ti,ali slijedeći put razmisli malo prije nego staviš neki lagani program {#}.

 

program lagani;var zz,binarni,jedinice:integer;beginwriteln('Upisi binarni broj');readln(binarni);jedinice:=0;repeatzz:=binarni mod 10; //učita zadnju znamenkuif zz = 1 then jedinice:=jedinice+1;binarni:=binarni div 10; // odbaci zadnju znamenkuuntil binarni = 0;writeln('Ima ',jedinice,' jedinica');readln;end.

HTC Desire Android
15 godina
neaktivan
offline
Pascal: školski zadaci

Znači nije trebalo if g mod 2 <> 0 then...  nego if g = 1... Uglavnom skužio sam, hvala ti!

 

 

NVIDIA: The Way It's Meant to Be Played :P
Poruka je uređivana zadnji put uto 5.4.2011 21:05 (gta_4).
Moj PC  
0 0 hvala 0
15 godina
offline
Re: Pascal: školski zadaci
Pa da,tebi je samo bitno dal je taj broj jednak ili nije.Ako je onda se broj jedinica poveća,a ako nije jednak 1 onda ništa ne radi.
HTC Desire Android
15 godina
neaktivan
offline
Pascal: školski zadaci

 

Napišite program koji će učitati prirodan broj te ustanoviti i ispisati da li taj broj sadrži točno jednu parnu znamenku.

Npr. broj= 1835

broj sadrži točno jednu parnu znamenku (8).

- Iako nisam baš siguran ovo za točno jednu parnu znamenku. Valjda je to što sam napisao u redu.

Ako stavim npr. kod inc(parne) h:=g, hoće li on onda ispisati ... ima točno jednu parnu znamenku ',h;  i koja je to znamenka?

 

 

program parni;

var broj,g,h,m,parne:integer;

begin

writeln('Upisite prirodan broj.');

readln(broj);

parne:=0;

m:= broj;

  while broj > 0 do begin

  g := broj mod 10;

   if g mod 2 = 0 then

   inc(parne);

   broj := broj div 10;

   end;

  if parne = 1 then

  writeln(' Broj ',m,' ima točno jednu parnu znamenku') else writeln('Ima više od 1 parne znamenke.');

  readln;

end.

 

NVIDIA: The Way It's Meant to Be Played :P
Moj PC  
0 0 hvala 0
16 godina
moderator
offline
Re: Pascal: školski zadaci

Nauči se pravilno indentirati tekst - znači stavljati razmake. To treba ići hijerarhijski - ono što je na nižoj hijerarhijskoj razini treba uvući (za dva razmaka)! Također je dobro složene naredbe koje sadrže blokove (poput if..then begin..end) vertikalnim razmacima odvojiti od ostatka koda.

 

Dok ne počneš pravilno hijerarhijski stavljati razmake, češće ćeš raditi semantičke greške, jer nećeš znati što se događa u kojem slučaju.

 

Tvoj kod bi trebao izgledati otprilike ovako (btw uklonio sam ti varijablu g - što će ti ta varijabla, ako rezultat operacije broj mod 10 nigdje ne koristiš, osim kod jednog if-a?):

 

gta_4 kaže...
program parni;

var

  broj, m, parne: Integer;

 

begin

  WriteLn('Upisite prirodan broj.');

  ReadLn(broj);

 

  parne:=0;

  m:= broj;

 

  while broj > 0 do

  begin

    if broj mod 10 = 0 then inc(parne);

    broj := broj div 10;

  end;

 

  if parne = 1 then WriteLn(' Broj ',m,' ima točno jednu parnu znamenku')

  else WriteLn('Ima više od 1 parne znamenke.');

 

  ReadLn;

end.

 

Je li ti jasno zašto sam oblikovao kod tako kako sam oblikovao? Je li sad kod čitkiji, je li jasno što je na kojoj hijerarhijskoj razini?

 

Moram napomenuti i ovo - imenuj varijable tako da se točno zna čemu služe - dakle, da i osoba koja prvi put vidi tvoj program da zna čemu služi koja varijabla. Imena varijabli g, m, h (gdje uopće koristiš varijablu h!?) - su ti besmislena.

Poruka je uređivana zadnji put uto 5.4.2011 21:41 (mbaksa).
15 godina
neaktivan
offline
Re: Pascal: školski zadaci
gta_4 kaže...

 

Napišite program koji će učitati prirodan broj te ustanoviti i ispisati da li taj broj sadrži točno jednu parnu znamenku.

...

evo ga,

 

 

program parni;

var broj, m, parne: integer;

begin

    WriteLn('Upisite prirodan broj.');

    ReadLn(broj);

 

    parne:=0;

    m:= broj;

 

    while broj > 0 do

    begin

      if broj mod 2 = 0 then inc(parne);   //provjerava se parnost broja, time i zadnje znamenke

      broj := broj div 10;                  //odbacuje se zadnja znamenka

    end;

 

    if parne = 1 then WriteLn('broj ',m,' ima tocno jednu parnu znamenku.')

    else if parne > 1 then WriteLn('ima vise od 1 parne znamenke.')

    else writeln('broj nema parnih znamenki.');

 

    readln;

end.

 

 

 

Poruka je uređivana zadnji put sri 6.4.2011 19:35 (Inferno).
13 godina
neaktivan
offline
Re: Pascal: školski zadaci
Inferno kaže...
gta_4 kaže...

 

Napišite program koji će učitati prirodan broj te ustanoviti i ispisati da li taj broj sadrži točno jednu parnu znamenku.

...

evo ga,

 

 

program parni;

var broj, m, parne: integer;

begin

    WriteLn('Upisite prirodan broj.');

    ReadLn(broj);

 

    parne:=0;

    m:= broj;

 

    while broj > 0 do

    begin

      if (broj-(broj div 10)) mod 2 = 0 then inc(parne);   //provjerava se parnost zadnje znamenke

      broj := broj div 10;                  //odbacuje se zadnja znamenka

    end;

 

    if parne = 1 then WriteLn('broj ',m,' ima tocno jednu parnu znamenku.')

    else if parne > 1 then WriteLn('ima vise od 1 parne znamenke.')

    else writeln('broj nema parnih znamenki.');

 

    readln;

end.

 

Prethodni primer nije tacan!! Oznaceni red treba da izgleda ovako.

 

 if broj mod 2 = 0 then inc(parne);

 

 

 

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

      if (broj-(broj div 10)) mod 2 = 0 then inc(parne);   //provjerava se parnost zadnje znamenke

Koja je logika iza ove linije? Kako bi trebao raditi taj tvoj algoritam?

 

Recimo da je broj 75. Znači, tvoja formula je:

 

(75-(75 div 10)) mod 2 =

(75 - 7) mod 2 =

68 mod 2 = 0   -- parno! (a počeli smo s brojem koji ima sve znamenke neparne!)

 

 

UVIJEK provjeri da ti program izbaci pravo rješenje - jesi ti program uopće testirao? Nije dovoljno da se program samo pokrene.

Također, bilo bi pametno da si ovako "na papir" raspišeš stvar, da vidiš što se točno događa.

15 godina
neaktivan
offline
Re: Pascal: školski zadaci
mbaksa kaže...
Inferno kaže...

      if (broj-(broj div 10)) mod 2 = 0 then inc(parne);   //provjerava se parnost zadnje znamenke

Koja je logika iza ove linije? Kako bi trebao raditi taj tvoj algoritam?

 

...

uf, sry, radio sam na brzinu pa je tak ispalo, nego, trebalo je radit tako da se od prvotnog broja (recimo 745) oduzme vrijednost svega veceg od desetica, tako da bi bilo

(745-740) mod 2, ispustio sam mnozenje sa 10

 

evo kako je taj redak trebao izgledati:

 

if (broj-((broj div 10)*10)) mod 2 = 0 then inc(parne);

 

ali da, ta komplikacija nije ni potrebna, ne znam zasto mi je to prvo palo na pamet, svejedno se kasnije skida zadnja znamenka, znaci provjera broj mod 2=0 stoji

Poruka je uređivana zadnji put sri 6.4.2011 19:33 (Inferno).
16 godina
moderator
offline
Re: Pascal: školski zadaci
Inferno kaže...

uf, sry, radio sam na brzinu pa je tak ispalo, nego, trebalo je radit tako da se od prvotnog broja (recimo 745) oduzme vrijednost svega veceg od desetica, tako da bi bilo

(745-740) mod 2, ispustio sam mnozenje sa 10

 

evo kako je taj redak trebao izgledati:

 

if (broj-((broj div 10)*10)) mod 2 = 0 then inc(parne);

 

ali da, ta komplikacija nije ni potrebna, ne znam zasto mi je to prvo palo na pamet, svejedno se kasnije skida zadnja znamenka, znaci provjera broj mod 2=0 stoji

Meni se čini da ti uopće ne kužiš čemu služi operacija mod.

 

broj-((broj div 10)*10) je isto što i broj mod 10! Jel shvaćaš da kad tražiš ostatak od dijeljenja (dakle - mod, tj. modulo) s deset (broj mod 10), da zapravo uzimaš vrijednost zadnje znamenke? Dakle, ako ti je baza deset i ti tražiš ostatak od dijeljenja s 10, ti si izolirao zadnju znamenku.

 

Naravno, u slučaju parnosti nema potrebe za tim, pošto odmah možeš broj mod 2. Ali da znaš za ubuduće - nema potrebe za egzibicijama kakve si izvodio - tu je operacija mod.

13 godina
neaktivan
offline
Pascal: školski zadaci

Treba mi program koji racuna tri broja a zatim ispisuje najmanji od ta tri, ja znam zadak do pola...

 

program kkk;

uses crt;

var a,b,c,aa,bb,cc:real;

begin

writeln ('Unesi varijable');

readln (aa,bb,cc);

a:=aa/5;

b:=bb/6;

c:=cc/7;

...

 

E sada kad izracuna ova tri broja od njih treba da ispise najmanji.

 
0 0 hvala 0
15 godina
protjeran
offline
Re: Pascal: školski zadaci
sunshineagain kaže...

Treba mi program koji racuna tri broja a zatim ispisuje najmanji od ta tri, ja znam zadak do pola...

 

program kkk;

uses crt;

var a,b,c,aa,bb,cc:real;

begin

writeln ('Unesi varijable');

readln (aa,bb,cc);

a:=aa/5;

b:=bb/6;

c:=cc/7;

...

 

E sada kad izracuna ova tri broja od njih treba da ispise najmanji.

program kkk;

uses crt; <-- nema smisla u ovom programu ako ne koristiš crlscr kod begina (možda nisam u pravu)

var a,b,c,aa,bb,cc,min:longint;

begin(clrscr)

writeln ('Unesi tri broja...');

readln(aa,bb,cc);

a:=Trunc(aa/5);

b:=Trunc(bb/6);

c:=Trunc(cc/7);

min:=a;

  if b < min

   then min:=b;

  if c < min 

   then min:=c;

writeln('Najmanji rezultat je ',min);

readln;

end.

 

Ovako bih ja to napisao, neznam jel radi sve, probaj. Oprosti na lošem indentiranju ali to nisam još naučio :P

 

http://dizanje-ratia.info
Poruka je uređivana zadnji put čet 7.4.2011 15:54 (APazinjan).
14 godina
neaktivan
offline
Pascal: školski zadaci

Pozdrav ekipa!

 

Ako netko ima volje, zamolio bih da mi riješi dva-tri zadatka.

 

1. Napiši program koji će računat do kojeg datuma će trajati bon tako da unese današnji datum i trajnost bona

 

2. Napiši program koji učitava niz brojeva i taj niz uvećati za jedan (kao upišeš 12345, a ispiše 12346, 999 -> 1000 itd.)

 

3. Napiši program koji učitava niz i prihvaća ga ako ima više od 5 znakova, nema razmaka, ima barem jednu brojku, barem jedno slovo 

 

 

Zahvaljujem na odgovoru!

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

1. Napiši program koji će računat do kojeg datuma će trajati bon tako da unese današnji datum i trajnost bona

 

Resenje

 

Program bon; const brdana:array[1..12] of integer=        (31,28,31,30,31,30,31,31,30,31,30,31);  function prestupna(g:integer):boolean;   {Funkcija za prestupnu godinu}   begin    prestupna:=(g mod 4=0) and (g mod 100<>0) or (g mod 400=0);   end;  var d,m,g,tr:integer;      dan,dd,i:integer;   begin    write('Unesite pocetni datum ');    readln(d,m,g);    write('Unesite trajnost bona u danima ');    readln(tr);    dan:=d+tr;    repeat     dd:=brdana[m];     if (m=2) and prestupna(g) then dd:=dd+1;     if dan>dd then        begin         dan:=dan-dd;         m:=m+1;         if m>12 then            begin             m:=1;             g:=g+1;            end;        end;      until dan<=dd;    writeln('Bon traje do ',dan,'.',m,'.',g);   end.

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

2. Napiši program koji učitava niz brojeva i taj niz uvećati za jedan (kao upišeš 12345, a ispiše 12346, 999 -> 1000 itd.)

 

Resenje

 

Program nizbrojeva;  var s:string;    i,n,c:integer;    begin     write('Unesite broj=>');     readln(s);     c:=1;i:=length(s);     while (c<>0) and(i>=1)do      begin       n:=(ord(s[i])-48)+c;       c:=n div 10;       s[i]:=chr((n mod 10)+48);       i:=i-1;      end;     if (i=0) and(c=1) then s:='1'+s;     writeln('Uvecan niz je ',s);    end.

Poruka je uređivana zadnji put sri 13.4.2011 22:27 (flin).
 
3 0 hvala 1
13 godina
neaktivan
offline
Pascal: školski zadaci

3. Napiši program koji učitava niz i prihvaća ga ako ima više od 5 znakova, nema razmaka, ima barem jednu brojku, barem jedno slovo

 

Resenje

 

Program provera; var s:string;     i,brcif,brsl,brrazm,duzina:integer;     prihvatase:boolean;     begin      write('Unesite niz ');      readln(s);      duzina:=0;      for i:=1 to length(s) do       begin        if (s[i]>=#48) and(s[i]<=#57) then            brcif:=brcif+1;        if (Upcase(s[i])>='A') and(Upcase(s[i])<='Z') then            brsl:=brsl+1;        if s[i]=' ' then brrazm:=brrazm+1          else duzina:=duzina+1;       end;      prihvatase:=(brcif>0)and(brsl>0)and(brrazm=0)and(duzina>5);      if prihvatase then        writeln('Niz ',s,' se prihvata!')        else        writeln('Niz ',s,' se ne prihvata!'); end.


 
1 0 hvala 1
14 godina
neaktivan
offline
Re: Pascal: školski zadaci

2. Napiši program koji učitava niz brojeva i taj niz uvećati za jedan (kao upišeš 12345, a ispiše 12346, 999 -> 1000 itd.)

mislim da je ovo rjesenje jednostavnije te se moze koristit cak iako ima vise od 255 brojeva u nizu

program niz;

var

   a:array[1..100] of char;

   x:char;

   i:integer;

   l:integer;

   b:boolean;

begin

l:=0;

read(x);

while (x in ['0'..'9']) do

   begin

   inc(l);

   a[l]:=x;

   read(x);

   end;

 

for i:=l downto 1 do

   if a[i]<>'9' then

     begin

     a[i]:=succ(a[i]);   {ispisuje sljedbenik po ascii tablici}

     break;          {izlazi iz petlje}

     end

   else a[i]:='0';

if a[1]='0' then write(1);

for i:=1 to l do write(a[i]);

end.

14 godina
neaktivan
offline
Pascal: školski zadaci

Hvala ekipa, puno ste mi pomogli {#}

 
1 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice