Mostrando postagens com marcador Algoritmo. Mostrar todas as postagens
Mostrando postagens com marcador Algoritmo. Mostrar todas as postagens

Vetores( exercícios resolvidos)

Exercício: Construa um algoritmo que declare uma matriz 7x4 de números reais, a inicialize com valores fornecidos pelo usuário através da entrada padrão e a retorne na saída padrão com o layout a seguir:
| x.xx x.xx ... x.xx|
| x.xx x.xx ... x.xx|
| . . . . |
| . . . . |
| . . . . |
algoritmo "exercício 1 matriz"
var
matriz: vetor [1..7,1..4] de real
i, j: inteiro
inicio
para i de 1 ate 7 faca
para j de 1 ate 4 faca
escreva ("Entre com matriz[",i, ",",j,"]= ")
leia (matriz[i,j])
fimpara
fimpara
para i de 1 ate 7 faca
escreva ("|")
para j de 1 ate 4 faca
escreva (matriz[i,j]:10:2)
fimpara
escreval ("|")
fimpara
fimalgoritmo


algoritmo "Questao "
// Função : Calculo
// Autor :
// Data :
// Seção de Declarações

var

i,j,l,soma:inteiro
m:vetor[1..4,1..3] de inteiro

inicio
  
escreval("Digite o valor da matriz M:")
para i de 1 ate 4 faca
para j de 1 ate 3 faca
escreval("Valor de linha",i,"coluna",j)
leia(m[i,j])
fimpara
fimpara
escreval("Digite a linha desejada:")
leia(l)

para j de 1 ate 3 faca
soma<-m[l,j]+soma
fimpara
escreval(soma)
fimalgoritmo


algoritmo "questao"
// Função : Calculo
// Autor :
// Data :
// Seção de Declarações

var
A:vetor[1..3,1..3] de inteiro
B:vetor[1..3,1..3] de inteiro
R:vetor[1..3,1..3] de inteiro
i,j:inteiro

inicio

escreval("Digite os valores da matriz A")
para i de 1 ate 3 faca
para j de 1 ate 3 faca
leia(A[i,j])
fimpara
fimpara

escreval("Digite os valores da matriz B")
para i de 1 ate 3 faca
para j de 1 ate 3 faca
leia(B[i,j])
fimpara
fimpara

para i de 1 ate 3 faca
para j de 1 ate 3 faca
R[i,j]<- A[i,j]*B[i,j]
fimpara
fimpara

escreval("A matriz A é:")
para i de 1 ate 3 faca
escreval
para j de 1 ate 3 faca
escreva(A[i,j])
fimpara
fimpara

escreval
escreval("A matriz B é:")
para i de 1 ate 3 faca
escreval
para j de 1 ate 3 faca
escreva(B[i,j])
fimpara
fimpara

escreval
escreval("A matriz R é:")
para i de 1 ate 3 faca
escreval
para j de 1 ate 3 faca
escreva(R[i,j])
fimpara
fimpara
fimalgoritmo


algoritmo "Questao "

// Função : Calculo
// Autor :
// Data :
// Seção de Declarações

var
i,j,l,c:inteiro
mM:vetor[1..5,1..5] de caractere

inicio

escreval("Digite o valor da matriz M:")
para i de 1 ate 5 faca
para j de 1 ate 5 faca
escreval("Valor de linha",i,"coluna",j)
leia(m[i,j])
fimpara
fimpara

escreval("Digite a linha desejada")
leia(l)
escreval("Digite a coluna desejada")
leia(c)
escreval(m[l,c])
fimalgoritmo

algoritmo "questao"
// Função : Calculo
// Autor :
// Data :
// Seção de Declarações

var
i,j:inteiro
A:vetor[1..5,1..5] de inteiro

inicio

escreval("Digite a matriz A:")
para i de 1 ate 5 faca
para j de 1 ate 5 faca
leia(A[i,j])
fimpara
fimpara

escreva("A Diagonal principal")
para i de 1 ate 5 faca
escreval
para j de 1 ate 5 faca
se (i=j) entao
escreva(A[i,j])
fimse
fimpara
fimpara
escreval
escreval("O triângulo superior à diagonal principal")
para i de 1 ate 5 faca
escreval()
   para j de 1 ate 5 faca
      se (i<j) entao
         escreva(A[i,j])
      fimse
   fimpara
fimpara
escreval()

escreval("O triângulo inferior à diagonal principal")
para i de 1 ate 5 faca
escreval()
   para j de 1 ate 5 faca
      se (i>j) entao
         escreva(A[i,j])
      fimse
   fimpara
fimpara
escreval()

