Pascal: jak vyřešit tento úkol ? Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Tomina
Level 5.5
Level 5.5
Příspěvky: 2690
Registrován: březen 08
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Pascal: jak vyřešit tento úkol ?

Příspěvekod Tomina » 12 led 2010 11:49

Zdravím,

zítra mě čeká zkouška z programování v Pascalu a povím Vám, v dosti věcech prostě absolutně netuším. Chtěl bych se zeptat, zda by mi někdo neporadil, jak začít řešit tento úkol. Sedím nad tím už dobrý dvě hodiny a stále na to nemohu přijít :-(

máme posloupnost 100 čísel zakočených nulou. Program má vypsat nejprve sudá a pak lichá čísla a zjistit kolik je sudých a kolik je lichých čísel

Potřeboval bych jaksi "nakoupnout". Zkoušel jsem plnit plnit pole:array [1..100] of integer. Dále jsem už nevěděl co dál..jaké cykly na co použít..mě z toho opravdu hrábne..
Moc děkuji...

Reklama
Uživatelský avatar
jiribori
Level 3
Level 3
Příspěvky: 437
Registrován: leden 06
Bydliště: Svídnice
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod jiribori » 12 led 2010 13:35

Já osobně bych to asi dělal tak, že budu načítat prvek po prvku v cyklu. Každý prvek otestuju funkcí MOD. Když výsledek modu bude 1, tak je to liché číslo a když výsledek bude 0, tak to je sudé číslo + u každé větve proměnnou na počítání počtu sudých a lichých čísel. A teď k tomu zobrazení nejprve sudých a potom lichých - nevim jestli by to fungovalo, ale udělal bych to dvouma cyklama v prvním porovnávat právě pokud MOD je roven 0, tak vypsat jinak nic a druhý cyklus přesně obráceně - pokud MOD je roven 1 tak vypsat.

Nevim jestli by to fungovalo, ale to je můj prvotní nápad. Snad ti to pomůže.
Procesor: Intel Core i5-750 BOX 2.66GHz
Operační pamět: Kingston 4GB (kit 2x 2GB) 1333MHz
Základní deska: ASUS P7P55D (90-MIB960-G0EAY00Z)
Grafická karta: Gigabyte GTX260 896MB OC DDR3 GV-N26OC-896I
Pevný disk: WD Caviar Black 3.5" 640GB WD6401AALS
Operační systém: Windows 7 Professional 32-bit

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod CZechBoY » 12 led 2010 15:18

Já bych dal ty výsledky do pole a pak bych spočítal kolik čísel je v tom poli :-)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Tomina
Level 5.5
Level 5.5
Příspěvky: 2690
Registrován: březen 08
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod Tomina » 12 led 2010 17:08

ano, to mě taky napadlo, jenže tím to všechno končí..pokud by mi někdo poradit jak na zdroják, budu mu moc vděčný :-)

Uživatelský avatar
Teedok
Level 3
Level 3
Příspěvky: 554
Registrován: prosinec 08
Bydliště: Jablonec nad nisou
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod Teedok » 12 led 2010 19:56

mohl bych ti poradit v C# :)...Pascal ještě neprobíráme...
Freerapid 4ever

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod CZechBoY » 12 led 2010 19:58

Zkusim přečíst za pár minut knížku o Pascalu :D
No ve VB bych věděl to pole, ale zas nevim jak to sudý lichý, jedině přes vlastnoručně napsanou fci :(
Mrknu do tý knížky, snad něco najdu...
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Teedok
Level 3
Level 3
Příspěvky: 554
Registrován: prosinec 08
Bydliště: Jablonec nad nisou
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod Teedok » 12 led 2010 20:27

no tak když je to dělitelný 2 tk je to sudý a když ne tak lichý...nebo když je to dělitelný dvěma bezezbitku(neboli zbytek je ,0 ) tak je to sudý...
Dal bych podmínku (jetli je to děl. 2) a do toho cyklus s tim polem, který to celý pole projde a takhle to uloží do jiný proměný(typu pole).
Freerapid 4ever

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod CZechBoY » 12 led 2010 20:57

Už tu někdo psal že je na to fce MOD nebo tak nějak, myslel jsem jako že ve VB nevim jestli je nějaká taková fce, jinak je tam možnost dělení bez zbytku, ale to je asi k ničemu.
Už jdu na tu knížku, ale asi to nestihnu dnes...

Tak možná zítra :-)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Teedok
Level 3
Level 3
Příspěvky: 554
Registrován: prosinec 08
Bydliště: Jablonec nad nisou
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod Teedok » 12 led 2010 21:17

tak můžeš si to vzít tak, že když budeš dělit 2 se zbztkem 0, je to sudý a když se zbytkem 5 tak je to lichý. Př: 10/2 = 5,0; 20/2 = 10,0; 33/2 = 16,5; 71/2 = 35,5;
Freerapid 4ever

Uživatelský avatar
Tomina
Level 5.5
Level 5.5
Příspěvky: 2690
Registrován: březen 08
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod Tomina » 12 led 2010 23:15

Přátelé, tak jsem poprosil kámoše a za 10 minut to měl hotové, některé lidi prostě obdivuji, zdroják vypadá následovně:

[syntax]program pole_S_N_hledani;

{$APPTYPE CONSOLE}

uses
SysUtils;

const max=25;
var
pole:array[1..max] of smallint;
pole_S:array[1..max] of smallint;
pole_L:array[1..max] of smallint;
i,j,k,Sou_L,Sou_S:smallint;

begin
randomize;
for i:=1 to max-1 do pole[i]:=random(99)+1;
pole[max]:=0;
for i:=1 to max do write(pole[i]:3);


for i:=1 to max do
if pole[i] mod 2<>0 then
begin
inc(Sou_L);
inc(j);
pole_L[j]:=pole[i];
end
else begin
inc(Sou_S);
inc(k);
pole_S[k]:=pole[i];
end;

writeln;
writeln;
writeln('pole sude');
write('pocet sudych cislic = ',Sou_S);
writeln;
writeln;
for i:=1 to max do write(pole_S[i]:3);

writeln;
writeln;
writeln;
writeln('pole liche');
write('pocet lichych cislic = ',Sou_L);
writeln;
for i:=1 to max do write(pole_L[i]:3);
readln;
end.[/syntax]

Moc děkuji za ochotu, nezdá se to, ale převést myšlenky do zdrojáku je opravdu makačka a byť se to zdálo jednoduché, není to žádná procházka růžovým sadem.. :-/

Uživatelský avatar
Teedok
Level 3
Level 3
Příspěvky: 554
Registrován: prosinec 08
Bydliště: Jablonec nad nisou
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?

Příspěvekod Teedok » 12 led 2010 23:37

převést myšlenky je fak těžký, hlavně když to učitel chce s kritérii - budete používat jen tohle a támhleto - jenom cykly atd., teď dělám v C# obměnu hry kostky a ještě nemám ani kostru :)
Freerapid 4ever

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pascal: jak vyřešit tento úkol ?  Vyřešeno

Příspěvekod CZechBoY » 13 led 2010 09:32

Jo převést myšlenky do jazyka kterej neumim je fakt těžký :D
no nic dej fajfku, je to přes to pole jak jsem říkal ;)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti