Začiatky – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Začiatky – Pascal – Fórum – Programujte.comZačiatky – Pascal – Fórum – Programujte.com

 

Washix0
Duch
26. 3. 2012   #1
-
+2
-
Zajímavé

Dobrý deň, hneď na úvod sa chcem ospravedlniť ak som tento príspevok nepridal do správnej kategórie ale vhodnejšiu som nenašiel.

Začal som sa učiť a venovať programovaniu v Pascale, mám stiahnutý Free Pascal a nejaké materiály z netu ale strašne by mi pomohli nejaké praktické úlohy kde by som si to čo sa pomaly učím, vedel aj vyskúšať. Úlohy by mali začínať úplne jednoduchými až po komplexnejšie.

Pripomínam, že som úplný amatér tak prosím o pomoc ako sa v tom zdokonaliť. Nikde na nete som žiadne úlohy na precvičovanie základov nenašiel. Len pre mňa komplikované veci pri ktorých sa základy považujú za absolútnu samozrejmosť.

Ďakujem za akúkoľvek pomoc!

Nahlásit jako SPAM
IP: 188.167.104.–
stif+1
Stálý člen
26. 3. 2012   #2
-
+2
-
Zajímavé

1.Vypište na obrazovku pod sebe 4 libovolná jména a na poslední řádek zapište vaše jméno i příjmení pomocí dvou příkazů.

2.Udělějte program, který uživatele na jednom řádku přivítá, na další řádek vypíše vaše jméno a věk a na další řádek spočítá váš věk + věk vašeho rodiče. Ne, abyste mi tam jenom napsali číslo! :) Chci, abyste použili výraz pro vypočítání.

3.Napište mi jednoduchý program, který VELMI STRUČNĚ vypíše základní informace o základních datových typech na obrazovku. Stačí opravdu heslovitě.

4.Udělějte program, který vás uvítá a seznámí se svojí funkcí. Vyzve k zadání 2 proměnných. Po zadání z těchto proměnných udělá součet, rozdíl, násobek a podíl. Alespoň jedna proměnná musí být typu real. Vypíše výsledek, rozloučí se s vámi a ukončí se. Celý program bude pěkně graficky upraven (tzn. používejte mazání obrazovky a další věci). Někomu to přijde jako lehká věc, ale pro začátek si myslim je to jeden z těžších úkolů.

5.Vymyslete nějaký program, ve kterém použijete jak IF, tak CASE. Dopředu říkam, že chci, aby program měl určitou úroveň, tzn. počty s proměnnými a další a další věci.

Udělejte mi hru ,,Hádej číslo." Jelikož ještě neumíme, aby počítač náhodně vybral číslo, které máte hádat stanovíme si, že hádané číslo bude 6. Chci od vás, aby jste naprogramovali tuto hru, kde správné číslo je 6 a hádat se bude v rozpětí od 0 do 10. Program bude pěkně graficky upraven. Tato úloha jde vyřešit alespoň třemi různými způsoby a je jen na vás, který zvolíte. Pokud tu jsou zkušenější programátoři mohou mi poslat i více řešení ;)

6.Chci abyste si vymysleli vlastní programy ve kterých využijete proceduru a ve druhém funkci. Známkuji hlavně dobrý nápad. Koukejte na to, co dnes lidi baví a o co se zajímají, vytvořte nějaký program do školy nebo cokoli, ale hlavně ať to má nápad.

7.V programování už jsme došli docela daleko a proto nás čeká také obtížný úkol. Vymyslete program, který vás vyzve k zadání informace o osobě a zadávat budete: Jméno, věk, výšku. To samozřejmě vyřešíte pomocí záznamu, program ovšem bude chtít zadat šest osob a poté také všechny pěkně pod sebe vypsat. Snažte se udělat úlohu co nejlépe a také přehledně! Využijte hlavě toho, co jste se dnes naučili. Deklarujte a "cyklete", ať se daří ;)

8.Zadání dnešního úkolu bude jednoduché, ale výsledkem vaší práce bude takřka profesionální program. Udělejte mi jednoduchou hru, která bude obsahovat menu se třemi prvky. Nová hra, Tabulka skóre, Konec. Přes toto úvodní menu už pokračování nechám na vás. Pod novou hrou naprogramujete pomocí příkazů, které již znáte, nějakou jednoduchou hru, která po dohrání vyzve k vložení přezdívky a uloží přezdívku a skóre do souboru. Pod tabulkou skóre bude pouze výpis ze souboru a nějaký ten design (například Nick.......skóre). Jelikož menu musíte řešit příkazem CASE, tak pod položkou konec bude jediný přikaz: Exit;

