Professor: Marcelo Hage Fialho mhfialho@yahoo.com.br Software Softwares so programas. Programas so seqncias de instrues que o computador deve seguir para realizar determinadas tarefas. Lgica de Programao Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo. ALGORITMOS Sequncia Lgica Estes pensamentos podem ser descritos como uma sequncia de instrues, que devem ser seguidas para se cumprir uma determinada tarefa.
Sequncia Lgica so passos executados at atingir um objetivo ou soluo de um problema. ALGORITMOS Instrues Na linguagem comum, entende-se por instrues um conjunto de regras ou normas definidas para a realizao ou emprego de algo.
Em informtica, porm, instruo a informao que indica a um computador uma ao elementar a executar.
A palavra ALGORTMO vem de ALGO + RTMO. ALGORITMOS Um algoritmo formalmente uma seqncia finita de passos que levam a execuo de uma tarefa.
Podemos pensar em algoritmo como uma receita, uma seqncia de instrues que do cabo de uma meta especfica.
Estas instrues no podem ser redundantes nem subjetivas na sua definio, devem ser claras e precisas. ALGORITMOS Como exemplos de algoritmos podemos citar:
os algoritmos das operaes bsicas (adio, multiplicao, diviso e subtrao) de nmeros reais decimais;
os manuais de aparelhos eletrnicos, como um videocassete, que explicam passo-a-passo como, por exemplo, gravar um evento. ALGORITMOS At mesmo as coisas mais simples, podem ser descritas por seqncias lgicas. Por exemplo:
Chupar uma bala
Pegar a bala Retirar o papel Chupar a bala Jogar o papel no lixo ALGORITMOS Somar dois nmeros quaisquer
Escreva o primeiro nmero no retngulo A Escreva o segundo nmero no retngulo B Some o nmero do retngulo A com nmero do retngulo B e coloque o resultado no retngulo C
ALGORITMOS ALGORITMOS Fazer uma ligao de um telefone pblico Programas Os programas de computadores nada mais so do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que so interpretados e executados por uma mquina, no caso um computador.
Sendo assim, um algoritmo para soluo de problemas em computador, por natureza muito especfico e rgido em relao aos algoritmos da vida real. ALGORITMOS Desenvolvimento de algoritmos Os algoritmos so descritos em uma linguagem chamada pseudocdigo, para posterior implementao em uma linguagem de programao.
Portanto, os algoritmos so independentes das linguagens de programao.
O algoritmo deve ser fcil de se interpretar. Ou seja, ele deve ser o intermedirio entre a linguagem falada e a linguagem de programao.
ALGORITMOS Regras para construo de Algoritmos A seqncia de instrues de um algoritmo deve ser escrita de maneira simples e objetiva, observando as seguintes regras: Usar somente um verbo por frase; Imaginar que voc est desenvolvendo um algoritmo para pessoas que no trabalham com informtica ; Usar frases curtas e simples ; Ser objetivo ; Procurar usar palavras que no tenham sentido dbio. ALGORITMOS Fases Ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais: Onde: ENTRADA: Dados de entrada do algoritmo PROCESSAMENTO: Procedimentos utilizados para chegar ao resultado final SADA: Dados j processados - resultado ALGORITMOS Desenvolvimento de algoritmos Analogia com o homem ALGORITMOS Desenvolvimento de algoritmos Fases Imagine o seguinte problema: Calcular a mdia de quatro provas: P1, P2, P3 e P4. Onde: Mdia Final =
Para montar o algoritmo proposto, faremos trs perguntas:
a) Quais so os dados de entrada? R: Os dados de entrada so P1, P2, P3 e P4
b) Qual o processamento a ser utilizado? R: O procedimento ser somar todos os dados de entrada e dividi-los por 4 (quatro) ALGORITMOS c) Quais so os dados de sada? R: Como dados de sada temos a mdia final
Algoritmo
Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da diviso ALGORITMOS Variveis e Tipos de Dados Variveis so os elementos bsicos que um programa manipula.
Variveis so espaos reservados na memria do computador para armazenar um tipo de dado determinado. ALGORITMOS Variveis Variveis devem receber nomes para poderem ser referenciadas e modificadas quando necessrio.
Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar.
Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante. ALGORITMOS Exemplo de variveis: ALGORITMOS Tipos de Dados Os tipos de dados elementares so:
lgico; inteiro; real; caracter.
ALGORITMOS O tipo lgico destinado ao armazenamento de dados lgicos que podem assumir valores verdadeiro ou falso.
Exemplo: .TRUE.
ALGORITMOS Os tipos inteiro e real, so ditos tipos numricos: destinam-se ao armazenamento de nmeros, que posteriormente podero ser utilizados para clculos. Exemplo: 10
O tipo inteiro utilizado para armazenamento de valores inteiros (geralmente resultam de uma contagem) e o tipo real utilizado para o armazenamento de valores reais (geralmente resultam de uma medio), que possuam casas decimais (valores fracionrios). Exemplo: 15.5
ALGORITMOS O tipo caracter destina-se ao armazenamento de letras, dgitos numricos, smbolos, sinais e outros caracteres especiais utilizados para controle.
Destinam-se basicamente operaes de comparao.
Exemplos: "Esta uma cadeia de caracteres", B, 1234, +, &
ALGORITMOS Declarao de Variveis As variveis s podem armazenar valores de um mesmo tipo, sendo assim classificadas como sendo lgicas, inteiras, reais ou caracteres, conforme seja o tipo associado s mesmas na declarao.
Os nomes dados s variveis so conhecidos como identificadores.
ALGORITMOS Regras para construo de Identificadores: No podem ser palavras reservadas (instrues); Devem possuir como 1 caractere uma letra ou underscore ( _ ); Devem ter como demais dgitos letras, nmeros ou underscore; No devem possuir espaos em branco. ALGORITMOS Exemplos: A,B: inteiro; comprimento: real; status: logico; Nome: caracter;
Atravs destas instrues: foram declaradas as variveis A e B do tipo inteiro; foi declarada a varivel comprimento do tipo real; foi declarada a varivel status do tipo logico; e foi declarada a varivel nome do tipo caracter.
ALGORITMOS Instrues de Entrada e Sada ler: instruo de entrada de dados que permite a leitura de dados passando-os do meio externo para o interior do computador, alocando-os em variveis.
escrever: instruo de sada de dados que exibe informaes, passando-as do interior do computador para o meio externo.
ALGORITMOS Instruo de Atribuio O contedo de uma varivel pode ser alterado a qualquer momento atravs de uma instruo de atribuio. Para atribuir valores a variveis usaremos o sinal :=.
ALGORITMOS Exemplos: Peso := 78.7; Nome := Joo da Silva; Achei := .FALSE.;
Atravs destas instrues: foi atribudo varivel Peso o valor 78.7; foi atribudo varivel Nome o valor "Joo da Silva; e foi atribudo varivel Achei o valor .FALSE. (FALSO).
ALGORITMOS Estrutura Geral Inicio <tipo> <identificador> ; <instrucao1>; .... <instrucaon>; Fim. ALGORITMOS A estrutura geral de um algoritmo consta de uma estrutura seqencial determinada por um Inicio e um Fim. O sinal de ; (ponto e vrgula) encerra uma instruo. Inicio real pi,raio, area; pi := 3.1416; ler (raio); area := pi * (raio*raio); escrever (area); Fim. ALGORITMOS Segue um algoritmo que l o raio de uma circunferncia e calcula sua rea. Comentrios Podemos inserir em um algoritmo comentrios para aumentar a compreenso do mesmo, para isso basta que a linha que contem o texto inicie com // (barra barra).
Exemplo:
// Entrada ler (raio); ALGORITMOS aspas Quando queremos exibir um texto do algoritmo para o meio externo ela deve estar contida entre aspas, caso contrrio, o computador ir identificar a mensagem como varivel indefinida. Exemplo: escrever (rea Obtida := , area) // comando de sada rea Obtida := 2.34 // Resultado mostrado na sada, supondo o contedo // da varivel area como sendo igual a 2.34 ALGORITMOS Os operadores so meios pelo qual calculamos, comparamos e avaliamos dados dentro do computador. Temos trs tipos de operadores:
Operadores ALGORITMOS Operadores Aritmticos Os operadores aritmticos so utilizados para obter resultados numricos. Alm da adio, subtrao, multiplicao e diviso, so utilizados tambm operadores para resto de diviso inteira e exponenciao. Os smbolos para os operadores aritmticos so: ALGORITMOS OPERAO SMBOLO Adio + Subtrao - Multiplicao * Diviso / Resto de Diviso Inteira mod Exponenciao ** Hierarquia das Operaes Aritmticas
1 ( ) Parnteses 2 Exponenciao 3 Multiplicao, diviso (o que aparecer primeiro) 4 Adio, subtrao (o que aparecer primeiro)
Exemplo: ALGORITMOS Operadores Relacionais Os operadores relacionais so utilizados para comparaes. Os valores a serem comparados podem ser strings de caracteres ou variveis. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True ou False). Os smbolos para os operadores relacionais so:
ALGORITMOS OPERAO SMBOLO Igual a = Diferente de <> Maior que > Menor que < Maior ou igual a >= Menor ou igual a <= Exemplo: Para duas variveis A = 5 e B = 3 Os resultados das expresses relacionais seriam: ALGORITMOS Operadores Lgicos Os operadores lgicos servem para combinar resultados de expresses relacionais, retornando como resultado final verdadeiro ou falso.
Os operadores lgicos so: ALGORITMOS E / AND O resultado de uma expresso com operador AND (E) verdadeiro se todas as condies forem verdadeiras.
OR / OU O resultado de uma expresso com operador OR (OU) verdadeiro se pelo menos uma condio for verdadeira.
NOT O resultado de uma expresso com operador NOT (NO) inverte a condio, se verdadeira para falsa e vice-versa. ALGORITMOS Tabela Verdade A tabela abaixo mostra todos os valores possveis obtidos a partir dos operadores lgicos AND, OR e NOT: ALGORITMOS Exemplo: Suponha que temos trs variveis A = 5, B = 8 e C =1 Os resultados das expresses seriam: ALGORITMOS ALGORITMOS Exerccio:
Dadas as variveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expresses so verdadeiras ou falsas. Exerccio:
Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras ou falsas.
a) (A > C) AND (C <= D) ( ) b) (A+B) > 10 OR (A+B) = (C+D) ( ) c) (A>=C) AND (D >= C) ( ) ALGORITMOS Estruturas de Controle de Fluxo
As estruturas de controle de fluxo permitem ao programador alterar a sequncia de execuo do algoritmo. ALGORITMOS Estruturas de Controle de Fluxo
As estruturas de controle de fluxo permitem ao programador alterar a sequncia de execuo do algoritmo.
So as seguintes as estruturas de controle de fluxo: 1. Sequncia 2. Desvio 3. Deciso 4. Repetio ALGORITMOS Sequncia
Se nada indicar o contrrio, o algoritmo executado de forma sequencial, da primeira a ltima instruo.
ALGORITMOS Desvio
O desvio determina a execuo de uma instruo em um local especificado por um rtulo. Um rtulo uma marca que define um local especfico no conjunto de instrues do algoritmo.
As regras para criao do nome deste rtulo so as mesmas utilizadas para a criao dos nomes de variveis.
A forma geral da estrutura de desvio a seguinte: desviar para <rtulo>;
ALGORITMOS
O rtulo deve ser declarado na posio para a qual ser executado o desvio e deve ser seguido de dois pontos (:).
O desvio pode saltar para um rtulo que esteja mais frente ou mais trs no programa. ALGORITMOS Como exemplo do uso do desvio temos: Inicio A,B,C,D:inteiro; A:=5; B:=8; C:=A+B; desvio para setor_1; D:=A*B; setor_1: D:=A-B; escrever D; Fim. ALGORITMOS A estrutura desvio deve ser utilizada com cuidado, pois o abuso no seu uso tende a tornar o cdigo confuso.
O desvio no uma estrutura necessria, podendo sempre ser substituda outras estruturas de controle.
Puristas da programao estruturada recomendam que o desvio nunca seja usado.
ALGORITMOS Deciso
Uma estrutura de deciso avalia uma condio e se a mesma for verdadeira executa um conjunto de instrues associado a esta estrutura.
Opcionalmente pode ser definido no uso desta estrutura um outro conjunto de instrues a ser executado caso a avaliao da condio resulte em falso.
ALGORITMOS Deciso
A forma geral da estrutura de deciso a seguinte: se <condio> inicio <conjunto de instrues> fim senao inicio <conjunto de instrues> fim;
ALGORITMOS Repetio
Uma estrutura de repetio destina-se execuo repetida de um conjunto de instrues associada a uma condio e apresenta-se de 3 formas distintas:
1) Repetio enquanto for verdadeiro 2) Repetio at que seja verdadeiro 3) Repetio controlada
ALGORITMOS Repetio enquanto for verdadeiro
A forma geral desta estrutura de repetio a seguinte:
enquanto <condio> inicio <conjunto de instrues> fim;
ALGORITMOS Repetio at que seja verdadeiro
A forma geral desta estrutura de repetio a seguinte:
ate que <condio> inicio <conjunto de instrues> fim;
ALGORITMOS Repetio controlada
A forma geral desta estrutura de repetio a seguinte:
para <varivel> = <i1> ate <i2> incremento <i3> inicio <conjunto de instrues> fim;