Documente Academic
Documente Profesional
Documente Cultură
Introduo
Truque com 21 cartas
1. Selecionar 21 cartas do baralho; 2. Fazer trs grupos em linha de sete cartas cada uma, virados para cima; 3. Pedir para escolher uma carta de um dos grupos e memorizar, sem referir a carta escolhida. 4. Pedir para indicar em que linha se encontra a carta escolhida;
Introduo
Truque com 21 cartas
5. Recolher as cartas, sempre da esquerda para a direita, colocando a segunda de baixo da primeira e assim sucessivamente at ao fim da linha, comear por uma das linhas que no tenha a carta escolhida. 6. Repetir o passo 5 para a linha da carta escolhida e colocar por baixo do primeiro grupo de cartas recolhidas. 7. Recolher a ltima linha de cartas e colocar por baixo das restantes deixando o grupo da carta escolhida no meio dos outros dois.
Introduo
Truque com 21 cartas
8. Distribuir trs cartas de cima para baixo e colocar uma carta ao lado da primeira das trs, outra ao lado da segunda e mais uma ao lado da terceira, continuar a distribuir as cartas desta maneira, at acabarem. 9. Repetir os passos 4, 5, 6, 7; 8. Contar dez cartas;
Conjunto ou sequncia finita e ordenada de aes que conduzem soluo de um determinado problema.
Por outro lado, aps a escrita desse programa a atividade de programador no termina, pois so necessrias outras tarefas.
6 - Manuteno
Diz respeito a possveis alteraes e aperfeioamentos sejam necessrio fazer.
Manuteno
Programa
Condio
Verdade Ao x Ao y
Ao z
1. A fase da formulao do algoritmo; 2. A fase da sua implementao numa linguagem ou ferramenta de programao;
Ler nmero X
Falso
Escrever resultado
c
Introduzir valor dos catetos
Efetuar calculo Apresentar resultado
Escrever Hip
Operaes elementares
Antes de se comear com uma Linguagem de Programao, temos de ser capazes de estruturar o nosso raciocnio para que quando nos colocam um problema, termos um controle sobre a lgica que atribumos ao problema de forma a conseguir concluir a soluo sem erros.
Operaes elementares
Linguagem de programao A programao consiste na codificao precisa desse algoritmo, segundo uma linguagem de programao especfica.
Exemplos: Visual Basic, C, Java, Python, C#, .NET, HTML, PHP
Operaes elementares
Tipos de operaes Quando se trata de formular algoritmos para programas de computador, temos de ter em conta quais so os principais tipos de operaes que um sistema informtico pode efetuar.
Operaes elementares
Tipos de operaes elementares
Unidade de entrada ou Unidade central de processamento Memria Operaes de entrada ou imput de dados Ex: Ler(valor) Operaes de sada ou output de dados Ex: Escrever(valor) Unidade de Sada ou
Imput
Output
Operaes elementares
Operadores aritmticos
Operador Operao
Adio
Subtrao Multiplicao Diviso
+ * /
Operaes elementares
Operadores Relacionais ou de comparao
Operador Operao
Igualdade
Maior que Menor que Maior ou igual Menor ou igual Diferente Includo em
Operaes elementares
Operadores Lgicos
Operador Operao
Conjuno (L-se i)
Disjuno (L-se ou) Negao (L-se no) Disjuno exclusiva
Tipos de Dados
Simples ou primitivos
Os principais tipos de dados utilizados em algoritmia e em programao so:
Caracteres ou alfanumricos, cadeias de caracteres ou texto; H dados que so do tipo texto ou cadeias de carateres (strings) por exemplo: introduza o valor: Nmeros (podendo estes serem de diferentes tipos); Inteiros nmeros inteiro (negativos, zero e positivos) Reais - nmeros em que figuram partes decimais (ex: 1.5;-1.5)
Dados do tipo lgico ou booleano Admite apenas um resultado entre dois resultados possveis (Verdadeiro ou falso).
Tipo de dados
Simples ou primitivos
Carateres Em Pascal Char Linguagem C Char
Short int
Principais tipos de dados simples ou primitivos Nmeros inteiros Integer Long int Nmeros Reais Real Int Long Single Double No tem
Valores Lgicos
Boolean
Tipos de Dados
Dados estruturados ou estrutura de dados
A partir dos dados primitivos podem constituir-se outros tipos de dados mais complexos: Dados estruturados
Podemos ter conjuntos ordenados de dados todos do mesmo tipo base: nesse caso estaramos perante aquilo que se designa por arrays.
10 2 5 15 20 34 12 14 21 45 90 78 9 5 6 7
Tambm podemos ter estruturas com dados de tipos diferentes: nesse caso, estamos perante registos (records) ou outras estruturas
Cada varivel surge associada a um tipo de dados (inteiro, real, string, booleano, etc.)
Varivel Idade: Inteiro (L-se Varivel Idade do tipo Inteiro)
Identificadores um nome que associado (pelo programador) a uma constante, a uma varivel ou a outro tipo de elemento, em programao
Varivel Cateto Varivel Hipotenusa
Constante
Taxa
=0.23
0.23
Varivel
Valor
10
Valor
10
1 2 3 4 5 6 7 8 Posio
Como vimos o nome ou identificador de uma varivel associado a um determinado endereo de memria RAM Em termos computacionais isso vai traduzir-se no seguinte:
Taxa
0.23
Constante
Taxa
=0.23
1 2 3 4 5 6 7 8
Varivel
Valor
10
Valor
10
Posio
Para cada varivel reservado um certo espao ou quantidade de bits ou bytes mediante o tipo de dados dessa varivel. Por exemplo: uma varivel definida como inteira so reservados dois bytes. As operaes esto limitadas a cada tipo de dados, por exemplo se definirmos uma varivel como uma string ou cadeia de caracteres no podemos efetuar operaes aritmticas sobre essa varivel
Linguagens Basic e C
Pascal Algoritmia
Sinal de atribuio =
:=
Input e output
Instrues de input ou entrada de dados
Um programa de computador ou algoritmo tem de ter em conta a interao com o exterior ou as pessoas que podem fornecer os dados com que se vo efetuar as operaes. A operao de input: entrada ou leitura de dados por parte do programa A entrada de dados em algoritmia representa-se por: Ler(Nome) Obter(Quantia) A leitura ou a obteno de um valor para uma varivel significa que esse valor ir ser guardado temporariamente no endereo e espao de memria RAM reservado para o efeito.
Input e output
Instrues de output ou sada de dados
A sada ou escrita (output) de dados, por parte de um programa ou algoritmo, pode ser feita em relao a diferentes tipos de dispositivos, como: monitor, uma impressora, um disco rigido, pen, etc.
E o seu resultado seja guardado em algum sitio, necessrio que essa expresso seja includa numa instruo de atribuio, como por exemplo: X =(1.5*(V+10)-N^2)/2 (Varivel X, na posio de memoria que lhe est reservada, guarda o valor obtido com a realizao dos clculos indicados na expresso)
Escrever (Custo +(1*Taxa)) Escrever(Valor =, Custo * 1.25) A ordem pela qual so efetuadas as operaes aritmticas em instrues de programao obedece aos mesmos princpios que vigoram na Matemtica.
A prioridade dos operadores aritmticos, em termos genricos a seguinte:
1. Exponenciao (sinal ^); 2. Multiplicao (*) e diviso (/) 3. Adio (+) e subtrao (-)
Menor
7 - Operadores Lgico OR
OR P
V V F F
Q
V F V F
P Q
V V V F
V F
F V
Construo de algoritmos
Linguagem informal
Consideremos alguns algoritmos de resoluo de problemas da vida quotidiana:
A) Substituir uma lmpada fundida B) Substituir um pneu furado 1. 2. 3. 4. Preparar uma lmpada nova Retirar a lmpada fundida; Colocar a lmpada nova; Ligar o interruptor. 1. Preparar o pneu sobresselente; 2. Colocar o macaco na posio adequada; 3. Levantar o carro 4. Retirar pneu furado; 5. Colocar pneu sobresselente
Construo de algoritmos
Linguagem formal
Os algoritmos pensados para programas de computador exigem uma formulao com maior rigor.
Variveis Area, Comp, Larg: Inteiros
Inicio
Fim
Construo de algoritmos
Pseudocdigo
Este tipo de linguagem formal que se assemelha a uma linguagem de programao (sem contudo ser) designado por PSEUDOCDIGO. Diz-se pseudocdigo porque tem em vista representar um cdigo de programao, sem o ser.
Variveis Area, Comp, Larg: Inteiros Inicio Ler(Comp, Larg) AreaComp*Larg Escrever(Area)
Fim
Construo de algoritmos
Fluxogramas
Utilizam smbolos e formas grficas com significados convencionais atravs dos quais se representam as sequncias de aes dos algoritmos.
incio
Ler(Comp, Larg)
AreaComp*Larg
Escrever(Area)
Fim
Processamento interno: Representa uma operao de processamento interno, como por exemplo, a atribuio de um valor a uma varivel
Seleo mltipla: Representa uma situao que o algoritmo pode seguir por diferentes vias, opes ou sequncias
SE ENTO SENO
REPETIR AT QUE ENQUANTO FAZER
Estrutura de deciso
Estruturas de repetio
Desenvolvendo algoritmos
Linguagem Natural
A) Substituir uma lmpada fundida 1. 2. 3. 4. Preparar uma lmpada nova Retirar a lmpada fundida; Colocar a lmpada nova; Ligar o interruptor.
Desenvolvendo algoritmos
Fluxograma
A) Verificar se uma lmpada est fundida
incio Fim
Verificar lmpada
Sim
Interruptor ligada?
No
Ligar interruptor
Lmpada acesa?
No
Sim
Desenvolvendo algoritmos
Fluxograma
A) Verificar se uma lmpada est fundida
incio Fim
Entra em ciclo
Verificar lmpada
Sim
Interruptor ligado?
No
Ligar interruptor
Lmpada acesa?
No
Sim
Desenvolvendo algoritmos
Fluxograma
A) Verificar se uma lmpada est fundida
incio Fim
Verificar lmpada
Sim
Interruptor ligado?
No
Ligar interruptor
Lmpada acesa?
No
Sim
Desenvolvendo algoritmos
Pseudocdigo
A) Verificar se uma lmpada est fundida
Incio Varivel estado, X: Char escrever(Lmpada ligada?) ler(estado) Enquanto (estado = no) fazer escrever(Ligar interruptor); ler(estado): fim enquanto Se (estado=sim) ento escrever(Lmpada acesa?); ler(X); Se(X=no) ento escrever(mudar lmpada fundida); Fimse Fimse Fim
Desenvolvendo algoritmos
Exerccios
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= B) Considere um algoritmo capaz de calcular o valor de um lado de um tringulo retngulo a partir da introduo de dois Valores inteiros introduzidos pelo Utilizador. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: + =
Desenvolvendo algoritmos
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= Linguagem Formal 1 Obter Raio; 2 Calcular Perimetro ; 3 - Escrever resultado;
Desenvolvendo algoritmos
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= Fluxograma
incio
Obter Raio
Perimetro ;
Obter Raio
Fim
Desenvolvendo algoritmos
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= Pseudocdigo
Memria RAM
3.14
Raio
Perimetro ;
Escrever(O perimetro :, Perimetro);
Perimetro
12,56
Desenvolvendo algoritmos
B) Considere um algoritmo capaz de calcular o valor de um lado de um tringulo retngulo a partir da introduo de dois valores inteiros introduzidos pelo Utilizador. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: + = Linguagem Formal 1 Obter dois lados; 2 Verificar qual maior valor introduzido; 3 Testar se maior valor introduzido a hipotenusa; 4 Caso Hipotenusa ento calcular cateto; 5- Caso Cateto ento calcular hipotenusa;
Desenvolvendo algoritmos
Fluxograma
incio
Ler(V1,V2)
No
V1>V2
Sim
CV2; BV1; 2 2 2 C V2 + X
CV1; BV2; 2 2 2 C V2 + X
XV2; BV1; 2 2 2 C B + X
No
X:inteiro
Sim
Fim
Estruturas de controlo
Aspetos genricos
Na formulao de um algoritmo frequentemente necessrio:
1) Jogar com determinadas condies, para decidir se se deve executar uma ou outra ao ou aes neste caso, teremos instrues ou estruturas de deciso ou seleo.
ou
de
um
programa,
2) Repetir uma srie de instrues um determinado nmero de vezes ou enquanto se verificar uma certa condio neste caso, teremos instrues ou estruturas de repetio ou de ciclo
Estruturas de controlo
Estruturas de Deciso
Podemos ter dois tipos:
1) Estruturas condio: com base numa 2) Estruturas de seleo ou escolha mltipla: SELECIONAR CASO (SELECT CASE)
Estruturas de controlo
Estruturas de Deciso
A) Com base numa condio
Variveis Nota1, Nota2: Inteiros; Incio escrever(Qual a Nota do 1 exame?) ler(Nota1) Se(Nota1 >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; escrever(Qual a Nota do 2 exame?) ler(Nota2) Se(Nota2 >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; Fim
Estruturas de controlo
Estruturas de Deciso
A) Com base numa escolha mltipla
Varivel Nota: Inteiro; Incio escrever(Qual a Nota do exame?) ler(Nota) Selecionar caso (Nota) 0,1,2,3,4: escrever(Mau); 5,6,7,8,9: escrever(Medocre); 10,11,12,13: escrever(Suficiente); 14,15,16,17: escrever(Bom); 18,19,20: escrever(Muito Bom); Seno escrever(Nota Invlida); FimSelecionar Fim
Estruturas de controlo
Estruturas de Repetio
Podemos ter dois tipos:
1) Ciclos controlados condio: por uma 2) Ciclos controlados contador: por um
Estruturas de controlo
Estruturas de Repetio
A) Controladas por uma condio
Variveis Nota: Inteiros; Incio escrever(Qual a Nota do exame?); ler(Nota); Enquanto(Nota>0)Fazer Se(Nota >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; escrever(Qual a Nota do exame?); ler(Nota); FimEnquanto Fim
Estruturas de controlo
Estruturas de Repetio
A) Controladas por uma condio
Variveis Nota: Inteiros; Incio escrever(Qual a Nota do exame?); ler(Nota); Repetir Se(Nota >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; escrever(Qual a Nota do exame?); ler(Nota); At que(Nota<0) Fim
Estruturas de controlo
Estruturas de Repetio
A) Controladas por um contador
Variveis Nota, contador: Inteiros; Incio Para(Contador=0 At Contador<2) fazer escrever(Qual a Nota do exame?); ler(Nota); Se(Nota >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimFazer; Fim
Estruturas de controlo
Exerccios
A) Calcular os mltiplos de um nmero introduzido pelo utilizador. O nmero de mltiplos a calcular tambm definido pelo utilizador
Estruturas de controlo
Exerccios
A) Resoluo
Variveis Num, Quantos: Inteiros; Conta, Multip: Inteiros Incio escrever(Introduza um nmero inteiro?); Ler(Num); escrever(Quantos mltiplos?); Ler(Quantos); Para(Conta 1 at Quantos) fazer MultipNum*Conta; escrever(Multiplo de %d : %d,Num, Multip); FimFazer; Fim
Estruturas de controlo
Exerccios
A) Calcular a mdia final obtida por um aluno no curso de programador informtico. O programa deve de solicitar ao utilizador a introduo das notas obtidas no curso.