You are on page 1of 27

CURSO TCNICO DE INFORMTICA DISCIPLINA : PROGRAMAO Prof Anglica M. da Silveira ALGORITMOS 1.

CONCEITO A palavra algoritmo, primeira vista, parece-nos estranha. Embora possua designao desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho um algoritmo. Outros algoritmos freqentemente encontrados so: instrues para se utilizar um aparelho eletrodomstico; uma receita para preparo de algum prato; guia de preenchimento para declarao do imposto de renda; a regra para determinao de mximos e mnimos de funes por derivadas sucessivas; a maneira como as contas de gua, luz e telefone so calculadas mensalmente; So vrios os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

Um conjunto finito de regras que prov uma seqncia de operaes para resolver um tipo de problema especfico [KNUTH] Seqncia ordenada, e no ambgua, de passos que levam soluo de um dado problema [TREMBLAY] Processo de clculo, ou de resoluo de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restries, as regras formais para a obteno do resultado ou da soluo do problema [AURLIO] 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 tarefas no podem ser redundantes nem subjetivas na sua definio, devem ser claras e precisas. At mesmo as coisas mais simples, podem ser descritas por seqncias lgicas. 2. POR QUE PRECISAMOS DE ALGORITMOS? A importncia do algoritmo est no fato de termos que especificar uma seqncia de passos lgicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si s no tem vontade prpria, faz apenas o que mandamos. Com uma ferramenta algortmica, podemos conceber uma soluo para um dado problema, independente de uma linguagem especfica e at mesmo do prprio computador. Para que um computador possa desempenhar uma tarefa necessrio que esta seja detalhada passo a passo, numa forma compreensvel pela mquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais que um algoritmo escrito numa forma compreensvel pelo computador. 3. FORMAS DE APRESENTAO DE ALGORITMOS Linguagem Natural Os algoritmos so expressos diretamente em linguagem natural. Fluxograma Convencional Esta um representao grfica que emprega formas geomtricas padronizadas para indicar as diversas aes e decises que devem ser executadas para resolver o problema. 1

Pseudo-linguagem Emprega uma linguagem intermediria entre a linguagem natural e uma linguagem de programao para descrever os algoritmos. No existe consenso entre os especialistas sobre qual seria a melhor maneira de representar um algoritmo. Atualmente a maneira mais comum de representar-se algoritmos atravs de uma pseudo-linguagem ou pseudo-cdigo. Esta forma de representao tem a vantagem de fazer com que o algoritmo seja escrito de uma forma que est prxima de uma linguagem de programao de computadores. 4. FASES DE UM ALGORITMO Vimos que ALGORITMO uma seqncia lgica de instrues que podem ser executadas. Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais.

Onde temos: ENTRADA: So os dados informados, lidos, digitados pelo usurio. PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final SADA: So os dados j processados e mostrados no vdeo ou na impressora. 4.1 Mtodo para construir um algoritmo 1. Ler atentamente o enunciado Deve-se reeler o enunciado de um exerccio quantas vezes for necessrio, at compreend-lo completamente. A maior parte da resoluo de um exerccio consiste na compreenso completa do enunciado. 2. Retirar a relao das entradas de dados do enunciado Atravs do enunciado, descobrimos quais so os dados que devem ser fornecidos ao programa, via teclado, a partir dos quais so desenvolvidos os clculos. Obs. Pode haver algum algoritmo que no necessite da entrada de dados (pouco comum). 3. Retirar do enunciado, a relao das sadas das informaes Atravs do enunciado podemos descobrir quais so as informaes que devem ser mostradas para compor o resultado final, objetivo do algoritmo. 4. Determinar o que deve ser feito para transformar as entradas nas sadas especificadas Nessa fase que teremos a construo do Algoritmo propriamente dito. Devemos determinar qual sequncia de passos ou aes capaz de transformar um conjunto de dados nas informaes de resultado Exemplo de Algoritmo Imagine o seguinte problema: Calcular a mdia final dos alunos da 3 Srie, sendo que os alunos realizaro quatro provas: P1, P2, P3 e P4. Onde: Mdia Final = P1+P2+P3+P4 4 Para montar o algoritmo proposto, faremos trs perguntas: a) Quais so os dados de entrada? R: Os dados de entrada so ... b) Qual ser o processamento a ser utilizado? R: O procedimento ser ... 2

c) Quais sero os dados de sada? R: O dado de sada ser ... 5. 1 FORMA DE ESCRITA DE ALGORITMO - LINGUAGEM NATURAL Faz-se uso do portugus para descrever algoritmos e tem a vantagem de que no h a necessidade de aprender nenhum conceito, basta saber como se faz para resolver um determinado problema. 5.1 Regras para construo do Algoritmo na linguagem natural Para escrever um algoritmo precisamos descrever a seqncia de instrues, de maneira simples e objetiva. Para isso utilizaremos algumas tcnicas: * Usar preferencialmente 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 EXEMPLO 1: Calcular a massa corprea de uma pessoa Informe o peso da pessoa Informe a altura da pessoa A massa corprea o peso dividido pelo dobro da altura Mostre a massa corporea EXEMPLO: Clculo da mdia de 4 notas Informe a nota da prova1 Informe a nota da prova2 Informe a nota da prova3 Informe a nota da prova4 A mdia final a soma de todas as notas dividida por 4 Mostre a mdia final.
ATIVIDADES 1

1) Identifique os dados de entrada, processamento e sada nos algoritmos abaixo: a) Informe cdigo da pea Informe valor da pea Informe Quantidade de peas O valor total da pea a quantidade de peas multiplicada pelo valor da pea Mostre o cdigo da pea e seu valor total Informe cotao do dlar Informe valor em dlares O valor em reais a multiplicao da cotao pelo valor do dlar Mostre o resultado da converso em Real Informe quatro valores Somar o quadrado de cada um Mostre o resultado da soma dos quadrados 3