escreval("Tudo exceto a diagonal principal")
para i de 1 ate 5 faca
escreval()
   para j de 1 ate 5 faca
      se (i<>j) entao
         escreva(A[i,j])
      fimse
   fimpara
fimpara
escreval()

escreval("A diagonal secundária")
para i de 1 ate 5 faca
escreval()
   para j de 1 ate 5 faca
      se (i+j=6) entao
         escreva(A[i,j])
      fimse
   fimpara
fimpara
escreval()

escreval("Somente a diagonal principal e secundária")
para i de 1 ate 5 faca
escreval()
   para j de 1 ate 5 faca
      se ((i=j) ou (i+j=6)) entao
         escreva(A[i,j])
      fimse
   fimpara
fimpara
escreval()

para i de 1 ate 5 faca
escreval()
   para j de 1 ate 5 faca
      escreva(A[i,j])
   fimpara
fimpara
fimalgoritmo

algoritmo "questao"
// Função : Calculo
// Autor :
// Data :
// Seção de Declarações

var
nome:caractere
i,cont:inteiro
A:vetor[1..100] de caractere

inicio

escreval("Digite os nomes dos alunos")
para i de 1 ate 100 faca
leia(A[i])
fimpara
escreval("Digite a palavra que deseja procura")
leia(nome)

para i de 1 ate 100 faca
se (A[i]="nome") entao
cont<-cont+1
fimse
fimpara
escreval(cont)

fimalgoritmo

Matrizes

Algoritmos e Estruturas de Dados/Vetores e Matrizes
Vetor (Array)

Em computação um Vetor (Array) ou Arranjo é o nome de uma matriz unidimensional considerada a mais simples das estruturas de dados. Geralmente é constituída por dados do mesmo tipo (homogêneos)e tamanho que são agrupados continuamente na memória e acessados por sua posição (indíce - geralmente um número inteiro) dentro do vetor. Na sua inicialização determina-se o seu tamanho que geralmente não se modifica mesmo que utilizemos menos elementos.

Abaixo temos o exemplo de um vetor. Os valores internos seriam os dados alocados no vetor, enquanto seu tamanho é dado pelo número de casas disponíveis (no caso 8) e o índice representa a posição do dado no vetor ( por exemplo podemos definir que 0 tem o índice 1, 2 tem índice 2, 8 tem índice 3 e assim sucessivamente).
0     2     8     9     10     11     15     18

    Declaração e inicialização de um vetor

A declaração de um vetor em português estruturado pode ser da seguinte forma:

                             Nome_Vetor:vetor[tamanho]tipo

Assim temos como exemplo de declarações:

                             VECTOR:vetor [10] numérico
                             MEDIA: vetor [3] numérico

Tomemos o primeiro exemplo (inteiro vector [10]) onde declaramos que estamos criando um vetor para números chamado de VECTOR com dez posições. Desta forma o computador entende que deve alocar 10 espaços para 10 números inteiros no computador que serão inseridos conforme especificado pelo programa . Por exemplo, vamos construir dois laços de repetição:

                       VECTOR:vetor [10] numérico
                       INDICE:numérico
                       INDICE<-0
                       para INDICE de 0 até VECTOR<9 passo 1 faça
                       exibe Escreva um número
                       recebe VECTOR [INDICE]
                       fecha_para
                       para INDICE de 0 até VECTOR<9 passo 1 faça
                       exibeVECTOR [INDICE]
                       recebe VECTOR [INDICE]
                       fecha_para

Conforme vimos, o primeiro laço para vai entender que ao entrar índice<-0 , quando o usuário digitar o primeiro valor será alocado este valor em vector[índice].Quando chegar ao final do para ele fará o teste. Se o índice continuar menor do que 10 ele entra no laço e recebe o segundo valor, chegando ao final do laço e fazendo novamente o processo até obter os dez valores quando sai do laço.

No segundo laço acessamos estes dados e exibimos na tela aplicando o mesmo príncipio do primeiro laço.
Operações com Vetores

Podemos trabalhar com vetores numéricos, executando operações sobre eles da mesma forma como executaríamos com variáveis numéricas comuns. Devemos assumir que ao declararmos um determinado vetor[índice], com um índice específico, estamos fazendo referência a um número.
Matrizes

Matrizes são arranjos ordenados que ao contrário dos vetores podem ter n dimensões, sendo que estas dimensões lhes dão o nome n-dimensional . Uma matriz de duas dimensões será chamada bi-dimensional, uma de três dimensões tri-dimensional e assim consecutivamente. Funciona praticamente da mesma forma que um vetor exceto que utilizaremos o número n de índices para acessar um dado que queremos. Para efeitos de estudo por enquanto nos limitaremos somente às matrizes bidimensionais (duas dimensões linha X colunas). Assim se possuimos uma matriz bidimensional de duas linhas e duas colunas:
3     4
5     6

