Advertisement
Guest User

aula0602.c

a guest
Apr 26th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. #include "aula0601.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5.  
  6. #define NUMERO_DE_PARAMETROS_INVALIDOS 1
  7. #define NUMERO_DE_PARAMETROS_VALIDOS 9
  8. #define EOS '\0'
  9.  
  10. int
  11. main(int argc,char *argv[])
  12. {
  13. char *validacao=NULL;
  14. int indice,maximoLinhas,maximoColunas,ordenadaEsquerda,ordenadaDireita,abscissaEsquerda,abscissaDireita,auxOrdenada,auxAbscissa;
  15. int linhaPonto,colunaPonto;
  16. tipoPixel monitor[NUMERO_MAXIMO_LINHAS][NUMERO_MAXIMO_COLUNAS];
  17.  
  18. if(argc != NUMERO_DE_PARAMETROS_VALIDOS)
  19. {
  20. printf("\n\nNumero de argumentos invalidos\n\n");
  21. exit(NUMERO_DE_PARAMETROS_INVALIDOS);
  22. }
  23.  
  24. for(indice = 1; indice < argc;indice++)
  25. if(argv[indice][0] == '-')
  26. {
  27. printf("\n\nNao eh permitido a entrada de numeros negativos\n\n");
  28. exit(CARACTERE_INVALIDO);
  29. }
  30.  
  31. maximoLinhas=strtod(argv[1],&validacao);
  32. if(*validacao != EOS)
  33. {
  34. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  35. exit(CARACTERE_INVALIDO);
  36. }
  37. if(maximoLinhas > NUMERO_MAXIMO_LINHAS)
  38. {
  39. printf("O numero desejado de linhas ultrapassa a quantidade permitida de %d linhas",NUMERO_MAXIMO_LINHAS);
  40. exit(FORA_DE_ESCOPO);
  41. }
  42.  
  43. maximoColunas=strtod(argv[2],&validacao);
  44. if(*validacao != EOS)
  45. {
  46. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  47. exit(CARACTERE_INVALIDO);
  48. }
  49. if(maximoColunas > NUMERO_MAXIMO_COLUNAS)
  50. {
  51. printf("O numero maximo de colunas ultrapassa a quantidade permitida de %d linhas",NUMERO_MAXIMO_LINHAS);
  52. exit(FORA_DE_ESCOPO);
  53. }
  54.  
  55. ordenadaEsquerda=strtod(argv[3],&validacao);
  56. if(*validacao != EOS)
  57. {
  58. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  59. exit(CARACTERE_INVALIDO);
  60. }
  61. if(ordenadaEsquerda > maximoLinhas)
  62. {
  63. printf("A ordenada tem que ser menor ou igual a %d",maximoLinhas);
  64. exit(ORDENADA_INVALIDA);
  65. }
  66.  
  67. abscissaEsquerda=strtod(argv[4],&validacao);
  68. if(*validacao != EOS)
  69. {
  70. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  71. exit(CARACTERE_INVALIDO);
  72. }
  73. if(abscissaEsquerda > maximoColunas)
  74. {
  75. printf("A ordenada tem que ser menor ou igual a %d",maximoColunas);
  76. exit(ORDENADA_INVALIDA);
  77. }
  78.  
  79. ordenadaDireita=strtod(argv[5],&validacao);
  80. if(*validacao != EOS)
  81. {
  82. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  83. exit(CARACTERE_INVALIDO);
  84. }
  85. if(ordenadaDireita > maximoLinhas)
  86. {
  87. printf("A ordenada tem que ser menor ou igual a %d",maximoLinhas);
  88. exit(ORDENADA_INVALIDA);
  89. }
  90.  
  91. abscissaDireita=strtod(argv[6],&validacao);
  92. if(*validacao != EOS)
  93. {
  94. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  95. exit(CARACTERE_INVALIDO);
  96. }
  97. if(abscissaDireita > maximoColunas)
  98. {
  99. printf("A ordenada tem que ser menor ou igual a %d",maximoColunas);
  100. exit(ORDENADA_INVALIDA);
  101. }
  102.  
  103. if(abscissaEsquerda < abscissaDireita)
  104. {
  105. auxAbscissa = abscissaEsquerda;
  106. abscissaEsquerda = abscissaDireita;
  107. abscissaDireita = auxAbscissa;
  108. }
  109.  
  110. if(ordenadaEsquerda < ordenadaDireita)
  111. {
  112. auxOrdenada = abscissaEsquerda;
  113. abscissaEsquerda = abscissaDireita;
  114. abscissaDireita = auxOrdenada;
  115. }
  116.  
  117. linhaPonto=strtod(argv[7],&validacao);
  118. if(*validacao != EOS)
  119. {
  120. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  121. exit(CARACTERE_INVALIDO);
  122. }
  123. if(linhaPonto > maximoLinhas)
  124. {
  125. printf("A ordenada tem que ser menor ou igual a %d",maximoLinhas);
  126. exit(ORDENADA_INVALIDA);
  127. }
  128.  
  129. colunaPonto=strtod(argv[8],&validacao);
  130. if(*validacao != EOS)
  131. {
  132. printf("\n\nO argumento %c eh invalido.Apenas numeros sao permitidos",*validacao);
  133. exit(CARACTERE_INVALIDO);
  134. }
  135. if(colunaPonto > maximoColunas)
  136. {
  137. printf("A ordenada tem que ser menor ou igual a %d",maximoColunas);
  138. exit(ORDENADA_INVALIDA);
  139. }
  140.  
  141. LimparMonitor(monitor,maximoLinhas,maximoColunas);
  142.  
  143. DesenharRetangulo(monitor,maximoLinhas,maximoColunas,ordenadaEsquerda,abscissaEsquerda,ordenadaDireita,abscissaDireita);
  144.  
  145. PreencherPoligono(monitor,maximoLinhas,maximoColunas,linhaPonto,colunaPonto);
  146.  
  147. return OK;
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement