Uspio sam napraviti cijeli program prije pomoći.
Ponosan sam na sebe.
Ali svejedno hvala.
Uspio sam napraviti cijeli program prije pomoći.
Ponosan sam na sebe.
Ali svejedno hvala.
Imam još jedno pitanje.
Kako napisati npr. x na minus prvu u pascalu.
Ne želim da bude 1/x ,ima li neki drugi način ?
Imam još jedno pitanje.
Kako napisati npr. x na minus prvu u pascalu.
Mozda:
x^(-1)
Imam jedan zadatak.Treba napisati program koji upisuje niz od n brojeva pa kreira novi niz koji sadrži brojeve iz prvog niza(ako ima duplikata napiše samo jednoga).Znači niz od 1,2,2,4,4 treba ispisati 1,2,4.
Imam jedan zadatak.Treba napisati program koji upisuje niz od n brojeva pa kreira novi niz koji sadrži brojeve iz prvog niza(ako ima duplikata napiše samo jednoga).Znači niz od 1,2,2,4,4 treba ispisati 1,2,4.
Pa disi zapeo, ne očekuješ valjda da to netko umjesto tebe uradi?
Imam još jedno pitanje.
Kako napisati npr. x na minus prvu u pascalu.
Mozda:
x^(-1)
1/X
Imam još jedno pitanje.
Kako napisati npr. x na minus prvu u pascalu.
Mozda:
x^(-1)
1/X
Inace, 1/X je i sam dokucio, pa je trazio alternativno rjesenje:
Ne želim da bude 1/x ,ima li neki drugi način ?
Imam jedan zadatak.Treba napisati program koji upisuje niz od n brojeva pa kreira novi niz koji sadrži brojeve iz prvog niza(ako ima duplikata napiše samo jednoga).Znači niz od 1,2,2,4,4 treba ispisati 1,2,4.
Znaci, imas dva polja, u prvo se upisuju brojevi jedan po jedan, a prije nego broj upises u drugo, prodjes kroz drugo polje (od pocetka do kraja - a kraj je zadnje upisani broj u drugo polje) i pogledas ima li vec tog broja u polju. Ako nema, zapisujes broj u drugo polje, ako ima ne radis nista (odnosno "breakas" petlju za prolazak kroz drugo polje). I sve sam ti rekao. Probaj malo sam dokuciti takve stvari - ovo nisu teske stvari.
Joj da,uopće sam zaboravio na naredbu brake,kad napišem stavim gore.
Inace, 1/X je i sam dokucio, pa je trazio alternativno rjesenje:
Eh, da je bilo pogledati post iznad :)
pow(x, -1)
Inace, 1/X je i sam dokucio, pa je trazio alternativno rjesenje:
Eh, da je bilo pogledati post iznad :)
pow(x, -1)
U kojem je to Pascalu i u kojoj jedinici se nalazi ta funkcija?
Edit: U Free Pascalu postoji funkcija power, koja se nalazi u biblioteci math. Vidim da u njemu ne funkcionira operator ^ - sad se vise ne sjecam kako je bilo u Turbo Pascalu - nekako mi je ostalo u sjecanju da sam u TP-u upotrebljavao upravo ovaj operator. Mozda sam doduse to pokupio odnekud drugdje. Taj operator ne funkcionira ni u Delphiju. Nemam trenutno instaliran Turbo Pasca, a ne znam u cemu ekipa radi.
Operator ^ se koristi za stepenovanje u Basic-u.
Imam jedan zadatak.Treba napisati program koji upisuje niz od n brojeva pa kreira novi niz koji sadrži brojeve iz prvog niza(ako ima duplikata napiše samo jednoga).Znači niz od 1,2,2,4,4 treba ispisati 1,2,4.
Evo resenja. Radi 100% u Borland Pascalu
Program zad1;
{uses wincrt;}
var niz1,niz2:array[1..100] of integer;
i,j,br,n:integer;nadjen:boolean;
begin
readln(n);
for i:=1 to n do
read(niz1[i]);
br:=0;
for i:=1 to n do
begin
nadjen:=false;
j:=1;
while not nadjen and (j<=br) do
begin
if niz1[i]=niz2[j] then nadjen:=true;
j:=j+1;
end;
if not nadjen then
begin
br:=br+1;
niz2[br]:=niz1[i];
end;
end;
writeln('Novi niz:');
for i:=1 to br do
writeln(niz2[i]);
end.
Da se kompajlirati i pokrenuti, a sad... Daj ti nekome taj program (izvrshnu datoteku) pa nek ga koristi! Nece znati sto mora upisati! Dakle, prije nego trazis upis neke vrijednosti, UVIJEK napises sto od korisnika programa trazis!
Ne znam je li ti editor zeznuo indentaciju (razmake s lijeve strane) - ako nije, onda si kod pogresno indentirao - ispada ko da se druga for-petlja vrti unutar prve, sto nije slucaj. Ako ti je zeznuo indentaciju, onda ignoriraj ovaj komentar. Medjutim, obrati paznju i na razmake medju redovima - iza
for i:=1 to n do
read(niz1[i]);
trebao si staviti red razmaka (zapravo i ispred) - da se jasno vidi da se u toj petlji vrti samo jedna naredba i da petlju vizualno odvojis od programa. Osobno bih sve to napisao u jednoj liniji i stavio razmak prije i poslije linije.
Ovo:
while not nadjen and (j<=br) do
begin
if niz1[i]=niz2[j] then nadjen:=true;
j:=j+1;
end;
je zgodan nacin za prekidanje petlje, umjesto koristenja for-petlje i break (iako bih se odlucio za ovo drugo - nekako mi je, kad znam do kojeg broja ce se petlja vrtjeti, prirodnije koristiti naredbu for, dok while mi je prirodnije koristiti kad ne znam koliko ima elemenata ili cega vec, odnosno ne znam koliko /maksimalno/ iteracija ima).
Samo bih spomenuo to da Pascal ima funkciju za iteriranje - Inc. Znaci, j:=j+1 moze se zamijeniti naredbom Inc(j). Iako, bas sam sad probao na primjeru Free Pascal Compilera - nema razlike (barem u slucaju tog kompajlera) u izvrshnom kodu - dakle, FPC sam naredbu j:=j+1 optimizira u Inc(j) - dakle, nesto sto se u C/C++-like jezicima pise j++.
Operator ^ se koristi za stepenovanje u Basic-u.
Onda mi je to valjda iz QBasica ostalo. Operator ^ se u Pascalu koristi za dohvat vrijednosti pokazivaca.
Može li mi netko reći je li dobar ovaj program i što bi trebalo popraviti?
Znači treba provjeriti je li polumjer >0 i onda korisnik treba izabrati želi li izračunati volumen ili oplošje kugle.
program zadatak3;
Uses Crt;
var polumjer,volumen,oplosje:real;
izbor:integer;
begin
ClrScr;
TextColor(13);
Write('Unesite polumjer kugle r ');
ReadLn(polumjer);
If polumjer>0 then begin
volumen:=4/3*sqr(polumjer)*polumjer*pi;
oplosje:=4*sqr(polumjer)*pi;
TextColor(Yellow);
WriteLn('Želite li izračunati volumen ili oplošje kugle?');
TextColor(Green);
WriteLn('-Pretisnite broj 1 za volumen');
Writeln('-Pretisnite broj 2 za oplošje');
ReadLn(izbor);
Case izbor of
1:begin
TextColor(6);
WriteLn('Volumen kugle polumjera ',polumjer:2:2,' jest ',volumen:2:2);
end;
2:begin
TextColor(9);
WriteLn('Oplošje kugle polumjera ',polumjer:2:2,' jest ',oplosje:2:2);
end;
else begin
TextColor(Red);
WriteLn('Pogrješka!');
end;
end;
end
else
WriteLn('Polumjer mora biti veći od nule!');
ReadLn;
end.
Na prvi pogled izgleda OK, ako ignoriramo indentaciju (uvucenost redova, tj. razmak s lijeve strane), koja je pogresna (ako si je ti pisao - dakle, ako ti ju forumski editor teksta nije zeznuo).
Jedino se postavlja pitanje treba li program izracunavati i oplosje ako se trazi samo volumen, odnosno treba li izracunavati i volumen kad se trazi samo oplosje. Dakle, to racunanje bi mogao premjestiti taman prije ispisa volumena/oplosja.
Doduse, bilo bi dobro da promijenis "Pretisnite" u "Upišite", s obzirom da nije dovoljno pritisnuti brojku da bi program nastavio s radom, nego treba pritisnuti i tipku Enter. I, naravno, postavlja se pitanje zasto bi program ispisao poruku o greški te zavrsio s radom ako je korisnik slučajno upisao krivi broj - tu si mogao staviti neka ti 1 i 2 budu za računanje volumena, odnosno oplošja, a recimo 0 za izlaz iz programa, pa sve to vrtjeti u petlji dok korisnik ne upiše 0. Recimo korisnik možda nakon što je izračunao oplošje želi izračunati i volumen - a u tvom programu to ne može učiniti.
Ali kažem - program izgleda OK, ove napomene su tu da znaš kako bi program trebao izgledati, a da mu se nema što previše za prigovoriti.
Edit: A to izbacuje li ti program dobre vrijednosti ili ne - to bi sam trebao provjeriti i ti bi nama trebao reći računa li ispravno ili ne. To možeš (i moraš!) provjeriti upisivanjem nekoliko vrijednosti i onda to usporediš s rezultatima koje si dobio recimo računajući na papiru ili uz pomoć kalkulatora.
Usput rečeno, za one koji muku muče s oblikovanjem izvornog koda (indentacijom, razmacima i sl.), postoji programčić koji će to napraviti za vas: http://content.alterra.wur.nl/webdocs/internet/aew/downloads/DelFor.zip
Pa bi bilo dobro tu i tamo proći ovim programom po svojoj .pas datoteci i usporediti kako ste vi oblikovali izvorni kod, a kako ga je oblikovao taj program.
Takodjer, ovdje je dobar clanak koji opisuje kako imenovati varijable, funkcije i dr.: http://edn.embarcadero.com/article/10280
Trebam napraviti ovakav program:
Napišite program kojim će se učitati dva realna broja i izračunati njihova suma.
Za oznaku kraja uzeti nulu.
Treba koristiti while petlju.
Ne razumijem zašto bi uopće koristio while petlju.Što znači ovo za oznaku kraja uzeti nulu.
Pretpostavljam da se to misli da vrtiš petlju u kojoj se traži unos dva broja sve dok prvi (ili bilokoji) nije jednak nuli - tada se prekida petlja i izlazi iz programa. Nije mi baš jasno zbog čega postavljavljaju takve nejasno sročene zadatke.
Pretpostavljam da se to misli da vrtiš petlju u kojoj se traži unos dva broja sve dok prvi (ili bilokoji) nije jednak nuli - tada se prekida petlja i izlazi iz programa. Nije mi baš jasno zbog čega postavljavljaju takve nejasno sročene zadatke.
Možeš li napisati takav program?
Evo ti.
program prvi;var x,s:real;beginwriteln('Upisivaj brojeve');readln(x);s:=x;while x <> 0 do begin readln(x); s:=s+x; end;writeln('Suma je ',s:6:2);readln;end.
Evo ti u C-u:
#include <stdio.h>
#include <conio.h>
int main()
{ int x, suma=0;
do
{
printf("\n Unesi broj");
scanf("%d",&x);
suma+=x;
}while(x!=0);
printf("\n Suma je %d",suma);
getch();
return 0;
}
Evo ti u C-u:
#include <stdio.h>
#include <conio.h>
int main()
{ int x, suma=0;
do
{
printf("\n Unesi broj");
scanf("%d",&x);
suma+=x;
}while(x!=0);
printf("\n Suma je %d",suma);
getch();
return 0;
}
Ovo je samo za Pascal. Za C i C++ je druga tema...
Evo ti u C-u:
...
Ovo je samo za Pascal. Za C i C++ je druga tema...
Tak je. Sad ću mu dati crveni karton! Šalu na stranu - da, tema je samo za Pacal, ali povremeno može zgodno ovo biti za vidjeti razlike i sličnosti između različitih programskih jezika. Na kraju krajeva, valjda više od 99% ovih koji sad uče Pascal kasnije više neće raditi u Pascalu, nego će ih većina raditi u nekom programskom jeziku sličnom C/C++-u (ili baš u C-u ili C++-u).
Pozdrav!!
Imam jedno pitanje, tj. više je molba!!
Dal postoji ovdje dobra duša, koja bi pomogla studentici izgubljenoj u pascalu???
Imam jedan ispit di se traži izrada programa preko pascala, ujedno i uz to odgovarajući dijagram toka, ili obrnuto!!
Problem je u tome, što sam se s tim prvi puta susrela na faksu, a nismo imali odgovarajuća predavanja vezana uz problem!!
Pa se mučim već dosta dugo s tim!!
E sad, tu se radi oko 10-tak zadataka!!! Pa ima li mi netko volju za pomoći!!! Šaljem sve potrebne materijale na PP!!
NAPOMENA: Zadnji mi je ispit!!!!!!!!!!
Hvala!!!!
Mozda da i sama probaš nešto napraviti? Da na forum nabaciš zadatke koji te muče, da napišeš što si riješila pa da ti pomognemo ispraviti i dopuniti programe? Realno gledajući nema smisla da ni netko iz dosade ide rješavat sve te zadatke.
Posalji zadatke na ovaj mail i ja cu ti uraditi za dan, dva. Pozdrav
Evo malo vježbam iz razonode u Pascalu, pa me zanima u čemu sam pogriješio.
program najvecibroj;
var a, b, c :integer;
begin
write('Upiši prvi broj: ');
readln(a);
write('Upiši drugi broj: ');
readln(b);
write('Upiši treći broj: ');
readln(c);
if a and b > c then if a > b
then writeln('Najmanji broj je ',c,' a največi broj je ',a)
else if a and b > c then if a < b
then writeln('Najmanji broj je ',c,' a največi broj je ',b);
if b and c > a then if c > b
then writeln('Najmanji broj je ',a,' a največi broj je ',c)
else if b and c > a then if c < b
then writeln('Najmanji broj je ',a,' a največi broj je ',b);
if a and c > b then if a > c
then writeln('Najmanji broj je ',b,' a največi broj je ',a)
else if a and c > b then if a < c
then writeln('Najmanji broj je ',b,' a največi broj je ',c);
readln;
end.
Problem je u tome što kada upišem kombinaciju brojeva 0, 6 i 33 bilo kojim redoslijedom, program ne izvrši zadaću tj. ništa se ne ispiše, nego samo prebaci u novi red, i onda se na enter ugasi. Također se isto događa kod kombinacije 0 7 32, 0 8 32, 0 9 32, 0 10 32...
Ne kužim u ćemu je problem. Za ostale kombinacije normalno radi...
Hvala