ahoj všichni,mam ukol a potreboval bych poradit:
Ve vstupním textovém souboru jsou uložena přirozená čísla. Každé číslo je zapsáno na samostatném řádku souboru, může mít až 100 dekadických cifer, jeho zápis je korektní (víte, že jistě nezačíná nulou). Napište program, který spočítá a vypíše na výstup součet všech čísel obsažených v souboru. Vstupem programu bude jméno souboru se sčítanými čísly.
nevíte jak to dat dohromady?
Fórum › Pascal
Domaci ukol pomozte
Pouzil bych dva stringy, jeden pro vysledek a jeden jako pomocny.
Nejprve bych nacetl prvni cislo v souboru do "vysledku" a prehodil poradi (pro budouci scitani).
Pak bych v cyklu nacital dalsi cisla do pomocneho stringu a po kazdem nacteni prehodil poradi cislic a pricetl k "vysledku" (opet v cyklu prvek po prvku).
Nakonec bych znovu prehodil poradi cislic ve "vysledku" a ten pak vypsal.
Napovedou jak konkretni veci udelat by mohlo byt http://www.pcsvet.cz/art/article.php?id=4040
Ve zkratce:
Máš pomocnou proměnnou Součet (číslo, stačí byte). Na začátku ji vynuluj.
Máš proměnnou, do které budeš ukládat výsledek (řetězec - string). Na začátku prázdný.
Opakuj, dokud nezpracuješ všechny číslice z obou čísel:
- Vezmi nejnižší cifru z jednoho čísla a přičti ji k Součtu (ze znaku na číslo to převedeš funkcí Ord a odečtením čísla 48, což je ordinální číslo znaku nula).
- Vezmi nejnižší cifru z druhého čísla a také ji přičti k Součtu.
- Pokud je Součet menší než 10, vlož ho na začátek řetězce s výsledkem (po převedení zpět na znak) a Součet vynuluj.
- Pokud je Součet větší než 10, vlož na začátek řetězce s výsledkem hodnotu Součet-10, od Součtu odečti 10 a nech ho být.
Moje stránka.
uz mam tohle:
program soucet_prirozenych_cisel;
uses ch_200,crt;
var soubor:string[10];
f:text;
aktcislo:string[100];
soucet:string[102];
begin
clrscr;
{writeln('jaky soubor chces otevrit?');
read(soubor); }
soubor:='cisla.txt';
assign(f,soubor);
reset(f); {otevre f pro cteni}
while not seekeof(f) do
begin
readln(f,aktcislo);
for i:=length(aktcislo) downto 1 do
if soucet[i]+aktcislo[i]>10 then begin
soucet[i-1]:=soucet[i-1]+1;
soucet[i]:=soucet[i]+aktcislo[i];
end else
soucet[i]:=soucet[i]+aktcislo[i];
end;
writeln(soucet);
close(f);
readkey;
end.
a jeste
u toho souctu mam jako prevest ty 2 retezce na cisla a ty pak secist jo,a pak zase prevyst na retezce??
Místo tohohle:
while not seekeof(f) do...
bych napsal tohle:
while not eof(f) do...
Teď si zrovna nepamatuju, co dělá seekeof, ale myslím, že to je procedura, která přesune kurzor na konec souboru, což určitě nechceš.
Tohle:
if soucet[i]+aktcislo[i]>10 then...
ti nebude fungovat. Tady už musíš mít znaky převedené na čísla:
if ord(soucet[i])-48+ord(aktcislo[i])-48>10 then...
Stejně tak tohle:
soucet[i]:=soucet[i]+aktcislo[i];
musíš přepsat takhle:
soucet[i]:=chr(ord(soucet[i])-48+ord(aktcislo[i])-48+48);
To plus mínus 48 na konci se samozřejmě vyruší, napsal jsem to tam pro přehlednost - odečtením převedeš znak na číslo, přičtením číslo na znak.
Moje stránka.
Já bych to napsal takhle:
const MAXCISEL=10;
Function Xnul(n:integer):string;
var a:integer;
s:string;
begin
s:='';
for a:=1 to n do s:=s+'0';
Xnul:=s;
end;
var t:text;
cislo:array[1..MAXCISEL] of string[100];
a,b,c,d,e,f,pc:integer;
soucet:string;
s:string;
begin
s:=ParamStr(1);
if s='' then s:='cisla.txt';
assign(t,s);
Reset(t);
pc:=0;
b:=0;
while not eof(t) do
begin
inc(pc);
readln(t,cislo[pc]);
a:=Length(cislo[pc]);
if a>b then b:=a;
end;
Close(t); {vsechna cisla mam nactena, zaviram soubor}
for a:=1 to pc do {doplnim cisla nulama na jednotnou delku }
cislo[a]:=Xnul(b-Length(cislo[a]))+cislo[a];
soucet:='';
e:=0;
for a:=b downto 1 do
begin
d:=e;
for c:=1 to pc do inc(d,byte(cislo[c][a])-48);
e:=d div 10;
f:=d mod 10;
soucet:=char(f+48)+soucet;
end;
if e>0 then
begin
Str(e,s);
soucet:=s+soucet;
end;
writeln(soucet);
readln;
end.
ok,diky moc!!
uz mi to funguje :smile18:
ale vidim ze zobrazovani smajliku neak nefacha
A já bych potřeboval, aby za mě někdo napsal semestrálku a nejlíp i diplomku :smile20: .
Sorry, ale tohle ne. Můžu ti s tím pomoct, ale ne to za tebe celé udělat (ne že bych neuměl, ale ze zásady).
Takže si někde najdi něco o polích (array) a cyklech (for) a násobení (*) a snaž se. A přijď, až budeš mít aspoň něco hotové.
Moje stránka.
Mircosoft.... hele kdybi vedel neco o tomhle jazyku neco tak bych sem nesel hledat o pomoc povim ti to takhle je to pro kamosku neze bych se chcel pyšit cudzim perim stoho sem vyrostl a nemam to za potreby... sem hodil do googlu a vysla mi tato stranka tak sem myslel ze tu najdu lidi kteri sou v tom machri a ne nejaky lidi kteri sou na to hrdi a keca okolo toho jakeby vymisleli perpetum mobile!!....že oni neco vedi a druhy ne .....sak si musime pomahat ne?!!!si pak strcte takovou stranku alebo forum pomooooc z domacim ukolem nekam!!...myslel sem že sa tu najde nekdo pro koho to neni problem udelat nejakej nenarocnej program na to ale asi pudu za lidma co mi podaj pomocnou ruku!!pokud ti nestaci moje uprimnost ....zatim a dik za pochopeni milan8@post.sk
hele laaca nech si svoje- promin za tenhle vyraz- debilne pripominky a nebo puritanske.....a pokud si stech kteri si mysli že je buh tak se nekam strč !!!tebe sem se neptal a pokud nepomužeš tak daj pokoj "aka žiju na hranici cz a svk tu se mluvi i tak i tak je to moje vec jak tady budem psat" pokud stím maš problem nasad nejake prašky:D:D hele kdybi vedel co to pascal je tak se tady neoptežuju a !neprosim"o pomoc!!ale vidím že ste tady parta programovejch snobú!!!zdar.M
to tomix...daj pokoj stymto.....vidim že ste tady všichni lemre !!všichni do jednoho vubec tu nejde o to co ji povi profakt sou to vedlejši fakty,problemi daneho človeka nevim vy co to tu vlasne rozebirate o nejakejch profakach a lemrach .....a mozno tu oto i jde aby ji to ten profak rekl a optal a dostal.....je to bud a lebo nasledky si bere ona ze sebou a ne vy!...mozno ju to donuti se na to podivat a zistit si to naucit...atd.....ale vidim že vy ste tu ozaj "0" a ne "01".-)
minox3 napsal:
to tomix...daj pokoj stymto.....vidim že ste tady všichni lemre !!všichni do jednoho vubec tu nejde o to co ji povi profakt sou to vedlejši fakty,problemi daneho človeka nevim vy co to tu vlasne rozebirate o nejakejch profakach a lemrach .....a mozno tu oto i jde aby ji to ten profak rekl a optal a dostal.....je to bud a lebo nasledky si bere ona ze sebou a ne vy!...mozno ju to donuti se na to podivat a zistit si to naucit...atd.....ale vidim že vy ste tu ozaj "0" a ne "01".-)
Čekáš, že ti to tu někdo udělá, když půlku diskutujících urazíš a druhou půlku odradíš svým přístupem "Udělejte mi to a pošlete mi to na mail".
siriso-OSIRIS:Ddej pokoj i ty ...ja uz jenom reaguji na tu Vas vsechny -na tu vasu píchu aby ste si uvedomili co ste zač _fakt perfetni lidi z velkym P(jako pascal):D:D NOa ber to jako nasledek nejake veci....a vubec mi to netrha žily nebo co se tu svama natahuji sem potkal kamose co mi ten program spichnil za chvilku takze mily a važeny loučim se a dik za skvelou pomoc!!:D
FUCK OFF Forum Pascal pomoooc s domacim ukolem!!Ste jenom snoby!!off
minox3 napsal:
siriso-OSIRIS:Ddej pokoj i ty ...ja uz jenom reaguji na tu Vas vsechny -na tu vasu píchu aby ste si uvedomili co ste zač _fakt perfetni lidi z velkym P(jako pascal):D:D NOa ber to jako nasledek nejake veci....a vubec mi to netrha žily nebo co se tu svama natahuji sem potkal kamose co mi ten program spichnil za chvilku takze mily a važeny loučim se a dik za skvelou pomoc!!:D
FUCK OFF Forum Pascal pomoooc s domacim ukolem!!Ste jenom snoby!!off
píchu - pícha není od slova píchat, ale pýcha
ste - jste
spichnil - ???
snoby - snobi
To jen tak na okraj, chyb je tam povícero.
Já osobně neprogramuji lidem zadarmo, maximálně jim poradím. Rozhodně ale ne tomu, kdo se chová tak jako ty.
TO OSIRIS!!.....jj byl to test ty demente a vedel sem ze se na to chytiš!!proc mysliš že sem psal ty hrubky!! Nebo snobi a vymetenci..jako vy(OSIRIS A SPOL) když se už namemaj čeho chytit tak uz tapaj po gramatice daneho človeka!!....došla štava došel dech došli "0 a 1"
Chodte stouto strankou nekam do Ha.zlu!!
... A přitom stačilo hned na začátku říct něco ve smyslu "nevím jak se deklaruje matice" nebo "nevím, jak se v Pascalu násobí" nebo tak, abychom i my dementi pochopili, s čím přesně máme pomáhat :smile1: :smile5:
Tak si ještě naposledy vynadáme a poprosíme admina, aby to po nás zhruba odsud http://programujte.com/index.php?akce=diskuze&kam=vlakno&nove=1&tema=7187-domaci-ukol-pomozte#59763 smazal, OK? :smile3:
Moje stránka.
minox3 napsal:
TO OSIRIS!!.....jj byl to test ty demente a vedel sem ze se na to chytiš!!proc mysliš že sem psal ty hrubky!! Nebo snobi a vymetenci..jako vy(OSIRIS A SPOL) když se už namemaj čeho chytit tak uz tapaj po gramatice daneho človeka!!....došla štava došel dech došli "0 a 1"
Chodte stouto strankou nekam do Ha.zlu!!
Pán začíná být agresivní :smile6: :smile18: :D
Btw. člověk, který duplikuje interpukční znaménka (!, ., ...) je prý psychicky labilní - ale to jsem jenom slyšel, nevím, co je na tom pravdy :smile16:
jj agresor prveho radu demente:D:Da myslim si že ste tu parta parta buzerantu parta(OSIRIS,Geckon no jasne demente kde bys ty nemhl bejt!!A v neposlední rade MIRCOSOFT)!!Mam taky pocit panove že se Vam páli olektronka E14 tymto a tymto se Vam omlouva katoda Olomoc!!Donalde OSIRIS zleste s toho lustru vidím Vas!:D:D:D
F.ck OFF panove!!
minox3 napsal:
jj agresor prveho radu demente:D:Da myslim si že ste tu parta parta buzerantu parta(OSIRIS,Geckon no jasne demente kde bys ty nemhl bejt!!A v neposlední rade MIRCOSOFT)!!Mam taky pocit panove že se Vam páli olektronka E14 tymto a tymto se Vam omlouva katoda Olomoc!!Donalde OSIRIS zleste s toho lustru vidím Vas!:D:D:D
F.ck OFF panove!!
Chováš se jak rozmazlený fracek někde na devítce. Někdo by tě měl naučit, že se dospělým lidem nenadává a někdo by tě měl naučit se vyjadřovat. Třeba rodiče :-)
Admini: Navrhuji dát ban uživateli minox3.
Osiris napsal:
Admini: Navrhuji dát ban uživateli minox3.
Jestli do toho mám co mluvit, tak souhlasím ;-) Pokud se někdo neumí chovat, tak ho tu nechci. Ono to už není ani moc k smíchu, co nám minox3 předvádí..
Co je moc, to je moc. Tohle bych opravu viděl na ip-ban
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
ale ale naši sladoušci fnukaji do kapesnicka zrazu sou jako s cukru davejte pozor aby ste sa mi nezesypali slečinky!!!:D:D:D:D:DHAHA a nedaj mi ten baner a nedaj a nedají si rict a nedaji!!:D
Osiratko moc nenavrhuj lebo te nekdo zvrhe:D:D!!
Geckatko je naše kokrhatko ,žeby -ocasek Osirise??!!??:D
Blujackerko nasad si radsi čočky a rozhledni se okolo sebe ty ip-ban!!:D:D
A-R_IA!
minox3 napsal:
ale ale naši sladoušci fnukaji do kapesnicka zrazu sou jako s cukru davejte pozor aby ste sa mi nezesypali slečinky!!!:D:D:D:D:DHAHA a nedaj mi ten baner a nedaj a nedají si rict a nedaji!!:D
Osiratko moc nenavrhuj lebo te nekdo zvrhe:D:D!!
Geckatko je naše kokrhatko ,žeby -ocasek Osirise??!!??:D
Blujackerko nasad si radsi čočky a rozhledni se okolo sebe ty ip-ban!!:D:D
A-R_IA!
Já vím, že děti na ZŠ se neumí chovat, ale nemusíš to dávat tak najevo. Tak jako ty se projevují pouze primitivové.
minox3 napsal:
To Osiris : jj to slovo to uplne vystihuje nase oseratko!!:D:D
PRIMITIVOVE=PRIM ITI OVE= rozbor:D:D:D
PRIM =jako primitiv
ITI =jako ET mimozemštan
OVE = se rovna jako OLEEE jako ze sem vam dal OLEE!!:D:D:D
A-R-IA!
Vždyť ty ani nedáš dohromady text, který by měl nějaký význam. A vážně už mě to začíná štvát, napíšu adminovi.
To Osiris : Už jsem napsal na redakční nástěnku
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Lol, uz sem myslel ze se tu nikde nic nedeje :D
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Domácí úkol — založil Anonim
Domáci úkol — založil Franta
Domaci ukol — založil Jakub
Domácí úkol — založil jelis
Domácí úkol — založil Ondra
Moderátoři diskuze