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

ti bas nista ne znas a?
slika je necitka, ali otprilike da si koristio dobar kod

n-ti fibonacijev broj dobija se kao zbir dva prethodna, n-1 i n-2
trebaju ti dve promenljive koje ce da cuvaju te vrednosti i petlja kojom ces da prodjes do n
u petlji imas i jedan ispis n-1 broja
dve promenljive podesi na pocetku na 1, pa u petlji sabiraj i premestaj
 
uraaa... resio sam...
hvala peruzzi...
mozda su moja pitanja glupa ali ja sam potpuni pocetnik u ovome, pa vas molim za razumevanje...
evo i koda...mozda nekom zatreba...

Kod:
program a;
var i, n, a, b, c:integer;
begin
    write('unesi neki broj: ');
    readln(n);
    a:=1;
    b:=1;
    c:=0;
      for i:= 1 to n do
      begin
        a:=b;
        b:=c;
        c:=a+b;
        write(c, ' ');
      end;
end.
 
Cabarkapina informatika za trecu godinu gimnazije, izdaje Krug, debela knjiga ljubicaste boje. Puna zadataka i ima dosta resenih primera

Isto tako dobra je i nesto starija verzija, za matematicke gimnazija Pascal I i Pascal II + Delphi. U drugoj su obradjeni pokazivaci i osnove dephija, ali mi se ne svidja to. Knjige su nesto tanje zuto-zelena i zuto-plava.

Obe su standardnog formata (25x17), prva ima skoro 200 strana a druge dve po stotinak, ako se dobro secam

Cena je negde oko 500 dinara i prodaju se kao skolski udzbenici u dosta skola

Najbolje sto kod nas trenutno moze da se nadje za pascal
 
Posto vidim da ste se raspisali o Pascal-u, pitam se da li bi neko hteo da mi napise program,
treba mi za skolu?:confused:
Treba mi program za rad sa jednodimenzionalnim nizovima(unos,stampanje,izracunavanje srednje vrednosti niza,odredjivanje najveceg i najmanjeg elementa,sortiranje u neopadajuci,u nerastuci,trazenje u nizu). Program nije tezak,ali nemam zivaca da ga pisem,predugacak je... Hoce neko da mi napise?:)
 
Ne znam da li sam vec poslala slicnu poruku, nesto mi je zakucao kompjuter. Posto vidim da ste jako zainteresovani za Pascal, da pisete programe, pitala sam se, i pitam sve vas, da li bi neko mogao da mi napise program, treba mi za skolu?:confused:
Treba mi program za rad se jednodimenzionalnim nizovima u Pascal-u (unos, stampanje, izracunavanje srednje vrednosti niza, odredjivanje najveceg i najmanjeg elementa, sortiranje u neopadajuci, u nerastuci, trazenje u nizu). Program je jako dugacak, a ja iskreno nisam neki maher za to... Pa ako nekog od vas ne mrzi, bila bih mu jako zahvalna...:) I ako je neko voljan da mi ucini tu uslugu, bilo bi mi mnogo zgodnije da mi posalje mail na malich.nina@gmail.com, posto mail proveravam relativno cesto,a na forum cu zaboraviti... Hvala...:)
 
ljudi pomalo sam napredovao...
ali jos uvek me maltretiraju petlje... e sad evo problema...

Kod:
program bla;
uses crt;
type nizslova=array[1..4] of char;
var slovo:nizslova;
    n1,n2,n3,n4:integer;
begin
    clrscr;
    write('unesi 4 slova: ');
    read(slovo[1],slovo[2],slovo[3],slovo[4]);
    for n1:=1 to 4 do
    begin
        for n2:=1 to 4 do
        begin
          if n2<>n1 then
          for n3:=1 to 4 do
          begin
               if n3<>n1 then
               if n3<>n2 then
               begin
               n4:=10-(n1+n2+n3);
               writeln(slovo[n1],' ',slovo[n2],' ',slovo[n3],' ',slovo[n4]);
               end;
          end;
        end;
    end;
    readkey;
end.

ovako stoje stvari...
nizove(1D,2D...) sam savladao(recimo)...
integeri n1,n2,n3,n4 su zamena za identifikatore niza... to sve mi je jasno...
e sad...
ako bi neko hteo da mi pomogne da shvatim ove ugradjene petlje
najlakse bi mi bilo da mi objasnite sta se desava iz kruga u krug...
posebno me zbunjuje n4:=10-(n1+n2+n3)
molim vas pomozite...
 
ljudi, pozdrav...

potrebna mi je pomoc...pravim program za administraciju troskova (ono infostan tel..i ostali troskovi)...

