C# - převod rádiánu na stupně ve vzorečku +výjiky! – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - převod rádiánu na stupně ve vzorečku +výjiky! – .NET – Fórum – Programujte.comC# - převod rádiánu na stupně ve vzorečku +výjiky! – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
shaima0
Duch
20. 10. 2011   #1
-
0
-

Ahoj všem!

Potřebovala bych poradit s konrkténí chybou ve školním projektu, hledala jsem na netu a vše co jsem našla jsem vyzkoušela, ale program stále nedělá co má, jsem totální začátečník, tak mě prosím neukamentuje.

Dělám program, kde uživatel zadá rychlost a úhel, pod kterým je vystřelena střela, a můj program má spočítat, za jak dlouho bude střela ve své maximální výšce. Počítám to dle následujícího vzorečku:


textBox3.Text = (v *  (Math.Sin(alfa) * 180 / Math.PI) / 9.81).ToString();

Tohle jsem našla někde na netu, problém je v tom, že když zadám třeba úhel 80 (max je 90), tak program vyhodí záporný výsledek, takže musí být v tom vzorečku něco špatně :( a při jakýchkoliv kombinacích vzorečku jsem si nepomohla a už nevím, jak to upravit. Fyziku jsem měla naposledy před pěti lety, takže je to pro mě těžké. Děkuji za jakoukoliv radu!

Druhý problém je ve výjimce, kdy chci uživateli zakázat, aby psal do pole jiné znaky nežli čísla. Na to jsem použila následujicí:

Int32 zadani;

            if (Int32.TryParse(textBox2.Text.ToString(), out zadani))
            {
                return;
            }
            else
            {
                MessageBox.Show("Musíte vložit číslo!");
                return;
            }

Problém je v tom, že když zadám do textBoxu třeba "k" - tak mi sice skvěle vyskočí tabulka, dám OK, tabulka zmizí, a když chci to svoje "k" vymazat, tak kvůli tomu, že jsem zmáčka backspace vyskočí znova, což je pro uživatele dosti otravné.

Tolik k mým problémum!
Díky Mia:)

Nahlásit jako SPAM
IP: 80.243.99.–
Řešení
liborb
~ Redaktor
+18
Guru
20. 10. 2011   #2
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Math.Sin bere na vstupu úhel v radiánech a nikoliv ve stupních, takže zadané stupně musíš nejprve přepočítat na radiány.

A s tou výjimkou ... tobě bude asi stačit, když tak přidáš kontrolu délky: 

if ((textBox2.Text.Length < 1) || (Int32.TryParse(textBox2.Text.ToString(), out zadani)))

a jinak je samozřejmě lepší, když by ta informace, že píšu něco špatně, nebyla v extra dialogu, ale například by vyskočil tooltip (bublina) nebo červeně vybarvit editační pole (nebo text) ... hlavně nenutit při chybě potvrzovat :), protože jak sama píšeš, je to otravné.

Nahlásit jako SPAM
IP: 78.80.52.–
shaima0
Duch
20. 10. 2011   #3
-
0
-

O tom převodu vím, a také ho tam mám, ale špatně... včera mě něco osvítilo a zkusila jsem to takhle, správně (doufám):

textBox3.Text = (v *  (Math.Sin(alfa / 180 * Math.PI) / 9.81).ToString();

Za výjimku moc děkuju, teď už to je lepší :)  Jedno kliknutí na OK lepší než dvě:) Ještě jsem přemýšlela, že to udělám tak, aby se rovnou ta písmena z textBoxu smazala... to mi přijde jako nejlepší možnost, bohužel b ych to měla identický s někým jiným, tak jsem to udělala přes tu tabulku :)

Ještě jednou díky moc za vyřešení problému!

Nahlásit jako SPAM
IP: 80.243.99.–
liborb
~ Redaktor
+18
Guru
20. 10. 2011   #4
-
0
-

A takhle nějak by to mohlo vypadat s tooltipem (do formu je potřeba přidat tuto komponentu) a barevným textem: 

if ((textBox2.Text.Length < 1) || (Int32.TryParse(textBox2.Text, out zadani)))
{
	toolTip1.Hide(this);
	textBox2.ForeColor = SystemColors.ControlText;
}
else
{
	toolTip1.Show("Musíte vložit číslo!", this, textBox2.Left, textBox2.Top);
	textBox2.ForeColor = Color.Red;
}
Nahlásit jako SPAM
IP: 78.80.52.–
shaima0
Duch
20. 10. 2011   #5
-
0
-

Wow! To je dokonalý!!

Díky moc :)

Nahlásit jako SPAM
IP: 80.243.99.–
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, 46 hostů

 

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