b)

c)

2) Para cada um dos exerccios abaixo: Identifique os dados de entrada, processamento e sada e faa um algoritmo na linguagem natural: a) Escreva um algoritmo que calcula e mostra o dobro de um nmero. b) Construa um algoritmo para calcular e mostrar o valor da comisso de um vendedores de peas. Levando-se em considerao que sua comisso ser de 5% do total da venda e que voc tem os seguintes dados: * Preo unitrio da pea * Quantidade vendida da pea c) Calcular e mostrar o permetro e a rea de um quadrado d) Todo restaurante, embora por lei no possa obrigar o cliente a pagar, costuma cobrar 10% para o garom. Fazer um algoritmo calcula e mostra o valor da gorjeta e o total da conta com a gorjeta. e) Informe o nmero de horas trabalhadas, o valor que recebe por hora, o valor do salrio famlia. Com estas informaes calcular e mostrar o salrio total deste trabalhador. f) Elaborar um algoritmo para entrar com o saldo de uma aplicao e mostrar o novo saldo, considerando 1 ms e aplicao e o reajuste de 2% ao ms. 6. 2 FORMA DE ESCRITA DE ALGORITMO - FLUXOGRAMA Utilizao de smbolos grficos para representar algoritmos. No fluxograma existem smbolos padronizados para incio, entrada de dados, clculos, sada de dados, fim, etc. representado por diagrama de blocos. Diagrama de Bloco O diagrama de blocos uma forma padronizada e eficaz para representar os passos lgicos de um determinado processamento. Com o diagrama podemos definir uma seqncia de smbolos, com significado bem definido, portanto, sua principal funo a de facilitar a visualizao dos passos de um processamento. Simbologia Existem diversos smbolos em um diagrama de bloco.Veja no quadro abaixo alguns dos smbolos que iremos utilizar: SMBOLO FUNO Indica o Incio ou Fim de um processamento Smbolo que se utiliza para entrada de dados Smbolo que se utiliza para indicar o processamento Smbolo que se utiliza para indicar uma deciso a ser tomada, indicando a possibilidade de desvios. Smbolo utilizado quando preciso particionar o diagrama, permitindo o desvio para um ponto qualquer do algoritmo Smbolo que se utiliza para sada de dados

Exemplos de diagrama de blocos: Veja que no exemplo da mdia utilizamos clculo e exibimos o resultado do mesmo.
INICIO

NOTA DA PROVA 1 NOTA DA PROVA 2 NOTA DA PROVA 3 NOTA DA PROVA 4 A MDIA FINAL A SOMA DAS 4 PROVAS DIVIDIDA POR 4
FIM

M O ST R A R A M DI A FI N A L

ATIVIDADES 2

1) Construa um diagrama de blocos para os exerccios da atividade 1: 7. PSEUDO-LINGUAGEM- PORTUGUES ESTRUTURADO Consiste na definio de uma pseudolinguagem de programao, cujos comandos so em portugus, para representar algoritmos. Embora o Portugus Estruturado seja uma linguagem bastante simplificada, ela possui todos os elementos bsicos e uma estrutura semelhante de uma linguagem de programao de computadores. Portanto, resolver problemas com portugus estruturado pode ser uma tarefa to complexa quanto a de escrever um programa em uma linguagem de programao qualquer, s no to rgida quanto a sua sintaxe, ou seja, o algoritmo no deixa de funcionar porque esquecemos de colocar um ';' (ponto-e-vrgula) por exemplo, j um programa no funcionaria. 7.1 ESTRUTURA DE UM ALGORITMO NO PORTUGUES ESTRUTURADO: devemos definir uma sintaxe e uma semntica, de forma a permitir uma nica interpretao das instrues num algoritmo. Programa Nome_Do_Algoritmo var Declarao das variveistipo de dado Incio instrues Fim Programa CALCULA_DOBRO Var NUM, DOBRO inteiro incio Leia( NUM) DOBRO 2 * NUM Escreva (DOBRO) fim

7.2. ITENS FUNDAMENTAIS PARA A FORMA PORTUGUES ESTRUTURADO Correspondem aos recursos necessrios para formalizar os algoritmos. 7.2.1 Variveis Sabe-se da Matemtica que uma varivel a representao simblica dos elementos de um certo conjunto. Nos Algoritmos, Destinados A Resolver Um Problema No Computador, A Cada Varivel Corresponde Uma Posio De Memria, Cujo Contedo Pode Variar Ao Longo Do Tempo Durante A Execuo De Um Programa. Embora Uma Varivel Possa Assumir Diferentes Valores, Ela S Pode Armazenar Um Valor A Cada Instante. Toda varivel identificada por um nome. Assim, por exemplo, um algoritmo para clculo das razes de uma equao de 2o grau (ax2 + bx + c = 0 ), os nomes A, B e C podem representar as posies de memria que armazenam os coeficientes da equao, fazendo, neste caso, o papel das variveis na matemtica.

Toda Varivel Identificada Por Um Nome.

7.2.2 Regras para a Formao de Nomes de Variveis a) O nome de varivel formado por um ou mais caracteres; b) Os caracteres permitidos so letras de A a Z, nmeros de 0 a 9, e o caracter especial underline(_); c) O primeiro caracter deve, obrigatoriamente, ser uma letra e os caracteres seguintes, letras ou dgitos; d) O underline(_), quando permitido, somente pode aparecer entre caracteres ou dgitos, nunca no incio ou no final; e) O tamanho de um nome de varivel varia de linguagem para linguagem de programao; f) No pode ser uma palavra chave ou palavra reservada. g) No pode haver espaos em branco entre os caracteres. Variveis vlidas: NOME, FONE, IDADE_FILHO, IdadeFilho, NOTA1, Est_Civil Variveis invlidas: 3Endereco, Estado Civil, PARA, algoritmo, numero/complemento, Mdia As palavras PARA e algoritmo so variveis invlidas, pois so palavras reservadas da linguagem, veja outras palavras que voc no deve utilizar como identificadores de variveis.

