C Helpdesk

C Helpdesk

  • Nie jesteś zalogowany.
  • Polecamy: Gry

#1 03-19-2007 15:46:45

domingo

Moderator

1752176
Skąd: Suwałki\B-Stok
Zarejestrowany: 03-07-2007
Posty: 6
Punktów :   
WWW

Program "Choinka ASCII" w C

Witam serdecznie:) Dzisiaj przedstawiam kod programu wyświetlający choinkę z wprowadzonego tekstu, a dokładnie z odpowiedniej kombinacji znaków. Na początku kod programu, który wygląda następująco:

Kod:

#include<stdio.h>
main()
{
    int znak;
    int index;
    int numznak;
    
    while ((znak = getchar()) != '\n')
    {
          numznak = znak % 26;
          index = 0;
          while (index++ < (30 - numznak))
                putchar(' ');
          index = 0;
          while (index++ < (2 * numznak + 1))
                putchar(znak);
                putchar('\n');
    }
    getchar();
    return 0;
}

Teraz, gdy zapoznaliśmy się z kodem, pozwolę sobie przejść do krótkiej analizy. Przedstawiony program jest przykładem listingu. Odczytuje on znak, a następnie wyświetla go określoną liczbę razy, zależnie od kodu ASCII. Program wykorzystuje pętle zagnieżdżone. Zewnętrzna pętla 'while' pobiera znaki. Pierwsza wewnętrzna pętla 'while' wyświetla początkowe odstępy pozwalające wyśrodkować tekst, a druga - wyświetla odczytany znak odpowiednią ilość razy. Liczba kopii znaku jest określana na podstawie jego wartości numerycznej. Warto wypróbować różne kombinacje efekt choinki z tekstu otrzymamy po wpisaniu ciągu znaków: hijklmnopqrstuiii

That's all for now...

Offline

 

#2 03-20-2007 15:47:41

mieczyk

Member

3375619
Zarejestrowany: 03-08-2007
Posty: 24
Punktów :   
WWW

Re: Program "Choinka ASCII" w C

A to jest mój pomysł: 

Kod:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x, n, i, j;
    srand(time(0));
    
    printf("Podaj wysokosc choinki: ");
    scanf("%d", &n);
    printf("\n\n");
    
    if(n<=0)
    {
       printf("Blad !");
       getchar();
       getchar();
       return(-1);
    }
    
    x = n;
    
    for(i=1; i<=n; i++)
    {
       for(j=1; j<=x; j++)
          putchar(' ');
       
       for(j=1; j<=2*i-1; j++)
        {
           if (j>=2 && rand()%(2*i-1) == j) putchar('O');
           else putchar('*');
        }
           
       x--;
       putchar('\n');
    }
    
    for(i=1; i<=j/2-1; i++)
      putchar(' ');
       
    printf("[ ]");
    
    getchar();
    getchar();
    return 0;
}

Może mało eleganckie rozwiązanie, ale działa...


Oprócz wyświetlania choinki, program wstawia bombki w losowe miejsca...

Ostatnio edytowany przez mieczyk (03-20-2007 15:49:25)

Offline

 

Stopka forum

RSS
Powered by PunBB 1.2.23
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
GotLink.pl