Stránka 1 z 1
Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 22:01
od gorilino
Prosím Vás, byl by někdo ochotný mi pomoci s vypracováním maturitních otázek do programování v C# ... potřeboval bych vymyslet k pár jednoduchým programkům algoritmus a syntaxi v C# . Pokud možno jestli by byl tak někdo ochotný a probral to se mnou třeba přes icq.
Děkuji mockrát
Gorilino
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 22:12
od jan.svoboda
Ahoj, mohl by jsi sem alespoň uvést nějaký příklad maturitní otázky?
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 22:18
od gorilino
První maturitní otázka:
Metody a funkce praktické příklady C#
a potom ještě musím vypracovat následující:
1. Navrhněte algoritmus, který řeší základní matematické operace sčítaní, odčítaní násobení a dělení. Ošetřete dělení nulou.
2. Převeďte algoritmus na praktický zápis v programovacím jazyce C#.
a další:
1. Navrhněte algoritmus, který nám určí nejmenšího společného dělitele u dvou celých čísel.
2. Převeďte algoritmus na praktický zápis v programovacím jazyce.
a ještě jeden:
1. Navrhněte algoritmus, který nám určí největšího společného dělitele u dvou celých čísel.
2. Převeďte algoritmus na praktický zápis v programovacím jazyce.
Je toho dost a vůbec si s tím nevím rady
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 22:47
od jan.svoboda
Na maturitu to není dle mě nic strašného nebo nereálného