Variveis de Entrada armazenam informaes fornecidas por um meio externo, normalmente usurios ou discos. Variveis de Sada armazenam dados processados como resultados. Exemplo: A B A B CA+B C b

A
2

B
5 7

De acordo com a figura acima A e B so Variveis de Entrada e C uma Varivel de Sada. 7.2.3 Tipos de Dados das Variveis As variveis podem armazenar basicamente de trs tipos bsicos de dados: Numricas, Alfanumricas(Literais ou caracter) ou lgicas. Numricas Especficas para armazenamento de nmeros, que posteriormente podero ser utilizados para clculos. Podem ser ainda classificadas como Inteiros ou Reais. Inteiro: admite somente nmeros inteiros. Geralmente usado para representar contagem (quantidade). Ex: idade, nmero de sapato, nmero de casa, apto, etc Real : admite nmeros com ou sem casas decimais, onde a vrgula substituda por ponto. Geralmente usado para representar medio, valores monetrios, etc. Alfanumricas Especficas para dados que contenham letras, nmeros ou caracteres de pontuao. Pode em determinados momentos conter somente dados numricos ou somente literais. Se usado somente para armazenamento de nmeros, no poder ser utilizada para operaes matemticas.. Ex: endereo, data, etc Lgicas Armazenam somente dados lgicos que podem ser Verdadeiro ou Falso.
ATIVIDADES 3

1) Identifique o tipo de dado ideal para se representar as seguintes informaes: a) O nmero da conta bancria b) A altura de uma pessoa em metros c) A placa de um veculo 7

d) O nmero de filhos de uma pessoa e) A cor de um objeto 2) Identificar os tipos dos seguintes dados: a) Processamento de Dados b) 0.4 c) 45.80 d) 97015-200 e) '?' f) ' ' g) (55) 3332-1231 h) Appel, n 12 i) 10/10/1987 j) 0 3) Sublinhar os nomes de variveis vlidos: a) VALOR b)@xyz c)AH! d)SOMA e)IGUAL_A 4) Supondo que as variveis Nota, NA, MAT e SX sejam utilizadas para armazenar respectivamente a nota do aluno, o nome do aluno, o nmero da matrcula e o sexo, indique o tipo de dado adequado que cada uma poder armazenar. 5) Selecione os nomes Vlidos para uma varivel. a) _Salario b) Casa c) Nota3 d) Valor_Total e) 4Nota f) $Salrio g) Soma Total h) NOTA i) Maior j) 2005

6) Marque a(s) Opo(es) errada(s), sublinhe onde est o erro e corrija o mesmo: a) Uma varivel Inteira pode receber o valor de uma Multiplicao. _____________ b) Para uma diviso( / ) qualquer a varivel usada deve ser do tipo real. __________ c) Uma varivel String recebe somente Letras. ______________ d) Uma varivel Real no recebe o valor de uma varivel Inteira. _______________ e) No se pode somar uma varivel Real com uma Inteira. ___ 7.3 Operadores Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos trs tipos de operadores: Operador de Atribuio Operadores Aritmticos Operadores Relacionais Operadores Lgicos 7.3.1 Operador de Atribuio Uma varivel nunca eternamente igual a um valor, seu contedo pode ser alterado a qualquer momento. Portanto para colocar valores em variveis devemos usar o sinal de uma seta( ) apontando para esquerda. 8

Exemplo 1 (correto) Peso 78.7 // Este comando atribui varivel Peso o valor 78.7. Nome Joo da Silva // Este comando atribui varivel Nome o valor Joo da Silva. Exemplo 2 (incorreto) importante lembrar que s se pode atribuir s variveis, valores do mesmo tipo da varivel. Assim, o seguinte comando seria invlido: Salario Insuficiente A varivel Salrio do tipo real no pode armazenar contedo literal Exemplo 3 (incorreto) Deve estar claro, tambm, que sempre esquerda do comando de atribuio deve haver um (e somente um) identificador de varivel. Assim, so incorretos os seguintes comandos: 2060 NumeroConta NumeroAgencia+digitoControle 2345 + 0 7.3.2 Operadores Aritmticos Os operadores aritmticos so os utilizados para obter resultados numricos. Alm da adio, subtrao, multiplicao e diviso, podem utilizar tambm o operador para exponenciao. Os smbolos para os operadores aritmticos so: OPERAO Adio Subtrao Multiplicao Diviso Exponenciao Raiz Quadrada Parte inteira de n Arredondamento de n SMBOLO + * / ^ SQRT TRUNC ROUND SINTAXE CA+B CA-B CA*B CA/B CA^B CSQRT(A) CTRUNC(A) CROUND(A)

Hierarquia das Operaes Aritmticas 1 ( ) Parnteses 2 Exponenciao 3 Multiplicao, diviso (o que aparecer primeiro) 4 + ou (o que aparecer primeiro) Exemplo

ATIVIDADES 4

1) 5 Variveis(A, B, C, D e R) so declaradas no inicio de 3 programas. Encontre os 3 valores de R : a) A 5; B A * 3; C A + (B / 3); D Sqr(C) / A; R Sqrt(D+A) * A; R: ____________ 2) Escreva a Frmula b) A Length(Casa); B Sqr(A); C (B / A) + 10; D C / Sqrt(A); R ((A + B) / D) + C; R: ____________ c) A = 3.6; B Sqr(Trunc(A)); C Round(A) * B; D Sqrt(C) + Round(A); R (D * B) / C; R: ____________

b + b 2 4ac em linguagem de programao, usando os operadores aritmticos. 2a

Operadores Relacionais Os operadores relacionais so utilizados para comparar caracteres e nmeros. Os valores a serem comparados podem ser caracteres ou variveis. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True ou False) Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize os parnteses. Os operadores relacionais so: Descrio Igual Diferente de Maior que Menor que Maior ou igual a Menor ou igual a Smbolo = <> > < >= <=

Exemplo: Tendo duas variveis A=5 e B=3 Os resultados das expresses seriam: Expresso A=B A<>B A>B A<B A>=B A<=B Resultado Falso Verdadeiro Verdadeiro Falso Verdadeiro Falso

Operadores Lgicos Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final verdadeiro ou falso. Os operadores lgicos so: E / AND ; OU / OR ; NOT 10

A tabela abaixo mostra todos os valores possveis criados pelos trs operadores lgicos: 1 Valor V V F F V V F F V F Operador AND AND AND AND OR OR OR OR NOT NOT 2 Valor V F F F V F V F Resultado V F F F V V V F F V

Exemplo: Supondo que tem-se trs variveis A=5, B=8 e C=1 os resultados das expresses seriam: Expresso A=B A<>B A>B A<B A>=B A<=B Operador AND OR NOT AND OR NOT Expresso B>C B<C B>C B=C Resultado F V V V F F

Expresses Lgicas : Operaes Lgicas so utilizadas quando se torna necessrio tomar decises em um diagrama de bloco. Num diagrama de bloco, toda deciso ter sempre como resposta o resultado VERDADEIRO ou FALSO.

ATIVIDADES 5

1) Tendo as variveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expresses so verdadeiras ou falsas. SALARIO 100,00 200,00 300,00 IR 0,00 10,00 15,00 SALLIQ 100 190,00 285,00 EXPRESSO (SALLIQ >= 100,00) (SALLIQ < 190,00) SALLIQ = SALARIO -IR V ou F

2) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B A) ( ) d) (B + A) <= C ( ) e) (C+A) > B () 3) 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) () 11

4) Atribua valores verdade para as seguintes proposies: a) 3 7 e 4 um inteiro impar. b) 3 7 ou 4 um inteiro impar. d) 5 impar ou divisvel por 4. e) No verdade que (2 +2 = 5 e 5 7). f) No verdade que (2 + 2 = 5 ou 5 7). g) 3 3. 5) De acordo com os valores fornecidos na tabela ao lado, faa um teste de mesa com o diagrama abaixo:
INICIO

SALBASE

GRATIF SALBRUTO=SALBASE+GRATI F
SALBRUTO <1000

No
IR=SALBRUTO*(20/10 0)

Sim
IR=SALBRUTO*(15/10 0)

S A LL IQ

SALLIQ=SALBRUTO-IR

FIM

12

8.COMANDOS DE I/O (INPUT/OUTPUT): So os comandos que representam a comunicao entre o usurio e a mquina. LEIA o comando de entrada que permite a leitura de Variveis de Entrada. Nem todos os dados que um algoritmo manipula so gerados por ele. Um algoritmo (programa) de caixa automtico, por exemplo, tem que obter do usurio o nmero da conta, a senha, a opo de servio desejada, etc. Assim, deve haver um meio para que sejam digitados (ou fornecidos de outra maneira) dados para o algoritmo. Mais uma vez, todas as linguagens de programao permitem isto, e no nosso Portugus Estruturado usamos o comando leia. A sintaxe deste comando : Leia (nome da varivel de entrada) ESCREVA o comando de sada que exibe uma informao a qual pode ser o resultado de uma varivel ou mensagem na tela do monitor. Em geral, um programa que faz seu processamento e no tem como mostrar seus resultados intil (imagine, por exemplo, uma calculadora que realiza uma infinidade de operaes matemticas, mas no tem um display para mostrar os resultados!). Portanto, em algum ponto do algoritmo geralmente deve ocorrer exibio de valores, e todas as linguagens de programao tm comandos para este fim. Em Portugus Estruturado usamos o comando escreva. A sintaxe deste comando : Escreva (nome da varivel de saida) Exemplo 1: X 3.5 Y4 CX+Y Escreva ( X) Escreva ( Y) Escreva (C) Faria com que aparecesse na tela: 3.5 4 7.5 ou ou Escreva(mensagem, varivel de saida) Exemplo 2: X 3.5 Y4 CX+Y Escreva (O valor de X , X) Escreva ( E o valor de Y , Y) Escreva ( A soma de X e Y , X+Y) Faria com que aparecesse na tela: O valor de X 3.5 E o valor de Y 4 A soma de X e Y 7.5

IMPRIMA Comando de sada que envia uma informao para a impressora.

13

9.CORPO GERAL DE UM PROGRAMA PROGRAMA nomedoprograma VAR Listar as variaveis entre vrgula definir o tipo de dado NICIO COMANDOS DE ENTRADA, PROCESSAMENTO COMANDOS DE SADA FIM. Ex: Algoritmo 1 Segue um Algoritmo(Portugus Estruturado) que l o nome e as 4 notas bimestrais de um aluno. Em seguida o Algoritmo calcula e escreve a mdia obtida. PROGRAMA MEDIA_FINAL VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO NOME : CARACTERE [35] INICIO LEIA (NOME) LEIA (NOTA1, NOTA2, NOTA3, NOTA4) MEDIA (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4 ESCREVA (NOME, MEDIA) FIM. Ex: Algoritmo 2 Segue um Algoritmo que l o raio de uma circunferncia e calcula sua rea. PROGRAMA AREA_CIRCUNFERENCIA VAR R, A : REAL INICIO LEIA (R) {ENTRADA} A 3.14 * SQR(RAIO) {PROCESSAMENTO} ESCREVA (REA =, A) {SADA} FIM. OBS: Voc pode mandar uma mensagem antes para o usurio, assim ele sabe qual o contedo que deve ser colocado, ou seja, digitado.

14

Exemplo: Escreva (Digite o nome: ) Leia (N) Escreva (Digite sua agencia: ) Leia (NumeroAgencia) Escreva (Digite sua conta: ) Leia (NumeroConta) Deve estar claro que sempre direita do comando leia haver um identificador de varivel. PASSSOS PARA A CONSTRUO DE UM ALGORITMO: De forma genrica, a construo de um algoritmo se resume s seguintes etapas: a) entendimento do problema; b) elaborao da soluo algortmica; e c) codificao da soluo no Portugus Estruturado; Geralmente a etapa 2 a mais complexa, pois depende da engenhosidade e experincia do construtor.

Enunciado: Faa um programa que leia dois valores numricos, e calcule e exiba a sua mdia aritmtica. Etapa 1 Dos tempos de escola lembramos que a mdia aritmtica de dois valores calculada como (a+b)/2, e sendo assim a primeira etapa j est pronta. Etapa 2 Os dados necessrios sero os dois valores, que colocaremos em duas variveis A e B, do tipo numrico, e uma terceira varivel, que chamaremos M, que armazenar a mdia aritmtica calculada. Etapa 3 A obteno dos dados neste programa simples e direta. Basta pedir ao usurio que digite os valores. Etapa 4 O processamento aqui o clculo da mdia, usando o mtodo citado acima, na etapa 1. O resultado do clculo ser armazenado na varivel M. Etapa 5 Basta exibir o contedo da varivel M. Soluo:

15

Programa Calculo_Media VAR A,B,M REAL Inicio Escreva (Programa que calcula a mdia aritmtica de dois valores.) Escreva (Digite um valor : ) Leia (A) Escreva (Digite outro valor : ) Leia (B) M (A+B)/2 Escreva (A mdia dos dois valores : , M) Fim

ATIVIDADES Escreva os algoritmos abaixo em portugus estruturado: Informar trs valores e calcular e mostrar a mdia desses valores. Informar a medida de um lado de um quadrado. Calcular seu permetro e armazenar em P. Calcular sua rea e armazenar em A. Mostrar os dados obtidos. 3) Escreva um algoritmo que leia um nmero inteiro e exiba o dobro do mesmo. 4) Escreva um algoritmo para calcular e exibir a mdia ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4) 5) Escreva um algoritmo para calcular e exibir o comprimento de uma circunferncia ( C = 2 R ), sendo dado o valor de seu raio. 6) Escreva um algoritmo para ler uma temperatura dada na escala Fahrenheit e exibir o equivalente em Celsius.
C= 5 * ( F 32 ) 9

7) Escreva um algoritmo para calcular a rea de um tringulo, sendo dados a sua base e a sua altura. 8) Faa um programa que receba o preo de um produto, calcule e mostre o novo preo, sabendo-se que este sofreu um desconto de 10%. 9) a) Ler 3 valores b) Calcular o produto destes valores c) Mostrar O produto vale, o valor do produto 10) Todo restaurante, embora por lei no possa obrigar o cliente a pagar, costuma cobrar 10% para o garom. Fazer um algoritmo que leia o valor gasto em um restaurante e mostrar o valor da gorjeta e o total com a gorjeta. 16

11)Ler o cdigo de um funcionrio, o nmero de horas trabalhadas, o valor que recebe por hora, o valor do salrio famlia. Com estas informaes calcular o salrio total deste trabalhador e mostrar junto como cdigo do funcionrio. 12) Dados 3 valores numricos, fazer o algoritmo para calcular a raiz quadrada da soma do trs valores. Mostrar o resultado. 13) Elaborar um algoritmo para entrar com o saldo de uma aplicao e mostrar o novo saldo, considerando 1 ms de aplicao e o reajuste de 2% ao ms.

ALGORITMOS - ESTRUTURAS DE DECISO Em algumas situaes verificamos que na maioria das vezes necessitamos tomar decises no andamento do algoritmo. Essas decises interferem diretamente no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura de Deciso e a estrutura de Repetio 1 Comandos de Deciso Os comandos de deciso ou desvio fazem parte das tcnicas de programao que conduzem a estruturas de programas que no so totalmente seqenciais. Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados ou resultados anteriores. As principais estruturas de deciso so: Se Ento, Se ento Seno. 1.1 SE ENTO / IF ... THEN A instruo se...ento tem por finalidade tomar uma deciso e efetuar um desvio no processamento, dependendo, claro, da condio atribuda ser verdadeira ou falsa. Sendo a condio verdadeira, ser executada a instruo que estiver escrita aps a instruo se..ento. Se a instruo for falsa, sero executadas as instrues que estejam aps as instrues consideradas verdadeiras. Sintaxe: se <condio> ento <instruo para condio verdadeira>; <instruo para condio falsa ou aps condio ser verdadeira>; Vejamos um exemplo de um trecho de programa com o uso da instruo se..ento: se (x > 10) ento escreva(O valor da varivel X maior que 10); Caso venha a existir mais de uma instruo verdadeira para uma determinada condio, estas devero estar inseridas em um bloco. Um bloco o conjunto de instrues estar entre inicio e fim Sintaxe: se <condio> ento inicio <instruo para condio verdadeira> <instruo para condio verdadeira> <instruo para condio verdadeira> <instruo para condio verdadeira> fim; <instruo para condio falsa ou aps condio ser verdadeira> Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria. 17

SE MEDIA >= 5.0 ENTO ALUNO APROVADO Em diagrama de blocos ficaria assim: Programa media
Var Media:real Inicio Leia(Media) Se media>=5.0 ento Escreva(Aluno Aprovado) Fim.

1.2 SE ENTO SENO / IF ... THEN ... ELSE Assim como a instruo se...ento, a instruo se...ento...seno tem por finalidade tomar uma deciso e efetuar um desvio no processamento. Se a condio for verdadeira ser executada a instruo logo abaixo do se. Sendo a condio falsa, ser executada a instruo que estiver posicionada logo aps a instruo seno. O conceito de blocos de instrues vale tambm para esta instruo. Sintaxe: se <condio> ento <instrues para condio verdadeira> seno <instrues para condio falsa>; Caso venha a existir mais de uma instruo verdadeira ou falsa para uma condio, estas devero estar inseridas em um bloco. Sintaxe: se <condio> ento inicio <instrues para condio verdadeira>; <instrues para condio verdadeira>; fim seno inicio <instrues para condio falsa>; <instrues para condio falsa>; fim; Observe que nos dois casos abordados acima, qualquer instruo que antecede a instruo seno est escrita sem o ponto-e-vrgula (;). Isto ocorre pelo fato de a instruo seno ser uma extenso da instruo se...ento, e sendo assim, o final da condio somente ocorre aps o processamento da instruo seno executado. Em algoritmo ficaria assim: SE MDIA >= 5.0 ENTO Escreva(ALUNO APROVADO) SENO Escreva(ALUNO REPROVADO) Em diagrama

18

No exemplo acima est sendo executada uma condio que, se for verdadeira, executa o comando APROVADO, caso contrrio executa o segundo comando REPROVADO. Podemos tambm dentro de uma mesma condio testar outras condies. Como no exemplo abaixo:
se MEDIA >= 5 ento inicio se MEDIA >= 7.0 ento inicio escreva(Aluno APROVADO); fim seno inicio escreva(Aluno Necessita fazer outra Avaliao); fim fim seno inicio escreva (Aluno REPROVADO); fim

EXERCCIOS ESTRUTURAS DE DECISO : 1) a) Ler os valores de X e Y ; b) Se X for maior ou igual a Y calcular a mdia desses valores e imprimir Media = , valor da mdia calculada; c) Fim.

2) Escreva um algoritmo para ler um nmero e determinar se ele maior, igual ou menor que zero. 3) Escreva um algoritmo que leia dois nmeros e exiba o maior deles. 4) Deseja-se calcular a conta de consumo de energia eltrica de um consumidor. Para isto, escreva um algoritmo que leia o cdigo do consumidor, o preo do Kw e a quantidade de Kw consumido, e exiba o cdigo do consumidor. Calcular o total da conta. Se o total da conta for menor ou igual 11.20, ento o total a pagar R$ 11,20. Seno o total a pagar o total da conta 19

6) Dado um nmero, fazer o algoritmo para calcular e mostar a raiz quadrada desse nmero se ele for positivo, se ele for negativo calcular e mostrar o seu quadrado. 7)Fazer o algoritmo para ler as seguintes informaes: o nome, altura e o sexo de uma pessoa Se sexo for masculino ento o peso ideal (72,7 x altura) 58, se for feminino o peso ideal (62,1 x altura) 44,7 Mostrar: O nome da pessoa e o seu peso ideal. 8) Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o peso e a altura da pessoa. O grau de obesidade determinado pelo ndice da massa corprea (Massa = Peso / Altura 2 ) atravs da tabela abaixo: MASSA CORPREA < 26 26 e < 30 30 GRAU DE OBESIDADE Normal Obeso Obeso Mrbido

9) Faa um algoritmo que, dado as trs notas de um aluno, determine e exiba a sua mdia final e o seu conceito, sabendo-se que: - a mdia final calculada pela mdia aritmtica das 3 notas; - o conceito determinado de com base na tabela abaixo: MDIA FINAL 8,0 5,0 e < 8,0 < 5,0 CONCEITO A B C

10) O Botafogo Futebol Clube deseja aumentar o salrio de seus jogadores. O reajuste deve obedecer a seguinte tabela: SALRIO ATUAL (R$) 0,00 a 1.000,00 1.000,01 a 5.000,00 acima de 5.000,00 AUMENT O 20% 10% 0%

Escrever um algoritmo que leia o nome e o salrio atual de um jogador, e exiba o nome, o salrio atual e o salrio reajustado. 11) Faa um algoritmo para calcular a conta final de um hspede de um hotel fictcio, considerando que: a) sero lidos o nome do hspede, o tipo do apartamento utilizado (A, B, C ou D), o nmero de dirias utilizadas pelo hspede e o valor do consumo interno do hspede; b) o valor da diria determinado pela seguinte tabela: TIPO DO APTO. A B C D VALOR DA DIRIA (R$) 150,00 100,00 75,00 50,00

c) o valor total das dirias calculado pela multiplicao do nmero de dirias utilizadas pelo valor da diria; 20

d) o subtotal calculado pela soma do valor total das dirias e o valor do consumo interno; e) o valor da taxa de servio equivale a 10% do subtotal; f) a total geral resulta da soma do subtotal com a taxa de servio. g) escreva a conta final contendo: o nome do hspede, o tipo do apartamento, o nmero de dirias utilizadas, o valor unitrio da diria, o valor total das dirias, o valor do consumo interno, o subtotal, o valor da taxa de servio e o total geral.