9.Použijte svůj domácí úkol z 9. se záznamy. Záznam zapište do soubru (všech 6) a pak je všechny opět vypište. Aby někdo nepodváděl, tak na zapsání a vypsání záznamů si zvolte dvě proměnné.

Od najľahšieho(1.) až po najťažšie(9.)...tie som našiel.

Nahlásit jako SPAM
IP: 95.102.254.–
Autor programuje v programovacích jazykoch C++ a VB. Je tvorcom e-zinu http://www.programujte.6f.sk/, na ktorom sa nachádzaju info pre začínajúcich prog. a webdesignerov. Stránka zahrňuje aj fórum.
Washix0
Duch
26. 3. 2012   #3
-
+1
-
Zajímavé

#2 stif
Paráda, ďakujem!   Idem na to. Čo sa podarí sem hodím. 

Nahlásit jako SPAM
IP: 188.167.104.–
Mircosoft+1
Věrný člen
26. 3. 2012   #4
-
+2
-
Zajímavé

Trošku si zaspamuju . http://mircosoft.mzf.cz - ukázkové programy, návody atd., možná by se něco z toho mohlo hodit.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
stif+1
Stálý člen
26. 3. 2012   #5
-
0
-
Nahlásit jako SPAM
IP: 95.102.254.–
Autor programuje v programovacích jazykoch C++ a VB. Je tvorcom e-zinu http://www.programujte.6f.sk/, na ktorom sa nachádzaju info pre začínajúcich prog. a webdesignerov. Stránka zahrňuje aj fórum.
Washix0
Duch
26. 3. 2012   #6
-
+1
-
Zajímavé

#5 stif
Radšej som ani nespomenul, že som s tým začal dva dni dozadu lebo by sa asi na mňa každý vykašlal, pomôcť mi. Naozaj pekne ďakujem.

Skúsil som prvé dve:

1. 

program zadanie1;
begin
writeln('Martin');
writeln('Jozef');
writeln('Peter');
writeln('Maroš');
write('Peter ');
write('Programátor');
end.

2.

program zadanie2;
var
vek1, vek2, sucet: integer;
begin
writeln('Dobry den');
vek1 := 28;
writeln('Volam sa Peter Programator a mam ',vek1,' rokov.');
vek2 := 53;
writeln('Moj otec ma ',vek2,' rokov.');
sucet := vek1 + vek2;
writeln('Spolu mame ',sucet,' rokov.');
end.

Nahlásit jako SPAM
IP: 188.167.104.–
Washix0
Duch
26. 3. 2012   #7
-
+1
-
Zajímavé

#6 Washix
Pracujem na ďalších... 

Nahlásit jako SPAM
IP: 188.167.104.–
stif+1
Stálý člen
26. 3. 2012   #8
-
0
-

#6 Washix
Neboj sa nekašlem nanikoho...mám rád nadšených začiatočníkov...len tak ďalej!!!

Nahlásit jako SPAM
IP: 95.102.254.–
Autor programuje v programovacích jazykoch C++ a VB. Je tvorcom e-zinu http://www.programujte.6f.sk/, na ktorom sa nachádzaju info pre začínajúcich prog. a webdesignerov. Stránka zahrňuje aj fórum.
thopter0
Duch
26. 3. 2012   #9
-
0
-

vůbec vám nechci kazit téma které tu máte ale nemáte nějaký odkaz kde stáhnout nějaký program na programovaná v pascalu - je toho hodně a chci abych měl ten "správnej" - jsem taký uplnej začátečník :) a ted pujdu dělat ty lekce jak jsou v části "pascal" tady na webu...

Nahlásit jako SPAM
IP: 86.49.119.–
yetty
~ Redaktor
+5
Super člen
27. 3. 2012   #10
-
0
-

#1 Washix
Časem jsem sesbíral sbírku úloh...

Ještě doporučení - pokud sem budeš vkládat zdrojové kódy, je na to v editoru speciální tlačítko (<?), aby to vypadalo trochu lépe a přehledněji ;)

