Programação Orientada à Procedimentos II Programação Orientada à Procedimentos I Processamento Paralelo Lógica de Programação Introdução à Computação Informática Básica

 

 

Informática Básica
Introdução à Computação
Lógica de Programação
Programação Orientada à Procedimentos I
Programação Orientada à Procedimentos II

Processamento Paralelo


Uma Possível Solução ...




Elabore um programa em C, que simule um carrinho de corrida andando numa pista em forma de caracol. Quando o carrinho completar o trajeto,pergunte ao usuário se o mesmo deseja executar o programa novamente. Caso ele não o queira, interrompa o programa. Solte sua criatividade e abuse das cores e dos sons!



#include < stdio.h >
#include < conio.h >
#include < dos.h >
#include < ctype.h >

void main()
{
   int i, j, c1a, c1b, l1b, l1a;
   char resp;
   
	 do
   {
      c1a=1; c1b=73; // controlam colunas
      l1a=1; l1b=23; // controlam linas

      clrscr();
      textbackground(11); textcolor(13); // cores

      do // executa enquanto numero de linhas OK
      {
         for (i=c1a;i < =c1b;i++) // trajeto superior horizontal
         {
            sound(i);
            gotoxy(i,l1a);cprintf("\xDC\xDC\xDB\xDB\xDB\xDB\xDC\xDC");
            gotoxy(i,l1a+1);cprintf("\xDFO\xDF\xDF\xDF\xDFO\xDF");
            delay(50);
            clrscr();
         }

         for (i=l1a;i < =l1b;i++) // trajeto lateral direito
         {
             sound(i);
             gotoxy(c1b-1,i);printf("\xDC\xDC\xDB\xDB\xDB\xDB\xDC\xDC");
             gotoxy(c1b-1,i+1);printf("\xDFO\xDF\xDF\xDF\xDFO\xDF");
             delay(50);
             clrscr();
         }
         c1a=c1a+9; // atualiza posicao da coluna
         for (i=c1b-1;i > =c1a;i--) // trajeto inferior horizontal
         {
             sound(i);
             gotoxy(i,l1b);printf("\xDC\xDC\xDB\xDB\xDB\xDB\xDC\xDC");
             gotoxy(i,l1b+1);printf("\xDFO\xDF\xDF\xDF\xDFO\xDF");
             delay(50);
             clrscr();
         }
         for (i=l1b-1;i > =l1a+3;i--) // trajeto lateral esquerdo
         {
            sound(i);
            gotoxy(c1a,i);printf("\xDC\xDC\xDB\xDB\xDB\xDB\xDC\xDC");
            gotoxy(c1a,i+1);printf("\xDFO\xDF\xDF\xDF\xDFO\xDF");
            delay(50);
            clrscr();
         }
         l1a=l1a+3; // ataliza posicao das linhas e colunas
         c1b=c1b-10;
         l1b=l1b-3;
      }while(l1a < 12);
      nosound();
     
		  do
      {
         textbackground(0); textcolor(14);
         gotoxy(5,23);cprintf("Deseja executar novamente (S/N) ?");
         resp=getch();
         resp=toupper(resp);
      }while(resp!='S'&& resp!='N');
			
   }while(resp!='N');
}