Figure geometriche in C

di Anonimizzato10278 il
12 risposte
Ciao a tutti,
volevo sapere come si fa a creare un triangolo equilatero in C. L'idea che ho avuto è di realizzare due triangoli rettangoli, però non riesco a farlo

12 Risposte

  • Basta che i due triangoli abbiano angoli di 30, 60 e 90 gradi e poi li unisci. Facile no?

    P.S. Sto scherzando, ma anche tu mi pare Cosa stai dicendo?
  • Barba perdonami ho formulato male la domanda..cmq posto la traccia dell'esercizio..
    Scrivere un programma C che acquisisca in input da tastiera un valore
    intero positivo N <= 40 corrispondente alla base di un triangolo rettangolo
    e isoscele, e che riproduca a video tale triangolo utilizzando il carattere
    ‘*’.
    Esempio: se il valore letto da tastiera è 3, a video dovrà essere visualizzata
    la seguente serie di caratteri
    *
    **
    ***
    Approfondimento: considerare forme geometriche alternative, quali il
    triangolo equilatero, il quadrato, ecc… a scelta

    Io voglio realizzare un triangolo equilatero,ma non riesco a farlo..
  • Ciao Pinuzzo,

    Un triangolo rettangolo isoscele ha gli angoli di 45, 45 e 90 gradi quindi si riesce a disegnare con gli asterischi, perchè aumentando di uno ad ogni riga formano un angolo di 45 gradi (supponendo che occupino una zona quadrata)
    
    *
    **
    ***
    
    Se li fai crescere di due ogni riga, avrai gli angoli di 26.6, 63.4, 90 che approssima abbastanza bene mezzo triangolo equilatero (30, 60, 90)
    
    *
    ***
    *****
    
    Quindi per il triangolo completo ogni riga sucessiva deve aumentare di 4 asterischi e l' inizio spostarsi a sinistra di 2.
    Ti basta questo? Se hai delle difficoltà posta il codice che hai scritto poi ne parliamo (ti ricordo che il regolamento vieta di svolgere compiti scolastici per cui il codice lo devi scrivere tu).
  • Grazie mille ..
    Il triangolo mi esce in questo modo e non capisco cosa sbaglio:
    *
    **
    ***
    ***
    Ecco il codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    #define N 3
    int main ()
    {
        int i,j;
    
       for (i=0;i<(N);i++){
            printf ("*\n");
            for (j=0;j<(i+1);j++)
            printf ("*");
            }
    return 0;
  • Strano sistema! Non ti conviene prima stampare una riga di asterischi e dopo l' a-capo?
  • Intendevi questo giusto?..così mi esce grazie
    
    #include<stdio.h>
    #include<stdlib.h>
    #define N 3
    int main ()
    {
        int i,j;
    
    
        for (i=0;i<N;i++){
            for (j=0;j<i;j++)
            printf ("*");
            printf ("*\n");
        }
    
    return 0;
    }
    
  • Ottimo! Adesso per fare il triangolo equilatero potresti prima fare questo (in cui le linee si incrementano di due)
    
    *
    ***
    *****
    *******
    
    e poi questo, in cui inserisci degli spazi prima degli asterischi
     
         *
        ***
       *****
      *******
    
  • Per favore potreste gentilmente farmi vedere il codice dell'ultima figura?
    grazie mille
  • La discussione è di 3 anni fa!!

    Crea un nuovo thread ed esponi il problema provando a dare una tua soluzione ...
  • Buongiorno,

    ho creato questo codice per disegnare un triangolo iscoscele ma il risultato è un triangolo rettangolo. potete gentilmente darmi una mano:

    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    int lato ;
    int riga, colonna, rest;
    char c;
    printf("Inserisci un carattere: ") ;
    scanf("%c", &c) ;
    printf("Inserisci il lato del triangolo (numero dispari): ") ;
    scanf("%d", &lato) ;
    rest = lato % 2;
    if (rest == 0)
    printf("Errore, il lato deve essere un numero dispari\n") ;
    else if ( lato <=0 )
    printf("Errore, il lato deve essere maggiore di zero\n");
    else
    {
    riga = 0 ;
    while ( riga < lato )
    {
    colonna = 0 ;
    while ( colonna <= riga )
    {
    printf("%c",c) ;

    colonna = colonna + 1 ;
    }
    printf("\n") ;
    riga = riga + 1 ;
    }
    }
    exit(0) ;
    }
  • Ma perché non crei un tuo thread nuovo invece di continuare a scrivere in thread di altri?
  • Creato un nuovo thread! nella sezione Area SW C/C++
Devi accedere o registrarti per scrivere nel forum
12 risposte