Diskuze: Zjednoduseni podminky

C++ C a C++ Zjednoduseni podminky

Avatar
MartinMa
Člen
Avatar
MartinMa:

Ahoj lidi, mate super web, vcera jsem ho objevil a dnes uz mam hotovy jeden program, uplne super to tady vysvetlujete, jen mam jeden dotaz. je nejak mozny zapsat jednoduseji toto: ???

if ((a >= 0) && (a <= 500) && (b >= 0) && (b <= 500) && (c >= 0) && (c <= 500) && (d >= 0) && (d <= 500) && (f >= 0) && (f <= 500) && (g >= 0) && (g <= 500) && (h >= 0) && (h <= 500))

..proste mám 7 promenych a potrebuji u nich aby byla dodrzena stejna podminka.

A jeste jeden dotaz, jako jednu z promenych jsem si nemohl zvolit "e" myslim si ze to bylo proto, ze uz "e" je zapsane tady "private void tlacitko_Clic­k(object sender, RoutedEventArgs e)" . To je takhle normalni nebo jsem neco udelal spatne? .. Díky za radu

 
Odpovědět 2.3.2014 20:06
Avatar
MartinMa
Člen
Avatar
Odpovídá na MartinMa
MartinMa:

ted jsem si vsim ze jsem to mylem napsal do jineho "C" :(( .. muzete to pls nekdo presunout?

 
Nahoru Odpovědět 2.3.2014 20:10
Avatar
gcx11
Redaktor
Avatar
gcx11:

Čau, můžeš se naučit a zkusit pole, poté vyzkoušet podmínky cyklem :)

 
Nahoru Odpovědět 2.3.2014 20:13
Avatar
Odpovídá na MartinMa
Luboš Běhounek (Satik):

To e je tak normální :)

Jinak pokud máš názvy proměnných a,b,c,d,..., tak to není moc dobré, snaž se ty proměnné pojmenovávat podle toho, k čemu slouží.

A urychlit se to dá tak, že nebudeš mít 10 stejných proměnných, ale uložíš si je do pole a pak můžeš ty hodnoty projít a porovnávat najednou cyklem, jak už tu bylo naznačeno.

Nahoru Odpovědět 2.3.2014 20:32
:)
Avatar
MartinMa
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
MartinMa:

No ja prave mam 7 textboxu a z kazdyho je 1 promena, ale v momente kdy je nactu tak by se mi to zas michalo s tim co zas budou delat v tom vypoctu :D . Ai budu potrebovat nejakej kurz :) . Jnak tady to je jak to mam a Diky za radu

double a = double.Parse(cis­lo1TextBox.Tex­t); /// pocet hodin na shopu
double g = double.Parse(cis­lo6TextBox.Tex­t); /// hodinovka na shopu

double vypocethodinov­kanashopu = a * g; /// vypocet hodinovka na shopu

hodinovkazsho­pu.Text = vypocethodinov­kanashopu.ToS­tring(); ///vysledek hodinovka na shopu

 
Nahoru Odpovědět 2.3.2014 21:10
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:

Tak si je ulož do objektu a máš to nejjednodušší :)

 
Nahoru Odpovědět 2.3.2014 21:13
Avatar
MartinMa
Člen
Avatar
Odpovídá na Jan Vargovský
MartinMa:

No to asi mam ale neposilal jsem to cely. :)

 
Nahoru Odpovědět 2.3.2014 21:18
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:

Pošli a my ti poradíme jak udělát kód logičtější a jednodušší :)

 
Nahoru Odpovědět 2.3.2014 21:22
Avatar
MartinMa
Člen
Avatar
MartinMa:

No dal jsem to tady do toho formulare , ale nevim kde to ted je :D

 
Nahoru Odpovědět 2.3.2014 21:29
Avatar
MartinMa
Člen
Avatar
MartinMa:

using System;
using System.Collec­tions.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Window­s.Controls;
using System.Window­s.Data;
using System.Window­s.Documents;
using System.Window­s.Input;
using System.Window­s.Media;
using System.Window­s.Media.Imagin­g;
using System.Window­s.Navigation;
using System.Window­s.Shapes;

namespace WpfApplication3
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeCom­ponent();
}