Consideramos que para acessarmos o valor 3, localizamos o índice por sua linha (1) e coluna (1) , deste modo seu índice é (1,1). O valor quatro por exemplo será (1, 2).

    Declaração e inicialização de um matriz

A declaração de uma matriz em português estruturado pode ser da seguinte forma:

                                                tipo Nome_Matriz [tamanho_linha][tamanho_coluna]

Assim temos como exemplo de declarações:

                                    inteiro matriz [10][10]
                                    real media [3][3]

Em uma matriz como o inteiro matriz que criamos acima é criado espaço para 100 elementos (10x10).Criaremos abaixo um algoritmo em que o usuário digita 100 elementos e estes aparecem na tela.

                                          inteiro matriz [10][10]

                        inteiro i , j (i será o índice linha e j o índice coluna)

                       para (início: i=0 fim i<10 alteraçãoi+1 )

                      para (início: j=0 fim j<10 alteraçãoj+1 )

                      exibe Escreva um número

                                                                    recebe matriz [i][j]

                                                                    fecha_para

                                                        fecha_para

                                                        para (início: i=0 fim i<10 alteraçãoi+1 )

                                                                    para (início: j=0 fim j<10 alteraçãoj+1 )

                                                        exibe Estes são os números digitados:

                                                        exibe matriz [i][j]

                                                                fecha_para

                                                        fecha_para

Operações com matrizes
Soma e subtração entre matrizes

                                            inteiro matriz_A [1,,2,1,,[2]

                                            inteiro matriz_B [2][2]

                                            inteiro matriz_soma [2][2]

                                                        para (início: i=0 fim i<2 alteraçãoi+1 )

                                                                    para (início: j=0 fim j<10 alteraçãoj+1 )

                                                                    matriz_soma[i][j]= matriz_A [i][j]+ matriz_B [i][j]

                                                                    fim_para

                                                        fim_para

Multiplicação por um escalar

                                            inteiro escalar

                                            inteiro matriz_A [2][2]

                                            inteiro matriz_multiplicação [2][2]

                                                        para (início: i=0 fim i<2 alteraçãoi+1 )

                                                                    para (início: j=0 fim j<2 alteraçãoj+1 )

                                                                    matriz_multiplicação[i][j]= escalar * matriz_A [i][j]

                                                                    fim_para

                                                        fim_para

Multiplicação entre matrizes

                                            inteiro matriz_A [2][2]

                                            inteiro matriz_B [2][2]

                                            inteiro matriz_multiplicacao [2][2]

                                                        para (início: i=0 fim i<2 alteraçãoi+1 )

                                                                    para (início: j=0 fim j<2 alteraçãoj+1 )

                                                                                para (início: k=0 fim k<2 alteraçãok+1 )

                                                                    matriz_multiplicacao[i][j]= matriz_multiplicacao [i][j]+ matriz_A [i][k]*matriz_B[k][j]

                                                                    fim_para

                                                        fim_para

Calcular a diagonal e a transposta

                                            inteiro matriz_A [2][2]

                                            inteiro diagonal=0

                                                        para (início: i=0 fim i<2 alteraçãoi+1 )

                                                                    para (início: j=0 fim j<10 alteraçãoj+1 )

                                                                                se (i=j)

                                                                                diagonal= diagonal+ matriz_A [i][j]

                                                                                fim_se

                                                                    fim_para

                                                        fim_para

                                            inteiro matriz_A [2][2]

                                            inteiro inversa=0

                                            inteiro maximo=2

                                                        para (início: i=0 fim i<2 alteraçãoi+1 )

                                                                    para (início: j=0 fim j<2 alteraçãoj+1 )

                                                                                se (i+j=(maximo*2)-1)

                                                                                inversa= inversa + matriz_A [i][j]

                                                                                fim_se

                                                                    fim_para

                                                        fim_para

Resumo

    include<stdio.h>
    include<stdlib.h>

    define t 3

int main(){

   int mat[t][t], i, j;
   for(i = 0; i<t; i++){
       for(j = 0; j<t; j++){
           printf("Digite o elemento mat[%d][%d]", i, j);
           scanf("%d", &mat[i][j]);
       }
   }
   for(i = 0; i<t; i++){

           for(j=0; j<t; j++){
               printf("mat[%d][%d] = %d, ", i, j, mat[i][j]);
           }
           printf("\n");

   }

   system("pause");
   return 0;

}