Új hozzászólás Aktív témák
-
_Petya_
őstag
Nagyob számrendszerből kisebbe váltás elvileg működhet maradékos osztásal?
Ezt találtam ki erre a részre, de felfelé hogyan lehetne váltani? (Úgy tűnik, a 10-es szr-be váltós megoldás nem jó.)
PetyaFontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!
-
zenit
tag
Íme:
const
Digits: string = '0123...XYZ'; <- számjegyek
1. lépés: Str stringet számmá alakít Base számrendszerben.
function StrToNum(Str: string; Base: Integer): LongInt;
var
. Digit: Integer;
. Result: LongInt;
begin
. Result := 0;
. while Str <> '' do
. begin
. . Digit := Pos(UpCase(Str[1]), Digits) - 1; Str := Copy(Str, 2, Length(Str) - 1);
. . Result := Result * Base + Digit;
. end;
. StrToNum := Result;
end;
2. lépés: számot stringgé Base számrendszerben.
function NumToStr(Num: LongInt; Base: Integer): string;
var
. Digit: Integer;
. Result: string;
begin
. Result := '';
. while Num > 0 do
. begin
. . Digit := Num mod Base; Num := Num div Base;
. . Result := Digits[Digit + 1] + Result;
. end;
. if Result = '' then NumToStr := '0' else NumToStr := Result;
end;
Ennyi. Remélem, érthető. -
Fko
tag
Egy programozással foglalkozó oldalt indítunk. Ahol aki akarja, közzé teheti a forráskódjait, amiket írt.
Szóval, ha problémád van a programozással, gyere el az oldalunkra és tedd fel kérdésed a mi fórumunkban is.
Bővebben: linkUHU Linux forever
-
Fko
tag
Igazad van, bocsi. Csinálok gyorsan c fórumot is.
UHU Linux forever
-
tanácstalan
csendes tag
válasz tanácstalan #357 üzenetére
Segítsetek!
-
steveetm
őstag
válasz tanácstalan #359 üzenetére
leírod hogy kell henger térfogatot számolni és segítek.
Üdv.: steveetm -
steveetm
őstag
nem tudom, nem is érdekel hogy kell számolni.
A progi:
Program almamfa;
Uses crt;
var r, m : Real;
Begin
Writeln('Kérem az r-t');
ReadLn(r);
WriteLn('Kérem m et');
ReadLn(m);
Writeln('térfogat :',r*r*3.14*m);
WriteLn('Felszin : ',(2*r*3.14*m)+(2*r*r*3.14));
ReadKey;
End.
lehet nem . kell hanem , a 3.14nél.
Üdv.: steveetm -
Katka
csendes tag
Sziasztok!
Tud valaki itt nagyon jól programozni TP-ben?
Kellene egy kis segítség! -
Katka
csendes tag
válasz VladimirR #364 üzenetére
Szóval:
Tettszőleges számú és egyenként egy előre meghatározott hosszúságot meg nem
haladó szavak sorbarendezése az angol ábécé szerint. Az inputban az angol
betűk és a kötőjel (ez minden betű előtt van a rendezés szerint) kivételével
bármely egyéb karakter szóelválasztónak számít, és figyelmen kívül kell
hagyni. Kis és nagybetű között nincs különbség. Az output a szavak sorozata,
egy-egy szóközzel elválasztva.
Példa input:
alma zokni Asztal pad
baba Telefon telex )( megad
meg-meg egy1+hat65=nyolc
Példa output:
alma Asztal baba egy hat meg-meg megad nyolc pad Telefon telex zokni -
VladimirR
nagyúr
este megcsinalom nagy vonalakban (nem adok treljes kodot, hogy dolgozz te is ) - addig nezz utana a rendezo algoritmusoknak (mondjuk itt Bővebben: link)
devast: ez meg mifele baromsag, mar elnezest? nem illik? (ne valaszolj, tudom, hogy sokaknak nem tetszik a pascal, de azert tulzasba ne essunk)
[Szerkesztve] -
devast
addikt
Itt a programod, ha kérdezik buborékrendezéssel csináltad Hja, és nem ártana alapszinten megtanulni programozni Ha már 1x olyan suliba jársz...
program sorbarendez;
uses crt;
var
i,j:integer;
szavak : array[1..200] of string;
temp,szo : string;
bevitel : boolean;
begin
clrscr;
i:=1;
bevitel:=false;
repeat
writeln('Kerem az ',i,'. szot!');
readln(szo);
if length(szo) > 0 then begin
szavak:=szo;
i:=i+1;
end
else bevitel:=true;
until bevitel;
j:=1;
while j<i do begin
if szavak[j+1] < szavak[j] then begin
temp:=szavak[j];
szavak[j]:=szavak[j+1];
szavak[j+1]:=temp;
j:=1;
end
else j:=j+1;
end;
write('A szavak sorrendben: ');
for j:=1 to i do write(szavak[j],' ');
readln;
end. -
_Petya_
őstag
Üdv!
Te is Szegedre jársz? Már dolgozom a feladaton, ha gondolom veled is megosztom a megoldást, tudok még pár embert aki ezt a feladatot kapta, konzultálhattok is
Kis segítség: bármilyen rendező algoritmus használható, mert a pascal értelmezi a
'alma' < 'barack' jellegű relációkat is.
PetyaFontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!
-
_Petya_
őstag
válasz VladimirR #371 üzenetére
Üdv!
Nem bonyolítod túl, ez a jó megoldás erre a feladatra, mert file-ból kell beolvasni a stringeket, és nem tudod, hogy hány van... Szóval dinamikus tömb és láncolt lista...
Petya
[Szerkesztve]Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!
-
Protezis
őstag
Nah nekem is ez a kötprogom
az én progim elszáll vhol, bár a rendezés nincs még benne.
Lehet egy kicsit túlbonyolítottam:
Program kotprog;
Type
mutato = ^tomb;
tomb = array [0..10000] Of string;
Var
szo: mutato;
szohossz: integer;
function betuszamlalof(filenev: string) : word;
var
szoveg: text;
tmpszoveg: string;
db: integer;
begin
assign(szoveg, filenev);
reset(szoveg);
db:=0;
while not eof(szoveg) do
begin
readln(szoveg, tmpszoveg);
db:=db+length(tmpszoveg);
end;
betuszamlalof:= db;
end;
function szokeres(filenev: string; szohossz: integer): mutato;
var
szo: mutato;
szoveg: text;
sor: string;
i: byte;
betuszamlalo: longint;
ujszo: boolean;
szoszamlalo: longint;
mem: word;
begin
assign(szoveg, filenev);
reset(szoveg);
{Megszámoljuk a betuszamlalo fügvénnyel a szövegfájlban található karakterek számát,
és lefoglalunk akkora memóriát, amekkorára maximálisan szükségünk van.
Ha a fájlban minden páros sorszámú helyén 'szemét' karakter van és minden páratlanadik helyén
betű, vagy kötőjel, akkor n db karakter esetén (n div 2)+1 szó (jó karakter) van a szövegben.
(Így ezek mindegyike 1 betűből áll)}
mem:=((betuszamlalof('be.txt') Div 2) + 1)*szohossz;
GetMem(szo, mem);
betuszamlalo:=-1;
szoszamlalo:=0;
ujszo:=false;
while not eof(szoveg) do
begin
readln(szoveg, sor);
for i:=0 to (length(sor)-1) do
begin
if ((sor[i+1]>='a') and (sor[i+1]<='z')) or ((sor[i+1]>='A') and (sor[i+1]<='Z')) or (sor[i+1]='-') then
begin
szo^[szoszamlalo][i-betuszamlalo]:=sor[i+1];
ujszo:=true;
end
else
begin
betuszamlalo:=i;
if ujszo then
begin
szoszamlalo:=szoszamlalo+1;
ujszo:=false;
end;
end;
end;
end;
szokeres:=szo;
end;
Begin
readln(szohossz);
szo:=szokeres('be.txt',szohossz);
writeln(szo^[0][1]);
End.
A hiba fpc-vel fordítás után:
Runtime error 5 at 0x0040106A
0x0040106A
0x0040119E
0x00401235
Bocs a hosszú hozzászólásért! -
Cicalány
csendes tag
Sziasztok!
Nekem is az a kötprogim, mint Katkának. Csak azzal van gond, h nem beadni kell a szavakat, hanem file-ból kell beolvasnia és a ki.txt file-ba kiírni a megoldást. -
Protezis
őstag
Röviden a működése: megszámolja a betűket a fájlban, lefoglalja a memóriát, majd egy ciklusban betölt egy sor egy string változóba, és végighalad a karakterein. Ha betű vagy -, akkor eltárolja egy tömb string elemének megfelelő pozicióján. A nagy ciklus a fájl végéig megy.
Itt a forrás a jobb áttekinthetőség kedvéért:
Bővebben: link
[Szerkesztve] -
VladimirR
nagyúr
neh itt a teljes progi: megeri idonkent megnezni, mert meg csak most fogom kommentelni - Bővebben: link -jah es valaki mondja mar meg, hogy a lancolt listat miert bonyolitom ennyire tul?
fontos: habakezeles nincs benne - a leforditott exe melle kell tenni a bemeno adatokat egy rendez.in nevu file-ba a kimenet pedig egy rendez.out nevu file lesz - ha a bem,eneti file hianyzik, akkor runtime error -
VladimirR
nagyúr
válasz Protezis #384 üzenetére
semmi? nekem egy alma-t beleir (attol meg bug, mindjart utanajarok, de addig is nezd meg az eredeti feladatkiirasban levo peldainputtal, en azzal teszteltem, arra jo)
a kepernyore kiirassal meg ne torodj, azt mindjart kiszedem - csak debug info, mert lame vagyok
szerk.: megvan a hiba, ha az utolso karakter hasznalhato (kisbetu/nagybetu/kotojel), akkor az utolso szo lemarad - mindjart javitom
JAVITVA
Na kesz vannak a kommentek is, az elgepelesekert es a helyenkent erthetetlen szovegelesert elnezest
[Szerkesztve] -
-
VladimirR
nagyúr
válasz Protezis #386 üzenetére
az fpc az freepascal-t takar? en bp7-tel dolgozom es felraktam a leforditott .exe-t is a forras melle, kerlek nezd meg azzal is (es a forrast is erdemes ujra leszedni, mert belekerultek a kommentek)
forras kommentekkel: Bővebben: link
leforditott exe: Bővebben: link
a lancolt listamat ne nagyon nezegesd, mert szerintem megoldhato egyszerubben is - szerintem tulbonyolitom (szokasom) -
Protezis
őstag
válasz VladimirR #385 üzenetére
Na átnéztem a progidat, és világos
Nem tudom miért, de mindig mindent túlbonyolítok. Tavaly csináltam egy számológépet, ami RÓMAI számokkal működött. Tudta a 4 alapműveletet, ill. az eredményt fel tudta használni a következő számolásnál. Asszem 30000 környékén száll el, de ki ír be 30 db M betűt?? :
A tanár visszaírja e-mailben, hogy ez hogy műkszik? Mert ő nem érti, de mivel gyors voltam, 13 pontot kaptam a 15-ből -
Protezis
őstag
válasz VladimirR #387 üzenetére
Hát tényleg nem értem
Leszedtem az exe-t, mellette csináltam egy RENDEZ.IN fájlt, beleírtam, hogy alma
A végeredmény: RENDEZ.OUT, tartalma semmi
Kezdem lámának érezni magam
Már egy programot se tudok normálisan futtatni
Ja igen, free pascal. De akkor nem ott van a bibi.
[Szerkesztve] -
VladimirR
nagyúr
válasz Protezis #389 üzenetére
hat ezt nem ertem
jo lenne, ha masok is tesztelnek a programot, hogy kideruljon melyikunknel van a hiba
esetleg probald meg soronkent futtatni es az lm^.s valtozo erteket debug/watch ablakban figyelni
btw a forrasban frissitettem a kommenteket
forras kommentekkel: Bővebben: link
leforditott exe: Bővebben: link
pelda input: Bővebben: link
pelda output: Bővebben: link - egy ugyanilyen tartalmu, pelda.out file kellene, hogy letrejojjon
[Szerkesztve] -
Protezis
őstag
válasz VladimirR #390 üzenetére
Sajna az fpc parancssori fordító, legalábbis én így tudom, és ezért is használom. Debug szvsz nincs benne. kipróbáltam in fájl nélkül, természetesen akkor hibaüzivel leállt. NEM NEM NEM ÉRTEM!
Milyen oprendszered van? Nálam sp2 van, nem lehet, hogy az zavar be?
Gondoltam már az írási jogra is, de rendszergazdaként vagyok bejelentkezve, szal az is van
Aki megfejti, meghívom egy sörre, feltéve hogy lejön Szegedre -
Cicalány
csendes tag
hát, én kipróbáltam, de nem csinál semmit a program...szó szerint semmit...se hiba üzenet, se semmi
-
Cicalány
csendes tag
Mostanság freepascal a menő... amúgy ez progalapon van kötprogiként...bezzeg egy csomó kötprogi megoldást megtaláltam a neten... jah, nekem turbo pascal-om van. az lehet a baj???
-
Cicalány
csendes tag
Ja, amúgy teljesen mindegy, h nálam fut-e. A lényeg, h az egyetem gépein menjen. Ha ott sem megy, akkor 0 pontos...és ugrott a félév.
-
Protezis
őstag
LOL
Dévényi bácsinak tök mindegy mit használunk. Linux alatt fogják fordítani a progikat, fpc-vel, de lehet megnézik még Kylixxal, meg még valamivel.
Amúgy én Műszaki Informatika szakos vagyok.
Az fpc-t meg azért használom, mert gyors és egyszerű használni. Tavaly TP volt a menő, most ez
Ja, ha linux alatt nem fordul, akár a windows és linux alatt eltérő sorvégi karakterekből adódóan, 0 pont. Csak a forrás 7 pontot ér, ha teljesen jó, és szintaxisdiagrammot is kell rajzolni. I Love Devenyi!! -
VladimirR
nagyúr
válasz Protezis #391 üzenetére
ezt nezd meg:
itt legalabb egy ilyen kellene lenni a kimeneti file-ban: ---
forras kommentekkel: Bővebben: link
leforditott exe: Bővebben: link
pelda input: Bővebben: link
pelda output: Bővebben: link
egyebkent angol xpsp2, borland pascal 7.0
[Szerkesztve]
Új hozzászólás Aktív témák
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- sziku69: Fűzzük össze a szavakat :)
- DIGI internet
- Autós topik
- BestBuy topik
- Itt az első kép a 2024-es Nokia 3210-ről
- PlayStation rajongói nyereményjáték
- Politika
- Gray Zone Warfare
- Autós topik látogatók beszélgetős, offolós topikja
- További aktív témák...