Revisão Algoritmos Felipe Pazinatto Índice da Revisão 1/2 ● Variáveis ● Tipos de variáveis ● Comandos ● Atribuição de valores ● Aritmética Básica Troca de valores(swap) ● Vetores ● Matrizes Laço – Pseudo-código ● ● ● – ● Enquanto Para Desvio Condicional – – – Se <cond> então Se <cond> então senão Se <cond> então senão Se <cond> então senão Se ... Índice da Revisão 2/2 ● Comandos de I/O ● Teste de mesa ● Ler( variável ) ● O que é? ● Mostrar ( variável ) ● Como fazer Variáveis ● O que são variáveis? ● São posições de memória ● Possuem um tipo: ( inteiro, real, caracter ) ● Possuem uma capacidade de armazenamento – ● ● 1 byte, 2 bytes, 4 bytes, etc. Dependendo da capacidade de armazenamento, é a capacidade de reprodução. Ex: 8 bits= 1 byte = 2^8 = 256 – Um número de 8 bits consegue representar até 256 números Variáveis ● Ex: 8 bits Binário Decimal 00000000 0 00000001 1 00000010 2 00000011 3 00000100 4 00000101 5 11111111 255 Variáveis ● Variáveis são posições de memória idade telefone Altura 28 3322-3322 1,75 Conteúdo caracter Conteúdo inteiro Conteúdo real Tipos de Variáveis ● Tipo inteiro → valores inteiros ● ● Tipo real → valores de ponto flutuante ● ● I={1,2,3,4...} R={1.5,2.666,3.1416...} Tipo caracter → letras e números ● ● C={“a”,”b”,”c”,”1”,”2”...} Os números neste caso possuem apenas função de texto. Pseudo- Código ● Forma de representar um algoritmo ● É uma forma genérica ● ● Fácil de transportar para as linguagens de programação Usado para publicações científicas Pseudo-Código ● Formação de um programa ● Início (declaração das variáveis) – – ● Desenvolvimento (processamento) – ● Criação das variáveis Inicialização das variáveis Transformações das variáveis por cálculos e trocas Finalização – Relatório mostrando o resultado Pseudo-Código para um Programa //declaração de variáveis// Inteiro Peso Real Altura Real IMC //inicialização das variáveis// Peso ← 28 Altura ← 1.75 //processamento das variáveis// IMC ← Peso / (Altura * Altura) //Finalização – relatório// Mostrar ( “Seu IMC é”, IMC) Tipo Nome Nome ← Valor Nome ← Valor do Cálculo Detalhe: O cálculo é sempre realizado antes de ocorrer a atribuição Atribuição de Valores X Y Z W Nomes das Variáveis 0 0 0 0 Conteúdos X ← 10 Y ← 15 X Y Z W Nomes das Variáveis 10 0 15 0 0 0 Conteúdos Atribuição de Valores X Y Z W Nomes das Variáveis 0 0 0 0 Conteúdos X ← 10 Y←X X Y Z W Nomes das Variáveis 10 0 10 0 0 0 Conteúdos Atribuição de Valores X Y Z W Nomes das Variáveis 0 0 0 0 Conteúdos X ← 10 Y←X Y←Z X Y Z W Nomes das Variáveis 10 0 0 0 0 Conteúdos Atribuição de Valores X Y Z W Nomes das Variáveis 0 0 0 0 Conteúdos X ←X+1 Y ← X+1 X Y Z W Nomes das Variáveis 0 1 0 2 0 0 Conteúdos Atribuição de Valores X Y Z W Nomes das Variáveis 0 0 0 0 Conteúdos X ← 10 Y ← Y+1 Y ← Y+X X Y Z W Nomes das Variáveis 10 0 11 0 0 0 Conteúdos Atribuição de Valores X Y Z W Nomes das Variáveis 0 0 0 0 Conteúdos X ← 10 Y ← X-9 Y ← Y+1 X Y Z W Nomes das Variáveis 10 0 0 2 0 0 Conteúdos Aritmética Básica X Y Z W Nomes das Variáveis 10 0 10 0 10 0 10 Conteúdos Somar + Subtrair - Multiplicar * X ← X+1 Y ← Y-1 Z←Z/2 W←W*2 Dividir / X Y Z W Nomes das Variáveis 11 0 0 9 0 5 20 0 Conteúdos Troca de Valores(swap) X Y Z W Nomes das Variáveis 10 0 50 0 0 0 Conteúdos Z←X X←Y Y←Z Como o conteúdo da memória se perde por sobreposição de valores, é necessário copiar o conteúdo para outra posição de memória X Y Z W Nomes das Variáveis 50 0 10 0 10 0 0 Conteúdos Troca de Valores em PseudoCódigo //declaração de variáveis// Inteiro X Inteiro Y Inteiro Troca //inicialização das variáveis// X ← 10 Y ← 50 //processamento das variáveis// Troca ← X X←Y Y ← Troca //Finalização – relatório// Mostrar ( “Valores trocados”,X,Y) X 10 Y Troca Troca de Valores em PseudoCódigo //declaração de variáveis// Inteiro X Inteiro Y Inteiro Troca //inicialização das variáveis// X ← 10 Y ← 50 //processamento das variáveis// Troca ← X X←Y Y ← Troca //Finalização – relatório// Mostrar ( “Valores trocados”,X,Y) X Y 10 50 Troca Troca de Valores em PseudoCódigo //declaração de variáveis// Inteiro X Inteiro Y Inteiro Troca //inicialização das variáveis// X ← 10 Y ← 50 //processamento das variáveis// Troca ← X X←Y Y ← Troca //Finalização – relatório// Mostrar ( “Valores trocados”,X,Y) X Y Troca 10 50 10 Troca de Valores em PseudoCódigo //declaração de variáveis// Inteiro X Inteiro Y Inteiro Troca //inicialização das variáveis// X ← 10 Y ← 50 //processamento das variáveis// Troca ← X X←Y Y ← Troca //Finalização – relatório// Mostrar ( “Valores trocados”,X,Y) X Y Troca 10 50 50 10 Troca de Valores em PseudoCódigo //declaração de variáveis// Inteiro X Inteiro Y Inteiro Troca //inicialização das variáveis// X ← 10 Y ← 50 //processamento das variáveis// Troca ← X X←Y Y ← Troca //Finalização – relatório// Mostrar ( “Valores trocados”,X,Y) X Y Troca 10 50 50 10 10 Vetores ● Mecanismo de programação adotado para facilitar o acesso à várias posições de memória X Y Z W Nomes das Variáveis 10 0 10 0 10 0 10 Conteúdos Vetor[0] Vetor[1] Vetor[2] Vetor[3] Nomes das Variáveis 10 0 10 0 10 0 10 Conteúdos Declaração de vetores ● Inteiro vetor[10] Declara um vetor de 10 elementos de Inteiro. Este vetor irá ocupar 10 posições de memória Vetor [ 10 ] Índice Nome Inicialização de Vetores vetor[0] vetor[1] vetor[2] vetor[3] Nomes das Variáveis 0 0 0 0 Conteúdos vetor[0] ← 10 vetor[3] ← vetor[0] vetor[1] ← vetor[1] + 1 vetor[0] vetor[1] vetor[2] vetor[3] Nomes das Variáveis 10 0 1 0 0 10 0 Conteúdos Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] 10 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) vet[2] vet[3] soma Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] 10 15 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) vet[2] vet[3] soma Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] 10 15 20 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) vet[3] soma Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] vet[3] 10 15 20 45 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) soma Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] vet[3] soma 10 15 20 45 0 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] vet[3] soma 10 15 20 45 0 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) 10 Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] vet[3] soma 10 15 20 45 0 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) 10 25 Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] vet[3] soma 10 15 20 45 0 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) 10 25 45 Somando o conteúdo de um vetor em uma variável //declaração de variáveis// Inteiro vet[4] Inteiro soma vet[0] vet[1] vet[2] vet[3] soma 10 15 20 45 0 //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0] soma ← soma + vet[1] soma ← soma + vet[2] soma ← soma + vet[3] //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) 10 25 45 90 Matrizes ● ● Mesma idéia dos vetores, porém com dois índices Um índice para a linha, outro para a coluna Inteiro matriz[ 2 ][ 3 ] Coluna Linha Inteiro matriz [2][3] 10 11 Matriz [ 0 ][ 0 ] ← 10 Matriz [ 0 ][ 1 ] ← 11 Matriz [ 0 ][ 2 ] ← 12 20 21 22 Matriz [ 1 ][ 0 ] ← 20 Matriz [ 1 ][ 1 ] ← 21 Matriz [ 1 ][ 2 ] ← 22 12 //declaração de variáveis// Inteiro vet[2][3] Inteiro soma //inicialização das variáveis// vet[0][0] ← 10 vet[0][1] ← 15 vet[0][2] ← 12 vet[1][0] ← 21 vet[1][1] ← 25 vet[1][2] ← 22 Soma ← 0 //processamento das variáveis// soma ← soma + vet[0][0] soma ← soma + vet[0][1] soma ← soma + vet[0][2] soma ← soma + vet[1][0] soma ← soma + vet[1][1] soma ← soma + vet[1][2] //Finalização – relatório// Mostrar ( “Soma:”,soma) Comparações > maior < menor >= maior ou igual <= menor ou igual != não igual == igual Inteiro a a ← 10 a>10 → falso a<10 → falso a==10 → verdadeiro a>=10 → verdadeiro a<=10 → verdadeiro A != 5 → verdadeiro Comandos – Laço - Enquanto Verdadeiro ou falso Inteiro contador Enquanto <condição> faça contador ← 0 Enquanto contador<10 faça Fim Enquanto contador ← contador + 1 Fim Enquanto Comandos – Laço - Para Para [variavel] ← LI até LS faça Inteiro c Para c ← 0 até 10 faça Fim Para //LI-limite inferior //LS-limite superior Fim Para Soma de vetor usando Enquanto //declaração de variáveis// Inteiro vet[4] Inteiro soma, ID //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 ID ← 0 //processamento das variáveis// Enquanto ID<10 faça soma ← soma + vet[ID] ID ← ID + 1 Fim Enquanto //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) Soma de vetor usando Para //declaração de variáveis// Inteiro vet[4] Inteiro soma, ID //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// Para ID ←0 até 10 faça soma ← soma + vet[ID] Fim Enquanto //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma) Desvio Condicional ● Desvia a execução do programa para um outro trecho de código de acordo com a condição Se <cond> Então Se <cond> Então Se <cond> Então Senão Se <cond> então Fim Se Senão Senão Se <cond> então Senão Fim Se Fim Se //declaração de variáveis// Inteiro vet[4], soma, ID //inicialização das variáveis// vet[0] ← 10 vet[1] ← 15 vet[2] ← 20 vet[3] ← 45 Soma ← 0 //processamento das variáveis// Para ID ←0 até 10 faça soma ← soma + vet[ID] Fim Enquanto Se soma<10 então Mostrar(“Valor insuficiente”) Soma ← soma *2 Senão Mostrar ( “ Valor suficiente”) Fim Se //Finalização – relatório// Mostrar ( “Vetor:”,vet[0],vet[1],vet[2],vet[3]) Mostrar ( “Soma:”,soma)