LINGUAGEM PASCAL 1 Histrico Origem: desenvolvida nos anos entre 1968 e 1970 por Nicklaus Wirth na Universidade Tcnica de Zurique, Sua. Em 1970 disponibilizado o primeiro compilador para a linguagem. Objetivo: desenvolver uma linguagem de programao disciplinada de alto nvel para ensinar programao estruturada. Esta linguagem foi batizada com o nome de Pascal, em homenagem a Blaise Pascal, filsofo e matemtico francs que viveu entre 1623 e 1662. Atualizaes: durante os ltimos anos foram lanadas diversas variaes da linguagem Pascal-Padro, implementando recursos que no so encontrados na estrutura padro da linguagem. Nas mos da Borland, j foram lanadas as verses 3.0, 4.0, 5.0 e 5.5 na dcada de 80. Durante a dcada de 90 foram lanadas as verses 6.0, 7.0 e o lanamento da linguagem Delphi, para programao em ambiente Windows. Existem diversas linguagens de programao, podemos aprender e utilizar quantas desejarmos. Dizer qual a melhor muito relativo. H os que defendem o Basic, o Cobol, a C, o Pascal e tantas outras. 2 Linguagem de Programao Um computador no pode entender nem to pouco executar instrues em linguagens de alto nvel. Ele s entende linguagem de mquina. Desta forma, os programas em linguagens de alto nvel devem ser traduzidos antes de serem executados pelo computador. Quem faz essa traduo so os programas tradutores. Existem basicamente 2 tipos de programa tradutor: o interpretador; e o compilador. Os dois aceitam como entrada um programa em linguagem de alto nvel (fonte) e produzem como sada um programa em linguagem de mquina (objeto). A diferena entre eles est na forma de executar a tarefa de traduo. O interpretador traduz para a linguagem de mquina e roda uma linha por vez, at que todo programa seja executado. J o compilador traduz para a linguagem de mquina todo o programa fonte e s ento ele executado. Existem linguagens de programao interpretadas e compiladas. O Cobol compilado, o Basic pode ser tanto compilado como interpretado e assim por diante. A linguagem Pascal tradicionalmente compilada. Por outro lado, o processo de compilao de certa forma moroso, pois deve seguir as seguintes etapas: 1-) Devemos utilizar um editor de textos para escrever e armazenar em disco o nosso programa fonte. 2-) Utilizar um compilador para traduzir o programa fonte para um programa em linguagem de mquina. 3-) Finalmente, devemos juntar ao programa compilado as diversas rotinas necessrias que, normalmente, ficam armazenadas numa biblioteca. Aps todo esse processo, suponha que voc chegue concluso de que o programa tenha que sofrer modificaes, pois bem, voc ter que repetir os trs passos descritos, e assim sucessivamente at que o programa fique ao seu gosto.

21

Aplicativo Pascal Zim


O compilador Pascal Zim foi desenvolvido Departamento de Cincias da Computao da Universidade de Braslia possuindo praticamente quase todas as funes do Turbo Pascal.

Comandos principais do aplicativo PASCAL ZIM Menu Arquivo Novo : inicializa o editor de texto para a edio de um novo arquivo-fonte. Abrir : abre um arquivo-fonte existente. (*.pas) Salvar e Salvar Como : gravar arquivos-fonte do editor Sair : abandona o ambiente Pascal zim Menu Editar Recortar: cortar . Copiar : copiar. Colar : colar. Menu Compilar Executar : inicia o processo de compilao, sempre com o arquivo que esteja atualmente no editor. Verifica se o cdigo fonte possui algum erro. F9 Gerar Executvel : compila o arquivo principal, se tiver algum designado. Seno compila o arquivo que estiver atualmente editado e gera o arquivo executvel no mesmo diretrio onde se encontra o arquivo fonte (*.pas) 3. ESTRUTURA DO PROGRAMA EM PASCAL Todo programa fonte escrito em Pascal obedece a seguinte forma geral: program nome; var lista de variveis: tipo; begin corpo do programa com comandos e end. em que: program, var, begin, end so palavras reservadas nome identifica o programa ; um delimitador, indica fim de uma instruo lista de variveis pode ser um ou mais nomes de variveis separados por vrgulas : delimitador tipo indica o tipo de dado da varivel corpo do programa contm os comandos e as estruturas que definem o que o programa deve executar. Devem estar entre as palavras reservadas begin e end. Devem ser escritos linha por linha, para maior clareza, obedecendo sintaxe prpria da linguagem. 4. TIPO DE DADOS estruturas

22

Os dados so representados pelas informaes a serem processadas por um computador. Um tipo de dados especifica as caractersticas, ou seja os valores e operaes possveis de serem utilizados com um dado desse tipo. Toda varivel e constante usada em um programa tem um tipo associado a ela. A linguagem Pascal fornece ao programador um conjunto de tipos de dados predefinidos. 4.1 Tipos de Dados Inteiros So caracterizados tipos inteiros, os dados numricos positivos ou negativos, excluindo-se qualquer nmero fracionrio. Em Pascal, este tipo de dado pode ser referenciado por um dos seguintes identificadores: Tipo de dado inteiro shortint integer longint byte word Tamanho(byte s) 1 byte 2 bytes 4 bytes 1 byte 2 bytes

Faixa de abrangncia de 128 at 127 de 32.768 a 32.767 de 2.147.483.648 a 2.147.483.647 de 0 at 255 de 0 at 65535

4.2 Tipos de Dados Reais O tipo de dado real permite trabalhar com nmeros fracionrios, tanto positivos como negativos, sendo sua capacidade de armazenamento maior que dos nmeros inteiros. Vejamos os tipos: Tipo de dado real real single double extended comp Tamanho(byte s) 6 bytes 4 bytes 8 bytes 10 bytes 8 bytes

Faixa de abrangncia de 2.9 e-39 at 1.7 e38 de 1.5 e-45 at 3.4 e38 de 5.0 e-324 at 1.7e308 de 3.4 e-4.932 at 1.1 e4.932 de 9.2 e18 at 9.2 e18

