Algoritmos e Estrutura de Dados I Revisão Prof. Elyssandro Piffer CONCEITO DE ALGORITMO/PROGRAMA/SISTEMA Algoritmos + Programas + Sistema (software) Um algoritmo é um pequeno grupo de instruções passadas para o computador. Programar é basicamente construir vários algoritmos. Construir Sistemas (Software) é a junção de vários programas. PROCESSAMENTO DE DADOS “...a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido...” (FARRER, 1999). EXEMPLO DE ALGORITMO • Algoritmo 3: Realizar compra num supermercado Passo 1 - Faça a lista de compra e vá ao supermercado Passo 2 - Entre no supermercado Passo 3 - Pegue o carrinho de compra Passo 4 - Pegue os produtos da lista de compra Passo 5 - Passe os produtos junto ao caixa e pague Passo 6 - Volte para casa Passo 7 – Guarde as compras PARA SE CONSTRUIR, NECESSÁRIO SE FAZ • Ler atentamente o enunciado, destacando os pontos mais importantes. • Definir os dados de entrada, ou seja, quais dados serão fornecidos. • definir o processamento, ou seja, quais cálculos serão efetuados. • Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento. • Construir o algoritmo utilizando os tipos descritos no slide anterior. • Testar o algoritmo realizando simulações. EXEMPLO - DESCRIÇÃO NARRATIVA Faça um algoritmo que mostre o resultado da multiplicação de dois números. Passo 1 – Receber os dois números que serão multiplicados Passo 2 – Multiplicar os números Passo 3 – Mostrar o resultado obtido na multiplicação EXEMPLO - FLUXOGRAMA Faça um algoritmo que mostre o resultado da multiplicação de dois números. EXEMPLO - PSEUDOCÓDIGO Faça um algoritmo que mostre o resultado da multiplicação de dois números. ALGORITMO DECLARE n1, n2, m NUMÉRICO ESCREVA “Digite dois números” LEIA n1, n2 m n1 * n2 ESCREVA “Multiplicação = “ , m FIM_ALGORITMO. CONCEITO DE VARIÁVEL • Um ALGORITMO recebe dados, que são armazenados na memória do computador. • Desta forma, uma variável representa uma posição de memória, possuindo nome e tipo. • Quando queremos buscar algum dado na memória basta sabermos o nome da variável que o computador irá buscá-lo automaticamente. CONCEITO DE TIPOS DE DADOS • Quando uma variável é definida é necessário saber que TIPO são os dados que ela armazenará. São eles: • Numérico: dividem-se em inteiros e reais. Os números inteiros podem ser positivos ou negativos e NÃO possuem parte decimal. Exemplos: -23; 98; 0; 1350. Os números reais podem ser positivos ou negativos e POSSUEM parte decimal. Exemplos: -23.50; 98.37; 0.29; 1350.45. CONCEITO DE TIPOS DE DADOS • Lógico: São também chamados dados booleanos (por causa da álgebra de Boole) e podem assumir apenas duas possibilidades de representação, os valores VERDADEIRO ou FALSO. • Literal ou Caractere : São dados formados por um único caractere ou por uma cadeia de caracteres. Estes caracteres podem ser as letras maiúsculas, minúsculas, números (não podem ser usados para cálculos) e os caracteres especiais (&, #, @, ?, +, etc). Exemplos: ‘F’; ‘s’; ‘unipar’; ‘rua das flores’. REGRAS PARA IDENTIFICADORES (VARIÁVEL) • Só pode conter letras (maiúsculas ou minúsculas), números e o caractere sublinhado. • o primeiro caractere deve ser sempre letra ou o caractere sublinhado. • não são permitidos espaços em branco e caracteres especiais. • não podemos usar as palavras reservadas, ou seja, palavras que pertencem a uma linguagem de programação. • Deve dizer respeito ao que será armazenado dentro dela. REGRAS PARA IDENTIFICADORES (VARIÁVEL) • Exemplos de identificadores Válidos: • A • _a • nota • NOTA • X5 • A32 Inválidos: • 5b – começa por número • e 12 – contém espaço em branco • x-y – contém caractere especial ‘-’ • If – por ser palavra reservada ESTRUTURA SEQUENCIAL EM PSEUDOCÓDIGO Escopo ALGORITMO DECLARE INICIO bloco de comandos FIM. DECLARAÇÃO DE VARIÁVEIS EM ALGORITMOS • As variáveis são declaradas após a palavra DECLARE e os tipos mais utilizados são: NÚMERICO, LITERAL e LÓGICO. DECLARE idade NÚMERICO sexo LITERAL teste LÓGICO COMANDO DE ATRIBUIÇÃO EM ALGORITMOS • O comando de atribuição é utilizado para atribuir valores ou operações a variáveis, sendo representado pelos símbolo x4 yy+2 z ‘joão’ teste falso COMANDO DE ENTRADA EM PSEUDOCÓDIGO • O comando de entrada é utilizado para receber dados digitados pelo usuário. Os dados recebidos são armazenados em variáveis. Este comando é representado pela palavra LEIA. EXEMPLO: LEIA nota LEIA nome COMANDO DE SAÍDA EM PSEUDOCÓDIGO • O comando de saída é utilizado para mostrar dados na tela, na impressora ou outros. Este comando é representado pela palavra ESCREVA e os dados podem ser conteúdo de variáveis ou mensagens. EXEMPLO: ESCREVA idade ESCREVA ‘Entre com o seu nome’ ESCREVA ‘Eu tenho ’ , idade, ‘ anos’ ESTRUTURA SEQUENCIAL Exemplo (em pseudocódigo): ... inicio Leia o raio; calcule a área do circulo; escreva o cálculo da área do circulo ; fim OPERADORES RELACIONAIS EM ALGORITMO = igual ≠ ou <> diferente ≤ ou <= menor igual ≥ ou >= maior igual < menor > maior Prioridade: NÃO possuem OPERADORES LÓGICOS • EM ALGORITMO NÃO E OU Obs.: são usados para conjunção, disjunção e negação respectivamente. Prioridade: 1.º NÃO 2º E 3º OU Obs.: é apropriado quando existir mais de um tipo de operador, utilizar os parênteses que indiquem a prioridade de execução TABELA VERDADE TABELA E TABELA OU TABELA NÃO V E V=V V OU V = V NÃO V = F V E F=F V OU F = V NÃO F = V F E V=F F OU V = V F E F=F F OU F = F CONCEITO DE ESTRUTURAS CONDICIONAIS • As estruturas condicionais são divididas em: Simples. Compostas. Múltipla escolha. ESTRUTURA CONDICIONAL SIMPLES ESCOPO EM ALGORITMO: SE condição ENTÃO INICIO comando1 comando2 comando3 FIM Os comandos só serão executados se a condição for verdadeira. EXEMPLO ESTRUTURA CONDICIONAL SIMPLES ... SE x = 2 ENTÃO INICIO ESCREVA “X É IGUAL A 2” ESCREVA “2 É UM NÚMERO PAR” FIM ESTRUTURA CONDICIONAL SIMPLES FORMAS DE REPRESENTAÇÃO NO ALGORITMO Fluxograma falso condição verdade Linguagem Algorítmica se condição então inicio comandos comandos Fim EXEMPLO 2: ESTRUTURA CONDICIONAL SIMPLES ALGORITMO num_guais VAR num1, num2 inteiro INICIO LEIA num1, num2 SE num1 = num2 ENTÃO inicio ESCREVA “Números Iguais” fim FIM ESCOPO DA ESTRUTURA CONDICIONAL COMPOSTA SE condição ENTÃO INICIO comando1 comando2 comando3 FIM SENÃO INICIO comando4 comando5 FIM Se a condição for verdadeira os comandos 1, 2 e 3 serão executados. Se a condição for falsa os comandos 4 e 5 serão executados. EXEMPLO CONDICIONAL COMPOSTA SE x = 2 ENTÃO INÍCIO ESCREVA “X É IGUAL A 2” ESCREVA “2 É UM NÚMERO PAR” FIM SENÃO INÍCIO ESCREVA “X É MAIOR OU MENOR QUE 2” FIM ESTRUTURA CONDICIONAL COMPOSTA FORMAS DE REPRESENTAÇÃO NO ALGORITMO Fluxograma Linguagem Algorítmica se condição falso condição comando 2 verdade comando 1 então inicio comando1 Fim senão inicio comando2 Fim EXEMPLO 2: ESTRUTURA CONDICIONAL COMPOSTA ALGORITMO media4 VAR nota1, nota2, nota3, media real INICIO Leia (nota1, nota2, nota3) media <- (nota1 + nota2 + nota3 ) /3 SE media >= 6.0 ENTÃO inicio Escreva “Aluno Aprovado “ Escreva “ Média = “, media fim SENÃO inicio Escreva “ Aluno Reprovado “ Escreva “ Média = “, media fim Escreva “Fim de execução” FIM SE (você tem dinheiro suficiente para encher o tanque) Então inicio encha o tanque pague em dinheiro fim Senão inicio se (você tem cartão de crédito) então inicio SELEÇÃO encha o tanque ENCADEADA pague com o cartão fim OU ANINHADA Fim EXEMPLO DE UMA CALCULADORA SIMPLES Algoritmo calculadora Var operador char; operando1, operando2, resultado real INÍCIO Leia operando1, operador, operando2 se operador = ‘ +’ então inicio resultado <- operando1 + operando2 fim se operador = “ - ” então inicio resultado <- operando1 - operando2 fim se operador = “ * ” então inicio resultado <- operando1 * operando2 fim se operador = “ / ” então inicio resultado <- operando1 / operando2 fim Escreva resultado FIM INICIO Leia operando1, operador, operando2 Se operador = “ + ” então Inicio resultado <- operando1 + operando2 Fim senão inicio se operador = “ - ” então inicio resultado <- operando1 - operando2 fim senão inicio se (operador = “ * ”) então inicio resultado <- operando1 * operando2 fim senão inicio se (operador = “ / ”) então inicio resultado <- operando1 / operando2 fim fim fim fim escreva resultado EXEMPLO DE ENCADEAMENTO OU ANINHAMENTO FIM ESCOPO DA CONDICIONAL MÚLTIPLA ESCOLHA Caso variável for valor 1 : inicio comando_1 comando_2 fim valor n : inicio comando_3 fim SENÃO inicio comando_4 comando_5 fim Fim_Caso ESCOPO DA CONDICIONAL MÚLTIPLA ESCOLHA Caso variável for valor 1 : inicio comando_1 comando_2 fim valor n : inicio comando_3 fim Fim_Caso O comando (SENÃO) não é parte obrigatória EXEMPLO CONDICIONAL MÚLTIPLA ESCOLHA ... LEIA x Caso x for 1 : inicio ESCREVA “Foi digitado 1” fim 2,3 : inicio ESCREVA “Foi digitado 2 ou 3” fim 5 : inicio ESCREVA “Foi digitado o valor 5” fim SENÃO ESCREVA “Valor diferente de 1, 2, 3 e 5” Fim_Caso ... ... Escreva “1 – Exercicio 1” Escreva “2 – Exercicio 2” Escreva “3 – Sair” LEIA x Caso x for 1 : inicio ESCREVA “estou no exerc 1” fim 2 : inicio ESCREVA “estou no exerc 2” fim 3 : inicio ESCREVA “Final de execução” fim SENÃO ESCREVA “Opção inválida” Fim_Caso ... EXEMPLO CONDICIONAL MÚLTIPLA ESCOLHA ... LEIA x Caso x for 1 : ESCREVA “Foi digitado o nº 1” 2,3 : inicio ESCREVA “Foi digitado o nº 2” ESCREVA “ou o nº 3” fim 4..9 : ESCREVA “Foi digitado nº entre 4 e 9” SENÃO ESCREVA “Valor diferente de 1 a 9” Fim_Caso ... EXEMPLO CONDICIONAL MÚLTIPLA ESCOLHA Exemplo com valor ... caractere (char) LEIA sexo Caso sexo for “F” : inicio ESCREVA “ Feminino ” fim “f” : inicio ESCREVA “ feminino ” fim “M” : inicio ESCREVA “ Masculino ” fim ”m” : inicio ESCREVA “ masculino ” fim SENÃO ESCREVA “ sexo inválido ” Fim_Caso ... EXEMPLO CONDICIONAL MÚLTIPLA ESCOLHA ... LEIA sexo Caso sexo for “F” , “f” : inicio ESCREVA “ feminino ” fim “M” , “m” : inicio ESCREVA “ masculino ” fim SENÃO ESCREVA “ sexo inválido ” Fim_Caso ... EXEMPLO CONDICIONAL MÚLTIPLA ESCOLHA ... LEIA sexo Caso sexo for “a” .. “z” : inicio ESCREVA “ valor de a até z ” “A” .. “Z” : inicio ESCREVA “valor de A até Z ” SENÃO ESCREVA “ sexo inválido ” Fim_Caso ... fim fim