gabriellserra

Trabalho 1 de Computacao

Sep 25th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.03 KB | None | 0 0
  1. #include <stdio.h>
  2. 2 #include <stdlib.h> //biblioteca para "system ("clear")"
  3. 3 #define SIZE_MATRIZ 20 //tamanho maximo de todas as matrizes
  4. 4 #define SIZE_VETOR 25 //tamanho maximo de todos os vetores
  5. 5
  6. 6 // CODIGO DE UMA CALCULADORA DE
  7. VETORES E MATRIZES
  8. 7
  9. 8
  10. 9 //FUNCOES QUE ZERAM A MATRIZ
  11. 10
  12. 11 float zeraMatriz (int tamanhoColunasPrimeiraMatriz, int tamanhoLinhasPrimeirr
  13. aMatriz, int tamanhoLinhasSegundaMatriz, int tamanhoColunasSegundaMatriz)
  14. 12 {
  15. 13 float resultadoMultiplicacao [SIZE_MATRIZ][SIZE_MATRIZ];
  16. 14 float resultadoTransposta [SIZE_MATRIZ][SIZE_MATRIZ];
  17. 15 float resultadoVetorIntercalado [SIZE_VETOR];
  18. 16 int indiceResultadoVetorIntercalado;
  19. 17 int indiceColunas;
  20. 18 int indiceLinhas;
  21. 19 int indiceGeral;
  22. 20
  23. 21 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMatriz; indicc
  24. eColunas++)
  25. 22 {
  26. 23 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMatriz; indiceLL
  27. inhas++)
  28. 24 {
  29. 25 resultadoMultiplicacao[indiceLinhas][indiceColunas] = 0;
  30. 26 }
  31. 27 }
  32. 28
  33. 29 for (indiceColunas = 0; indiceColunas < tamanhoColunasSegundaMatriz; indicc
  34. eColunas++)
  35. 30 {
  36. 31 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasSegundaMatriz; indiceLL
  37. inhas++)
  38. 32 {
  39. 33 resultadoTransposta[indiceLinhas][indiceColunas] = 0;
  40. 34 }
  41. 35 }
  42. 36
  43. 37 return 0;
  44. 38 }
  45. 39
  46. 40 //FUNCOES QUE PREENCHEM TANTO VETOR QUANTO MATRIZ
  47. 41
  48. 42 float preenchePrimeiroVetor (float primeiroVetor [SIZE_VETOR], int tamanhoPP
  49. rimeiroVetor)
  50. 43 {
  51. 44 int indiceGeral;
  52. 45
  53. 46 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGeral++)
  54. 47 {
  55. 48 printf ("Diga os valores para completar o Primeiro Vetor:\n");
  56. scanf ("%f",&primeiroVetor[indiceGeral]);
  57. 50 }
  58. 51
  59. 52 return 0;
  60. 53 }
  61. 54
  62. 55 float preencheSegundoVetor (float segundoVetor [SIZE_VETOR], int tamanhoSegg
  63. undoVetor)
  64. 56 {
  65. 57 int indiceGeral;
  66. 58
  67. 59 for (indiceGeral = 0; indiceGeral < tamanhoSegundoVetor; indiceGeral++)
  68. 60 {
  69. 61 printf ("Diga os valores para completar o Segundo Vetor:\n");
  70. 62 scanf ("%f",&segundoVetor[indiceGeral]);
  71. 63 }
  72. 64
  73. 65 return 0;
  74. 66 }
  75. 67
  76. 68 float preenchePrimeiroVetorIntercalado (float primeiroVetorIntercalado [SIZZ
  77. E_VETOR], int tamanhoPrimeiroVetorIntercalado)
  78. 69 {
  79. 70 int indiceGeral;
  80. 71
  81. 72 do
  82. 73 {
  83. 74 for (indiceGeral = 0; indiceGeral < 8; indiceGeral++)
  84. 75 {
  85. 76 printf ("Diga os valores para completar o Primeiro Vetor que ser a Interr
  86. calado:\n");
  87. 77 scanf ("%f",&primeiroVetorIntercalado[indiceGeral]);
  88. 78 }
  89. 79 }while (indiceGeral != 8);
  90. 80
  91. 81 return 0;
  92. 82 }
  93. 83
  94. 84 float preencheSegundoVetorIntercalado (float segundoVetorIntercalado [SIZE__
  95. VETOR], int tamanhoSegundoVetorIntercalado)
  96. 85 {
  97. 86 int indiceGeral;
  98. 87
  99. 88 do
  100. 89 {
  101. 90 for (indiceGeral = 0; indiceGeral < 8; indiceGeral++)
  102. 91 {
  103. 92 printf ("Diga os valores para completar o Segundo Vetor que sera Ordenadd
  104. o:\n");
  105. 93 scanf ("%f",&segundoVetorIntercalado[indiceGeral]);
  106. 94 }
  107. 95 } while (indiceGeral != 8);
  108. 96
  109. 97 return 0;
  110. 98 }
  111.  
  112. 100 float preenchePrimeiraMatriz (float primeiraMatriz [SIZE_MATRIZ][SIZE_MATRIZZ
  113. ],int tamanhoColunasPrimeiraMatriz, int tamanhoLinhasPrimeiraMatriz)
  114. 101 {
  115. 102 int indiceColunas;
  116. 103 int indiceLinhas;
  117. 104
  118. 105 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMatriz; indicc
  119. eColunas++)
  120. 106 {
  121. 107 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMatriz; indiceLL
  122. inhas++)
  123. 108 {
  124. 109 printf ("Diga o valor para completar a %d Linha e %d Coluna da sua Primeii
  125. ra Matriz:\n", indiceColunas+1, indiceLinhas+1);
  126. 110 scanf ("%f",&primeiraMatriz[indiceLinhas][indiceColunas]);
  127. 111 }
  128. 112 }
  129. 113
  130. 114 return 0;
  131. 115
  132. 116 }
  133. 117
  134. 118 float preencheSegundaMatriz (float segundaMatriz [SIZE_MATRIZ][SIZE_MATRIZ],,
  135. int tamanhoColunasSegundaMatriz, int tamanhoLinhasSegundaMatriz)
  136. 119 {
  137. 120 int indiceColunas;
  138. 121 int indiceLinhas;
  139. 122
  140. 123 for (indiceColunas = 0; indiceColunas < tamanhoColunasSegundaMatriz; indicee
  141. Colunas++)
  142. 124 {
  143. 125 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasSegundaMatriz; indiceLii
  144. nhas++)
  145. 126 {
  146. 127 printf ("Diga o valor para completar a %d Linha e %d Coluna da sua Segundd
  147. a Matriz:\n", indiceLinhas + 1, indiceColunas + 1);
  148. 128 scanf ("%f",&segundaMatriz[indiceLinhas][indiceColunas]);
  149. 129 }
  150. 130 }
  151. 131
  152. 132 return 0;
  153. 133
  154. 134 }
  155. 135
  156. 136 //FUNCOES QUE PRINTAM TANTO VETOR QUANTO MATRIZ
  157. 137
  158. 138 float mostraPrimeiroVetor (float primeiroVetor [SIZE_VETOR], int tamanhoPrimm
  159. eiroVetor, int indiceGeral)
  160. 139 {
  161. 140
  162. 141 printf ("\t\t\t\t\nSeu Primeiro Vetor:\n");
  163. 142
  164. 143 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGeral++)
  165. 144 {
  166. printf ("[%.5f]\n",primeiroVetor[indiceGeral]);
  167. 146 }
  168. 147
  169. 148 return 0;
  170. 149
  171. 150 }
  172. 151
  173. 152
  174. 153 float mostraSegundoVetor (float segundoVetor [SIZE_VETOR], int tamanhoSegundd
  175. oVetor, int indiceGeral)
  176. 154 {
  177. 155
  178. 156 printf ("\t\t\t\t\nSeu Segundo Vetor:\n");
  179. 157
  180. 158 for (indiceGeral = 0; indiceGeral < tamanhoSegundoVetor; indiceGeral++)
  181. 159 {
  182. 160 printf ("[%.5f]\n",segundoVetor[indiceGeral]);
  183. 161 }
  184. 162
  185. 163 return 0;
  186. 164 }
  187. 165
  188. 166 float mostraPrimeiraMatriz (float primeiraMatriz [SIZE_MATRIZ][SIZE_MATRIZ],,
  189. int tamanhoColunasPrimeiraMatriz, int tamanhoLinhasPrimeiraMatriz)
  190. 167 {
  191. 168 int indiceColunas;
  192. 169 int indiceLinhas;
  193. 170
  194. 171 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMatriz; indicc
  195. eColunas++)
  196. 172 {
  197. 173 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMatriz; indiceLL
  198. inhas++)
  199. 174 {
  200. 175 printf ("\t%.5f",primeiraMatriz[indiceLinhas][indiceColunas]);
  201. 176 }
  202. 177 printf ("\n");
  203. 178 }
  204. 179
  205. 180 return 0;
  206. 181 }
  207. 182
  208. 183 float mostraSegundaMatriz (float segundaMatriz [SIZE_MATRIZ][SIZE_MATRIZ], ii
  209. nt tamanhoColunasSegundaMatriz, int tamanhoLinhasSegundaMatriz)
  210. 184 {
  211. 185 int indiceColunas;
  212. 186 int indiceLinhas;
  213. 187
  214. 188 for (indiceColunas = 0; indiceColunas < tamanhoColunasSegundaMatriz; indicee
  215. Colunas++)
  216. 189 {
  217. 190 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasSegundaMatriz; indiceLii
  218. nhas++)
  219. 191 {
  220. 192 printf ("\t%.5f",segundaMatriz[indiceLinhas][indiceColunas]);
  221. }
  222. 194 printf ("\n");
  223. 195 }
  224. 196
  225. 197 return 0;
  226. 198 }
  227. 199
  228. 200 float mostraPrimeiroVetorIntercalado (float primeiroVetorIntercalado [SIZE_VV
  229. ETOR], int tamanhoPrimeiroVetorIntercalado, int indiceGeral)
  230. 201 {
  231. 202
  232. 203 printf ("\t\t\t\t\nSeu Primeiro Vetor a ser Intercalado:\n");
  233. 204
  234. 205 for (indiceGeral = 0; indiceGeral < 8; indiceGeral++)
  235. 206 {
  236. 207 printf ("[%.5f]\n",primeiroVetorIntercalado[indiceGeral]);
  237. 208 }
  238. 209 return 0;
  239. 210 }
  240. 211
  241. 212 float mostraSegundoVetorIntercalado (float segundoVetorIntercalado [SIZE_VETT
  242. OR], int tamanhoSegundoVetorIntercalado, int indiceGeral)
  243. 213 {
  244. 214
  245. 215 printf ("\t\t\t\t\nSeu Segundo Vetor a ser Intercalado:\n");
  246. 216
  247. 217 for (indiceGeral = 0; indiceGeral < 8; indiceGeral++)
  248. 218 {
  249. 219 printf ("[%.5f]\n",segundoVetorIntercalado[indiceGeral]);
  250. 220 }
  251. 221
  252. 222 return 0;
  253. 223 }
  254. 224
  255. 225 //FUNCOES DE OPERACOES DO MENU
  256. 226
  257. 227 //case 1 do Menu de Operacoes
  258. 228
  259. 229 float somaDoisVetores (float primeiroVetor [SIZE_VETOR], float segundoVetor
  260. [SIZE_VETOR], int tamanhoPrimeiroVetor, int tamanhoSegundoVetor, float resull
  261. tadoSoma [SIZE_VETOR])
  262. 230 {
  263. 231 int indiceGeral;
  264. 232
  265. 233 if (tamanhoPrimeiroVetor != tamanhoSegundoVetor)
  266. 234 printf ("Para realizar a soma, os tamanhos devem ser iguais\n");
  267. 235 else
  268. 236 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGeral++)
  269. 237 {
  270. 238 resultadoSoma[indiceGeral] = primeiroVetor[indiceGeral] + segundoVetor[indd
  271. iceGeral];
  272. 239 }
  273. 240
  274. 241 printf ("Resultado da soma dos dois Vetores:\n");
  275. 242 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGeral++)
  276. {
  277. 244 printf ("[%.5f]\n",resultadoSoma[indiceGeral]);
  278. 245 }
  279. 246
  280. 247
  281. 248 return 0;
  282. 249 }
  283. 250
  284. 251 //case 2 do Menu de Operacoes
  285. 252
  286. 253 int divisao (int usuarioNumero1, int usuarioNumero2)
  287. 254 {
  288. 255 int auxiliar1;
  289. 256 int contador;
  290. 257
  291. 258 contador = 0;
  292. 259 auxiliar1 = usuarioNumero1;
  293. 260
  294. 261 do{
  295. 262 auxiliar1 = auxiliar1 - usuarioNumero2;
  296. 263 contador = contador + 1;
  297. 264 } while (auxiliar1 >= usuarioNumero2);
  298. 265
  299. 266 printf ("Quociente: %d\n",contador);
  300. 267 printf ("Resto: %d\n",auxiliar1);
  301. 268
  302. 269 return 0;
  303. 270
  304. 271 }
  305. 272
  306. 273
  307. 274 //case 3 do Menu de Operacoes
  308. 275
  309. 276 int mmc (int num1, int num2, int resultado)
  310. 277 {
  311. 278 int resto;
  312. 279 int a;
  313. 280 int b;
  314. 281
  315. 282 a = num1;
  316. 283 b = num2;
  317. 284
  318. 285 do {
  319. 286 resto = a % b;
  320. 287
  321. 288 a = b;
  322. 289 b = resto;
  323. 290
  324. 291 } while (resto != 0);
  325. 292
  326. 293 resultado = (num1 * num2) / a;
  327. 294 printf ("Resultado do MMC: %d",resultado);
  328. 295
  329. 296 return 0;
  330. 297 }
  331.  
  332. 299 // case 4 do Menu de Operacoes
  333. 300
  334. 301 int ordenaVetorInteiros (int terceiroVetor [SIZE_VETOR], int tamanhoTerceiroo
  335. Vetor)
  336. 302 {
  337. 303 int indice1TerceiroVetor;
  338. 304 int indice2TerceiroVetor;
  339. 305 int auxiliarOrdenacao;
  340. 306
  341. 307 for (indice1TerceiroVetor = 0; indice1TerceiroVetor < tamanhoTerceiroVetor;;
  342. indice1TerceiroVetor++)
  343. 308 {
  344. 309 for (indice2TerceiroVetor = 0; indice2TerceiroVetor < tamanhoTerceiroVetorr
  345. ; indice2TerceiroVetor++)
  346. 310 {
  347. 311 if (terceiroVetor[indice1TerceiroVetor] < terceiroVetor[indice2TerceiroVee
  348. tor])
  349. 312 {
  350. 313 auxiliarOrdenacao = terceiroVetor[indice1TerceiroVetor];
  351. 314 terceiroVetor[indice1TerceiroVetor] = terceiroVetor[indice2TerceiroVetorr
  352. ];
  353. 315 terceiroVetor[indice2TerceiroVetor] = auxiliarOrdenacao;
  354. 316 }
  355. 317 }
  356. 318 }
  357. 319
  358. 320 for (indice1TerceiroVetor = 0; indice1TerceiroVetor < tamanhoTerceiroVetor;;
  359. indice1TerceiroVetor++)
  360. 321 {
  361. 322 printf ("[%d]\n", terceiroVetor[indice1TerceiroVetor]);
  362. 323 }
  363. 324
  364. 325 return 0;
  365. 326 }
  366. 327
  367. 328 // case 5 do Menu de Operacoes
  368. 329
  369. 330 float multiplicacaoMatrizes (float primeiraMatriz[SIZE_MATRIZ][SIZE_MATRIZ],,
  370. float segundaMatriz[SIZE_MATRIZ][SIZE_MATRIZ], int tamanhoColunasPrimeiraMaa
  371. triz, int tamanhoLinhasPrimeiraMatriz, int tamanhoColunasSegundaMatriz, int
  372. tamanhoLinhasSegundaMatriz)
  373. 331 {
  374. 332
  375. 333 float resultadoMultiplicacao[SIZE_MATRIZ][SIZE_MATRIZ];
  376. 334 int auxiliarMultiplicacao;
  377. 335 int indiceColunasGeral;
  378. 336 int indiceLinhasGeral;
  379. 337 int indiceColunas;
  380. 338 int indiceLinhas;
  381. 339 int indiceGeral;
  382. 340
  383. 341 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMatriz; indii
  384. ceColunas++)
  385. 342 {
  386. for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMatriz; indicee
  387. Linhas++)
  388. 344 {
  389. 345 resultadoMultiplicacao[indiceLinhas][indiceColunas] = (primeiraMatriz[ii
  390. ndiceLinhas][indiceColunas] * segundaMatriz[indiceLinhas][indiceColunas]);
  391. 346 }
  392. 347 }
  393. 348
  394. 349 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMatriz; indii
  395. ceColunas++)
  396. 350 {
  397. 351 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMatriz; indicee
  398. Linhas++)
  399. 352 {
  400. 353 printf ("\t%.5f",resultadoMultiplicacao[indiceLinhas][indiceColunas]);
  401. 354 }
  402. 355 printf ("\n");
  403. 356 }
  404. 357
  405. 358 return 0;
  406. 359 }
  407. 360
  408. 361 float mediaVetor (float primeiroVetor [SIZE_VETOR], float segundoVetor [SIZZ
  409. E_VETOR], float vetorMedia [SIZE_VETOR], int tamanhoPrimeiroVetor, int mediaa
  410. TotalVetor)
  411. 362 {
  412. 363
  413. 364 int indice;
  414. 365
  415. 366 for (indice = 0; indice < tamanhoPrimeiroVetor; indice++)
  416. 367 {
  417. 368 vetorMedia[indice] = primeiroVetor[indice]/segundoVetor[indice];
  418. 369 }
  419. 370
  420. 371 for (indice = 0; indice < tamanhoPrimeiroVetor; indice++)
  421. 372 {
  422. 373 printf ("Media dos dois vetores:\n [%f]\n",vetorMedia[indice]);
  423. 374 }
  424. 375
  425. 376 return 0;
  426. 377 }
  427. 378
  428. 379
  429. 380
  430. 381
  431. 382 //FUNCAO PRINCIPAL
  432. 383
  433. 384 int main ()
  434. 385 {
  435. 386
  436. 387 // variaveis de vetores e matrizes
  437. 388 float resultadoMultiplicacao[SIZE_MATRIZ][SIZE_MATRIZ];
  438. 389 float segundaMatriz[SIZE_MATRIZ][SIZE_MATRIZ];
  439. 390 float primeiraMatriz[SIZE_MATRIZ][SIZE_MATRIZ];
  440. 391 int resultadoProduto[SIZE_VETOR];
  441. float resultadoSoma [SIZE_VETOR];
  442. 393 float primeiroVetor[SIZE_VETOR];
  443. 394 int terceiroVetor[SIZE_VETOR];
  444. 395 float segundoVetor[SIZE_VETOR];
  445. 396 float vetorMedia [SIZE_VETOR];
  446. 397 float mediaTotalVetor = 0;
  447. 398 int usuarioNumero1;
  448. 399 int usuarioNumero2;
  449. 400 int resultado;
  450. 401 int num1;
  451. 402 int num2;
  452. 403 int indice =0;
  453. 404
  454. 405 // variaveis de tamanho e indice dos Vetores e Matrizes
  455. 406 int tamanhoPrimeiroVetorIntercalado;
  456. 407 int indiceResultadoVetorIntercalado;
  457. 408 int tamanhoSegundoVetorIntercalado;
  458. 409 int tamanhoColunasPrimeiraMatriz;
  459. 410 int tamanhoLinhasPrimeiraMatriz;
  460. 411 int tamanhoColunasSegundaMatriz;
  461. 412 int tamanhoLinhasSegundaMatriz;
  462. 413 int tamanhoPrimeiroVetor;
  463. 414 int indice1TerceiroVetor; //Terceiro vetor esta relacionado ao vetor paraa
  464. ser ordenado
  465. 415 int indice2TerceiroVetor;
  466. 416 int tamanhoTerceiroVetor;
  467. 417 int tamanhoSegundoVetor;
  468. 418 int indiceResultado;
  469. 419 int indiceColunas;
  470. 420 int indiceLinhas;
  471. 421 int indiceGeral;
  472. 422
  473. 423 // outras variaveis
  474. 424 int resultadoFinalProduto;
  475. 425 int auxiliarMultiplicacao;
  476. 426 int auxiliarPrintaFinal;
  477. 427 int auxiliarSaida;
  478. 428 int auxiliarSaida2;
  479. 429 int auxiliarOrdenacao;
  480. 430 char auxiliarExclusao;
  481. 431 int myBoolean2;
  482. 432 int myBoolean3;
  483. 433 int myBoolean;
  484. 434 int preOpcoes;
  485. 435 int opcoes;
  486. 436
  487. 437 printf ("\n Calcc
  488. uladora de Matrizes e Vetores\n\n");
  489. 438
  490. 439 while (myBoolean == 0)
  491. 440 {
  492. 441 do
  493. 442 {
  494. 443 printf ("
  495. Menu Principal\n");
  496. printf (" | (1)Definir tt
  497. amanho e parametros do primeiro vetor |\n");
  498. 445 printf (" | (2)Definir tt
  499. amanho e parametros do segundo vetor |\n");
  500. 446 printf (" | (3)Definir tt
  501. amanho e parametros da primeira matriz |\n");
  502. 447 printf (" | (4)Definir tt
  503. amanho e parametros da segunda matriz |\n");
  504. 448 printf (" | (5)Sair paraa
  505. o Menu de Operacoes |\n");
  506. 449 scanf ("%d",&preOpcoes);
  507. 450 system ("clear");
  508. 451 } while ((preOpcoes < 1) || (preOpcoes > 5));
  509. 452
  510. 453 switch (preOpcoes)
  511. 454 {
  512. 455 case 1:
  513. 456 {
  514. 457 printf ("\nQual o tamanho do seu Primeiro Vetor? Respostas negativaa
  515. s ou maiores que 20 nao serao consideradas:\n");
  516. 458 scanf ("%d",&tamanhoPrimeiroVetor);
  517. 459
  518. 460 if (tamanhoPrimeiroVetor > 0)
  519. 461 auxiliarPrintaFinal = 0;
  520. 462 else
  521. 463 auxiliarPrintaFinal = 1;
  522. 464 } while ((tamanhoPrimeiroVetor < 0) || (tamanhoPrimeiroVetor > 20));
  523. 465
  524. 466
  525. 467 /*F*/ preenchePrimeiroVetor (primeiroVetor, tamanhoPrimeiroVetor);
  526. 468 /*F*/ mostraPrimeiroVetor (primeiroVetor, tamanhoPrimeiroVetor, indiceGerall
  527. );
  528. 469
  529. 470 printf ("\nAperte 'x' para apagar o seu Primeiro Vetor\n");
  530. 471 scanf ("%c",&auxiliarExclusao);
  531. 472
  532. 473 do
  533. 474 {
  534. 475 if (auxiliarExclusao == 'x')
  535. 476 {
  536. 477 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGG
  537. eral++)
  538. 478 {
  539. 479 primeiroVetor[indiceGeral] = 0;
  540. 480 }
  541. 481
  542. 482 system ("clear");
  543. 483 printf ("Seu Primeiro Vetor foi excluido da calculadora, para inss
  544. erir um novo Vetor volte ao Menu Principal apertando 0\n");
  545. 484 }
  546. 485 else
  547. 486 printf ("Aperte 0 para voltar ao Menu Principal\n");
  548. 487 scanf ("%d",&auxiliarSaida);
  549. 488 system ("clear");
  550. 489
  551. } while (auxiliarSaida != 0 && auxiliarExclusao != 'x' && myBoolean !!
  552. = 0);
  553. 491
  554. 492 if (auxiliarSaida == 0)
  555. 493 {
  556. 494 myBoolean = 0;
  557. 495 }
  558. 496 else;
  559. 497 break;
  560. 498
  561. 499 while (myBoolean == 1)
  562. 500
  563. 501 case 2:
  564. 502 do
  565. 503 {
  566. 504 printf ("\nQual o tamanho do seu Segundo Vetor? Respostas negativaa
  567. s ou maiores que 20 nao serao consideradas:\n");
  568. 505 scanf ("%d",&tamanhoSegundoVetor);
  569. 506 } while ((tamanhoSegundoVetor < 0) || (tamanhoSegundoVetor > 20));
  570. 507
  571. 508 if (tamanhoPrimeiroVetor > 0)
  572. 509 auxiliarPrintaFinal = 0;
  573. 510 else
  574. 511 auxiliarPrintaFinal = 1;
  575. 512
  576. 513 /*F*/ preencheSegundoVetor (segundoVetor, tamanhoSegundoVetor);
  577. 514 /*F*/ mostraSegundoVetor (segundoVetor, tamanhoSegundoVetor, indiceGeral))
  578. ;
  579. 515
  580. 516 printf ("\nAperte 'x' para apagar o seu Segundo Vetor\n");
  581. 517 scanf ("%c",&auxiliarExclusao);
  582. 518
  583. 519 do
  584. 520 {
  585. 521 if (auxiliarExclusao == 'x')
  586. 522 {
  587. 523 for (indiceGeral = 0; indiceGeral < tamanhoSegundoVetor; indiceGG
  588. eral++)
  589. 524 {
  590. 525 segundoVetor[indiceGeral] = 0;
  591. 526 }
  592. 527
  593. 528 system ("clear");
  594. 529 printf ("Seu Segundo Vetor foi excluido da calculadora, para inn
  595. serir um novo Vetor volte ao Menu Principal apertando 0\n");
  596. 530 }
  597. 531 else
  598. 532 printf ("Aperte 0 para voltar ao Menu Principal\n");
  599. 533 scanf ("%d",&auxiliarSaida);
  600. 534 system ("clear");
  601. 535
  602. 536 } while (auxiliarSaida != 0 && auxiliarExclusao != 'x');
  603. 537
  604. 538 if (auxiliarSaida == 0)
  605. 539 {
  606. myBoolean = 0;
  607. 541 }
  608. 542 else;
  609. 543 break;
  610. 544
  611. 545 case 3:
  612. 546 do
  613. 547 {
  614. 548 printf ("\nQuantas linhas tem a sua Primeira Matriz? Respostas nee
  615. gativas ou maiores que 20 nao serao consideradas:\n");
  616. 549 scanf ("%d",&tamanhoLinhasPrimeiraMatriz);
  617. 550
  618. 551 printf ("\nQuantas colunas tem a sua Primeira Matriz? Respostas nn
  619. egativas ou maiores que 20 nao serao consideradas:\n");
  620. 552 scanf ("%d",&tamanhoColunasPrimeiraMatriz);
  621. 553 } while ((tamanhoColunasPrimeiraMatriz < 0) || (tamanhoColunasPrimee
  622. iraMatriz > 20));
  623. 554
  624. 555 /*F*/ preenchePrimeiraMatriz (primeiraMatriz, tamanhoColunasPrimeiraMatrii
  625. z, tamanhoLinhasPrimeiraMatriz);
  626. 556 /*F*/ mostraPrimeiraMatriz (primeiraMatriz, tamanhoColunasPrimeiraMatriz,,
  627. tamanhoLinhasPrimeiraMatriz);
  628. 557
  629. 558 printf ("\nAperte 'x' para apagar o sua Primeira Matriz\n");
  630. 559 scanf ("%c",&auxiliarExclusao);
  631. 560
  632. 561 do
  633. 562 {
  634. 563 if (auxiliarExclusao == 'x')
  635. 564 {
  636. 565 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMM
  637. atriz; indiceColunas++)
  638. 566 {
  639. 567 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMaa
  640. triz; indiceLinhas++)
  641. 568 {
  642. 569 primeiraMatriz[indiceLinhas][indiceColunas] = 0;
  643. 570 }
  644. 571 }
  645. 572
  646. 573 system ("clear");
  647. 574 printf ("Sua Primeira Matriz foi excluida da calculadora, para
  648. inserir uma nova Matriz volte ao Menu Principal apertando 0\n");
  649. 575 }
  650. 576 else
  651. 577 printf ("Aperte 0 para voltar ao menu principal\n");
  652. 578 scanf ("%d",&auxiliarSaida);
  653. 579 system ("clear");
  654. 580
  655. 581 } while (auxiliarSaida != 0 && auxiliarExclusao != 'x');
  656. 582
  657. 583 if (auxiliarSaida == 0)
  658. 584 {
  659. 585 myBoolean = 0;
  660. 586 }
  661. else
  662. 588 myBoolean = 1;
  663. 589 break;
  664. 590
  665. 591 case 4:
  666. 592 do
  667. 593 {
  668. 594 printf ("\nQuantas linhas tem a sua Segunda Matriz? Respostas negg
  669. ativas ou maiores que 20 nao serao consideradas:\n");
  670. 595 scanf ("%d",&tamanhoLinhasSegundaMatriz);
  671. 596
  672. 597 printf ("\nQuantas colunas tem a sua Segunda Matriz? Respostas negg
  673. ativas ou maiores que 20 nao serao consideradas:\n");
  674. 598 scanf ("%d",&tamanhoColunasSegundaMatriz);
  675. 599 } while ((tamanhoColunasSegundaMatriz < 0) || (tamanhoColunasSegundaa
  676. Matriz > 20));
  677. 600
  678. 601 /*F*/ preencheSegundaMatriz (segundaMatriz, tamanhoColunasSegundaMatriz,
  679. tamanhoLinhasSegundaMatriz);
  680. 602 /*F*/ mostraSegundaMatriz (segundaMatriz, tamanhoColunasSegundaMatriz, taa
  681. manhoLinhasSegundaMatriz);
  682. 603
  683. 604 printf ("\nAperte 'x' para excluir sua Segunda Matriz\n");
  684. 605 scanf ("%c",&auxiliarExclusao);
  685. 606
  686. 607 do
  687. 608 {
  688. 609 if (auxiliarExclusao == 'x')
  689. 610 {
  690. 611 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMaa
  691. triz; indiceColunas++)
  692. 612 {
  693. 613 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMaa
  694. triz; indiceLinhas++)
  695. 614 {
  696. 615 primeiraMatriz[indiceLinhas][indiceColunas] = 0;
  697. 616 }
  698. 617 }
  699. 618 system ("clear");
  700. 619 printf ("Sua Segunda Matriz foi excluida da calculadora, para ii
  701. nserir uma nova Matriz volte ao Menu Principal apertando 0\n");
  702. 620 }
  703. 621 else
  704. 622 printf ("Aperte 0 para voltar ao menu principal\n");
  705. 623 scanf ("%d",&auxiliarSaida);
  706. 624 system ("clear");
  707. 625 } while (auxiliarSaida != 0 && auxiliarExclusao != 'x');
  708. 626
  709. 627 if (auxiliarSaida == 0)
  710. 628 {
  711. 629 myBoolean = 0;
  712. 630 }
  713. 631
  714. 632 break;
  715. 633
  716. case 5:
  717. 635 myBoolean = 1;
  718. 636 myBoolean2 = 0;
  719. 637 break;
  720. 638 }
  721. 639
  722. 640 while (myBoolean2 == 0 && myBoolean != 0)
  723. 641 {
  724. 642 do
  725. 643 {
  726. 644 printf ("
  727. Menu de Operacoes\n\n");
  728. 645 printf (" | (1)Soma de dd
  729. ois vetores |\n");
  730. 646 printf (" | (2)Divisao pp
  731. or diferenca |\n");
  732. 647 printf (" | (3)MMC
  733. |\n");
  734. 648 printf (" | (4)Ordenacaoo
  735. de um vetor de inteiros em ordem crescente |\n");
  736. 649 printf (" | (5)Multiplicc
  737. acao de duas matrizes |\n");
  738. 650 printf (" | (6)Retornar
  739. ao Menu Principal |\n");
  740. 651 printf (" | (7)Sair da CC
  741. alculadora |\n");
  742. 652
  743. 653 printf ("\nSeu PrimeiroVetor:\n");
  744. 654 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGerall
  745. ++)
  746. 655 {
  747. 656 printf ("[%.5f]\n",primeiroVetor[indiceGeral]);
  748. 657 }
  749. 658 printf ("\nSeu Segundo Vetor:\n");
  750. 659 for (indiceGeral = 0; indiceGeral < tamanhoPrimeiroVetor; indiceGerall
  751. ++)
  752. 660 {
  753. 661 printf ("[%.5f]\n",segundoVetor[indiceGeral]);
  754. 662 }
  755. 663
  756. 664 printf ("\nSua Primeira Matriz:\n");
  757. 665 for (indiceColunas = 0; indiceColunas < tamanhoColunasPrimeiraMatriz;;
  758. indiceColunas++)
  759. 666 {
  760. 667 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasPrimeiraMatriz;
  761. indiceLinhas++)
  762. 668 {
  763. 669 printf ("\t%.5f",primeiraMatriz[indiceLinhas][indiceColunas]);
  764. 670 }
  765. 671 printf ("\n");
  766. 672 }
  767. 673
  768. 674 printf ("\nSua Segunda Matriz:\n");
  769. 675 for (indiceColunas = 0; indiceColunas < tamanhoColunasSegundaMatriz;
  770. indiceColunas++)
  771. {
  772. 677 for (indiceLinhas = 0; indiceLinhas < tamanhoLinhasSegundaMatriz; ii
  773. ndiceLinhas++)
  774. 678 {
  775. 679 printf ("\t%.5f",segundaMatriz[indiceLinhas][indiceColunas]);
  776. 680 }
  777. 681 printf ("\n");
  778. 682 }
  779. 683
  780. 684 printf ("\nQual operacao voce deseja realizar?\n");
  781. 685 scanf ("%d",&opcoes);
  782. 686 system ("clear");
  783. 687 } while ((opcoes < 1) || (opcoes > 9));
  784. 688
  785. 689 switch (opcoes)
  786. 690 {
  787. 691 case 1:
  788. 692 somaDoisVetores (primeiroVetor, segundoVetor, tamanhoPrimeiroVetor, tt
  789. amanhoSegundoVetor, resultadoSoma);
  790. 693 do
  791. 694 {
  792. 695 printf ("Aperte 0 para voltar ao menu principal\n");
  793. 696 scanf ("%d",&auxiliarSaida2);
  794. 697 system ("clear");
  795. 698 } while (auxiliarSaida2 != 0);
  796. 699
  797. 700 if (auxiliarSaida2 == 0)
  798. 701 {
  799. 702 myBoolean = 0;
  800. 703 }
  801. 704 else;
  802. 705 break;
  803. 706 case 2:
  804. 707 printf ("Diga o primeiro numero:\n");
  805. 708 scanf ("%d",&usuarioNumero1);
  806. 709
  807. 710 printf ("Diga o segundo numero:\n");
  808. 711 scanf ("%d",&usuarioNumero2);
  809. 712
  810. 713 divisao (usuarioNumero1, usuarioNumero2);
  811. 714 break;
  812. 715
  813. 716 case 3:
  814. 717 printf ("Diga o primeiro numero: \n");
  815. 718 scanf ("%d",&num1);
  816. 719
  817. 720 printf ("Diga o segundo numero: \n");
  818. 721 scanf ("%d",&num2);
  819. 722
  820. 723 mmc (num1, num2, resultado);
  821. 724
  822. 725 break;
  823. 726
  824. 727 case 4:
  825. 728 printf ("Qual o tamanho do vetor que voce deseja ordenar?\n");
  826. scanf ("%d",&tamanhoTerceiroVetor);
  827. 730
  828. 731 for (indice1TerceiroVetor = 0; indice1TerceiroVetor < tamanhoTerceii
  829. roVetor; indice1TerceiroVetor++)
  830. 732 {
  831. 733 printf ("Diga os valores para preencher o seu vetor:\n");
  832. 734 scanf ("%d",&terceiroVetor[indice1TerceiroVetor]);
  833. 735 }
  834. 736
  835. 737 /*F*/ ordenaVetorInteiros (terceiroVetor, tamanhoTerceiroVetor);
  836. 738
  837. 739 do
  838. 740 {
  839. 741 printf ("Aperte 0 para voltar ao menu principal\n");
  840. 742 scanf ("%d",&auxiliarSaida2);
  841. 743 system ("clear");
  842. 744 } while (auxiliarSaida2 != 0);
  843. 745
  844. 746 break;
  845. 747
  846. 748 case 5:
  847. 749 if (tamanhoColunasPrimeiraMatriz <= 0 && tamanhoLinhasPrimeiraMatrii
  848. z <= 0 && tamanhoColunasSegundaMatriz <= 0 && tamanhoLinhasSegundaMatriz <=
  849. 0)
  850. 750 printf ("ERRO: Para realizar a Operacao 6 e necessario definir oss
  851. parametros da sua Matriz\n\n");
  852. 751 else
  853. 752 /*F*/ zeraMatriz (tamanhoColunasPrimeiraMatriz, tamanhoLinhasPrimeiraMM
  854. atriz, tamanhoColunasSegundaMatriz, tamanhoLinhasSegundaMatriz);
  855. 753 /*F*/ multiplicacaoMatrizes (primeiraMatriz, segundaMatriz, tamanhoColl
  856. unasPrimeiraMatriz, tamanhoLinhasPrimeiraMatriz, tamanhoColunasSegundaMatrizz
  857. , tamanhoLinhasSegundaMatriz);
  858. 754
  859. 755 do
  860. 756 {
  861. 757 printf ("Aperte 0 para voltar ao menu principal\n");
  862. 758 scanf ("%d",&auxiliarSaida2);
  863. 759 system ("clear");
  864. 760 } while (auxiliarSaida2 != 0);
  865. 761 break;
  866. 762 case 6:
  867. 763 myBoolean = 0;
  868. 764 myBoolean2 = 1;
  869. 765 break;
  870. 766 case 7:
  871. 767 myBoolean2 = 1;
  872. 768 break;
  873. 769 }
  874. 770 }
  875. 771 }
  876. 772 return 0;
  877. 773 }
  878. 774
  879. 775 /*AUTORIA: GABRIEL SERRA MANHAES
  880. 776 DRE: 116183338
  881. 777 MATERIA: COMPUTACAO 1 */
Advertisement
Add Comment
Please, Sign In to add comment