Avatar
sNN_
Člen
Avatar
sNN_:

Zdravím,
jsem uplny začátečník v programování (cca 2 týdny). V rámci začátků jsem se rozhodl, že si zkusím naprogramovat program, který mi po zapsání tří čísel vypsal čísla vzestupně tak jak po sobě jdou.

int main(int argc, char*argv[])
{
 int a, b, c;
 printf("Zadej tri cisla: ");
 scanf("%d%d%d", &a,&b,&c);

  if(a > b) {
  if(a > c)
    printf("nejvetsi je %d\n", a);
  else
    printf("nejvetsi je %d\n", c);
  }
  if(b > c) {
  printf("druhe je %d\n", b);
}
  system("PAUSE");
  return 0;

Toto je zatím program na vypsání jen největšího čísla. Byl bych moc vděčný, kdyby mi někdo tento program napsal a já bych se na něj mohl podívat a pochopit jak byl napsán. Jen kdyby to šlo pouze za použití podmínek if-else, jelikož jsem se zatím dál nedostal :/ :D
DIKY MOC!

 
Odpovědět 26.9.2013 19:42
Avatar
Salieri
Člen
Avatar
Odpovídá na sNN_
Salieri:
#include <stdio.h>
#include <stdlib.h>

int main(){
    float a;
    float b;
    float c;
    float d;
printf("prvni cislo:\n");
scanf("%f", &a);
printf("druhecislo:\n");
scanf("%f", &b);
printf("treti cislo:\n");
scanf("%f", &c);
printf("ctvrte cislo:\n");
scanf("%f", &d);


if(a>b && a>c && a>d) {printf("nejvetsi cislo je:%1.f\n",a);}
if(b>a && b>c && b>d) {printf("nejvetsi cislo je:%1.f\n",b);}
if(c>a && c>b && c>d) {printf("nejvetsi cislo je:%1.f\n",c);}
if(d>a && d>b && d>c) {printf("nejvetsi cislo je:%1.f\n",d);}

printf("\n");


if(a<b && a<c && a<d) {printf("nejmensi cislo je:%1.f\n",a);}
if(b<a && b<c && b<d) {printf("nejmensi cislo je:%1.f\n",b);}
if(c<a && c<b && b<d) {printf("nejmensi cislo je:%1.f\n",c);}
if(d<a && d<b && d<c) {printf("nejmensi cislo je:%1.f\n",d);}
system("pause");

}
Nahoru Odpovědět  -2 26.9.2013 20:21
Hlavní zlo? **Školství a Matematika**!
Avatar
Nahoru Odpovědět  ±0 26.9.2013 20:26
I bez motta se dá žít
Avatar
Salieri
Člen
Avatar
Salieri:

Tak kolik palců dolu ještě? člověk se snaží pomoc a hned -2.

Nahoru Odpovědět 26.9.2013 20:26
Hlavní zlo? **Školství a Matematika**!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Salieri
David Čápka:

Kdyby ti je nedali, tak by nebylo poznat, že to je špatně. Má tam být else.

Nahoru Odpovědět 26.9.2013 20:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Salieri
Člen
Avatar
Odpovídá na David Čápka
Salieri:

Funčknost to plní. Pokud vím, větev else je nepovinná. Tak jsem to bohužel dal všechno pomocí IF. Sorry, že jsem chtěl pomoc..

Nahoru Odpovědět 26.9.2013 20:31
Hlavní zlo? **Školství a Matematika**!
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Salieri
Jan Vargovský:

Jde o to, že takhle to testuješ, i když jsi to číslo dávno našel => plýtváš výkonem.

 
Nahoru Odpovědět 26.9.2013 20:32
Avatar
Salieri
Člen
Avatar
Nahoru Odpovědět 26.9.2013 20:33
Hlavní zlo? **Školství a Matematika**!
Avatar
Odpovídá na Salieri
Vojtěch Pospíchal:

Nejde o to, že jsi chtěl pomoct, ale že jsi pomohl špatně. Pokud programátor takhle na začátku své ("působnosti"), narazí na takto špatný návyk, tak odvyknout si od něj pak může být už nemožné.

 
Nahoru Odpovědět 26.9.2013 20:38
Avatar
Kit
Redaktor
Avatar
Odpovídá na Salieri
Kit:

Dobrý programátor zná tři čísla: 0, 1 a ∞ (nekonečno). První dvě řeší podmínkou, zbývající cyklem nebo rekurzí.

Editováno 26.9.2013 20:48
Nahoru Odpovědět 26.9.2013 20:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sNN_
Člen
Avatar
sNN_:

Může sem teda někdo napsat "programátorsky" správnej kód? Díky moc

 
Nahoru Odpovědět 26.9.2013 20:49
Avatar
Kit
Redaktor
Avatar
Odpovídá na sNN_
Kit:

Docela mě zaráží, že sis jako začátečník vybral zrovna C++. Co takhle začít s něčím jednodušším, pro výuku vhodnějším?

Nahoru Odpovědět 26.9.2013 21:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sNN_
Člen
Avatar
sNN_:

Nevybral jsem si to sám, začali jsme to ve škole, jen jsem nepochytil začátek a tak se to teď snažím doučit zpětně..

 
Nahoru Odpovědět 26.9.2013 21:04
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na sNN_
Jan Vargovský:

Nahraď if za else if, kromě toho prvního if. Schválně si to zkus v debugu jaký je to rozdíl. Je to základní konstrukce, takže bys jí měl ovládat na 100% :)