private void tlacitko_Clic­k(object sender, RoutedEventArgs e)
{

double a = double.Parse(cis­lo1TextBox.Tex­t); /// pocet hodin na shopu
double b = double.Parse(cis­lo2TextBox.Tex­t); /// pocet hodin offline
double c = double.Parse(cis­lo3TextBox.Tex­t); /// pocet hodin dovolena
double d = double.Parse(cis­lo4TextBox.Tex­t); /// koeficient kvality
double f = double.Parse(cis­lo5TextBox.Tex­t); /// koeficient plneni
double g = double.Parse(cis­lo6TextBox.Tex­t); /// hodinovka na shopu
double h = double.Parse(cis­lo7TextBox.Tex­t); /// hodinovka za dovolenou

if ((a >= 0) && (a <= 500) && (b >= 0) && (b <= 500) && (c >= 0) && (c <= 500) && (d >= 0) && (d <= 500) && (f >= 0) && (f <= 500) && (g >= 0) && (g <= 500) && (h >= 0) && (h <= 500))
{

double vypocethodinov­kanashopu = a * g; /// vypocet hodinovka na shopu
double vypocethodinov­kazaoffline = g * b; /// vypocet hodinovka za offline
double vypocethodinov­kazadovolenou = h * c; /// vypocet hodinovka za dovolenou
double vypocetbezkvality = vypocethodinov­kanashopu + vypocethodinov­kazaoffline + vypocethodinov­kazadovolenou­; //hodinovka bez kvality a provizi
double vypocetpriplnenisto = vypocetbezkvality * 0.6; /// vypocet provizi pri plneni 100%
double vypocetpritvem­plneni = vypocetpriplnenisto * f; /// vypocet provizi pri tvem plneni
double vypocetvcetnek­vality = vypocetbezkvality * d; /// vypocet vcetne kvality

hodinovkazsho­pu.Text = vypocethodinov­kanashopu.ToS­tring(); ///vysledek hodinovka na shopu
hodinovkazoffli­ne.Text = vypocethodinov­kazaoffline.ToS­tring(); /// vysledek hodinovka za offline
hodinovkazdovo­leny.Text = vypocethodinov­kazadovolenou­.ToString(); /// vysledek hodinovka za dovcu
hodinovkabezkva­lity.Text = vypocetbezkva­lity.ToString(); /// vysledek hodinovka bez kvality a provizi
provizepristu.Text = vypocetpriplne­nisto.ToStrin­g(); ///vysledek provizi pri plneni 100%
provizetvoje.Text = vypocetpritvem­plneni.ToStrin­g(); ///vysledek provizi pri tvem plneni
provizeskvali­tou.Text = vypocetvcetnek­vality.ToStrin­g(); ///vysledek vcetne kvality

}

else
{
MessageBox.Show("Pro­sím zadej číslo od 0 do 500.");
}

}

}
}

 
Nahoru Odpovědět 2.3.2014 21:31
Avatar
Odpovídá na MartinMa
Luboš Běhounek (Satik):

Pár připomínek:

  1. Controly (TextBoxy) pojmenovávej podle toho, k čemu slouží, třeba HodinNaShopuTex­tBox, jinak se v té aplikaci za chvíli utopíš.
  2. Je dobré se snažit oddělit logickou vrstvu od prezentační - na kontrolu a případně i vyparsování těch hodnot by bylo ideální si udělat nějakou třídu, které bys třeba ty textboxy zadal jako parametry v konstruktoru a ona si to z nich vytahala. Pak bys na ní zavolal metodu, co by provedla kontrolu hodnot a pak je případně vypsal.
  3. Pokud jsou to hodnoty víceméně nezávislé, tak bych je do pole nedával a kontroloval to ručně, i když je jich hodně, případně by se na to dala znásilnit reflexe... :)
Nahoru Odpovědět  +1 2.3.2014 22:18
:)
Avatar
MartinMa
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
MartinMa:

A a nevis kde bych nasel nejaky priklady jak si udelat tu tridu jak pises v bodu 2? stahoval jsem si v tech navodech ty priklady ale nefunguje mi to protoze mam jinou verzi VS :(

 
Nahoru Odpovědět 2.3.2014 23:45
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:
class Plat
    {
        public double PocetHodinNaShopu { get; set; }
        public double PocetHodinOffline{ get; set; }
        public double PocetHodinDovolena { get; set; }

        public double KoeficientKvality { get; set; }
        public double KoeficientPlneni { get; set; }

        public double HodinovkaNaShopu { get; set; }
        public double HodinovkaZaDovolenou { get; set; }


        public Plat(TextBox pocetShop, TextBox pocetOffline, TextBox pocetDovolena,
            TextBox koeficientKvality, TextBox koeficientPlneni,
            TextBox hodinovkaShop, TextBox hodinovkaDovolena)
        {
            // ...
        }
    }

Pak si tam jen uděláš metody na ty tvoje výpočty a už aspoň poznáš co je proměnná a i bez komentáře :)

 
Nahoru Odpovědět 3.3.2014 0:40
Avatar
MartinMa
Člen
Avatar
Odpovídá na Jan Vargovský
MartinMa:

To je super, vypada to hned lip, ale obavam se ze tomu stejne moc nerozumim :D . Ukázal by si mi to prosim tě celý s jednim tim prikladem abych tam mel vzrorově vypocet treba ty hodinoovky i s vysledkem??

 
Nahoru Odpovědět 3.3.2014 7:42
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:

Máš tu nato celý tutoriál :)

 
Nahoru Odpovědět 3.3.2014 11:59
Avatar
MartinMa
Člen
Avatar
MartinMa:

To vim, ale v tom tutotialu mi nefungujou priklady, protoze mi to pise ze mam jinou verzi Visual Studia, co bych zato dal kdyby to slo.

 
Nahoru Odpovědět 3.3.2014 12:01
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:

Můžeš si je otevřít jednotlivě ty soubory.

 
Nahoru Odpovědět 3.3.2014 12:44
Avatar
Odpovídá na MartinMa
Luboš Běhounek (Satik):

Kód je ve všech verzích VS stejný - buďto nestahuj hotové řešení a udělej to sám nebo si ty kódy z těch souborů vykopíruj (jsou to jen textové soubory) a nebo si stáhni poslední verzi VS (express edici) - i pro komerční účely je zdarma :)

Nahoru Odpovědět 3.3.2014 12:46
:)
Avatar
MartinMa
Člen
Avatar
MartinMa:

Super diky uz jsem to rozchodil a diky tomu navodu jsem to konecne pochopil, nemusim psat veci furt dokola.Jsem fakt zacatecnik tak se nesmejte :D . Az to predelam do objektu tak to jeste postnu svalne co mi jeste poradite :) Diky

 
Nahoru Odpovědět 3.3.2014 17:07
Avatar
Libor Šimo (libcosenior):

Chcem požiadať moderátora, aby toto vlákno presunul do diskusie c#.

Nahoru Odpovědět 4.3.2014 17:03
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.