4.3 Tipos de Dados Caracteres So considerados tipos caracteres, as seqncias contendo letras, nmeros e smbolos especiais. Uma seqncia de caracteres, em Pascal, deve ser representada entre apstrofos (). Este tipo de dado referenciado pelo identificador string, podendo armazenar de 1 at 255 caracteres. Podemos ainda especificar um tamanho menor do que os 255 caracteres permitidos. Vejamos a sintaxe para criarmos uma varivel do tipo string com tamanho limitado. Sintaxe: varivel : string[tamanho]; Vejamos um exemplo do uso de strings: var Frase : string; Nome : string[45]; Existe ainda o tipo char, utilizado da mesma forma que o tipo string, porm com uma pequena diferena: usado para strings de apenas um caracter. Vejamos um exemplo do tipo de dado char: var Sexo : char 4.4 Tipos Lgicos

23

So caracterizados tipos lgicos, os dados com valores true (verdadeiro) e false (false). Este tipo de dado tambm e chamado de tipo boleano. Ele representado pelo identificador boolean. Vejamos um exemplo da utilizao do tipo de dado boolean: var Aprovado : boolean; Confirma : boolean; 5 Comandos na Linguagem PASCAL As instrues em um PROGRAMA FONTE correspondem aos comandos e estruturas do algoritmo e obedecem a uma sintaxe prpria com palavras reservadas que possuem um sentido pr-determinado para o compilador PASCAL. 5.1)Comandos de atribuio: nos algoritmos na Linguagem PASCAL Exemplo: A:= 3; OBS: expresso obedece s regras vistas, lembrando que a linguagem PASCAL tem uma Biblioteca de funes embutidas e que no existe o operador potenciao. Se for necessrio executar uma potenciao preciso usar uma combinao de funes embutidas. Exemplo: X5 EXP (5 * LN (X)) X2 SQR (X) varivel expresso varivel : = expresso;

5.2) Comandos de entrada: no algoritmo leia lista de variveis na Linguagem PASCAL readln (lista de variveis); Exemplo: readln (A, B, C); readln (A); readln (B); readln (C); 5.3) Comandos de sada: no algoritmo escreva lista de variveis e/ou constantes writeln (lista de variveis e/ou constantes); esse comando exibe o contedo da varivel contida na posio de memria identificada os dados so introduzidos, via teclado, separados por um espao em branco ou a cada valor pressionado ENTER, mudando de linha o que equivale a:

na Linguagem PASCAL Exemplo: writeln (SOMA = , S); por S antecedido da mensagem SOMA =.

OBS: 1) para gerar telas mais amigveis, tornando mais agradvel e fcil a interao do usurio com o programa usado o comando de entrada antecedido do comando de sada com um texto explicativo. Os 2 24

comandos, write e readln, fazem com que seja exibida a mensagem contida no comando write e que o cursor se posicione na mesma linha esperando a entrada da informao correspondente. A forma : write(comentrio); readln(nome da varivel ); Exemplo: write(Digite o numero de dados); readln(N);

Exemplo 1: Fazer o algoritmo e escrever o PROGRAMA FONTE que leia 3 nmeros inteiros e imprima o seu produto. Dados de Entrada { - 3 valores Pede (processamento) { - o produto destes valores - 1 nome de varivel para cada valor X, Y, Z Necessita - 1 nome para o produto P programa produto var X,Y,Z,P:inteiro inicio ler (X, Y, Z) P X*Y*Z escreva (PRODUTO = , P) fim. end. begin readln (X,Y,Z); P:=X*Y*Z; writeln (Produto = ,P) ; program produto; var X, Y, Z, P: integer;

Para uma tela mais amigvel a etapa de entrada de dados deveria ser escrita da seguinte forma: write( Digite o valor de X ); readln(X); write( Digite o valor de Y ); readln(Y); write( Digite o valor de Z ); readln(Z);

OUTROS COMANDOS NO PASCAL: 1) TextBackGround Este procedimento seleciona a cor do fundo sobre o qual o texto ser escrito. 25

Sua sintaxe geral : TextBackGround(cor); Ns podemos entrar com o nmero ou o nome da cor em ingls Exemplo: Program Exemplo; Uses CRT; Begin ClrScr; TextBackGround(Red); Writeln('teste'); TextBackGround(white); Writeln('teste'); Readln; End. 2) TextColor Este procedimento permite selecionar a cor com que o texto ser impresso. Exemplo: Program Exemplo; Uses CRT; Begin Clrscr; TextColor(red); writeln('teste'); TextColor(blue); write('teste'); readln; End. Tabela de cores 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White Blink Preto Azul Verde Ciano Vermelho Magenta Marrom Cinza-claro Cinza-escuro Azul-claro Verde-claro Ciano-claro Vermelho-claro Magenta-claro Amarelo Branco Piscante

3)Gotoxy - esse comando permite posicionar o cursor em uma determinada posio da tela. preciso fornecer os 2 parmetros que determinam a linha e a coluna da posio. O gotoxy deve preceder o comando de sada e possui a seguinte forma geral: gotoxy(coluna, linha); 26

em que: gotoxy palavra chave coluna o parmetro que determina a coluna relacionada ao ponto onde deve ser exibida a prxima sada de dados. A coluna varia de 1 a 80. linha o parmetro que determina a linha relacionada ao ponto onde deve ser exibida a prxima sada de dados. A linha varia de 1 a 25. Exemplo: program exemplo3; uses crt; var mat,nome:string; begin clrscr; gotoxy (5,10); writeln(Digite a matricula do aluno); readln(mat ); gotoxy (5,12); writeln(Digite o nome do aluno); readln(nome); write (Matrcula , mat, Nome :,nome); readln; end.

4) Delay ou Readkey- Suspende a execuo do programa durante X milissegundos ou suspende a execuo de um programa a partir de uma tecla pressionada. Sintaxe delay ( 10000 ) ; Sintaxe readkey;

27

You might also like