Editováno 26.9.2013 21:11
 
Nahoru Odpovědět 26.9.2013 21:11
Avatar
sNN_
Člen
Avatar
sNN_:

Ok díky :)

 
Nahoru Odpovědět 26.9.2013 21:21
Avatar
Odpovídá na sNN_
Michael Olšavský:

Jinak zde je takový mix algoritmu zvavého Selection Sort. Měl by být docela lehký na pochopení. Asi ještě neumíš pole a cykly, takže: pole je řada několika prvků za sebou uložených v paměti, cyklus za tebe opakuje dané instrukce kolikrát požaduješ.

using std::cout;
        using std::endl;

        const int length = 10;
        int arr[length] = {2,6,5,7,8,6,2,3,4,8};

        for (int i = 0; i < length; i++)
        {
                for(int j = i; j < length; j++)
                {
                        if(arr[i] > arr[j])
                        {
                                int rand = arr[i];
                                arr[i] = arr[j];
                                arr[j] = rand;
                        }
                }
                cout << arr[i] << endl;
        }
}
 
Nahoru Odpovědět  ±0 26.9.2013 21:31
Avatar
Martin Gabriel:

Pokud bys chtěl více čísel vypisovat vzestupně/sestupně, tak jen pomocí if-else daleko nedojdeš.

Doporučuju si pročíst místní tutorialy, podívat se co je to Pole a jak se s ním pracuje (je to nejvíce powerfull věc pro začátek ;) ) a pak si najdi třeba BubbleSort, nebo nějaký podobný primitivní (třídící) algoritmus - který by jsi mimochodem měl umět z paměti i o půlnoci, jestli chceš programovat. =)

Tady je tutorial z C (základ je stejný) - Pole:
http://www.itnetwork.cz/…ole-tutorial

A tady jsou k tomu taky cykly, bez kterých se neobejdeš:
http://www.itnetwork.cz/…torial-cykly

Zkoušej a ono to časem půjde. ;) Když se pak naučíš úplné základy, tak programování začne být sranda. Je to jako učit se číst.. ;)

Editováno 26.9.2013 21:48
Nahoru Odpovědět 26.9.2013 21:48
"Be the change you want to see in the world" - Michael Scofield
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 17 zpráv z 17.