i ovaj ako iko zna
napisati program koji broji rijec u recenici?
i ovaj ako iko zna
napisati program koji broji rijec u recenici?
trebami urdjen zadatak sutra imam pisemnu
trebami urdjen zadatak sutra imam pisemnu
Koristi tipku uredi :D
napisati program koji broji broj rijeci u recenici
?
trebami urdjen zadatak sutra imam pisemnu
ja ne radim u pascalu, a što ti nije dosta tip da zadnju znamenku dobiješ sa broj%10 i preko if uvjeta provjeriš je li if(broj % 10 == 3),
ako jest povećaš sumu za taj broj suma += broj.
neznam dobro raditi u paskalu ako hoces da mi pomognes uradi mi zad molim te u paskalu ili neko drugi
program forum;var suma,n,zz,i,x:integer;beginwriteln('Upisi n');readln(n);writeln('Upisi brojeve');suma:=0;for i:=1 to n do begin readln(x); zz:=x mod 10; if zz = 3 then suma:=suma+x; end;writeln('Suma tih brojeva je ',suma);readln;end.
evo ti ga na, živ dokaz da nije bitan jezik, nego algoritam
kad čovjek zapne na algoritmu, to je vrijedno pomoći, kad neće da uz dani algoritam sam napiše sintaksu
bome to nije
evo ako ima koja dobra dusa da mi pomogne sa zadatkom:
izracunati determinantu matrice reda 3 i ako je determinanta razlicita od nule ispisati inverznu matricu
ako vam je inverzna problem, zadovoljit cu se i s prvim dijelom zadatka :D
LINK ZA DETERMINANTU - nije baš bilo teško doć do formule, jel da?
LINK ZA INVERZ - a nije ni to bilo teško, također imaš formulom danu inverznu matricu od 3x3 matrice
LINK ZA DETERMINANTU - nije baš bilo teško doć do formule, jel da?
LINK ZA INVERZ - a nije ni to bilo teško, također imaš formulom danu inverznu matricu od 3x3 matrice
mislis da nisam to vec nasao?
zanima me algoritam, najmanji je problem na zdravo seljacki rjesit tako da unesem tocno odredjene elemente matrice. osim toga, sta kada bi matrica bila reda n?
Kad bi matrica bila reda n onda bi imao jako puno posla jer ne postoji formula za to.
Koliko vidim trebaš unesti matricu reda 3, dakle unest ćeš njezinih 9 elemenata i ono kaj trebaš je ukucat formulu za determinantu. Ako te zanima kako se do nje dođe, rado ću ti pomoći.
Određivanje inverza općenite matrice je jako skup posao za radit na računalu, al i tu imaš sreću što je samo 3x3 matrica pa imaš jednostavan postupak koji je opisan na wikipediji.
S matricama reda n ima jako puno posla i nije nimalo trivijalan problem, što sa matematičke strane, što sa strane računa u računalu
ma znam matematicku pozadinu, samo sam se nadao da ima nekakav algoritam umjesto da samo ukucam formulu. mozes mi pomoci onda sa inverznom matricom? kazem, znam to sve rucno odraditi, ali muci me implementacija
ma znam matematicku pozadinu, samo sam se nadao da ima nekakav algoritam umjesto da samo ukucam formulu. mozes mi pomoci onda sa inverznom matricom? kazem, znam to sve rucno odraditi, ali muci me implementacija
Za inverznu, samo trebaš ove A,B,C itd sa wikipedije izračunat. Kako su ti koeficijenti matrice u polju, vjerojatno možeš te varijable popunit kroz jednu petlju, to bi trebalo proučit. Brute force napravi 9 varijabli , izračunaj ih i potrpaj u matricu.
ok, probam tako. hvala ^^
A gledaj... Zar ti je stvarno takav problem recimo napisati funkciju koja će ti iscrtati uzdignuti gumbić i napisati tekst na njemu? Moraš nacrati jedan puni sivi pravokutnik, ispisati tekst, a na lijevom i gornjem bridu povući dvije bijele linije debele 1 pixel, dok na donjem i desnom rubu povučeš tamnosive linije.
molim vas pomoc treba mi ovo hitno a ne znam rijesiti ni prvi zadatak,moooooooolim vas tko ovo riješi biti cu mu dozivotno zahvalan
1.Napiši program koji za 7 osoba upisuje ime i broj postignutih bodova na ispitu(0-100)
a)ispisuje imena osoba koje su imale manje od 30 bodova
b)ispisuje ime osobe koja je postigla najviše bodova na ispitu
c)ispisuje postignute bodove od najvećih prema najmanjim
evo kod nekako mi ne ispada tocno pa ako bi netko mogao pogledati kod pa ispraviti
program Untitled;
uses crt;
var ime:array[1..7] of string;
bod:array[1..7] of integer;
i,j,brmax,p:integer;
begin
clrscr;
writeln('upisi imena, pa bodove za osobe:');
for i:=1 to 7 do begin
readln(ime[i]);
readln(bod[i]);
end;
writeln('osobe koje su imale manje od trideset bodova su:');
for i:=1 to 7 do if bod[i]<30 then write(ime[i],' ');
writeln;
writeln('po redu su:');
for i:=1 to 6 do begin
brmax:=i;
for j:=i+1 to 7 do if bod[j]>bod[brmax] then brmax:=j;
p:=bod[brmax];
bod[brmax]:=bod[i];
bod[i]:=p;
end;
for i:=1 to 7 do writeln(bod[i]);
readln
end.
pretežito me zanima kako napraviti pod b
pretežito me zanima kako napraviti pod b
Čemu ti služi varijabla brmax? Koliko vidim, nisi je ni jedan jedini put upotrijebio. Zar bod[brmax] nije najveći broj bodova? Zar ime[brmax] nije ime onog s najvećim brojem bodova?
Glede c - sortiraš polja i to je to. Evo, recimo primjer s neta:
FOR i := size - 1 DOWNTO 1 DO
FOR j := 1 TO i DO
IF arr[j] > arr[j + 1] THEN BEGIN
tmp := arr[j];
arr[j] := arr[j + 1];
arr[j + 1] := tmp;
END;
Naravno, s obzirom da imaš dva polja, ti bi na isti način istovremeno morao sortirati dva polja pa bi imaš nešto tipa:
FOR i := size - 1 DOWNTO 1 DO
FOR j := 1 TO i DO
IF arr[j] > bod[j + 1] THEN BEGIN
tmp := bod[j];
arr[j] := bod[j + 1];
arr[j + 1] := tmp;
tmpime := ime[j];
ime[j] := ime[j + 1];
ime[j + 1] := tmpime;
END;
A osim toga - ako ti po točki tri sortiraš polje, onda ni ne trebaš posebno tražiti maksimalni (ili minimalni) broj, odnosno ime, pošto su ti u sortiranom polju maksimalna ili minimalna vrijednost prvi, odnosno zadnji element polja.
I još jedna napomena - ako ste učili recorde, onda ti nema smisla imati dva polja (jedno polje integera, a drugo polje stringova), nego imaš lijepo jedno polje zapisa, koji u sebi sadrže članove brojbodova: Integer i ime:String. To je zapravo pravilno rješenje - nema smisla vući kroz program dva međusobno zavisna polja.
Resenje bez slogova
Program zad1;
uses wincrt;
var ime:array[1..7] of string;
bodovi:array[1..7] of integer;
i,j,n:integer;
p:string;
begin
writeln('Unesite ime i bodove:');
for i:=1 to 7 do
begin
readln(ime[i]);
readln(bodovi[i]);
end;
writeln('osobe koje su imale manje od trideset bodova su:');
for i:=1 to 7 do
if bodovi[i]<30 then writeln(ime[i],' ',bodovi[i]);
writeln;
for i:=1 to 6 do
for j:=i+1 to 7 do
if bodovi[i]<bodovi[j] then
begin
n:=bodovi[i];p:=ime[i];
bodovi[i]:=bodovi[j];ime[i]:=ime[j];
bodovi[j]:=n;ime[j]:=p;
end;
writeln('osoba sa najvise bodova je ',ime[1]);
writeln('Po broju bodova u opadajuci niz:');
for i:=1 to 7 do
writeln(ime[i],bodovi[i]:5);
end.
Zadatak uradjen sa slogovima
Program zad1;
uses wincrt;
type osoba=record
ime:string;
bodovi:integer;
end;
var a:array[1..7] of osoba;
i,j:integer;
p:osoba;
begin
writeln('Unesite imena osoba i bodove:');
for i:=1 to 7 do
begin
readln(a[i].ime);
readln(a[i].bodovi);
end;
writeln('Osobe koje imaju manje od 30 bodova:');
for i:=1 to 7 do
if a[i].bodovi<30 then writeln(a[i].ime,a[i].bodovi:5);
for i:=1 to 6 do
for j:=i+1 to 7 do
if a[i].bodovi<a[j].bodovi then
begin
p:=a[i];
a[i]:=a[j];
a[j]:=p;
end;
writeln('Osoba sa najvise bodova je ',a[1].ime);
writeln('Spisak uredjen po vrednosti bodova:');
for i:=1 to 7 do
writeln(a[i].ime,a[i].bodovi:5);
end.
Da ne duljim, ovdje je cijeli program.
Meni je potrebno u ovoj proceduri napraviti "sigurnost", tako da ako upišem slova, a ne brojeve, program izbaci grješku, a ne samo izađe iz Pascal-a.
U toj proceduri ja upisujem npr. 94,91,92,93, znači godišta učenika.
Procedure sedma ( var god : niz; zele:integer);
var i :integer;
begin
writeln('Upišite godišta za ',zele,' učenika.');
for i := 1 to zele do begin
readln(god[i]);
end;
for i := 1 to zele do begin
write(i:2);
writeln(god[i]:5);
end;
readln;
end;
Ne znam kako to napraviti. Ako netko zna, neka posta. Jednostavno nemam ideju.
Ako ti kompajler nema konstrukcije za error handling (recimo Delphi ima try..finally..end ili try..except..end - ne znam u kojem Pascalu radiš i ima li takve konstrukcije - recimo i Free Pascal bi trebao imati, dok Turbo Pascal, ako se dobro sjećam, nema), onda to moraš zaobilaznim putem - imašovdje primjer. Svodi se na to da učitaš string kojeg potom pretvaraš u broj.
Ako ti kompajler nema konstrukcije za error handling (recimo Delphi ima try..finally..end ili try..except..end - ne znam u kojem Pascalu radiš i ima li takve konstrukcije - recimo i Free Pascal bi trebao imati, dok Turbo Pascal, ako se dobro sjećam, nema), onda to moraš zaobilaznim putem - imašovdje primjer. Svodi se na to da učitaš string kojeg potom pretvaraš u broj.
U tome je problem, to treba BEZ korištenja stringa.
Znaš li drugačije rješenje?
Znaš li drugačije rješenje?
Drugačije rješenje u kom smislu? Ako ćeš učitavati integer podatke pomoću ReadLn-a onda je to to - kod upisivanja nečeg što nije broj dolazi do run-time greške i rušenja programa. Možeš provjeru run-time greški isključiti direktivom za kompajler {$I+}, možeš zatvoriti unose u try..except i try..finally blokove i to je to. Ili možeš pokušati s nekom drugom metodom unosa. A koliko mi je poznato, Pascal baš i nema neke posebne metode za unos - Read, ReadLn, možda ReadKey. Pa sad ti vidi. Ne kužim što očekuješ - da ti se ne bi program rušio ili moraš učitati string pa ga očistiti ili provjeriti od ne-znamenki ili moraš učitavati znak po znak pa gledati je li to znamenka.
Znaš li drugačije rješenje?
Drugačije rješenje u kom smislu? Ako ćeš učitavati integer podatke pomoću ReadLn-a onda je to to - kod upisivanja nečeg što nije broj dolazi do run-time greške i rušenja programa. Možeš provjeru run-time greški isključiti direktivom za kompajler {$I+}, možeš zatvoriti unose u try..except i try..finally blokove i to je to. Ili možeš pokušati s nekom drugom metodom unosa. A koliko mi je poznato, Pascal baš i nema neke posebne metode za unos - Read, ReadLn, možda ReadKey. Pa sad ti vidi. Ne kužim što očekuješ - da ti se ne bi program rušio ili moraš učitati string pa ga očistiti ili provjeriti od ne-znamenki ili moraš učitavati znak po znak pa gledati je li to znamenka.
Moram u priloženoj proceduri ograničiti učitavanje godišta učenika smao na brojeve - dakle, ako slučajno netko upiše slova, da se Pascal ne sruši, već da izbaci nešto tipa 'Krivi unos. Unesite broj, a ne slova.'
Dal' možeš to napravit' u proceduri koju sam priložio na prethodnoj stranici?