- Milyen NAS-t vegyek?
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Milyen routert?
- ASUS routerek
- DIGI kábel TV
- Call center-forradalom: AI alakítja át az ideges telefonálók hangját
- DIGI internet
- Crypto Trade
- Alternatív kriptopénzek, altcoinok bányászata
- Telekom otthoni szolgáltatások (TV, internet, telefon)
Új hozzászólás Aktív témák
-
N!tRo
tag
válasz Wizardmon #1450 üzenetére
megnyitod jegyzettömbbel a pascal fájlt, kijelölöd az egészet, és bemásolod ide
de tedd őket kódba, van egy ''KÓD'' nevű gomb, amikor írod az új hozzászólást, az beszúr neked egy ''C''-t meg ''[ ''- jeleket (majd meglátod), s a közé írd.
[Szerkesztve]My Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
-
N!tRo
tag
nagyon egyszerűen lehet egy öröknaptár programot csinálni!
a lényeg hogy pontosam számold ki hány nap telt krisztus születése óta (0.0.0)
vedd azt a számod, oszd el 7-el, vedd a maradékrészét, azt meg szorozd meg 7-el, és a kapott számtól függ hogy melyik nap.
pl.:
tegyük fel, a 0. évben vagyunk, január 6.-án!
eddig összesen 6 nap telt el, elosztom 7-el, ezt kapom: 0,8571..., ennek a maradékrésze a tizedesvesszőtől jobbra található, tehát 0,8571 megintcsak.
Ha ezt megszorzod 7-el, akkor 6-ot kapsz.
A 6-os meg a szombatot jelöli.
még egy példa!
tegyük fel, a 0. évben vagyunk még mindig, január 28.-án! ha belegondolsz, akkor ennek vasárnapnak kell lennie!
nézzük!
28 osztva 7-el, 4-et kapsz eredményül. Ennek a maradéka 0! tehát a 0 a vasárnapot fogja jelölni!
na ezek után, ha a szombat 6-os, a vasárnap 0-ás, akkor a többi így fog alakulni:
hétfő 1, kedd 2, szerda 3, csüt 4, péntek 5, szomb 7, vasárn 0.
ezek tudtában, nézzük egy harmadik példát!
0. év, január 17.
na most, ennek szerdának kell lennie! gondolj csak bele, ha hétfő volt elseje, akkor 7.-e vasárnap, 14.-e megint vasárnap, 17.-e meg szerda lesz!
nézzük:
17 / 7 = 2,428571.... vegyük a maradékrészét = 0,428571, megszorzom 7-el mennyit kapok? 3-at! az meg szerda!
na ennyi a lényege....
érthető voltam?My Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
-
cucka
addikt
nincs olyan, hogy nulladik év nem véletlen, hogy a 21. század is 2001-ben kezdődött.
mod: egyébként meg nagyon bonyolultan írtad le az egész algoritmust. ha tudjuk, hogy a legelső év jan. 1.-e milyen napra esett, és tudjuk, hogy azóta eltelt x nap, akkor x mod 7-ből adódik, milyen napra esik a keresett dátum. (és ezért nem is igazán tudtam értelmezni azt a fél oldalas magyarázatot)
[Szerkesztve] -
N!tRo
tag
válasz Lortech #1453 üzenetére
trivilás vagy nem triviális, azt se tudom mit jelent, na mind1
Figy, nem problémás egyáltalán. Csak gondolj bele.
Most van 2006. Eddig eltelt 2005 év.
2005 év alatt (2005 osztva 4-el 501,25) 501 szökőév volt! és akkor 2005-501=1504 nem szökőév.
Ezeket megszorzod szépen 366-al vagy 365-el.
Utána: most augusztus van. tehát 7 hónap biztos eltelt, kiszámolod hány nap (remélem ki tudod...), és hozzáadsz 3-at. Mivel 3.-a van.
Összeadod a kapott számokat és kész.
Ennek a megoldása annyira triviális mint a leírás többi része.My Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
-
Jester01
veterán
Ez azért nem ilyen egyszerű, minimum célszerű valami nem olyan régi dátumtól indulni, hiszen a naptárreform miatt eltűntek napok ...
Jester
-
cucka
addikt
nyilván nem hallottál még a maradékos osztásról . nekünk harmadik osztályban tanították. pascalban ezt úgy hívják, hogy mod. 17 és 7 osztási maradéka nem 0,428571, mint ahogy a példádban írtad, hanem 3.
az adott dátum óta eltelt napok számának kiszámolása pedig tényleg nem nehéz, cserébe hosszú, hibalehetőségeket rejt, és jelenleg az a cél, hogy ezt minél elegánsabban oldjuk meg (vagy nem?). -
N!tRo
tag
kedves barátom!
igazad van!
valóban!
de egy okossabb programozó tudja, hogy lehet egy törtszámnak a tizedes jegytől jobbra található részét kinyerni!
én is ember vagyok, hibázhatok
de maga a gondolatmenet jóMy Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
-
Lortech
addikt
Én ugyan már belegondoltam jónéhány éve, talán jobban is mint te , de akkor számoljuk a te algoritmusod szerint:
szökév: 2005/4=501 *366= 183366
nem szökőév: 2005-501=1504 *365= 548960
+ az évben 215 nap eddig
Az annyi mint : 732541
Elosztjuk héttel: 104648,71428571428571428571428571, a maradékot megszorozva héttel ötöt kapunk, azaz milyen nap is van ma?
Egyébként minden 100-zal osztható nap nem szökőév, hiába osztható 4-gyel, kivéve ha 400-zal is osztható. Meg ahogy írták a Gergely-naptár bevezetésekor átugrottunk néhány napot. Nem a megfelelő szót használtam, mert triviális ez, csak tudni kell a hátterét pontosan. Talán belátod, nem olyan egyszerű, hogy egy mondattal elintézzük.Thank you to god for making me an atheist
-
cucka
addikt
igen, a gondolatmenet jó, az okos programozó pedig mod-ot használ
Jester01 - a számolásnál választott nulla időpont valójában tetszőleges, a program viszont csak a gergely naptár bevezetése utáni dátumokra fog helyesen eredményt adni. igazából kevés olyan alkalmazást tudok elképzelni, ahol 1500 előtti dátumokra kell megmondani, milyen napra estek. ezt a problémát külön bonyolítja, hogy rengeteg országban jóval később vezették be a gergely naptárt (lásd oroszország, októberi forradalom, ami november 7-én volt ) -
N!tRo
tag
-
Wizardmon
csendes tag
Megnéztem 1582 febr. 24
-
Wizardmon
csendes tag
Hát engem tök kikészít ez a naptáras dolog. Még mindig nem sikerült megoldani, pedig már csak napok választanak el a helyes megoldástól. Azt utálom amikor végteleníti magát a dolog aztán csak úgy tudok kilépni hogy veszik minden...hjajh....
-
Wizardmon
csendes tag
Azért kell ciklust használni hogy ki legyen küszöbölve az olyan eset, mint pl. ha valaki nem 1 és 12 közötti hónapot ad meg. Meg a számoláshoz is szükséges. Pl. én nagyon megdolgoztatom az amúgyse jól működő progit, mert 1584-től minden évszámot ellenőriztetek vele, hogy szökőév-e, meg úgy adok hozzá mindig 365-öt. Valami ilyesmi. Bocsi, de nemtom megfogalmazni jobban.
-
Lortech
addikt
válasz Wizardmon #1469 üzenetére
Itt egy megoldás, feltételezve, hogy 1900. 01. 01. hétfő volt.
így 1900 utáni dátumokra működik elvileg helyesen, bár nem nagyon teszteltem.
Próbáltam átláthatóra, és egyszerűre csinálni. Ha van másnak jobb megoldása, jöhet. ( konkrét forráskód formájában )
Ha nem egyértelmű valahol, kérdezz.
program datum;
uses crt;
const
napok: array[0..6] of string[9] = ('hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat',
'vasárnap');
honapok: array[1..12] of byte=(31,28,31,30,31,30,31,31,30,31,30,31);
var
eltnapok:longint;
i,ev:word;
ho, nap:byte;
begin
eltnapok:=0;
{ - meghatározandó nap dátumának bekérése - }
write('Év:');
readln(ev);
write('Hó:');
readln(ho);
write('Nap:');
readln(nap);
for i:=1900 to ev-1 do
if (i mod 400 = 0) or ((i mod 4 =0) and (i mod 100<>0)) then eltnapok:=eltnapok+366
else eltnapok:=eltnapok+365;
for i:=1 to ho-1 do
if (i=2) and ((ev mod 400 = 0) or ((i mod 4 =0) and (i mod 100<>0)))
then eltnapok:=eltnapok+29 else eltnapok:=eltnapok+honapok[ i ];
eltnapok:=eltnapok+nap-1;
writeln(eltnapok,napok[eltnapok mod 7]);
readln;
end.
ps: term. nem foglalkoztam a hibás inputok kiszűrésével.
[Szerkesztve]Thank you to god for making me an atheist
-
alitak
senior tag
válasz Wizardmon #1447 üzenetére
Na nézegettem a problémát, és kitúrtam a polcomról egy öröknaptárt. Megírtam hozzá a programot:
program oroknaptar;
uses newdelay,crt;
var datum:record
ev,honap,nap:integer;
end;
x,kodszam:integer;
nap:string;
begin
clrscr;
datum.ev:=0;datum.honap:=0;datum.nap:=0;x:=0;kodszam:=0;
writeln('Add meg a szuletesed datumat, a honapot szammal add meg!');
write('Ev: ');readln(datum.ev);
write('Honap: ');readln(datum.honap);
write('Nap: ');readln(datum.nap);
if (datum.honap=1) or (datum.honap=2) then datum.ev:=datum.ev-1;
x:=trunc(datum.ev/100);
case x of
15,19,23,27,31:kodszam:=kodszam+1;
16,20,24,28,32:kodszam:=kodszam+0;
17,21,25,29,33:kodszam:=kodszam+5;
18,22,26,30,34:kodszam:=kodszam+3;
end;
x:=datum.ev mod 100;
case x of
0,28,56,84,6,34,62,90,17,45,73,23,51,79:kodszam:=kodszam+0;
1,29,57,85,7,35,63,91,12,40,68,96,18,46,74:kodszam:=kodszam+1;
2,30,58,86,13,41,69,97,19,47,75,24,52,80:kodszam:=kodszam+2;
3,31,59,87,8,36,64,92,14,42,70,98,25,53,81:kodszam:=kodszam+3;
4,32,60,88,10,38,66,94,21,49,77,27,55,83:kodszam:=kodszam+5;
5,33,61,89,11,39,67,95,16,44,72,22,50,78:kodszam:=kodszam+6;
9,37,65,93,15,43,71,99,20,48,76,26,54,82:kodszam:=kodszam+4;
end;
case datum.honap of
10:kodszam:=kodszam+0;
1,5:kodszam:=kodszam+1;
8:kodszam:=kodszam+2;
3,11:kodszam:=kodszam+3;
6,2:kodszam:=kodszam+4;
9,12:kodszam:=kodszam+5;
4,7:kodszam:=kodszam+6;
end;
case datum.nap of
1,8,15,22,29:kodszam:=kodszam+1;
2,9,16,23,30:kodszam:=kodszam+2;
3,10,17,24,31:kodszam:=kodszam+3;
4,11,18,25:kodszam:=kodszam+4;
5,12,19,26:kodszam:=kodszam+5;
6,13,20,27:kodszam:=kodszam+6;
7,14,21,28:kodszam:=kodszam+0;
end;
while kodszam>7 do kodszam:=kodszam-7;
case kodszam of
1:nap:='vasarnap';
2:nap:='hetfo';
3:nap:='kedd';
4:nap:='szerda';
5:nap:='csutortok';
6:nap:='pentek';
0:nap:='szombat';
end;
writeln;
write(datum.ev,'. ',datum.honap,'. ',datum.nap,'-ika ',nap);
end.
A matematikai részét ne kérdezzétek, mert nem tudom, nem én találtam ki a naptárat, csak megírtam rá a programot. Viszont 1582. október 15-étől működik, egészen 3499 december 31-éig. És jól!Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
Wizardmon
csendes tag
Megint itt vagyok.
Mi az az assembly nyelv? Ismernem kéne? -
shev7
veterán
-
Wizardmon
csendes tag
heló ismét.
Bocs hogy ide írom de úgynézem a delphi fórumok halottak. Nem tudjátok mekkora a delphi 7 ??? Mármint méretre Mb-ban. -
Wizardmon
csendes tag
próba
-
logan14
csendes tag
Hali, Tud segíteni valaki a Graph unittal kapcsolatban? Le tudja vki irni h a graph unitban szereplö függvényeket hogyan kell használni a gyakorlatban? értem ezalatt pl egy pont kivillanását(putpixel) vagy a grafikus kurzort, és az alakzatok rajzolását, ha lehet mindenre kérnék példát.. Előre is köszönöm.-
-
MateusAMD
csendes tag
Hali, én régebben próbálkoztam C++-al de nem igen ment, aztán nemrég mondta az infótanárom, hogy pascallal próbálkozzak, az a legegyszerübb.
Azt szeretném kérdezni, hogy milyen könyvet ajánlotok??
Nekem van egy Programozzunk Delphi 7 renszerben c. könyv a ComputerBooks-tol, de ez kicsit régi vagy ez is jó lessz?
[Szerkesztve] -
MateusAMD
csendes tag
Már olvasgattam ezt a könyvet... nem lehet kihagyni a konzolos részt...
-
logan14
csendes tag
Hali nekem a Programozás Turbo Pascal c. könyv van meg (kezdöknek), sztem jo könyv, ezzel kezdj, azt hiszem 2 ezer ft..
Akkor tud nekem segíteni vki a grafikus eljárásokban és függvényekben? irja le vki légyszi h mi hogy van.. -
[HUN]Zolee
senior tag
-
logan14
csendes tag
ok, köszi, megnézem a doc dokumentumot. a help hol van? a könyvet olvasom, de nem értem....
-
kekfog
csendes tag
Sziasztok!
Kezdő vagyok, a következőben szeretném a segítségeteket kérni:
egy olyan programot szeretnék, szerettem volna írni pascal-ban, ami kiszámította volna a megadott értékekből a kombinációkat. Magyarúl egy lottó-esély számolót.
Mondjuk az ötös lottónál meg kell adni a 90-et és az ötöt.
Annak azért sikeressen utánajártam, hogy az ötös lottó telitalálatának esélye így néz ki:
90*89*88*87*86 / 5*4*3*2*1= 43 949 268
evvel a képlettel skandináv vagy hatos lottó is kiszámítható.
A gond az, hogy ''longint'' típusú változónál is túlcsordulási hibát jelez. Ezt lehet orvosolni valahogy, vagy hagyjam a francba? -
N!tRo
tag
próbáld real-el, double-al, extended-el
de extended-hez már kell a numerikus társprocesszor is amit a {+R}-al tudsz bekapcsolni ha jól emlékszem
real -> 2.9^-39 .... 1.7^38
single -> 1.5^-45 .... 3.4^38
double -> 5.0^-324 ... 1.7^308
extended -> 3.4^-4932 ... 1.1^4932
próbálkozz...
csak kiírásnál csináld úgy, hogy ne irasd ki vele a törtrészt
pl.: WRITELN(kombinacio:20:0);
ATiSMy Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
-
kekfog
csendes tag
Köszönöm válaszodat!
Próbálkozni fogok.
Más.
Hagy kérdezzek meg már egy olyan gurut, mint te, hogy egy komolyabb program tervezését mivel oldod meg? Szerkezeti ábra, folyamatábra vagy Jackson jelölés.
Egy ilyen kis programot, mint amivel én most küzködök, az viszont fejben meg van? -
zsyvy
csendes tag
Sziasztok! Sajnos én is alakadtam a pascal-ban. Lenne egy olyan feladatom, hogy egy mátrixban a főátlóra kellene tükrözni, mégpedig csak azokat az elemeket, amelyik primek. A primeket meg tudom határozni, de a progit összeségében nem tudom megcsinálni. Tudna nekem ötletet, adni hogyan kell? Köszi ezerrel:Ivett
-
N!tRo
tag
1. nem vagyok guru
2. a kis programokat fejből írom, semmi tervezés, azok triviális dolgok, maguktól értetődnek (már akinél...)
3. a nagyon nagyon nagy programokat papíron megtervezem, mármint a szerkezetét, és bekódolom
4. a közepesen nagy progikat meg szintén fejben csinálom, de részegységenként oldom meg, tehát felbontom kisebb, egyszerűbb programokra. Elég nagy hiba, hogy nem tervezek papíron semmit, semmilyen ábrát, nem szoktam meg, pedig így tanítják suliba, hogy kell. Maximum teszek kis commenteket egy-egy algoritmushoz, hogy mit is csinál valójában, hogy később tudjam.
Tehát ne legyek a példaképed, mert ez csak rossz.
Keress valami leírást a programkészítés lépéseiről, és te is úgy tanuld meg, ahogy le van írva.My Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
-
N!tRo
tag
Nos, itt egy 6x6-os mátrix, és a kékkel szedett koordináták határozzák meg a főátlót (gondolom én).
Kérdés: Hogyan tükrözzük?
A válasz nem nehéz.
Megvizsgáljuk, hogy (1,2) és (2,1) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (1,3) és (3,1) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (1,4) és (4,1) prím-e, ha igen, kicseréljük.
...
Megvizsgáljuk, hogy (2,3) és (3,2) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (2,4) és (4,2) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (2,5) és (5,2) prím-e, ha igen, kicseréljük.
...
és így tovább!
Tehát (1,1), (2,2), (3,3) stb... vizsgálatát kihagyjuk, mert ugyanarra a helyre cserélnénk, aminek nincs értelme.
Akkor nézzük, vegyünk egy 'x' és egy 'y' változót, ami egész szám, tehát integer.
Az első vizsgálat (1,2) volt, tehát x=1, y=2. Ezek legyenek a kezdőértékek.
Ez után látszik, hogy y értékét kell növelni, addig, amíg elérjük a mátrix méretét, ez esetben a 6-ot.
Ez után x értékét kell növelni egyel (x=2 lesz), tehát ugrunk egy sort. De! Észre kell venni, hogy y már nem 2-től fog indulni, hanem 3-tól!
Összegezzünk!
X értéke 1-től fog indulni és 5-ig tart (mert (6,6)-ot nem vizsgáljuk) és Y értéke meg X+1-től fog indulni mindig és 6-ig tart (az ábráról ez mind leolvasható).
Tehát megvan a leírás, már csak be kell programozni.
for x:=1 to MatrixMerete-1 do
for y:=x+1 to MatrixMerete do <primvizsgalat es csere ha szukseges>
A csere meg ugye úgy néz ki, hogy kell egy segédváltozó.
Legyen ez S, tehát a kicserélő algoritmus:
S:=ertek[x,y]; ertek[x,y]:=ertek[y,x]; ertek[y,x]:=S;
Remélem tudtam segíteni!
AttilaMy Frist Android Logic Game -[ Frame It! ]- keresd az Android Market-en!
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Alpha Laptopszerviz Kft.
Város: Pécs