Jako s kódem není problém pomoci, ale znáš alespoň základy C#? Protože celý kód ke všemu se mi vážně psát nechce... A algoritmy se dají udělat i podle toho kódu, ač by měly být první (já je snad ještě nikdy nevyužil...

).
// OndraSter - otázka cirka minuty každá úloha. Jestli z toho má maturovat, tak C# měl alespoň měsíc ve škole a měl by to určitě zvládnout.
// jan.svoboda - souhlasím, s dotazama rád(i) poradím(e), ale psát celý kód ke všemu, pokud na to někdo ve škole slušně řečeno kašlal, nebudeme... Ty úlohy mi přijdou určený pro 1. ročník SŠ - na maturitu nějak hodně lehké dle mě...
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 22:52
od gorilino
Já moc neznám ani ty základy C# .. my totiz jeden rok delali delphi , pak pascal , pak zas delphi a pred pul rokem sme zacli C# ... jo ty algoritmy neni tezke vypracovat podle kodu ... já vím že to jsou stupidní úlohy ... ale potřeboval bych je vyřešit nějak elegantně což já neumím ...
Navíc učitel nás ted uci C# stylem ze nam ukaze jak to ma vypadat co to ma delat at to zrobime ... takze ani zadna teorie se moc nekonala ... max cykly a metoda parse a tryparse
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 22:59
od jan.svoboda
Je fakt, že ne všude na školách učitelé dobře a pochopitelně vyučují C#... Jedná se o Console Application / Windows Forms?
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 23:02
od gorilino
Windows Forms ... jako on neni spatny ucitel ... jenze dostal nas ctvrtaky co sme neumeli ani poradne programovat v delphi ... protoze ucitel na delphi opisoval programy z knizky a kdyz neco neslo tak se odkazoval na knizku ... no a ted nas ma ucitel pul roku pred maturitou naucit programovat v C# a navic ted jsou vselijake prazdniny ... takze na teorii moc casu neni ...
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 23:26
od jan.svoboda
Jo, chápu...
Ukázka řešení v C#:
1. Navrhněte algoritmus, který řeší základní matematické operace sčítaní, odčítaní násobení a dělení. Ošetřete dělení nulou.
2. Převeďte algoritmus na praktický zápis v programovacím jazyce C#.
S využitím funkcí:
Kód: Vybrat vše
int _a;
int _b;
private void button1_Click(object sender, EventArgs e)
{
_a = Convert.ToInt32(textBox1.Text);
_b = Convert.ToInt32(textBox2.Text);
try
{
label1.Text = secti().ToString();
label2.Text = odecti().ToString();
label3.Text = vynasob().ToString();
label4.Text = vydel().ToString();
}
catch (DivideByZeroException)
{
MessageBox.Show("Chyba: Nulou nelze dělit");
}
}
private int secti()
{
return _a + _b;
}
private int odecti()
{
return _a - _b;
}
private int vynasob()
{
return _a * _b;
}
private int vydel()
{
return _a / _b;
}
Bez využití funkcí:
Kód: Vybrat vše
private void button1_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(textBox1.Text);
int b = Convert.ToInt32(textBox2.Text);
try
{
label1.Text = (a + b).ToString();
label2.Text = (a - b).ToString();
label3.Text = (a * b).ToString();
label4.Text = (a / b).ToString();
}
catch (DivideByZeroException)
{
MessageBox.Show("Chyba: Nulou nelze dělit");
}
Tady máš ukázku, jak by mohla vypadat tato úloha... způsobu řešení je samozřejmě více, tohle mě napadlo jako první teď v rychlosti. Zkus se na to podívat a pochopit princip, a doporučuji kouknout třeba sem
http://projektysipvz.gytool.cz/Projekty ... aspx?uid=1 a pročíst si to...
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 23:51
od gorilino
Děkuji mockrát .... už to chápu ... přidám takový další stupidní dotaz ... metody a funkce jsou to samé nebo ne?
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 23:55
od jan.svoboda
Nemáš za co.
metody a funkce jsou to samé nebo ne?
Víceméně jsou to samé (funkce = metody, které vrací výsledek).
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: pát 10. pro 2010, 23:58
od gorilino
takže hlavička metody má obsahovat void ( nevrací hodnotu ) a hlavička funkce má obsahovat datový typ vrácené hodnoty? pokud to dobře chápu
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 00:02
od jan.svoboda
Pokud mi to ještě teď o půlnoci trošku myslí, tak ano. Ale raději Ti na to kouknu až jindy, teď už musím jít (zítra tu budu asi navečer).
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 00:04
od gorilino
Ok . Tak zas zítra pokud budeš mít čas. Dobrou a mockrát ti děkuju.
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 00:05
od jan.svoboda
Jasně, díky, a není za co.
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 00:31
od OndraSter
gorilino píše:takže hlavička metody má obsahovat void ( nevrací hodnotu ) a hlavička funkce má obsahovat datový typ vrácené hodnoty? pokud to dobře chápu
Ne tak docela. Metoda, narozdíl od funkce, se používá v objektovém programování (což ani jinak v C# nejde, C# je striktně objektový jazyk). Funkce se nazývá mimo objekty.
Jinak veškerá definice metod obsahuje:
Kód: Vybrat vše
[viditelnost (přístupnost)] [návratový typ] [název] ([parametr1[, parametr2[, parametr3, ...]]])
{
[obsah metody]
}
a funkce obsahuje
Kód: Vybrat vše
[návratový typ] [název] ([parametr1[, parametr2[, parametr 3]]])
{
[obsah funkce]
}
(Ty [ ] tam ofc nejsou v reálu, je to jako naznačení vlastního textu)
-- funkce neobsahuje tu viditelnost, neboť je vidět odevšad, neboť se neřeši objekty a neviditelná funkce by byla k ničemu.
// jan.svoboda - Díky za doplnění info

Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 19:13
od gorilino
Takže všechny funkce jsou jakoby public ? ... dneska sem si cetl plno materialu o OOP a porad nechapu jak si mam v kodu představit objekt ... nebo jak ho vymezit v tom kódu ... dá se to vůbec nějak vymezit v tom kódu?
Jinak díky za příspěvky a objasnění
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 21:12
od Exp
Objekt je instance (reprezentace) třídy. Třída může být pro představu např. továrna na automobily (Škodovka), kdežto objekt je automobil (Škoda Octavia) s vlastnostmi, které definují třídní proměnné. Tyto vlastnosti se pak nastavují při vytváření objektu.
Kód: Vybrat vše
class Skodovka
{
//následují třídní proměnné
promenna barvaAuta;
promenna vykonMotoru;
promenna typKaroserie;
//konstruktor - pokud o této metodě nic nevíš, doporučuju nastudovat. V zásadě je to metoda, která vytváří objekt dané třídy
metoda konstruktorObjektu(barvaAuta, vykonMotoru, typKaroserie)
{
...inicializace proměnných...
}
//další metody - např. přístupové (settery a gettery) apod.
}
//vytvoření objektu skodaOctavia třídy Skodovka
skodaOctavia = new Skodovka(cervena, 55, sedan);
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: sob 11. pro 2010, 21:55
od gorilino
Snažím se vytvořit ten program nejvetsi spolecny delitel a potreboval bych zkontrolovat jestli to dava smysl to co sem napsal a jeste bych nekde potřeboval zařadit příkaz pro vypsání výsledku do labelu (label1.Text = Vysledek.ToString();) myslím si že to mám všechno špatně ... celý program
Kód:
Kód: Vybrat vše
private void button1_Click(object sender, EventArgs e)
{
}
public void NejvetsiSpolecnyDelitel(int A,int B,int Vysledek,int zbytek)
{
A =Convert.ToInt32(textBox1.Text);
B =Convert.ToInt32(textBox2.Text);
do
{
zbytek=A % B;
A=B;
if (zbytek!=0)
{
Vysledek=B;
}
} while (zbytek==0);
}
}
//jan.svoboda - kód vložen do code
Re: Pomoc s maturitníma otázkama C# a trochu algoritimzace
Napsal: ned 12. pro 2010, 19:55
od Saphire
Tohle ne! Takhle:
(Onanisté nad absolutní objektovostí a přehledností zdroje mě budou asi chtít kamenovat, ale já to tak dělám a vždy to fungovalo
)
Kód: Vybrat vše
private void button1_Click(object sender, EventArgs e)
{
resultLabel.Text = (NejvetsiSpolecnyDelitel(Convert.ToInt32(textBox1.Text),Convert.ToInt32(textBox2.Text))).ToString();
}
public int NejvetsiSpolecnyDelitel(int A,int B)
{
int zbytek;
do
{
zbytek=A % B;
A=B;
if (zbytek!=0)
{
return B;
}
} while (zbytek==0);
}
}