Nahlásit jako SPAM
IP: 46.23.51.–
stif+1
Stálý člen
27. 3. 2012   #11
-
0
-

Začal som sa učiť a venovať programovaniu v Pascale, mám stiahnutý Free Pascal

To záleži od toho aký jazyk sa budeš učiť či klasický pascal(IDE pre tento jazyk:Free Pascal, Turbo Pascal...) alebo Object Pascal (niekedy zvaný aj delphi:)) ktorý ma dva IDE to sú: Borland Delphi a Lazarus.Keď začínaš z klasickým Pascalom tak odporúčam pre teba ako začiatočníka Free Pascal(stiahni tu:http://www.windows7download.com/win7-free-pascal/kqeuhyss.html-to je najnovší, alebo tu:http://www.tomsguide.com/us/download/Free-Pascal,0301-4805.html-to je ten starý, klasický, modrý), ktorý je jednoduchý prehľadný a navyše zadarmo.Nech sa ti darí!

Nahlásit jako SPAM
IP: 95.102.254.–
Autor programuje v programovacích jazykoch C++ a VB. Je tvorcom e-zinu http://www.programujte.6f.sk/, na ktorom sa nachádzaju info pre začínajúcich prog. a webdesignerov. Stránka zahrňuje aj fórum.
Washix0
Duch
27. 3. 2012   #12
-
0
-

No tak pridávam ďalšie vypracované zadanie(3 a 4). Ak si niekto nájde čas na tieto moje základy, uvítam všetky pripomienky ako sa to dá urobiť lepšie a jednoduchšie. THX

3. zadanie

program zadanie3;
begin
 writeln('Zakladne datove typy:');
 writeln('A. CELOCISELNE');
 writeln('shortint, integer, longint, byte, word');
 writeln('B. DESATINNE');
 writeln('real, single, double, extended, comp');
 writeln('C. ZNAKOVE');
 writeln('char, string, pchar');
 writeln('D. LOGICKE');
 writeln('boolean');
end.

4. zadanie

program zadanie4;
var
 a, b, c, d, e: integer;
             f: real;
begin
 writeln('Vitajte v programe, ktory vyuziva matematicke operatory.');
 write('Zadaj prve lubovolne cislo (ENTER):  ');
  readln(a);
 write('Zadaj druhe lubovolne cislo (ENTER): ');
  readln(b);
 writeln;
 c := a+b;
 d := a-b;
 e := a*b;
 f := a/b;
 writeln('SUCET   zadanych cisel je: ',c);
 writeln('ROZDIEL zadanych cisel je: ',d);
 writeln('NASOBOK zadanych cisel je: ',e);
 writeln('PODIEL  zadanych cisel je: ',f);
 readln;
end.

P.S. Veci ako vymazanie obrazovky a ukončenie programu urobiť ešte neviem tak som to zo zadaní vynechal. :-)

Nahlásit jako SPAM
IP: 188.167.104.–
Mircosoft+1
Věrný člen
28. 3. 2012   #13
-
0
-

Zjednodušovat celkem není co, ale drobnost k vylepšení by se našla: kdyby někdo zadal nulové b, program spadne na dělení nulou (division by zero). Proto je dobré zvyknout si před každým podílem zkontrolovat dělitele a pokud není nulová hodnota bezpečně vyloučená (třeba kdyby to byla nenulová konstanta), zkontrolovat a případně dělení neprovádět:

if b=0 then writeln('PODIEL zadanych cisel neexistuje, nelze delit nulou.')
       else begin
            f := a/b;
            writeln('PODIEL zadanych cisel je: ',f);
            end;

(jde o logickou podmínku "jestli tohle platí, udělej tohle, jinak udělej tamto"; jestli to ještě neznáš, ber to jenom jako ilustrační příklad)

Jinak na vymazání textové obrazovky je příkaz Clrscr (TP ho má v jednotce Crt, jinde se to možná může lišit). Ukončení programu je jednoduché - prostě se dojde na konec. Kdyby bylo potřeba skončit dřív, použije se podmínka (if nechceme_skončit then pracuj_dál else nic). Potom existuje ještě příkaz Halt, který program ukončí okamžitě a odkudkoli, ale pro začátek bude lepší se mu vyhnout a snažit se všechno vyřešit vhodně strukturovanými příkazy a podmínkami.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Washix0
Duch
30. 3. 2012   #14
-
0
-

