woss

Priii :* (2)

Nov 10th, 2011
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. ! Início do programa:
  2.  
  3. PROGRAM priii
  4.  
  5. ! Declaração das variáveis:
  6.  
  7. CHARACTER(10) :: names(0:9), temp
  8. REAL :: prices(0:9)
  9. INTEGER :: i, j, o
  10.  
  11. ! Mensagem de boas-vindas:
  12.  
  13. WRITE (*,*) "Seja bem-vindo(a) ao programa priii"
  14. WRITE (*,*) "Por favor, digite na sequência o nome e o respectivo preço de 10 produtos"
  15.  
  16. ! Percorre a lista de nomes e preços:
  17.  
  18. DO i = 0, 9, 1
  19.  
  20. ! Lê o nome do produto:
  21.  
  22. WRITE (*,*) "Nome do produto", i
  23. READ (*,*) names(i)
  24.  
  25. ! Lê o preço do produto:
  26.  
  27. WRITE (*,*) "Preço do produto", i
  28. READ (*,*) prices(i)
  29.  
  30. END DO
  31.  
  32. ! Exibe o menu:
  33.  
  34. MENU: DO
  35.  
  36. WRITE (*,*) "1. Mostrar a lista de nomes e preços em ordem alfabética"
  37. WRITE (*,*) "2. Mostrar a lista de nomes e preços ordenado por preços de menor a maior"
  38. WRITE (*,*) "3. Mostrar a lista de nomes e preços ordenado por preços de maior a menor"
  39. WRITE (*,*) "0. Sair"
  40.  
  41. ! Lê a opção desejada do menu:
  42.  
  43. READ (*,*) o
  44.  
  45. ! Seleciona o valor de o:
  46.  
  47. SELECT CASE (o)
  48.  
  49. ! Se for o item 1 do menu:
  50.  
  51. CASE (1)
  52.  
  53. ! Implementação do algoritmo Bubble Sort para ordenação:
  54.  
  55. ! Percorre a lista completa:
  56.  
  57. DO i = 0, 9, 1
  58.  
  59. ! Percorre a lista parcialmente:
  60.  
  61. DO j = 0, i, 1
  62.  
  63. ! Verifica a precedência dos nomes dos produtos i e j:
  64.  
  65. IF (names(j) < names(i)) THEN
  66.  
  67. ! Se o produto j deverá aparecer antes de i, troca-os de posição:
  68.  
  69. temp = names(j)
  70. names(j) = names(i)
  71. names(i) = temp
  72.  
  73. END IF
  74.  
  75. END DO
  76.  
  77. END DO
  78.  
  79. ! Exibe a lista de nomes e preços:
  80.  
  81. DO i = 0, 9, 1
  82.  
  83. WRITE (*,*) names(i), prices(i)
  84.  
  85. END DO
  86.  
  87.  
  88. CASE (2)
  89.  
  90. ! Implementação do algoritmo Bubble Sort para ordenação:
  91.  
  92. ! Percorre a lista completa:
  93.  
  94. DO i = 0, 9, 1
  95.  
  96. ! Percorre a lista parcialmente:
  97.  
  98. DO j = 0, i, 1
  99.  
  100. ! Verifica a precedência de preços:
  101.  
  102. IF (prices(j) < prices(i)) THEN
  103.  
  104. ! Se o preço de j for menor que de i, troca-os de posição:
  105.  
  106. temp = names(j)
  107. names(j) = names(i)
  108. names(i) = temp
  109.  
  110. END IF
  111.  
  112. END DO
  113.  
  114. END DO
  115.  
  116. ! Exibe a lista de nomes e preços:
  117.  
  118. DO i = 0, 9, 1
  119.  
  120. WRITE (*,*) names(i), prices(i)
  121.  
  122. END DO
  123.  
  124. CASE (3)
  125.  
  126. ! Implementação do algoritmo Bubble Sort para ordenação:
  127.  
  128. ! Percorre a lista completa:
  129.  
  130. DO i = 0, 9, 1
  131.  
  132. ! Percorre a lista parcialmente:
  133.  
  134. DO j = 0, i, 1
  135.  
  136. ! Verifica a precedência de preços:
  137.  
  138. IF (prices(j) > prices(i)) THEN
  139.  
  140. ! Se o preço de j for maior que de i, troca-os de posição:
  141.  
  142. temp = names(j)
  143. names(j) = names(i)
  144. names(i) = temp
  145.  
  146. END IF
  147.  
  148. END DO
  149.  
  150. END DO
  151.  
  152. ! Exibe a lista de nomes e preços:
  153.  
  154. DO i = 0, 9, 1
  155.  
  156. WRITE (*,*) names(i), prices(i)
  157.  
  158. END DO
  159.  
  160. CASE default
  161.  
  162. EXIT MENU
  163.  
  164. END SELECT
  165.  
  166. END DO MENU
  167.  
  168. WRITE (*,*) "Obrigado por utilizar nosso programa. Passe bem!"
  169.  
  170. END PROGRAM priii
  171.  
Advertisement
Add Comment
Please, Sign In to add comment