[1]. Sendo o vetor V igual a: Bacharelado em Ciência e Tecnologia BC0505 Processamento da Informação - Prof. Edson Pinheiro Pimentel EXERCÍCIOS Lista de Exercícios Vetor e Matriz PARTE 1 Vetor 5 10 7 6 16 3 9 2 2 1 1 2 3 4 5 6 7 8 9 10 e as variáveis X = 1 e Y = 3, escreva o valor correspondente à solicitação, conforme exemplos: a) V[X+1] valor corresponde a V[2] = 7 b) V[Y+2] valor corresponde a V[5] = 3 c) V[X+3] valor corresponde a V[4] = 16 d) V[X*4] valor corresponde a V[4] = 16 e) V[Y*2] valor corresponde a V[6] = 9 f) V[X+Y] valor corresponde a V[4] = 16 g) V[X+(Y*4)] valor corresponde a V[13] = *** erro *** Neste exercício, basta utilizar os valores de X e Y dados no enunciado para realizarmos as operações dentro dos [ ] que definem o índice do elemento do vetor. Em seguida, verificamos no vetor V quais são os valores dos elementos. O elemento de índice 13 não existe, então há erro. OBS: na representação acima, os números de baixo são os índices e os de cima os valores do vetor. [2]. Escreva um algoritmo que Leia 10 valores inteiros e armazene-os em um Vetor. Após a digitação do último valor, imprima os elementos com conteúdo par. Números pares do vetor de entrada. 10 valores inteiros em um vetor Percorrer o vetor de 10 elementos e para cada elemento x que é par, isto é, quando x % 2 = 0, imprimir x inteiro vetor[10] inteiro indice = 0 // ENTRADA enquanto(indice < 10)
escreva( "\n Digite um número inteiro " ) leia( vetor[indice] ) indice++ // PROCESSAMENTO & SAÍDA para (indice = 0; indice < 10; indice++) se(vetor[indice] % 2 == 0) escreva( " ", vetor[indice] ) [3]. Escreva um algoritmo que Leia 15 nomes de pessoas e armazene-os em um Vetor. Após a digitação do último nome, imprima-os na sequência contrária (ou seja, o último nome digitado deve ser o primeiro a ser impresso, etc) 15 nomes de pessoas digitados, porém, na sequência inversa à digitada. 15 nomes de pessoas. Após armazenar os nomes em um vetor (nomes[15]), outro vetor deve ser alocado com os novos nomes. Para isso, em um laço para, utilizar: nomes_inverso[i]=nomes[14-i] cadeia nomes[15],nomes_inverso[15] inteiro i // ENTRADAS para(i=0;i<15;i++) escreva("digite o nome nº",i+1," : ") leia(nomes[i]) // PROCESSAMENTO E SAÍDA escreva("\nnomes na ordem inversa: \n") para(i=0;i<15;i++) nomes_inverso[i]=nomes[14-i] escreva(nomes_inverso[i],"\n")
[4]. Escreva um que leia 20 números e após o fim da entrada de dados, exiba na tela, primeiro os elementos com conteúdo ímpar e depois os elementos das posições pares. Vetor que contenha no começo todos os elementos ímpares e depois os elementos das posições pares. 20 números inteiros. Armanezar os 20 valores em um vetor. Imprimir primeiro apenas os valores ímpares, depois apenas os elementos das posições pares. const inteiro n = 20 inteiro vetor [n], i // ENTRADAS para(i=0;i<n;i++) leia(vetor[i]) // PROCESSAMENTO E SAÍDA escreva("o vetor resultante é: ") para(i=0;i<n;i++) se (vetor[i] % 2!= 0) escreva(vetor [i] + " ") para(i=0;i<n;i++) se (i % 2 == 0) escreva(vetor[i] + " ") //os elementos ímpares //se a posição (ou índice) é par [5]. Escreva um algoritmo que leia 8 elementos em um vetor inteiro A. Construa outro vetor B, de mesma dimensão de A, com seus elementos sendo a multiplicação do elemento correspondente de A por 3. Mostre os elementos de B. Vetor B com elementos de A multiplicados por 3 8 números inteiros que formarão o vetor A
Para cada elemento x de A, multiplica-lo por 3 e atribuir o resultado para os elementos de B B[indice] = 3 * A[indice] inteiro A[8], B[8] inteiro indice = 0 // ENTRADA & PROCESSAMENTO enquanto(indice < 8) escreva( indice+1, " - Digite um número inteiro: " ) leia( A[indice] ) B[indice] = 3 * A[indice] indice++ // SAÍDA para(indice = 0; indice < 8; indice++) escreva( " ",B[indice]) [6]. Leia 20 elementos em um vetor A e construa o vetor B com elementos de A, porém invertidos, ou seja, o primeiro elemento de A passa a ser o último elemento de B, e assim por diante. Mostre os 2 vetores, o maior elemento do vetor A e o menor elemento do vetor B. Elementos dos vetores A e B, sendo B os elementos de A na ordem inversa; E os maiores elementos destes mesmos vetores. Elementos do vetor A. Após armazenar elementos de A, o vetor B deve ser alocado com os elementos de A na ordem inversa. Para isso, em um laço para de forma crescente no índice i, utilizar: vetorb[19-i]=vetora[i] Para determinar o maior elemento, pode ser utilizada a seguinte condição: se(vetora[i]>maiora ou i==0) maiora=vetora[i] Esta condição está presente no laço das entradas, para o caso do vetor A, e no processamento, no caso do vetor B é análogo o menor.
inteiro vetora[20], vetorb[20], maiora, menor, i // ENTRADAS para(i=0;i<20;i++) escreva("digite o elemento de A nº",i+1," : ") leia(vetora[i]) vetorb[19-i]=vetora[i] //preenche B de trás para frente maiora = vetora[0] menorb = vetorb[0] //inicializa variáveis de maior/menor // PROCESSAMENTO para(i=0;i<20;i++) se(vetora[i] > maiora) maiora = vetora[i] //Atualiza a variável maiora enquanto percorre A se(vetorb[i] < menorb) menorb = vetorb[i] //Análogo ao condicional do maiora // SAÍDA escreva("\nelementos de A: \n") para(i=0;i<20;i++) escreva("\nelemento de A nº",i+1," : ",vetora[i]) escreva("\n\nmaior elemento de A: ",maiora,"\n") escreva("\nelementos de B:") para(i=0;i<20;i++) escreva("\nelemento de B nº",i+1," : ",vetorb[i]) escreva("\n\nmenor elemento de B: ",menorb,"\n") [7]. Escreva um algoritmo que Leia um vetor de N elementos. Após a digitação do último valor, encontre e mostre o maior elemento. O maior elemento do vetor.
N números inteiros. Após armazenar os valores em um vetor, fazer comparações com o elemento seguinte do vetor para verificar qual o maior. const inteiro n = 0 inteiro maior = 0, i // ENTRADAS escreva ("Favor inserir o tamanho do vetor: ") leia (n) inteiro vetor [n] para (i=0; i<n; i++) escreva ("Digite o elemento " +i+ " do vetor: ") leia (vetor [i]) // PROCESSAMENTO E SAÍDA para (i=0; i<n-1; i++) se (vetor [i] >= vetor [i+1]) maior = vetor [i] senao maior = vetor [i+1] se (n == 1) maior = vetor [0] escreva ("O maior elemento do vetor é: " + maior) [8]. Escreva um que leia o nome e a idade de 20 pessoas e exiba, após o fim da entrada de dados, a idade média do grupo e o nome das pessoas com idade acima da média. Idade média do grupo e os nomes das pessoas com idade acima da média. 20 nomes de pessoas e suas respectivas idades colocados em 2 vetores. Precisaremos calcular a média das idades acumulando em uma variável soma_idades, média = soma_idades/20 Se a idade de cada indivíduo for maior que a idade média, imprimir o nome do indivíduo.
inteiro idades[20] cadeia nomes[20] inteiro indice = 0, soma_idades = 0 real mediaidades // ENTRADA enquanto(indice < 20) escreva( indice+1, " - Digite o nome: " ) leia( nomes[indice] ) escreva( indice+1, " - Digite a idade dessa pessoa: " ) leia( idades[indice] ) // PROCESSAMENTO & SAÍDA soma_idades = soma_idades + idades[indice] indice++ mediaidades = soma_idades/20.0 escreva( " A idade média do grupo é de ", mediaidades, " anos \n" ) para(indice = 0; indice < 20; indice++) se(idades[indice] > mediaidades) escreva(nomes[indice], " " ) [9]. Escreva um que leia 100 números e exiba na tela a média, o maior, o menor, o percentual de números ímpares e o percentual de múltiplos de 3. Média (media), maior dos nºs (maior), menor dos nºs (menor), percentual de nºs ímpares (impares), percentual de múltiplos de 3 (mult_3). Todos os 100 números, armazenados em um vetor de 100 posições. Média: soma=soma+numeros[i] (dentro do laço para) media=soma/100 Maior: se(i==0 ou numeros[i]>maior) maior=numeros[i] (dentro do laço para) Menor:
se(i==0 ou numeros[i]<menor) menor=numeros[i] (dentro do laço para) Percentual de ímpares: se(nao(numeros[i]%2==0)) impares++ (dentro do laço para) Percentual de múltiplos de 3: se(numeros[i]%3==0) // Procurando o percentual de nºs múltiplos de 3 mult_3++ (dentro do laço para) inteiro numeros[100],maior=0,menor=0, i real impares=0.0,mult_3=0.0,soma=0.0,media // ENTRADAS E PROCESSAMENTO para(i=0;i<100;i++) escreva("digite o elemento nº",i+1," : ") leia(numeros[i]) se(i==0 ou numeros[i]>maior) // Procurando o maior dos nºs maior=numeros[i] se(i==0 ou numeros[i]<menor) // Procurando o menor dos nºs menor=numeros[i] se(nao(numeros[i]%2==0)) // Procurando o percentual de nºs ímpares impares++ se(numeros[i]%3==0) // Procurando o percentual de nºs múltiplos de 3 mult_3++ soma=soma+numeros[i] media=soma/100 // SAÍDA escreva("\nmédia: ", media) escreva("\nmaior nº: ", maior) escreva("\nmenor nº: ", menor) escreva("\npercentual de nºs ímpares: ", impares, "%") escreva("\npercentual de múltiplos de 3: ", mult_3, "%")
[10]. Escreva um que dados dois vetores de 20 números cada, gere um terceiro vetor para intercalar os elementos dos dois. Um vetor C de 40 números com os valores de dois vetores A e B intercalados. Dois vetores A e B de 20 números cada. Armazenar os valores dos dois vetores iniciais no terceiro vetor de forma intercalada, usando 2 variáveis de índice, k e j, k começa no zero e vai incrementando de 2 em 2, enquanto j começa em 1 e incrementa de 2 em 2: C[k] = A[i] C[j] = B[i] onde i é o índice do laço de repetição que vai de 0 a 19, percorrendo os elementos de A e B inteiro A[20], B[20], C[40] inteiro k = 0, j = 1, i // ENTRADAS para(i=0;i<20;i++) escreva("digite o elemento " + i + " do vetor A: ") leia(a[i]) para(i=0;i<20;i++) escreva("digite o elemento " + i + " do vetor B: ") leia(b[i]) // PROCESSAMENTO E SAÍDA para(i=0; i<20; i++) //preenche C intercalando A e B ex:(a0 b0 a1 b1 a2 b2...) C[k] = A[i] C[j] = B[i] k = k + 2 //k varia assim: 0, 2, 4, 6,..., 38 j = j + 2 //j varia assim: 1, 3, 5, 7,..., 39, lembre que C tem posições de 0 a 39 para (i = 0; i < 40; i++) escreva (C[i] + " ") [11]. Construir um algoritmo que leia um vetor para armazenar os modelos de cinco carros (exemplo: FUSCA,
GOL, VECTRA, etc). Leia outro vetor com o consumo desses carros, isto é, quantos quilômetros cada um desses carros faz com 1 litro de combustível. Calcule e mostre: a) O modelo do carro mais econômico. b) Quantos litros de combustível cada um dos carros cadastrados consome para percorrer uma distância de 1000 quilômetros. a) o modelo mais econômico b) quantidade de litros de combustível necessária para andar 1000 km 5 Modelos de carros e seus respectivos rendimentos em km/l a) Percorrer o vetor de rendimentos e a partir de um condicional guardar o melhor rendimento. b) Considere R = distancia/litros, logo, litros = distancia/r = 1000/R real rendimentos[5], max_rendimento = 0.0, qtd_litros cadeia modelos[5] inteiro indice = 0, ind_modelo // ENTRADA enquanto(indice < 5) escreva( indice+1, " - Digite o modelo do carro: " ) leia( modelos[indice] ) escreva( indice+1, " - Digite o rendimento em km/l desse modelo: " ) leia( rendimentos[indice] ) // PROCESSAMENTO & SAÍDAS se(max_rendimento < rendimentos[indice] ) max_rendimento = rendimentos[indice] ind_modelo = indice indice++ escreva( " O modelo mais econômico é ", modelos[ind_modelo], "\n" ) para(indice = 0; indice < 5; indice++) qtd_litros = 1000.0/rendimentos[indice] escreva( modelos[indice], " utiliza para percorrer 1000 km ", qtd_litros, " litros \n") PARTE 2 MATRIZ
[12]. Sendo a matriz M igual a : 0 1 2 3 4 0 5 2 1 1 3 1 7 4 7 3 2 2 4 5 2 2 1 3 3 3 1 4 1 4 8 4 2 9 3 e as variáveis X = 0 e Y = 2 escreva o valor correspondente à solicitação, conforme exemplo: a) M[X][Y] valor corresponde a M[0] [2] que é 1 b) M[Y][X]: M[2][0] = 4 c) M[X+1][Y-1]: M[1][1] = 4 d) M[X+2][Y-1*2]: M[2][0] = 4 e) M[Y-X][Y+X]: M[2][2] = 2 f) M[M[X][Y]][M[Y][X]] valor corresponde a M[M[0][2]][M[2][0]] M[1][4] que é 2 g) M[M[Y-X][Y+X] ][M[Y+X][Y-X]]: M[ M[2][2] ][ M[2][2] ] = M[2][2] = 2 [13]. Desenhe uma representação para as seguintes matrizes e coloque os valores determinados nos devidos lugares: a) caracter MA[5][5][5] MA[1][3][1] = x MA[3][3][2] = y MA[2][1][4] = k MA[4][4][1] = w MA[2][3][4] = z b) inteiro MB[3][3][3] MB[2][1][1] = 2 MB[1][2][1] = 4 MB[2][1][2] = 6 MB[2][2][1] = 8 MB[0][1][2] = 0 Matrizes impressas (todos os elementos das matrizes que não possuem valores estão preenchidos com um ponto (.)): a). x...
.... k.... z.. y... w........ 0.......... 4..... 2 6. 8. [14]. Dada a matriz do exercício 12, gere um vetor com a média ponderada de cada linha, considerando como peso o valor da última coluna. Vetor de médias ponderadas das linhas da matriz usando como pesos a última coluna da matriz A matriz 5x5 do exercício 12
Percorrer com laço de repetição a matriz tomando cada célula m[i][j] e usar a fórmula de média ponderada: Ex.: media ponderada linha 0 = (m[0][0]*m[0][4] + m[0][1]*m[1][4] +... + m[0][4]*m[4][4]) /10. Pois 10 é a soma dos pesos (valores da última coluna), considere que o segundo fator de cada produto desse somatório é um dos pesos encontrados na última coluna. & ENTRADA inteiro matriz[][] = 5,2,1,1,3, 7,4,7,3,2, 4,5,2,2,1, 3,3,1,4,1, 8,4,2,9,3 real mediasl[] = 0.0, 0.0, 0.0, 0.0, 0.0 //vetor de médias ponderadas das linhas inteiro lin, col, peso // PROCESSAMENTO para(lin = 0; lin < 5; lin++) para(col = 0; col < 5; col++) peso = matriz[col][4] // o peso vem da última coluna <4> mediasl[lin] += matriz[lin][col] * peso mediasl[lin] = mediasl[lin]/10 //10 é a soma dos pesos que vêm da última coluna // SAÍDA para(col = 0; col < 5; col++) escreva( "Média ponderada Linha ", col, ": ", mediasl[col], "\n") [15]. Preencha uma matriz 5x5 de números inteiros e mostre na tela apenas os elementos de cuja soma da linha e coluna resultem num número ímpar. Elementos da matriz inserida cuja soma dos elementos tanto de sua linha como de sua coluna resultem em um valor ímpar. Elementos da matriz. Primeiramente, os vetores que armazenam a soma das linhas e das colunas devem ser anulados; Depois, somar cada elemento inserido na matriz à posição dos vetores de soma de linha e de coluna; Finalmente, mostrar os elementos que seguem ao critério desejado (soma dos elementos de sua linha deve ser ímpar, assim como a soma dos elementos de sua coluna).
const inteiro tam = 5 inteiro matriz[tam][tam],soma_lin[tam],soma_col[tam], i, j // ENTRADA E PROCESSAMENTO para(i=0;i<tam;i++) soma_lin[i]=0 soma_col[i]=0 para(i=0;i<tam;i++) para(j=0;j<tam;j++) escreva("entre com a posição [",i,"][",j,"] :") leia(matriz[i][j]) soma_lin[i]=soma_lin[i]+matriz[i][j] soma_col[j]=soma_col[j]+matriz[i][j] escreva("\n---------------------------------------\n") // SAÍDA para(i=0;i<tam;i++) para(j=0;j<tam;j++) se(nao(soma_lin[i]%2==0) e nao(soma_col[j]%2==0)) escreva(matriz[i][j]) senao escreva(" ") [16]. Preencha uma matriz 5x5 de números inteiros e calcule o determinante. O determinante da matriz 5x5. Os 25 valores da matriz 5x5. Método de Laplace.
//DECLARAÇÃO DE VARIÁVEIS inteiro matriz [5][5], deta, deta1, deta2, deta3, deta4, deta5, i, j //ENTRADA para (i = 0; i < 5; i++) para (j = 0; j < 5; j++) escreva ("Digite aqui o valor da linha " + i + " e da coluna " + j + " : ") leia (matriz [i][j]) //PROCESSAMENTO deta3 = (matriz[3][3] * matriz[4][4]) - (matriz [3][4] * matriz [4][3]) deta4 = (matriz [1][3] * matriz [4][4]) - (matriz [3][4] * matriz [4][1]) deta5 = (matriz [3][1] * matriz [4][3]) - (matriz [3][3] * matriz [4][1]) deta2 = 2*detA3 - deta4 + 2*detA5 deta1 = -2*detA2 deta = 3*detA1 //SAÍDA escreva ("O determinante da matriz é " + deta) [17]. Preencha uma matriz 5x5 de números inteiros e mostre na tela os dados contidos em uma coluna a ser informada pelo usuário. Exibir os dados de uma coluna da matriz, sendo a coluna algo escolhido. As 25 células da matriz e o número da coluna a ser exibida. Além de preencher a matriz com as entradas, usar um laço de repetição para iterar sobre a matriz M de entrada, para cada linha da matriz tomar apenas o dado da coluna informada. const inteiro LIN = 5, COL = 5 inteiro M[LIN][COL] inteiro l, c, col_escolhida // ENTRADA para(l = 0; l< LIN; l++) para(c = 0; c < COL; c++) escreva( "Digite o elemento [", l, "][", c, "] : " )
leia(m[l][c]) escreva( "Informe a coluna da matriz que será exibida (de 0 a 4): " ) leia(col_escolhida) // PROCESSAMENTO & SAÍDA para(l = 0; l < LIN; l++) escreva( M[l][col_escolhida], " " ) [18]. Escreva um que leia uma matriz A de 3 x 5 em seguida uma matriz B de 3 x 5. Gere uma matriz C contendo a soma de A e B. Imprima a matriz C. Matriz C, ou seja, soma da matriz A com a matriz B. Elementos da matriz A e da matriz B. Para cada posição da matriz C [i,j]: Elemento da matriz C = Elemento da matriz A + Elemento da matriz B C[i][j]=A[i][j]+B[i][j] const inteiro lin=3,col=5 inteiro A[lin][col], B[lin][col], C[lin][col], i, j // ENTRADA escreva("entre com os valores da matriz A: \n") para(i=0;i<lin;i++) para(j=0;j<col;j++) escreva("a[",i,"][",j,"]: ") leia(a[i][j]) escreva("entre com os valores da matriz B: \n") para(i=0;i<lin;i++) para(j=0;j<col;j++) escreva("b[",i,"][",j,"]: ")
leia(b[i][j]) escreva("\nmatrizc: \n") // PROCESSAMENTO E SAÍDA para(i=0;i<lin;i++) para(j=0;j<col;j++) C[i][j]=A[i][j]+B[i][j] escreva(c[i][j]," ") escreva("\n") [19]. Em uma classe há n alunos, cada um dos quais realizou k provas com pesos distintos. Dados n, k, os pesos das k provas e as notas de cada aluno, calcular a média ponderada das provas para cada aluno e a média aritmética da classe em cada uma das provas. A média ponderada das provas para cada aluno e a média aritmética da classe em cada uma das provas. O número de alunos, os pesos e as notas de cada prova. Armazenamento dos dados em uma matriz e, posteriormente, cálculo das médias ponderas e aritmética. /*Criação de variáveis*/ const inteiro k=0, n=0 inteiro i, j /*Solicitação e leitura do número de alunos na turma*/ escreva("digite quantos alunos há na turma:") leia(n) /*Solicitação e leitura do numero de provas aplicadas*/ escreva ("Digite quantas provas serão aplicadas:") leia (k) /*Declaração e atribuição de tamanho das matrizes*/ real notas[n][k],pesos[k], mediaaluno[n], mediaprova[k] /*Solicitação e leitura dos pesos das provas*/
para (j=0;j<k;j++) escreva ("Digite o peso da P"+(j+1)+":") leia (pesos[j]) /*Solicitação e leitura das notas dos alunos*/ para(i=0;i<n;i++) para(j=0; j<k; j++) escreva ("Digite a nota "+(j+1)+" do aluno "+(i+1)+":") leia (notas[i][j]) /*Zera o vetor "mediaaluno" para uso posterior em uma somatória*/ para (i=0;i<n;i++) mediaaluno[i]=0.0 /*Zera o vetor "mediaprova" para uso posterior em uma somatória*/ para (j=0;j<k;j++) mediaprova[j]=0.0 /*Cálculo da média de cada aluno (média ponderada das provas)*/ para (i=0; i < n; i++) para (j=0; j < k; j++) /*Somatório da nota previamente digitada, multiplicada pelo peso da prova*/ mediaaluno[i]=mediaaluno[i]+(notas[i][j]*pesos[j]) /*Cálculo da média aritmética (da sala toda) em cada prova*/ para (j=0; j < k; j++) para (i=0; i < n; i++) /*Somatório das notas de todos os alunos numa mesma prova*/ mediaprova[j]=mediaprova[j]+notas[i][j] /*Divide a somatória das notas na prova pelo número de alunos para saber a média dos alunos naquela prova*/ mediaprova[j]=mediaprova[j]/n /*Exibe a nota média dos alunos em cada prova*/ para(j=0; j < k; j++) escreva ("\n >> A média da prova "+(j+1)+ " é: "+mediaprova[j]) escreva("\n") /*Exibe a média de cada aluno (média ponderada de todas as provas)*/ para(i=0; i < n; i++) escreva ("\n A média do aluno "+(i+1)+ " é: "+mediaaluno[i])
[20]. Construa um algoritmo para gerenciar a venda de ingressos (ocupação) das poltronas numeradas de um teatro, que tem 200 lugares, organizados em 20 fileiras com 10 cadeiras cada fila. Inicialize a matriz com todas as posições valendo -1 indicando que elas estão vazias. Para cada nova venda de ingresso, deve se solicitar ao usuário o número da fila e o número da poltrona. Se a poltrona estiver vazia, deve-se alterar seu conteúdo para o valor 1, indicando que o ingresso foi vendido. Se não estiver vazia, deve-se emitir uma mensagem: Poltrona já foi vendida. O deve funcionar por meio de um menu, com duas opções, sendo: A) Vender Ingresso B) exibir o total de ingressos vendidos e C) Encerrar o Programa. (A) Conseguir vender um ingresso, (B) Exibir quantos ingressos já foram vendidos (C) Finalizar o. Opções do usuário (A, B ou C), e para (A) informar o lugar no teatro: fileira e cadeira Preencher a matriz M com -1, usar desvios condicionais de acordo com a entrada do usuário, se ele digitar: (A) e o lugar pretendido, checar se a poltrona está livre (isto é, se M[fileira][cadeira]!= -1), caso esteja livre efetuar a venda, incrementando uma variável contadora de vendas (B) exibe a variável contadora de vendas (C) Sai do laço de repetição que sempre aguardava uma entrada de dados pelo usuário const inteiro LIN = 20, COL = 10 inteiro M[LIN][COL] inteiro l, c, fileira, poltrona, vendidas = 0 //vendidas é o contador de vendas caracter entrada = 'Z' // Inicializa com um caracter qualquer diferente de C // ENTRADA, PROCESSAMENTO e SAÍDA são alternados. para(l = 0; l< LIN; l++) para(c = 0; c < COL; c++) M[l][c] = -1 //Inicializa a matriz de lugares no teatro enquanto(entrada!= 'C' ) escreva( "Digite uma letra para cada opção: A) Comprar Ingresso; B) Mostra quantos ingressos foram vendidos; C) Sair : \n" ) leia(entrada) se(entrada == 'A' ) escreva( "Informe uma fileira do teatro (0-19) : " ) leia(fileira) escreva( "Informe uma poltrona dessa fileira (0-9) : " ) leia(poltrona) se(m[fileira][poltrona]!= -1) escreva( "Essa poltrona já foi vendida \n" ) senao M[fileira][poltrona] = 1
escreva( ">> Venda efetuada com sucesso! \n" ) vendidas++ senao se(entrada == 'B' ) escreva( "Foram vendidos ", vendidas, " ingressos \n" ) senao se(entrada!= 'C' ) escreva( "ERRO: Dígito inválido, tente A, B ou C apenas \n" ) escreva( ">> Programa Encerrado com sucesso!" )