Professional Documents
Culture Documents
7 de junho de 2013
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
2 / 73
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
3 / 73
Objetivos da Disciplina
Fazer uma introduo aos conceitos de Algoritmo; e E apresentar algumas metodologias de desenvolvimento de Algoritmos; e Aprender sobre as caractersticas e os conceitos envolvidos na escrita de um programa de computador.
Algoritmos
7 de junho de 2013
4 / 73
Atualmente temos um conjunto vasto de linguagens de programao disponveis para se desenvolver sistemas, sejam elas: Java, C/C++, Python, Pascal, Fortran, Cobol, entre outras; Quase tudo ao nosso redor possui sistemas embarcados (celular, televisor, ar-condicionado, carro, entre outros); e Essa disciplina de fundamental importncia para que o aluno possa se aprofundar em qualquer linguagem de programao que venha a utilizar no futuro.
Algoritmos
7 de junho de 2013
5 / 73
Algoritmos
Denio
Um algoritmo uma sequncia nita de instrues ou passos bem denidos e no ambguos, cada uma dos quais pode ser executada mecanicamente num perodo de tempo nito e com uma quantidade de esforo nito.
Observaes
Algoritmo no a soluo do problema, pois, se assim fosse, cada problema teria um nico algoritmo; e Algoritmo o caminho para a soluo de um problema, e em geral, os caminhos que levam a uma soluo so muitos.
Algoritmos
7 de junho de 2013
6 / 73
Algoritmos (cont.)
A palavra algoritmo vem do nome do matemtico iraniano Abu Abdullah Mohammad Ibn Musa al-Khawarizmi, nascido em Khawarizm (Kheva), ao sul do mar Aral, que viveu no sculo XVII; e
O termo algoritmo tambm utilizado em outras reas, como engenharia, administrao, entre outras.
Algoritmos
7 de junho de 2013
7 / 73
Trocar o pneu de um carro; Fazer um bolo a partir de uma receita; Substituir uma lmpada queimada; Desmontar e montar uma bicicleta; Ligar um televisor e escolher um canal; Sair para o trabalho; e Sacar dinheiro no caixa eletrnico.
Algoritmos
7 de junho de 2013
8 / 73
Um programa nada mais que um algoritmo; Sua particularidade que suas operaes so especcas para o computador e restritas ao conjunto de instrues que o processador pode executar; Podemos considerar esse conjunto de instrues como a primeira linguagem de programao do computador (linguagem de mquina); J as linguagens de programao so classicadas segundo sua proximidade com a linguagem de mquina, que podem ser:
Baixo nvel (Mais prxima da linguagem do computador); ou De alto nvel (Mais prxima da linguagem humana).
Algoritmos
7 de junho de 2013
9 / 73
Existem diversas formas de representao de algoritmos, mas no h um consenso com relao melhor delas; Algumas formas de representao de algoritmos tratam dos problemas apenas em nvel lgico, abstraindo-se de detalhes de implementao muitas vezes relacionados com alguma linguagem de programao especca; Dentre as formas de representao de algoritmos mais conhecidas, sobressaltam:
Descrio Narrativa; Fluxogramas; e Pseudocdigo.
Algoritmos
7 de junho de 2013
10 / 73
Descrio Narrativa
A descrio narrativa consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural (por exemplo, a lngua portuguesa), os passos a serem seguidos para a sua resoluo.
Vantagem
No necessrio aprender nenhum conceito novo, pois uma linguagem natural, neste ponto, j bem conhecida.
Desvantagem
A linguagem natural abre espao para vrias interpretaes, o que posteriormente dicultar a transcrio desse algoritmo para o programa.
Algoritmos
7 de junho de 2013
11 / 73
Exemplo
Passo 1: Receber duas notas. Passo 2: Calcular a mdia aritmtica (Primeira nota + Segunda nota, e dividir por dois). Passo 3: Exibir o valor obtido. Passo 4: Analisar o valor obtido, e se o valor da mdia for maior ou igual a sete, exibir a mensagem Aprovado, caso contrrio, exibir a mensagem Reprovado.
Algoritmos
7 de junho de 2013
12 / 73
Fluxograma
O uxograma consiste em analisar o enunciado do problema e escrever, utilizando smbolos grcos predenidos, os passos a serem seguidos para sua resoluo.
Vantagem
O entendimento de elementos grcos mais simples que o entendimento de textos.
Desvantagem
necessrio aprender a simbologia dos uxogramas e, alm disso, o algoritmo resultante no apresenta muitos detalhes, dicultando sua transcrio para um programa.
Algoritmos
7 de junho de 2013
13 / 73
Algoritmos
7 de junho de 2013
14 / 73
Smbolo utilizado para indicar o incio e o m do algoritmo; Smbolo utilizado para indicar o sentido do uxo de dados Smbolo utilizado para indicar clculos e atribuies de valores; Smbolo utilizado para representar a entrada de dados; Smbolo utilizado para representar a sada de dados; e Smbolo utilizado para indicar que deve ser tomada uma deciso, apontando a possibilidade de desvios.
Algoritmos
7 de junho de 2013
15 / 73
Pseudocdigo
O pseudocdigo consiste em analisar o enunciado do problema e escrever, por meio de regras predenidas, os passos a serem seguidos para sua resoluo.
Vantagem
A passagem do algoritmo para qualquer linguagem de programao quase que imediata, bastando conhecer as palavras reservadas dessa linguagem que sero utilizadas.
Desvantagem
necessrio aprender as regras do pseudocdigo.
Algoritmos
7 de junho de 2013
16 / 73
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
18 / 73
Programao Estruturada
A programao estruturada (Top-Down) estabelece uma disciplina de desenvolvimento de algoritmos que facilita a compreenso de programas atravs do nmero restrito de mecanismos de controle da execuo de programas; Qualquer algoritmo, independentemente da rea de aplicao, de sua complexidade e da linguagem de programao na qual ser codicado, pode ser descrito atravs destes mecanismos bsicos; O princpio bsico de programao estruturada que um programa composto por blocos elementares de cdigo que se interligam atravs de trs mecanismos bsicos, que so:
Sequncia; Seleo; e Iterao;
Cada uma destas construes tem um ponto de incio (o topo do bloco) e um ponto de trmino (o m do bloco) de execuo.
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 19 / 73
Mecanismo de Sequncia
Implementa os passos de processamento necessrios para descrever qualquer programa. Por exemplo, um segmento de programa da forma faa primeiro a Tarefa A e depois a Tarefa B .
Exemplo
Algoritmos
7 de junho de 2013
20 / 73
Mecanismo de Seleo
Especica a possibilidade de selecionar o uxo de execuo do processamento baseado em ocorrncias lgicas. Por exemplo, um segmento de seleo permite representar uxos da forma se a condio lgica x for verdadeira, faa a Tarefa A; seno (isto , se a condio x for falsa), faa a Tarefa B .
Exemplo
Algoritmos
7 de junho de 2013
21 / 73
Mecanismo de Iterao
Permite a execuo repetitiva de segmentos do programa. Na forma bsica de repetio, uma condio lgica vericada. Caso seja verdadeira, o bloco de tarefas associado ao comando executado. A condio ento reavaliada; enquanto for verdadeira, a tarefa repetidamente executada.
Exemplo
Algoritmos
7 de junho de 2013
22 / 73
Estrutura de um Algoritmo
Exemplo
Algoritmos
7 de junho de 2013
23 / 73
Algoritmos
7 de junho de 2013
24 / 73
O visualg permite sada em texto na tela para usurio a partir de dois comandos denidos:
escreva; e escreval.
O primeiro comando escreve o resultado de sada em forma sequencial, no qual, os valores so escritos sempre a direita, j o segundo, escreve os valores em linha, um abaixo do outro.
Algoritmos
7 de junho de 2013
25 / 73
Algoritmo no Visualg
Exemplo
algoritmo " Exemplo " inicio escreva ( " Oi Mundo ! " ) fimalgoritmo
Algoritmos
7 de junho de 2013
26 / 73
Comentrio
Denio
uma estrutura da linguagem que permite ao desenvolvedor fazer uma breve explicao do cdigo escrito.
Exemplo
// Esse programa exemplifica o uso de coment rios . // Autor : Diego algoritmo " E x e mpl oCo men tar io " inicio escreva ( " Vamos programar ? " ) // Exibe a mensagem na tela . // escreva (" Fim .") fimalgoritmo
Importante
O que for escrito no bloco de comentrio ser ignorado pelo interpretador.
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 27 / 73
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
28 / 73
Varivel
Uma varivel representa uma posio de memria; Possui um nome e tipo; Seu contedo pode variar ao longo do tempo, durante a execuo do programa; Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante; e No existe limite para o nmero de variveis em um programa, porm cada varivel criada ocupa um espao de memria de acordo com seu tipo e seu tamanho. Em outras palavras, quanto maior o nmero de variveis utilizadas, maior o gasto de memria pelo programa desenvolvido.
Algoritmos
7 de junho de 2013
30 / 73
Varivel (cont.)
Ilustrao
Algoritmos
7 de junho de 2013
31 / 73
Tipos de Dados
Denio
O tipo de dados indica qual valor pode ser armazenado em uma posio de memria.
Algoritmos
7 de junho de 2013
32 / 73
Exemplos
2 -1 0 10 8 -255 Os dados reais podem ser positivos ou negativos e possuem parte fracionria.
Exemplos
8.5 -82.96 0.0 1.238 -1.5
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 33 / 73
Exemplos
verdadeiro ou falso Tipo Literal ou Caracteres So formados por um nico caractere ou por uma cadeia de caracteres. Esses caracteres podem ser as letras maisculas, as letras minsculas, os nmeros e os caracteres especiais.
Exemplos
D Aluno sala1 @ifrn.edu.br
Algoritmos
(84) 9999-9999
7 de junho de 2013 34 / 73
Formao de Identicadores
Denio
Os identicadores so os nomes das variveis, dos programas, dos procedimentos e das funes. As regras bsicas para a formao dos identicadores so: Os caracteres que voc pode utilizar so: os nmeros, as letras maisculas, as letras minsculas e o caractere sublinhado; O primeiro caractere deve ser sempre uma letra ou um caractere sublinhado; No so permitidos espaos em branco e caracteres especiais; e No podemos usar as palavras reservadas nos identicadores, ou seja, palavras que pertenam a uma linguagem de programao.
Exemplos
A a nota NOTA dia1 data_nascimento
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 35 / 73
Exemplo
algoritmo " E x e m p l o I d e n t i f i c a d o r e s " var nome : caracter matricula : inteiro nota1 , nota2 , nota3 , media : real inicio fimalgoritmo
Algoritmos
7 de junho de 2013
36 / 73
Instruo de Entrada
Denio
o meio pelo qual as informaes (mais especicamente os dados) so transferidas pelo usurio ou pelos nveis secundrios de memria ao computador.
Algoritmos
7 de junho de 2013
37 / 73
Exemplo
algoritmo " E x e m p l o I n s t r u c a o E n t r a d a " var nome : caracter inicio escreva ( " Digite seu nome : " ) leia ( nome ) escreva ( " Seu nome " , nome , " . " ) fimalgoritmo
Algoritmos
7 de junho de 2013
38 / 73
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
39 / 73
Operador de Atribuio
Denio
O comando de atribuio utilizado para conceder valores ou operaes a variveis, sendo representado pelo smbolo . Do lado esquerdo ao operador de atribuio ca a varivel qual est sendo atribudo o valor, e a direita operador pode-se escrever qualquer expresso (constantes, variveis ou expresses numricas), desde que seu resultado tenha tipo igual ao da varivel.
Exemplos
nome Diego" aprovado verdadeiro media 9.5 a 10 ba soma 5 + 3
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 40 / 73
Exemplo
algoritmo " E x e m p l o O p e r a d o r A t r i b u i c a o " var nome : caracter a , b , soma : inteiro media : real inicio nome <- " Jo o " a <- 10 b <- a soma <- 5 + 3 media <- 9.5 escreval ( nome ) escreval ( a ) escreval ( b ) escreval ( media ) fimalgoritmo
Algoritmos
7 de junho de 2013
41 / 73
Operadores Aritmticos
Denio
A aritmtica o ramo da matemtica que lida com nmeros e com as operaes possveis entre eles. As operaes aritmticas tradicionais so: Adio (+); Subtrao (-); Multiplicao (*); e Diviso (/). Podemos utilizar os operadores: resto (mod), diviso inteira (div) e potncia ().
Exemplos
10 + 2 = 12 5-2=3 2*3=6
Diego S. C. Nascimento (IFRN)
3=8
7 de junho de 2013
42 / 73
Exemplo
algoritmo " E x e mpl oOp era dor es " var a , b , c , d , e : inteiro inicio a <- 2 + 3 b <- a - 1 c <- b * 2 d <- 5 mod 2 e <- 5 div 2 escreval ( a ) escreval ( b ) escreval ( c ) escreval ( d ) escreval ( e ) fimalgoritmo
Algoritmos
7 de junho de 2013
43 / 73
Expresso Aritmtica
Denio
Uma expresso constitui-se em um conjunto de variveis e/ou valores, separados por caracteres especiais, que indicam as operaes que devem ser executadas.
Exemplo
resultado 2 + 8/2
Importante
Os operadores devem obedecer uma ordem de precedncia:
1 2 3 4
Exemplo
algoritmo " Or demOperadores " var a , b , c , d : inteiro inicio a <- 2 + 8 / b <- (2 + 8) c <- 4 / 2 ^ d <- (4 / 2) escreval ( a ) escreval ( b ) escreval ( c ) escreval ( d ) fimalgoritmo
2 / 2 2 - 1 ^ (2 - 1)
Algoritmos
7 de junho de 2013
45 / 73
Teste de Mesa
Denio
O teste de mesa simula a execuo de um algoritmo sem utilizar o computador, empregando apenas papel e caneta. Os passos necessrios para realizar um teste de mesa so: Identique as variveis envolvidas em seu algoritmo; Crie uma tabela com linhas e colunas, no qual corresponde, respectivamente, ao nmero de instrues observadas pelo teste de mesa e o nmero de variveis envolvidas; e De cima para baixo, preencha cada uma das linhas da tabela com o nmero da linha que identica cada instruo, seguido dos valores assumidos pelas variveis do programa aps a execuo daquela instruo.
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 46 / 73
Execuo 6 7 8 9 10 11 12
Diego S. C. Nascimento (IFRN)
nota1 ? 5 5 5 5 5 5
nota2 ? ? ? 8 8 8 8
soma ? ? ? ? 13 13 13
Mdia = 6,5
7 de junho de 2013 47 / 73
Algoritmos
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
48 / 73
Exemplo
algoritmo " E x e m p l o P o s i t i v o N e g a t i v o " var numero : real inicio escreva ( " Digite um n mero inteiro : " ) leia ( numero ) se numero >= 0 entao escreva ( " O n mero positivo ! " ) senao escreva ( " O n mero negativo ! " ) fimse fimalgoritmo
Importante
O seno no obrigatrio.
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 50 / 73
Operadores Relacionais
Denio
Os operadores relacionais estabelecem uma relao entre seus operandos. E o valor resultante de uma relao pode ser: verdadeiro ou falso. As relaes podem ser: Igualdade: =; Diferena: <>; Maior que: >; Menor que: <; Maior ou igual a: >=; e Menor ou igual a: <=.
Exemplos
100 = 100 (verdadeiro) 0 <> 0 (falso) 5 > 2 (verdadeiro)
Diego S. C. Nascimento (IFRN)
Operadores Lgicos
Denio
Os operadores lgicos denem as maneiras como as relaes podem ser conectadas. E o resultado de uma conexo pode ser: verdadeiro ou falso. Os operadores lgicos podem ser: Negao: no; Conjuno: e ; Disjuno: ou; e Disjuno exclusiva: xou.
Exemplos
(10 = 10) e (0 < 1) (verdadeiro) no(0 <> 0) (verdadeiro)
Diego S. C. Nascimento (IFRN)
(0 < 50) ou (0 < 1) (verdadeiro) (10 < 20) xou (0 > 1) (falso)
Algoritmos 7 de junho de 2013 52 / 73
Exemplo:
algoritmo " E x e m p l o F o r m a P a g a m e n t o " var tipo : caracter inicio escreva ( " Digite o tipo de pagamento : " ) leia ( tipo ) se numero = " d " entao escreva ( " Pagamento em dinheiro . " ) senao se tipo = " c " entao escreva ( " Pagemento em dinheiro . " ) senao escreva ( " Tipo inv lido ! " ) fimse fimse fimalgoritmo
Algoritmos
7 de junho de 2013
53 / 73
Algoritmos
7 de junho de 2013
54 / 73
Exemplo
algoritmo " Ex emploDeposito " var tipo : caracter inicio escreva ( " Informe o tipo de dep sito : " ) leia ( tipo ) escolha tipo caso " cc " escreva ( " Conta corrente . " ) caso " cp " escreva ( " Conta poupan a . " ) outrocaso escreva ( " Tipo de conta inv lido ! " ) fimescolha fimalgoritmo
Algoritmos
7 de junho de 2013
55 / 73
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
56 / 73
Denio
Uma estrutura de repetio uma estrutura de desvio do uxo de controle presente em linguagens de programao que realiza e repete diferentes computaes ou aes dependendo se uma condio verdadeira ou falsa, em que a expresso processada e transformada em um valor booleano.
O processo de controle de parada das estruturas de repetio podem ser: Repetio controlada por varivel de controle (Estrutura: para); Repetio pr-testada (Estrutura:enquanto ); ou Repetio ps-testada (Estrutura: repita).
Algoritmos
7 de junho de 2013
57 / 73
Denio
A construo para, ou repetio com varivel de controle, uma estrutura de repetio que designa uma varivel de controle para cada iterao do bloco, e uma operao de passo a cada iterao.
Algoritmos
7 de junho de 2013
58 / 73
Exemplo
algoritmo " Ex emploContador " var i : inteiro inicio para i de 1 ate 10 faca escreval ( i ) fimpara fimalgoritmo
Algoritmos
7 de junho de 2013
59 / 73
Exemplo
algoritmo " Ex emploContador " var i : inteiro inicio para i de 1 ate 10 faca escreval ( i ) se i = 5 entao interrompa fimse fimpara fimalgoritmo
Algoritmos
7 de junho de 2013
60 / 73
Denio
A construo enquanto (tambm chamada repetio pr-testada) a mais difundida estrutura de repetio. O processo de repetio continua enquanto o valor da expresso de controle for verdadeiro.
Algoritmos
7 de junho de 2013
61 / 73
Exemplo
algoritmo " Ex emploContador " var i : inteiro inicio i <- 1 enquanto i <= 10 faca escreval ( i ) i <- i + 1 fimenquanto fimalgoritmo
Algoritmos
7 de junho de 2013
62 / 73
Algoritmos
7 de junho de 2013
63 / 73
Exemplo
algoritmo " Ex emploContador " var i : inteiro inicio i <- 1 repita escreval ( i ) i <- i + 1 ate i > 10 fimalgoritmo
Algoritmos
7 de junho de 2013
64 / 73
Ementa do Curso
1 2 3 4 5 6 7
Introduo Estrutura de um Algoritmo Variveis Operadores de Atribuio e Aritmticos Estrutura de Seleo Estrutura de Repetio Procedimentos e Funes
Algoritmos
7 de junho de 2013
65 / 73
O que so Procedimentos?
Denio
So subrotinas (mdulos ou mtodos) de programas, capazes de executar uma tarefa denida pelo programador, mas que no retorna nenhum valor. Os programas desenvolvidos com procedimentos so ditos modulares.
As principais vantegens em criar programas usando subrotinas so: Melhor organizao do programa; Reutilizao da subrotina em outras partes do programa; e Facilidade de manuteno do cdigo.
Algoritmos
7 de junho de 2013
66 / 73
Estrutura de um Procedimento
Todo procedimento deve ter um identicador; Pode possuir um conjunto de parmetros; Permite declarao de variveis locais; e Possui um bloco de instrues.
Exemplo
procedimento nome (parmetros) variveis locais incio instrues . . . m.
Algoritmos
7 de junho de 2013
67 / 73
Valor
Informamos o valor a ser trabalhado e indiferente de quais modicaes sero feitas com essas informaes, seus valores originais permenecem o mesmo.
Referncia
Informamos o valor a ser trabalhado e de acordo com as mudanas que vo sofrendo, os valores originais vo sendo atualizados. Passagem por referncia somente feita passando-se variveis como parmetro.
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 68 / 73
Procedimento no Visualg I
Exemplo
algoritmo " E x e m p l o P r oc e d i m e n t o " procedimento e xi b ir _ cu m pr im e nt o inicio escreva ( " Oi Mundo ! " ) f im pr o ce di m en to inicio e x i b i r _ c u m pr i me n to fimalgoritmo
Algoritmos
7 de junho de 2013
69 / 73
Procedimento no Visualg II
Exemplo
algoritmo " E x e m p l o P r oc e d i m e n t o " procedimento e xi b ir _ cu m pr im e nt o ( n : caracter ) inicio escreva ( " Oi " , n , " ! " ) f im pr o ce di m en to var nome : caracter inicio escreva ( " Digite seu nome : " ) leia ( nome ) e x i b i r _ c u m pr i me n to ( nome ) fimalgoritmo
Algoritmos
7 de junho de 2013
70 / 73
O que so Funes?
Denio
So rotinas similares aos procedimentos, s que retornam um valor aps cada chamada. Uma funo no dever simplesmente ser chamada, como no caso dos procedimentos, mas dever ser atribuda alguma varivel.
Algoritmos
7 de junho de 2013
71 / 73
Exemplo
funo nome (parmetros) : tipo de retorno variveis locais incio instrues . . . m.
Diego S. C. Nascimento (IFRN) Algoritmos 7 de junho de 2013 72 / 73
Funo no Visualg
Exemplo
algoritmo " ExemploFuncao " funcao somar (a , b : real ) var r : inteiro inicio r <- a + b retorne r fimfuncao var valor1 , valor2 , resultado : inteiro inicio escreva ( " Digite o primeiro valor : " ) leia ( valor1 ) escreva ( " Digite o segundo valor : " ) leia ( valor2 ) resultado <- somar ( valor1 , valor2 ) escreva ( " A soma " , resultado ) fimalgoritmo
Algoritmos
7 de junho de 2013
73 / 73