Documente Academic
Documente Profesional
Documente Cultură
PSI 10 Ano
Um Departamento de Informtica
Director de Informtica Chefe de Sistemas Administrador de Bases de Dados Administrador de Redes Analista de Sistemas Planificador Controlador de I/O Operador
Programador: Codifica os programas das aplicaes cujos dossiers lhe foram entregues pelo analista. Testa os programas e corrige-os. Documenta-os e entrega-os, prontos a serem implementados, ao analista. Faz tambm a manuteno de programas existentes.
Noo de Algoritmo
Algoritmo Uma sequncia ordenada e finita de instrues que descrevem, passo a passo, um modo de resoluo de um problema. (Ex. Receita de cozinha, guio de um filme, etc.)
Se essas instrues forem escritas numa linguagem de programao, ento passamos a cham-las de Programa.
Caractersticas de um Algoritmo
Ser correctamente definido com ordem nas aces a desenvolver, estando estas descritas de forma clara e com o maior nmero possvel de informaes; No estar sujeito a ambiguidades provenientes da falta de informao ou duplicao desta;
Ser eficaz, ou seja, consegue resolver o problema em qualquer situao e sem erros de qualquer tipo de falhas. Caso existam situaes de excepo, as mesmas devem ser especificadas e tratadas; Ser eficiente, ter capacidade de resolver o problema com o mnimo de recursos, quer sejam o espao ocupado na memria do computador, o tempo de execuo do programa, entre outros
2.
3.
Algoritmo
Codificao
Problema Resolvido
1.A anlise:
O objectivo fundamental da anlise permitir a quem l a compreenso, no apenas do problema proposto, mas sobretudo a sua natureza.
Ento provavelmente as duas especificaes bsicas, talvez as que determinam toda a anlise e o desenho do algoritmo, so as especificaes de entrada e de sada.
Exemplo 1:
Sabendo que o meu pai ganha um ordenado mensal X e desconta para a segurana social uma percentagem Y, quanto que recebe no fim do ms e qual o valor que desconta?
Anlise Entradas Ordenado (X) Percentagem de Desconto (Y) Valor de Desconto (S) Valor que recebe (Z) X, Y, S, Z
Sadas
Variveis
Definio do problema Calcular o Ordenado lquido e valor de desconto. Descrio do problema Apresenta de forma clara, no cran ou impressora, o valor do ordenado lquido e do desconto para a Segurana Social.
2. Desenho do Algoritmo
A mquina s executa aquilo que lhe for ordenado; O Algoritmo uma simulao no geral do que a mquina vai executar em concreto; As entradas de um Algoritmo devem produzir sadas (ou no fariam sentido!).
Sempre que um problema mais complexo, devemos sempre decomp-lo. As vantagens desta decomposio (diviso), so:
A modificao dos componentes mais fcil do que a modificao do todo; A compreenso de cada sub-problema mais fcil do que a compreenso integral do problema; A verificao do funcionamento do algoritmo mais simples em blocos do que na globalidade.
2. Desenho do Algoritmo
Decomposio do Exemplo1:
Clculo do ordenado lquido Calcular valor do desconto Calcular ordenado lquido
Problema resolvido!
2. Desenho do Algoritmo
Especificando ainda mais o Exemplo1:
Clculo do ordenado lquido S=X*Y
Ler X
(ordenado ilquido)
Z=X-S
Ler Y
(percentagem de desconto)
Escrever S
Escrever Z
Problema resolvido!
Exerccio:
Dado o custo unitrio de um dado produto, variando a percentagem de lucro, qual o preo de venda com IVA includo e qual a margem de lucro correspondente?
Anlise
Aco 2
Aco X
Aco Y
Aco 3
Aco Z
Linear
No Linear
Preparar uma lmpada nova Retirar a lmpada fundida Colocar a lmpada nova
Linear
Ligar o interruptor para verificar se a nova lmpada acende ou no Se a lmpada no acender teremos de repetir os passos de 1 a 3
Exemplo 2:
Exemplo 2:
Incio Ver se existe um copo Se no existe ento Fica-se com sede Se existe ento Estender a mo Segurar o copo Se no estiver debaixo da torneira ento Colocar o copo debaixo da torneira Se estiver debaixo da torneira ento Abrir a torneira Se o copo no estiver cheiro ento Manter a torneira aberta Se o copo estiver cheio ento Fechar a torneira Levar o copo boca Beber Pousar o copo Largar o copo Fim
Exemplo 2:
Existem palavras que foram intencionalmente colocadas a negrito e que correspondem a palavras reservadas no domnio da programao:
Se If No Not Ento Then Fim End Incio Begin
De notar tambm a indentao e a sua importncia, visto ser mais fcil a leitura e percepo do programa. A linguagem que acabmos de utilizar chamada de PSEUDOCDIGO, uma verso simplificada da nossa linguagem utilizada pelos programadores para pr-programarem os seus programas.
Exerccios:
1.
Calcular a rea de um terreno quadrado. Fazer a anlise do problema, o esboo e um aprofundamento ao esboo do algoritmo. Elaborar o desenho do algoritmo que mostre qual o percurso que fazem desde o momento em que o despertador toca at comearem a tomar o pequenoalmoo.
2.
Fluxogramas e Pseudolinguagem
Os Fluxogramas, tambm chamados de diagramas de fluxo, so uma das mais importantes ferramentas do programador, na representao grfica do algoritmo. Um Fluxograma o grafismo que descreve de modo simples e de fcil leitura um determinado algoritmo.
Fluxogramas
Smbolos Principais:
Incio/Trmino Entrada/Sada Deciso Mltipla
Processo
Conector
Deciso Simples
Fluxogramas
Calcular a rea de um rectngulo:
Incio
1. Obter os valores do comprimento e da largura 2. Calcular a rea 3. Apresentar o valor da rea
Area<-Comp*Larg
Escrever (Area)
Fim
pg. 37 do Manual Adoptado (Porto Editora)
Pseudolinguagem
Pseudolinguagem, ou pseudocdigo, uma forma de representar algoritmos, prxima da linguagem corrente e das linguagens de programao.
Incio
Fim
Escrever (Introduza dois valores) Ler (valor1) Ler (valor2) Se (valor1 > valor2) ento Escrever (O valor 1 maior) Seno Se (valor1 < valor2) ento Escrever (O valor 2 maior) Seno Escrever (Valores Iguais!!)
Fluxogramas
Exerccios (1)
Resolva os seguintes problemas fazendo, para cada um deles, a anlise e o fluxograma do algoritmo.
Programa que leia um nmero e calcule x2 + 2x + 3. Programa que escreva positiva ou negativa, consoante a nota entrada. Programa que calcule o nmero de segundos entre as 0 horas 0 minutos e 0 segundos e uma hora dada. Ex: entre as 00:00:00 e as 02:01:23. Programa que calcule o nmero de segundos entre dois instantes dados.
Estruturas de Deciso
Estruturas de Deciso
Existem dois tipos bsicos de estruturas condicionais (ou deciso): SE ENTO SENO (IF-THEN-ELSE) Deciso Simples
Deciso Mltipla
Estruturas de Deciso
1. SE (IF) SE arranjares um capacete ENTO Levo-te de mota SENO Vais de autocarro
Verdadeiro condio
Falso
Instruo 1a
Instruo 1b Instruo 2a
Estruturas de Deciso
2. CASO (CASE) CASO a nota do teste seja igual a Bom : ganho um jogo Suficiente : vou ao cinema Mau : lavo a loia FIM
Expresso
=1
=2
=3
=4
=n
Inst.1
Inst.2
Inst.3
Inst.4
Inst.n
Fluxogramas
Exerccios (2)
Resolva os seguintes problemas fazendo, para cada um deles, a anlise e o fluxograma do algoritmo.
Pedir a nota do aluno e dizer se essa nota positiva ou negativa. Se for positiva, dizer o resultado qualitativamente (Suficiente, Bom ou Muito Bom). Pedir a nota do aluno e dizer a nota qualitativamente, utilizando uma estrutura de seleco. Pedir a nota do aluno e dizer se essa nota positiva ou negativa. Se a nota for invlida, tornar a pedi-la.
Estruturas de Repetio
Estruturas de Repetio
Uma estrutura de repetio processa uma sequncia de instrues, tantas vezes quantas as estabelecidas pela condio a que est sujeita.
Uma estrutura que repete uma sequncia de aces, sempre pela mesma ordem, um nmero determinado de vezes, designada por loop. A aco de repetir recebe a designao de iterao ou ciclo.
Estruturas de Repetio
condi o
verdadeira
Aco 1
Aco 2
Outro exemplo:
ENQUANTO a<>0 FAA Inicio Ler (a); Ler (b); Calcular c=a+b; Escrever (c); fim WHILE a<>0 DO Begin Readln(a,b); c:= a+b; writeln(c); End;
(Enquanto o valor de entrada for diferente de 0, so executadas as instrues entre o inicio e o fim. Quando o valor for 0, terminado o WHILE.)
Pseudocdigo
Pascal
falso
condi o
verdadeiro
Outro exemplo:
REPETIR Ler(a); Ler (b); Calcular c=a+b; Escrever(c); AT c=10; REPEAT Readln(a,b); c:= a+b; Writeln(c); UNTIL c=10;
(So executadas as instrues entre o repetir e o at, at que o valor de c seja igual a 10.)
Pseudocdigo
Pascal
A estrutura enquanto-faa termina quando a condio falsa, enquanto que a estrutura repetir-at termina quando a condio verdadeira;
Na estrutura repetir-at o conjunto de aces do loop executado pelo menos uma vez enquanto que na estrutura enquanto-faa h a possibilidade de o conjunto de aces nunca ser executado.
Exerccios (3)
Pedir um nmero ao utilizador e perguntar se este ainda quer introduzir mais. Quando a resposta for No indicar quantos nmeros foram introduzidos. Pedir um nmero ao utilizador e perguntar se este deseja introduzir outro. Se a resposta for No faz a mdia dos nmeros introduzidos, seno repete. Perguntar ao utilizador quantos introduzir e fazer a mdia. nmeros este quer
Pedir ao utilizador para inserir um nmero e perguntar se quer introduzir outro. Quando o utilizador responder no, indicar qual foi o maior nmero introduzido.
Exerccios da pg. 64 e 65 do livro.
Algumas Resolues
Exerccio: Pedir um nmero ao utilizador e perguntar se este deseja introduzir outro. Se a resposta for No faz a mdia dos nmeros introduzidos, seno repete.
Exerccio: Perguntar ao utilizador quantos nmeros este quer introduzir e fazer a mdia.
Tipos de Dados
Alfanumricos Estes dados podem designar strings ou cadeias de caracteres e podem ser de comprimeonto fixo ou varivel. Quer num caso, quer noutro, estas cadeias de caracteres constituda por qualquer um dos 255 caracteres da tabela de cdigos ASCII.
Ex. Nome = Rui, 19 anos Preco = preo por unidade=200
Numricos
Inteiros (2 bytes) So nmeros inteiros com sinal, compreendidos entre 32768 e +32768. Inteiros Longos (4 bytes) - So nmeros inteiros com sinal, compreendidos entre 2 147 483 648 e +2 147 483 648. Reais So nmeros que admitem parte decimal
Lgicos
Identificadores
As constantes so, como o nome indica, constantes, sempre iguais, fixos. As variveis, por sua vez, tm o seu valor incgnito, ou seja, pode ser alterado com o decorrer do programa e no sabemos
O primeiro caracter sempre uma letra; No existem espaos em branco; As palavras reservadas da linguagem de programao no servem para identificadores; Os caracteres compostos como , , , etc, no so vlidos.
Operadores
Operadores Aritmticos
Cada um dos tipos de dados existentes pode ser sujeitos a diversos tipos de operaes, de acordo com o seu tipo:
Operaes para dados Inteiros (Integer)
Adio Subtrao Multiplicao Diviso Diviso truncada Resto da diviso + * / DIV MOD 7+5 7-5 7*5
Dados: 5 e 7 ( Inteiros )
12 2 35
7/5
7 DIV 5 7 MOD 5
1.4 (real)
1 2 (resto da diviso)
Operadores Relacionais
Os operadores relacionais estabelecem uma relao entre dois operandos, comparando-os, e produzindo um resultado lgico.
RELAO Igualdade Desigualdade Menor que Maior que Menor ou igual Maior ou igual
Suponha que as variveis i e j tm os valores de 3 e -5, respectivamente: Expresso i <= 10 i+j<0 (i-j) < (i+j) i3=j+5 2 * 1 >= i DIV 2 (i DIV 2) > (j + 6) Valor True False False True True False
Operadores Lgicos
Os operadores lgicos estabelecem uma relao lgica entre dois operandos booleanos, produzindo como resultado um valor lgico, que, como j sabemos, s pode ser Verdadeiro (True) ou Falso (False).
Significado A expresso ser verdadeira se qualquer dos operandos for verdadeiro (ou se ambos forem verdadeiros) A expresso ser verdadeira se ambos os operandos forem verdadeiros Este operador usado como prefixo para negar um operador boleano
Suponha que n uma varivel inteira qual foi atribudo o valor 10, e s uma varivel do tipo carcter (char) que representa o carcter A:
(n > 0) OR (n < 5)
Suponha que a expresso boleana j > 6 verdadeira. Ento a expresso NOT (j > 6) ser falsa e a expresso NOT (j <= 6) ser verdadeira. (n < 0) OR (n > 20) (n = 10) AND (s = A) (n <> 5) OR (s >= A)
True
False True True
Operadores Funcionais
So operadores que chamam uma operao pr-determinada do PASCAL para que ela se execute sobre um dado operando produzindo um resultado. Algumas
Objectivo Calcula o valor absoluto de x Determina o caracter representado por x na tabela ASCII Determina se x par ou mpar. (produz um valor verdadeiro se x for mpar e falso no caso contrrio) Determina o inteiro que usado para codificar x na tabela ASCII Arredonda o valor x para o inteiro mais prximo Calcula o quadrado de x Calcula a raiz quadrada de x Trunca x (elimina a parte decimal)
Estrutura de um Programa
Nos programas da linguagem de programao PASCAL, podemos definir duas partes bem distintas:
Parte Declarativa (onde se declaram os tipos de dados que pretendemos utilizar) Parte Operativa (conjunto de instrues usadas para fazer as operaes)
Cabealho do programa Parte Declarativa oDeclarao de constantes oDeclarao de tipos oDeclarao de variveis Parte Operativa oExpresses oInstrues oEstruturas de controlo
Estrutura de um Programa
Exemplo:
Program teste; Const Maximo = 100; tecla = S; nome = Esc Sec Manuel Teixeira Gomes; numero : integer; valor : real; caracter : char; nome : string; . . . .
Var
BEGIN
END.
Instrues de Leitura/Escrita
INSTRUES DE ESCRITA
Ex:
Instrues de Leitura/Escrita
INSTRUES DE LEITURA
Ex:
Instrues de atribuio
utilizado o simbolo := porque o sinal de = utilizado na comparao de valores.
Os valores a atribuir varivel tm que ser do mesmo tipo e a varivel de destino fica sempre esquerda.
Ex: