Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Vytvoření trojúhelníku pomocí '*' v jazyce C

Dobrý den
Potřeboval bych pomoct snažím se vytvořit v jazyce C trojúhelník pomocí hvězdiček. Podařil se mi jenom pravoúhlý, ale chtěl bych udělat rovnoramenný, ale nevím jak na to.Jsem teprve začátečník v programování. Studuji 1.ročník IT na SŠ a znám jenom Cykly, větvení k funkcím se teprve budeme dostávat . Na různých stránkách používají putchar a jiné, ale to ještě neznám.

*
* *
*****
*******
*********
***********

Předmět Autor Datum
Prostě před ty hvězdičky vypíšeš ještě příslušný počet mezer.
Wikan 09.04.2016 21:43
Wikan
A máš to napsané aspoň pomocí cyklu?
Jan Fiala 09.04.2016 21:50
Jan Fiala
Psal jsem to pomocí cyklů na první pokus mi to když jsem zadal čísla 1-4 udělalo pravoúhlý a pak už…
martinkat 09.04.2016 22:14
martinkat
tohle jsem našel na internetu
martinkat 09.04.2016 22:14
martinkat
No a proč by to taky mělo být složité?
Wikan 09.04.2016 22:19
Wikan
A dalo by se to putchar nahradit ? Treba ze misto toho by se dal printf.
martinkat 09.04.2016 22:32
martinkat
Šlo, ale proč bys to dělal? putchar() slouží přesně k tomu, co potřebuješ - napsání jednoho znaku.
Wikan 09.04.2016 22:35
Wikan
Proč by to dělal? Porotože putchar() mu udělá pravoúhlý trojúhelník ;-)
Jan Fiala 10.04.2016 07:59
Jan Fiala
Už jsem na to přišel. Funguje je to. #include <stdio.h> int main() { int i, j,k,velikost,n; printf(…
martinkat 10.04.2016 10:32
martinkat
Zkus to jeste predelat, abys tam mel jen 2 cykly - jeden na pocet rad a druhym budes vypisovat rady.…
Jan Fiala 10.04.2016 11:07
Jan Fiala
A tím "přišel" evidentně myslíš to, že jsi vzal stažený kód z internetu a v něm jsi změnil putchar n…
Wikan 10.04.2016 12:01
Wikan
Uz jsem ti to psal, putchar() umi jen pravouhly trojúhelník ]:)
Jan Fiala 10.04.2016 15:30
Jan Fiala
to IT si si vybral sám, alebo ťa prinútili? zaťial to vyzerá na druhú možnosť
čitateľ 10.04.2016 05:57
čitateľ
Ne vybral jsem si to sám . V hodinách programování jsme nikdy nedělaly takové typy příkladů . Většin…
martinkat 10.04.2016 10:22
martinkat
jenže o tom IT je. Ne o tom, že si na internetu najdeš hotový "příklad" s již algoritmizovanou úloho…
touchwood 10.04.2016 10:36
touchwood
Presne na toto som myslel. Ten prvy trojuholnik ako stvorec, s tym ze bude vyplnat hviezdicky a medz…
čitateľ 10.04.2016 11:50
čitateľ
Jo zarazil jsem se nad tím, protože jsme to nikdy ve škole nedělaly. Většinou děláme úlohy typu načt…
martinkat 10.04.2016 12:30
martinkat
Protože programování není o tom, ze jsi neco delal nebo nedelal. Ve velke vetsine pripadu delas neco…
Jan Fiala 10.04.2016 15:33
Jan Fiala
No už je to uzavřené už jsem vím jak to funguje
martinkat 10.04.2016 15:56
martinkat
Tak to prepis pomoci 2 cyklu. Mas tam precyklovano.
Jan Fiala 10.04.2016 20:31
Jan Fiala
no neviem. uz som cital aj take, ze programming sa moze oficialne premenovat na "searching on stacko…
wam_Spider007 10.04.2016 13:32
wam_Spider007
Faktická poznámka, to že je trojúhelník pravoúhlý neznamená, že není rovnoramený.
Prim 10.04.2016 18:48
Prim
Načtěte tři celá čísla d , h , b a vypočtěte součet čísel od d do h bez čísel dělitelných číslem b.…
Samuelis 04.04.2019 12:06
Samuelis
// d = 10 // h = 20 // b = 2 int sum = 0; for (int i = d; i <= h; i+) { if (i % b != 0) sum += i; }… poslední
JakubMádotaz 04.04.2019 12:11
JakubMádotaz

Psal jsem to pomocí cyklů na první pokus mi to když jsem zadal čísla 1-4 udělalo pravoúhlý a pak už to jenom tisklo '*' ale ne v trojúhelníku.
Proč je to s tím putchar tak jednoduché ?

#include <stdio.h>

int main()
{
    int i, j;
    int size = 5;
    
    for (i = 1; i <= size; i++)
    {
        for (j = 1; j <= size - i; j++) putchar(' ');
        for (j = 2; j <= i * 2; j++)    putchar('*');
        putchar('\n');
    }
    return 0;
}

Už jsem na to přišel. Funguje je to.

#include <stdio.h>

int main()
{
    int i, j,k,velikost,n;

    printf("Zadej size a n");
    scanf("%d%d",&velikost,&n);
   for (k=1;k<=n;k++)
   {
    for (i = 0; i <= velikost; i++)
    {
        for (j = 0; j <= velikost - i; j++)
        {
           printf(" ");
        }
        for (j = 0; j <= i * 2; j++)
        {
          printf("*");
        }
        printf("\n");
    }
   }
    return 0;
}

Ne vybral jsem si to sám . V hodinách programování jsme nikdy nedělaly takové typy příkladů . Většinou děláme úlohy typu: Načtěte tři celá čísla d , h , b a vypočtěte součet čísel od d do h bez čísel dělitelných číslem b. Ošetřete případ d<h. Takové úlohy chápu jak vyřešit, ale nevím jak ten trojúhelník. Umím udělat jen pravoúhlý.

printf("Zadejte výšku trojúhelníku: ");
    scanf("%d", &hrana);
    for (i = 0; i <= hrana; i++) 
    {
        for (j = 0; j < i; j++)
        {
            printf("*");
        }
        printf("\n");
    }
    
    return 0;
}

jenže o tom IT je. Ne o tom, že si na internetu najdeš hotový "příklad" s již algoritmizovanou úlohou. Napsat program, když máš kompletní algoritmus, to umí i cvičená vopice.

A pokud ses zarazil na takové trivialitě, jak vyprodukovat rastrový trojúhelník, tak to by ses možná měl zamyslet nad tím, zda studuješ tu správnou školu s ohledem na své schopnosti.

Ale aby sis nemyslel, že tě tu jen prudím. Zkus se zamyslet: nedostaneš náhodou rovnostranný trojúhelník ze dvou zrcadlově otočených pravoúhlých? A co když takový pravoúhlý trojúhelník budeš vnímat jako obdélník, vyplněný mezerami a hvězdičkami, tak, že na začátku bude třeba 5 mezer a 1 hvězdička a na konci samé hvězdičky?

edit: kdyby sis to zadání byť jen vyzkoušel ručně v notepadu, měl bys okamžitě jasno.

Presne na toto som myslel. Ten prvy trojuholnik ako stvorec, s tym ze bude vyplnat hviezdicky a medzery.
Dat ho do funkcie, tej dat parameter velkost, natocenie vpravo/vlavo, hore/dolu.
No a potom spravit novy cyklus v ktorom bude volat tuto funkciu, a moze zacat malovat :)

Jo zarazil jsem se nad tím, protože jsme to nikdy ve škole nedělaly. Většinou děláme úlohy typu načti celá čísla, z intervalu nebo nechali vygenerovat a pak jsme většinou měli ověřit něco podmínkou.Zjistit součty, počty ,aritmetický průměr, vypočítat podle vzorců, cyklovat podle intervalu atd.Tohle chápu. Skoro nikdo z mojí třídy nevěděl o čem učitel mluví, když nám ukazoval vykreslení pomocí '*'. Tak se snažím doma na to přijít.

Protože programování není o tom, ze jsi neco delal nebo nedelal. Ve velke vetsine pripadu delas neco, co jsi jeste nedelal. Dulezite je vymyslet, jak to udelat - algoritmus - co vlastne by mel program delat (tohle jsi neudelal) a nasledne algoritmus prepsat do programovaciho jazyka.

Ty jsi jen pouzil vyhledavac, vzal kus nejakeho hotoveho kodu a resis tu jestli pouzit putchar() nebo printf() a vubec ti nevadi, ze nechapes, co vlastne kod, ktery jsi zkopiroval dela.

Načtěte tři celá čísla d , h , b a vypočtěte součet čísel od d do h bez čísel dělitelných číslem b. Ošetřete případ d<h. Vedel by mi s timhle nekdo pomoct poslat mi to udelane v programu C nebo C++ protoze ja to vubec nechapu...

Zpět do poradny Odpovědět na původní otázku Nahoru