PASCAL-problemy
Re: PASCAL-problemy
Ak uz ti ide Int64 a ak ti postacuju kladne cisla, tak mozes vyskusat QWord. Rozsahovo je to Unsigned (neznamienkovy) Int64, takze do minusu sa nikdy nedostanes a ziskas 2x vacsi rozsah.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: PASCAL-problemy
ty chceš prevádzať v pascale 11 ciferné čísla do dvojkovej sústavy? Vieš mi objasniť k čomu ti treba a prečo si si na to zvolil práve pascal? Niekedy totiž treba zastaviť, a zamyslieť sa či to čo robíš má zmysel a či ideš správnou cestou namiesto toho, aby si slepo skúšal vyriešiť každý problém.
Re: PASCAL-problemy
Presne toto ma napadalo. Program mi bol zadaný na hodine informatiky a rozsah nebol nejako určený. No program som začal robiť doma a chcel som ho urobiť čo najlepšie. Takže jasne že postačí aj menší rozsah, čitak pri prezentácii v škole to budem zase hodiť do longint pretože tie verzie pascalu nebudú poznať int64 alebo QWord.audiotrack napísal:ty chceš prevádzať v pascale 11 ciferné čísla do dvojkovej sústavy? Vieš mi objasniť k čomu ti treba a prečo si si na to zvolil práve pascal? Niekedy totiž treba zastaviť, a zamyslieť sa či to čo robíš má zmysel a či ideš správnou cestou namiesto toho, aby si slepo skúšal vyriešiť každý problém.
Ešte všetkým raz ďakujem....problém považujte za vyriešený
-
94jakub
Guru wannabe
- Príspevky: 2037
- Registrovaný: 15 dec 2006, 13:18
- Bydlisko: Martin/BA
- Kontaktovať používateľa:
Re: PASCAL-problemy
Audiotrack: problém je, že to takto často učia v škole. Možno ťa tam naučia napísať program no zamyslieť sa nad tým a porozmýšľať čo by sa dalo zlepšiť, to už moc nie.
Píšem o informatike na strednej škole (s tým mám momentálne skúsenosti)
A druhá vec je, že si moc vyberať nemôžeš takže ti zostáva len pascal.
BTW myslím, že by určite stačil aj integer keď je to školský prìklad.
Píšem o informatike na strednej škole (s tým mám momentálne skúsenosti)
A druhá vec je, že si moc vyberať nemôžeš takže ti zostáva len pascal.
BTW myslím, že by určite stačil aj integer keď je to školský prìklad.
Re: PASCAL-problemy
Dobrý,
nechcel som zakladať novú tému tak píšem sem.
V turbo pascale 5.5 programujem náhodné naplnenie matice a jej transponovanie. Ale vyhadzuje mi dosť blbú chybu.Neviem čo s tým. Na nete všade píšu taký istý tvar a mne to nejde
. Poraďte mi prosím.
Maticu mám definovanú takto :
type maticaA = array[1..150] of array [1..150] of integer;
ďalej v programe keď ju plním hodnotami pomocou random mi píše chybu v tomto výraze :
maticaA[i,j] := ...
Chybu píše ako že mi tam chýbajú () ale keď ich tam dám tak :
maticaA([i,j]) := ... Invalid type cast.
Ja netuším čo s tým ...
nechcel som zakladať novú tému tak píšem sem.
V turbo pascale 5.5 programujem náhodné naplnenie matice a jej transponovanie. Ale vyhadzuje mi dosť blbú chybu.Neviem čo s tým. Na nete všade píšu taký istý tvar a mne to nejde
Maticu mám definovanú takto :
type maticaA = array[1..150] of array [1..150] of integer;
ďalej v programe keď ju plním hodnotami pomocou random mi píše chybu v tomto výraze :
maticaA[i,j] := ...
Chybu píše ako že mi tam chýbajú () ale keď ich tam dám tak :
maticaA([i,j]) := ... Invalid type cast.
Ja netuším čo s tým ...
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: PASCAL-problemy
type maticaA = array[1..150,1..150] of integer
az potom budes moct pristupovat ako maticaA[x,y]
teraz by ti to malo ist ak by si pristupovat maticaA[x][y]
az potom budes moct pristupovat ako maticaA[x,y]
teraz by ti to malo ist ak by si pristupovat maticaA[x][y]
Re: PASCAL-problemy
ďakujem za tip. nepomohlo. Kašlem na to. Napísal som to celé ale nemám odskúšané. Ak by sa náhodou našla nejaká dobrá duša, ktorá by to odskúšala ...
Kód: Vybrať všetko
program matice;
uses crt;
var s,r,i,j:integer; {s je pocet stlpcov, r je pocet riadkov}
type A=array[1..150,1..150] of integer; { }
B=array[1..150,1..150] of integer; { matice }
procedure naplnenie_matice;
begin
randomize;
for i:=1 to s do
for j:= 1 to r do
A[i,j]:= random(256);
end;
end;
end;
procedure transponacia_matice;
begin
for i:= 1 to s do
for j:= 1 to r do
B[j,i]:=A[i,j];
end;
end;
end;
BEGIN { hlavny program }
write('Program naplni maticu nahodnzmi cislami a vypise');
writeln('povodnu maticu a aj transponovanu maticu');
writeln(' BY Fake Man ');
writeln('Premenne musia byt mensie ako cislo 151');
clrscr;
writeln('Zadaj pocet stlpcov a stlac Enter'); readln(s);
writeln('Zadaj pocet riadkov a stalc Enter'); readln(r);
naplnenie_matice;
transponacia_matice;
write('Povodna matica je ',A, ' a transponovana je ',B);
write('Pre skoncenie stlac Enter');
readln;
end.-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: PASCAL-problemy
no logickych chyb tam mas plnu rit, tie syntakticke ale nevidim (daaaaavno som nerobil s pascalom)
1. transponaciu robis na kkt
2. vypisovanie musi byt tiez v cykle
1. transponaciu robis na kkt
2. vypisovanie musi byt tiez v cykle
Re: PASCAL-problemy
Tu je preskúšaný program. Možno sa niekomu zíde .... Ďakujem za rady.
Kód: Vybrať všetko
program matice;
uses crt;
type matica=array [1..20,1..20] of integer;
var s,r,i,j,x,y:integer;
var A,B : matica ;
procedure naplnenie_matice;
begin
randomize;
for i:=1 to s do
for j:= 1 to r do
A[j,i]:= random(256);
end;
procedure transponacia_matice;
begin
for i:= 1 to r do
for j:= 1 to s do
begin
B[j,i]:=A[i,j];
end;
end;
procedure vypis_matice(A:matica);
begin
for i:=1 to x do
begin
writeln;
for j:= 1 to y do
write(' ',A[i,j]);
end;
end;
BEGIN { hlavny program }
clrscr;
writeln(' By Fake Man');
writeln('Premenne musia byt mensie ako 21');
writeln('Zadaj pocet stlpcov a stlac Enter'); readln(s);
writeln('Zadaj pocet riadkov a stalc Enter'); readln(r);
naplnenie_matice;
x:=r; y:=s;
vypis_matice(A);
writeln;
transponacia_matice;
x:=s; ;y:=r;
vypis_matice(B);
writeln;
writeln('Pre skoncenie stlac Enter');
readln;
end.Re: PASCAL-problemy
Caute, potrebujem pomoc. Zacal som si trochu opakovat pascal a snazim sa spravit takuto ulohu:
Vymyslete program, který vás vyzve k zadání informace o osobě a zadávat budete: Jméno, věk, výšku. To samozřejmě vyřešíte pomocí záznamu, program ovšem bude chtít zadat šest osob a poté také všechny pěkně pod sebe vypsat.
Tu je zdrojak, niekde robim chybu lebo to nejde spustit.
Vymyslete program, který vás vyzve k zadání informace o osobě a zadávat budete: Jméno, věk, výšku. To samozřejmě vyřešíte pomocí záznamu, program ovšem bude chtít zadat šest osob a poté také všechny pěkně pod sebe vypsat.
Tu je zdrojak, niekde robim chybu lebo to nejde spustit.
Kód: Vybrať všetko
program ludze;
uses crt;
type osoba=record
meno:string;
vek,vyska:integer;
end;
var clovek:osoba;
ludia:array[1..6] of osoba;
i:integer;
begin
clrscr;
for i:=1 to 6 do with ludia[i] do
begin
writeln('Zadaj meno');
readln(clovek.meno);
writeln('Zadaj vek');
readln(clovek.vek);
writeln('Zadaj vysku');
readln(clovek.vyska);
end;
for i:=1 to 6 do writeln(ludia[i]);
readln;
end.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: PASCAL-problemy
"nejde spustiť". Čo to znamená? Akú chybu a kde píše?
Re: PASCAL-problemy
Nemyslim si ze je spravne vypisovat cely record. Vypis po jednom kazdy prvok z tvojho recordu.
-
mirak2
Hardcore addict
- Príspevky: 6719
- Registrovaný: 18 sep 2005, 13:44
- Bydlisko: Prague, CZE / Kosice, SVK
Re: PASCAL-problemy
inac povedane urob si procedurku vypiscloveka s parametrom clovek a v nej vypis udaje o cloveku nejak rozumne...tuto proceduru uz potom len zavolaj v tom poslednom fore
Re: PASCAL-problemy
pre Ziegel: Ma to fungovat asi takto?
Co sa tika mena, veku a vysky tak som ich dal ako
A potom som dal cykli na zapis a vypis
Co sa tika mena, veku a vysky tak som ich dal ako
Kód: Vybrať všetko
var meno,vek,vyska:array[1..6] of string;- Prílohy
-
- vypismena.rar
- (15.15 KiB) 16 stiahnutí
Re: PASCAL-problemy
To co si tu poslal, absolutne neriesi jeho problem, len ho absolutne obchadza a celkovo nespravne. Prave na to aby sa nemuselo pouzivat niekolko poli, na ukladanie kazdej informacie zvlast, pricom tieto informacie spolu suvisia, tak bol vytvoreny prave record, alebo struct, alebo nazvy si to ako chces, zalezi v akom jazyku robis. Tvoje riesenie je smiesne a hodne mozno tak niekoho, kto z programovania (pripadne teraz povedane pascalu) neovlada este tolko aby mohol davat rady. Tvoje riesenie len uci inych ludi, riesit veci nespravne. Keby si chcel ku kazdej osobe ukladat 20 roznych informacii o niecom, spravil by si si 20 poli? 
Re: PASCAL-problemy
Spravil som si tu proceduru, ale neviem vypisat vsetky prvky toho pola, vypisuje mi furt len to iste
Skusal som dat to posledne for este takto:
ale to mi nevypisalo nic. Asi som uz uplny dement nemysliaci, please help 
Kód: Vybrať všetko
program ludze;
uses crt;
type osoba=record
meno:string;
vek,vyska:integer;
end;
var clovek:osoba;
ludia:array[1..6] of osoba;
i:integer;
procedure vypiscloveka(clovek:osoba);
begin
writeln('Meno: ',clovek.meno);
writeln('Vek: ',clovek.vek);
writeln('Vyska: ',clovek.vyska);
writeln;
end;
begin
clrscr;
for i:=1 to 6 do with ludia[i] do
begin
writeln('Zadaj meno');
readln(clovek.meno);
writeln('Zadaj vek');
readln(clovek.vek);
writeln('Zadaj vysku');
readln(clovek.vyska);
end;
clrscr;
for i:=1 to 6 do vypiscloveka(clovek);
readln;
end.
Kód: Vybrať všetko
for i:=1 to 6 do vypiscloveka(ludia[i]);Re: PASCAL-problemy
Mna by zaujimalo co je totoO pascal sa moc nezaujimam, len nas to ucia v skole a za tych 6 (alebo kolko) rokov Pascalu v skole, som nevidel takyto zapis. Presnejsie toto "do with ludia". Skus ten cyklus formulovat takto:
Kód: Vybrať všetko
for i:=1 to 6 do with ludia[i] doKód: Vybrať všetko
for i:=1 to 6 do
begin
writeln('Zadaj meno');
readln(ludia[i].meno);
writeln('Zadaj vek');
readln([ludia[i].vek);
writeln('Zadaj vysku');
readln(ludia[i].vyska);
end;Re: PASCAL-problemy
Wolf diky za rady, uz mi to ide. A co sa tyka toho do with ludia, tak ani ja presne neviem co to je, ale v skole nam vraveli ze by to malo nejako ulahcovat pracu s recordom a pouzivali sme to pri takychto ulohah tak som to tam pouzil aj ja
Ale moc mi ju to teda nezjedusilo, moja chyba.
Takto vyzera uz fungujuci program:
Takto vyzera uz fungujuci program:
Kód: Vybrať všetko
program ludze;
uses crt;
type osoba=record
meno:string;
vek,vyska:integer;
end;
var clovek:osoba;
ludia:array[1..6] of osoba;
i:integer;
procedure vypiscloveka(clovek:osoba);
begin
writeln('Meno: ',ludia[i].meno);
writeln('Vek: ',ludia[i].vek);
writeln('Vyska: ',ludia[i].vyska);
writeln;
end;
begin
clrscr;
for i:=1 to 6 do
begin
writeln('Zadaj meno');
readln(ludia[i].meno);
writeln('Zadaj vek');
readln(ludia[i].vek);
writeln('Zadaj vysku');
readln(ludia[i].vyska);
end;
clrscr;
for i:=1 to 6 do vypiscloveka(clovek);
readln;
end.
-
mirak2
Hardcore addict
- Príspevky: 6719
- Registrovaný: 18 sep 2005, 13:44
- Bydlisko: Prague, CZE / Kosice, SVK
Re: PASCAL-problemy
nemalo by tam v poslednom fore byt vypiscloveka(ludia) ? mam pocit, ze ked som nevedel programovat, tak som tiez taketo paskvily vytvaral a doteraz som nepochopil preco to fungovalo