e ovdje me nesto ******...kaze da je potrebna ( , znam da program mozda ima nekih greski..al evo, neka neko iskusan pogleda...

evo citav program:

program mjesecnapotrosnja (input,output,potrosnja);

type
naziv=record
imerobe:string[50];
cjena:real;
end;

fiksni=record
struja:real;
infostan:real;
telefon:real;
internet:real;
end;
nizime=array [1..999] of naziv;
var
b:integer;
ime:naziv;
cena:naziv;
mj:string[20];

procedure ucitaj (var i:nizime; x:integer);
var
n,m,p,e,k,o:integer;
s:text;
begin
m:=1;

writeln(output,'unesite 1 za unos fiksnih troskova, za unos drugih troskova 2');
read (input,n);
if n=1 then
writeln (output,'unesite racun za struju:');
readln(input,fiksni.struja); <------------ovdje kaze da treba ( zagrada...
writeln(output,'unesite racun za infostan:');
readln(input,fiksni.infostan);
writeln(output,'unesite racun za internet:');
readln(input,fiskni.internet);
writeln(output,'unesite racun za fiksni telefon:');
readln(input,fiskni.telefon);
if n=2 then
writeln(output,'unesite kolicinu robe');
readln(input,k);
for o=1 to k do
writeln(output,'unesite naziv robe:');
readln(input,naziv[o].imerobe);
writeln(output,'nesite cijenu:')'
readln(input,naziv[o].cjena);
for i=1 or i=2 do
writeln(output,'za unos lokacije za datoteku kliknite 2, ako hocete da bude default
lokacija (C:\potrosnja.html) kliknite 1');
readln(input,p);
if p=1 then
begin
assign (pot,'c:\potrosnja.html);
reset (pot);
end;
if p=2 then
begin
writeln(output,'unesite lokaciju datoteke: ');
readln(input,s);
assign(pot,s);
end;
end;

procedure ubaciudat(m:mj);
var
s,e,ie,ii:real;
begin
s:=fiksni.telefon+fiskni.internet+fiksni.infostan+fiksni.struja;
e:=s/80;
ii:=0;
for o:=1 to k do
ii:=ii+naziv[o].cijena;
ie:=ii/80;
writeln(pot,'Mjesec:',mj);
writeln(pot,'=================================================================');
writeln(pot,'fiksi troskovi')'
writeln(pot,'telefon= ',fiksni.telefon);
writeln(pot,'struja= ',fiksni.struja);
writeln(pot,'infostan= ',fiksni.infostan);
writeln(pot,'internet= ',fiksni.internet);
writeln(pot,'ukupno (u dinarima) = ',s);
writeln (pot,'ukupno (u evrima) = ',e);
writeln (pot,'=================================================================');
writeln(pot,'ostali troskovi');
writeln(pot,naziv[o].imerobe,' ',naziv[o].cijena );
writeln(pot,'ukupno (u dinarima) = ', ii);
writeln(pot,'ukupno (u evrima) = ',ie);
end;
procedure pregled;
var
p:integer;
begin
writeln (output,'fiksni troskovi');
writeln (output,fiksni.telefon);
writeln (output,fiksni.infostan);
writeln(output,'fiksni.internet);
writeln(output,'fiskni.struja);
wrtiteln(output,'=========================================');
writeln(output,'ostali troskovi ');
writeln(output,'naziv[o].imerobe,' ',naziv[o].cijena);
end;
end;
begin
writeln(output,'za pregled kliknite 1, za unos 2');
readln(input,b);
if b=1 then
pregled;
if b=2 then
writeln(output,'za unos mjeseca klikinte 1, ako ste ve unjeli mjesec kliknite 2');
if e=1 then
begin
writeln(output,'unesite mjesec');
readln (input,mj);
end;
ucitaj (i,k);
ubaciudat(mj);
end.

molim za bilo koju pomoc...


hvala
 
iskusni... mozda ti ovaj moj code pomogne...
prouci i doradi sta ti treba...

Kod:
[color=blue]
program mjesecnapotrosnja;
uses crt;
label 1000;
type cenainfo=record
               struja:real;
               infostan:real;
               telefon:real;
               internet:real;
               end;
var  f:text;
     cena:cenainfo;
     imerobe:array[1..4] of string;
procedure pregled(var f:text);
    begin
        clrscr;
        writeln('----...pregled...-----');
        writeln;
        assign(f,'C:\potrosnja.txt');
        reset(f);
        with cena do
            begin
                readln(f,struja);
                readln(f,infostan);
                readln(f,telefon);
                readln(f,internet);
                writeln(imerobe[1],struja:0:2);
                writeln(imerobe[2],infostan:0:2);
                writeln(imerobe[3],telefon:0:2);
                writeln(imerobe[4],internet:0:2);
            end;
        writeln;
        write('pritisni enter za povratak u meni...');
        readln;
        close(f);
        goto 1000;
    end;
procedure noviunos(var f:text;cena:cenainfo);
    begin
        clrscr;
        writeln('----...unos...----');
        assign(f,'C:\potrosnja.txt');
        rewrite(f);
        with cena do
        begin
            write('struja: ');
            readln(struja);
            writeln(f,struja:0:2);
            write('infostan: ');
            readln(infostan);
            writeln(f,infostan:0:2);
            write('telefon: ');
            readln(telefon);
            writeln(f,telefon:0:2);
            write('internet: ');
            readln(internet);
            writeln(f,internet:0:2);

        end;
        close(f);
        goto 1000;
    end;
procedure obrisifajl;
    var yn:char;
    begin
        clrscr;
        writeln('----...brisanje...----');
        writeln;
        write('jeste li sigurni(y/n): ');
        repeat
        readln(yn);
        until (yn='y') or (yn='n');
        if yn='y' then erase(f);
        goto 1000;
        if yn='n' then goto 1000;
    end;
procedure meni;
    var izbor:integer;
    begin
        clrscr;
        writeln('----...meni...----');
        writeln('1. pregled stanja...');
        writeln('2. novi unos...');
        writeln('3. obrisi fajl...');
        writeln('4. izlaz...');
        writeln('-------------------');
        writeln;
        write('izaberi unosom broja: ');
        readln(izbor);
        case izbor of
        1:pregled(f);
        2:noviunos(f,cena);
        3:obrisifajl;
        4:exit;
        end;
    end;
begin
    textattr:=(15*16)+12;
    clrscr;
    imerobe[1]:='struja: ';
    imerobe[2]:='infostan: ';
    imerobe[3]:='telefon: ';
    imerobe[4]:='internet: ';
    1000:meni;
end.[/color]
 
Ako može pomoć, oko rekurzije.
Hteo sam (hteo!) da uradim Euklidov algoritam. Time se (ako neko ne zna) nalazi nzd dva broja:
uneta dva broja; veći se predstavi preko manjeg npr za 918 i 252
918=3*252+162
onda se manji broj (252) predstavlja preko ostatka (162): 252=1*162-90
i ponovo
162=1*90-72
i opet 72=90-18
i 72=18*4+0

Poslednji ostatak (18 ) je nzd.

To umem da napišem. E sada, problem je kada hoću da nzd predstavim kao linearnu kombinaciju ona prva dva broja. Bude -3*918+11*252=18. A to se dobija tako što se iz pretposlednje izvuče 18 pa se vraća odozgo u tu jednakost )umesto 72 ide 162-1*90 itd...
E problem je kako da od nađem -3 i 11! Ako neko ima ideju, neka pomogne!!!
 
A to se dobija tako što se iz pretposlednje izvuče 18 pa se vraća odozgo u tu jednakost )umesto 72 ide 162-1*90 itd...

918=3*252+162...(1)
onda se manji broj (252) predstavlja preko ostatka (162): 252=1*162+90...(2)
i ponovo
162=1*90+72...(3)
i opet 72=90-18...(4)
i 72=18*4+0

(4): 18=90-72. Iz(3) 72=162-90 pa 18=90-(162-90)=2*90-162
iz (2) 90=252-162 pa 18=2*(252-162)=2*252-3*162
iz (1) 162=918-3*252 pa je 18=2*252-3*(918-3*252)=11*252-3*918. tako se dolazi do -3 i 11.

treba da se vrti sa kolicnicima u celobrojnom deljenju u ove 4 date jne odozdo na gore... Mozda da nabodem kakva je veza izmedju tih kolicnika kada se dobiju brojevi na kraju...
 
Ako može pomoć, oko rekurzije.
Hteo sam (hteo!) da uradim Euklidov algoritam. Time se (ako neko ne zna) nalazi nzd dva broja:
uneta dva broja; veći se predstavi preko manjeg npr za 918 i 252
918=3*252+162
onda se manji broj (252) predstavlja preko ostatka (162): 252=1*162+90
i ponovo
162=1*90+72
i opet 72=90-18
i 72=18*4+0

Poslednji ostatak (18 ) je nzd.

To umem da napišem. E sada, problem je kada hoću da nzd predstavim kao linearnu kombinaciju ona prva dva broja. Bude -3*918+11*252=18. A to se dobija tako što se iz pretposlednje izvuče 18 pa se vraća odozgo u tu jednakost )umesto 72 ide 162-1*90 itd...
E problem je kako da od nađem -3 i 11! Ako neko ima ideju, neka pomogne!!!

zeznuo sam znak i ne vidim "izmeni" duglme na poruci :confused:
 

Back
Top