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

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

Zamčeno
Uživatelský avatar
Tomina
Level 5.5
Level 5.5
Příspěvky: 2690
Registrován: 08 bře 2008 20:47
Bydliště: Praha
Kontaktovat uživatele:

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

Příspěvek od Tomina »

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...
Uživatelský avatar
jiribori
Level 3
Level 3
Příspěvky: 437
Registrován: 11 led 2006 17:58
Bydliště: Svídnice
Kontaktovat uživatele:

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

Příspěvek od jiribori »

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: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od CZechBoY »

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: 08 bře 2008 20:47
Bydliště: Praha
Kontaktovat uživatele:

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

Příspěvek od Tomina »

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: 29 pro 2008 17:54
Bydliště: Jablonec nad nisou
Kontaktovat uživatele:

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

Příspěvek od Teedok »

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: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od CZechBoY »

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: 29 pro 2008 17:54
Bydliště: Jablonec nad nisou
Kontaktovat uživatele:

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

Příspěvek od Teedok »

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: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od CZechBoY »

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: 29 pro 2008 17:54
Bydliště: Jablonec nad nisou
Kontaktovat uživatele:

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

Příspěvek od Teedok »

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: 08 bře 2008 20:47
Bydliště: Praha
Kontaktovat uživatele:

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

Příspěvek od Tomina »

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: 29 pro 2008 17:54
Bydliště: Jablonec nad nisou
Kontaktovat uživatele:

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

Příspěvek od Teedok »

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: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od CZechBoY »

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
Zamčeno

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