Skúšal som tu piatu úlohu len to chcvílu trvalo, pokiaľ som si naštudoval IF a CASE ale mám jeden problém, ktrorý ako začiatočník neviem vyriešiť...

program zadanie5; //podmienky IF a CASE

var a: integer;

begin
 writeln('Hra hádaj cislo'); //hadame cislo 6
 writeln;
 write('Myslim si cislo od 1 do 10. Hadaj, ktore? Zadaj svoj tip: ');
  readln(a);

 if a>10 then begin
 write('Len cisla od 1 do 10. Skus znova: ');
 readln(a);
 end;

 case a of
  0..5: begin
   write('Smola, skus znova...'); //TU MAM PROBLEM!
   readln(a);                     
   end;
  7..10: begin
   write('Smola, skus znova...'); //TU MAM PROBLEM!
   readln(a);
   end
   else writeln('Vyborne, spravne cislo je 6!');
   end;

readln;
end.

Ked zadam aj druhý pokus nesprávne číslo, program spadne a neviem ako zariadiť aby to mohlo fungovať stále dokola, až kým nezadám správne číslo...

Nahlásit jako SPAM
IP: 188.167.104.–
Washix0
Duch
31. 3. 2012   #15
-
0
-

Podarilo sa mi to vyriešiť asi takto:

program zadanie5;
var
 a, b: integer;

begin

 writeln('Hadaj cislo od 0 do 10'); //myslim si cislo 6
 writeln;
 write('Zadaj svoj tip: ');
  readln(a);

 for b := 1 to 200 do

  case a of
  0..5: begin
   write('Skus znova: ');
   readln(a);
        end;
  7..10: begin
   write('Skus znova: ');
   readln(a);
        end;
  11..1000: begin
   write('Len od 0 do 10. Skus znova: ');
   readln(a);
        end;
       end;

  if a=6 then writeln('Gratulujem, uhadol si.');


 readln;
end.

No ak si dá niekto námahu a vyskúša zadať číslo 201krát tak sa ocitne pri probléme, ktorý je o príspevok vyššie a tiež ak zadá niekto tip väčší ako 1000... :-(

Nahlásit jako SPAM
IP: 188.167.104.–
Washix0
Duch
31. 3. 2012   #16
-
0
-

Tu je ešte jedna možnosť, ktorou som to vyriešil a odpadol mi problém zo zadaným číslom vačším ako je zadefinované v programe.

program zadanie5B;
var
 a, b: integer;

begin
 writeln('Hadaj cislo od 0 do 10'); //myslim si cislo 6
 writeln;
 write('Zadaj svoj tip: ');
 readln(a);
  for b := 1 to 200 do
  if (a<>6) or (a>10) then begin
  writeln('Neuhadol si alebo si zadal cislo vacsie ako 10. Skus to znova.');
  write('Zadaj svoj tip: ');
  readln(a);
  continue;
 end;
 writeln('Gratulujem. Uhadol si moj tip!');
 readln;
end.

Že som sa ja tomuto nezačal venovať skôr. Začína ma to baviť viac a viac...! :-)

Nahlásit jako SPAM
IP: 188.167.104.–
Mircosoft+1
Věrný člen
31. 3. 2012   #17
-
0
-

Jediné, co potřebuješ, je cyklus, který nemá předem nastavený počet opakování, tj. Repeat nebo While. V tomhle případě bude lepší ten Repeat, protože nejdřív musíme něco načíst a až potom se podle toho rozhodnout, jestli už to ukončíme nebo ještě ne:

repeat
readln(číslo);
if číslo=6 then blahopřeju
           else zkus něco jiného;
until číslo=6;
Nahlásit jako SPAM
IP: 93.91.144.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Washix0
Duch
1. 4. 2012   #18
-
0
-

Tu je tretia a zároveň asi najjednoduchšia možnosť. Za pomoc ďakujem užívatelovi Microsoft!

program  zadanie5C;
var
 a: integer;

begin
 writeln('Hadaj cislo od 1 do 10'); //myslim si cislo 6
 writeln;
 write('Zadaj svoj tip: ');
  repeat
  readln(a);
   if a=6 then writeln('Gratulujem, uhadol si!')
          else write('Skus znova: ');
  until a=6;
 readln;
end.
Nahlásit jako SPAM
IP: 188.167.104.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý