Educação e Formação de Adultos – Tipologias de nível secundário A A L L G G O O R R I I T T M M O O E E L L Ó Ó G G I I C C A A D D E E P P R R O O G G R R A A M M A A Ç Ç Ã Ã O O F F O O R R M M A A D D O O R R : : J J O O S S É É B B A A T T I I S S T T A A OBJECTIVOS DO MÓDULO • Elaborar algoritmos de resolução para um dado um problema. • Compreender a lógica de programação • Identificar e dominar a utilização dos diferentes tipos de variáveis. • Descrever a estrutura de um algoritmo identificando as palavras-chave, variáveis e funções. • Elaborar algoritmos, sem ambiguidades, eficazes e eficientes. O que é um programa? Um programa de computador ou programa informático é uma colecção de instruções que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma referência ao código fonte, escrito numa linguagem de programação, ou ao arquivo que contém a forma executável deste código fonte O que é uma linguagem de programação? Uma linguagem de programação é um método padronizado para expressar instruções para um computador. Em programação, o uso da matemática é relativamente alto e é importante também, que possuas um bom raciocínio lógico. Porque Programar ? Podemos programar para alcançar inúmeros objectivos, como por exemplo: - desenvolver um software, para automatizar tarefas, e quem sabe vende-lo - criar um jogo de computador. - Podes também programar para a Web e desenvolver aplicações . - A área da tecnologia é um mercado em constante crescimento, com salários iniciais altos. Então qual a linguagem que o computador entende? O computador entende apenas a linguagem binário ou máquina, ou seja, 1 e 0, ligado ou desligado. Quer dizer que tenho que aprender a programar em 0 e 1? Negativo. Hoje em dia, temos o que chamamos de compiladores e interpretadores. São eles que fazem a tradução da nossa linguagem para linguagem de máquina.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
OBJECTIVOS DO MÓDULO
• Elaborar algoritmos de resolução para um dado um problema. • Compreender a lógica de programação • Identificar e dominar a utilização dos diferentes tipos de variáveis. • Descrever a estrutura de um algoritmo identificando as palavras-chave, variáveis e funções. • Elaborar algoritmos, sem ambiguidades, eficazes e eficientes.
O que é um programa?
Um programa de computador ou programa informático é uma colecção de instruções que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma referência ao código fonte, escrito numa linguagem de programação, ou ao arquivo que contém a forma executável deste código fonte
O que é uma linguagem de programação?
Uma linguagem de programação é um método padronizado para expressar instruções para um
computador. Em programação, o uso da matemática é relativamente alto e é importante
também, que possuas um bom raciocínio lógico.
Porque Programar?
Podemos programar para alcançar inúmeros objectivos, como por exemplo:
- desenvolver um software, para automatizar tarefas, e quem sabe vende-lo
- criar um jogo de computador.
- Podes também programar para a Web e desenvolver aplicações .
- A área da tecnologia é um mercado em constante crescimento, com salários iniciais altos.
Então qual a linguagem que o computador entende?
O computador entende apenas a linguagem binário ou máquina, ou seja, 1 e 0, ligado ou desligado.
Quer dizer que tenho que aprender a programar em 0 e 1?
Negativo. Hoje em dia, temos o que chamamos de compiladores e interpretadores. São eles que fazem a tradução da nossa linguagem para linguagem de máquina.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Qual a diferença entre linguagem compilada e interpretada?
Na linguagem interpretada, o código fonte é traduzido para linguagem de máquina no momento da interpretação (execução), e o código fica visível, enquanto na linguagem compilada, este é feito anteriormente, não sendo possível visualizar o código fonte.
Qual a diferença entre linguagens de baixo nivel e alto nivel?
Resumidamente, as linguagens de baixo nível, são aquelas que possuem contacto directo com o hardware do computador, geralmente linguagens compiladas, como por exemplo C, C++, Assembly…
Enquanto as linguagens de alto nível o contacto é com o software, exemplos são linguagens interpretadas como Python, PHP, JavaScript, Pascal, ASP.NET…
Noções de Lógica?
Lógica é a forma correcta de organizar os pensamentos e demonstrar o raciocínio de maneira correcta. A utilização da lógica é a melhor forma de solucionar problemas e atingir objectivos. Sempre que se quer pensar, falar ou escrever correctamente, deve-se colocar os pensamentos em ordem. Exemplo: - Todo mamífero é animal - Todo cavalo é mamífero - Portanto, todo cavalo é animal A lógica é muito importante em nossa vida, no dia – a – dia. Veja os exemplos abaixo: a) A gaveta está fechada. A bala está na gaveta. Preciso primeiro abrir a gaveta, para depois pegar a bala. b) Moramos três pessoas. Nenhum de nós dois quebrou o vaso de porcelana.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita.
traduzindo!!!
O algoritmo, é uma instrução, ou uma ordem que podemos dar ao computador, para que ele realize determinada tarefa. Algoritmo é a lógica necessária para o desenvolvimento de um programa.Ao contrário do que a maioria das pessoas pensam, o computador não é inteligente, quem é inteligente, é o programador!
Simplificando…
Para se ter um algoritmo, é necessário:
1. Que se tenha um número finito de passos 2. Que cada passo esteja precisamente definido, sem possíveis ambigüidades 3. Que existam zero ou mais entradas tomadas de conjuntos bem definidos 4. Que existam uma ou mais saídas 5. Que exista uma condição de fim sempre atingida para quaisquer entradas e num tempo finito. Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador.
FORMAS DE REPRESENTAÇÃO DE ALGORITMOS Dentre as formas de representação de algoritmos mais conhecidas, sobressaltam: a Descrição Narrativa o Fluxograma Convencional o Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol.
Descrição Narrativa
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Nesta forma de representação os algoritmos são expressos directamente em linguagem natural. Como por exemplo, têm-se o algoritmo seguinte: – Cálculo da média de um aluno: – Obter as notas da primeira e da segunda prova – Calcular a média aritmética entre as duas – Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado Esta representação é pouco usada na prática porque o uso de linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões.
Fluxograma Convencional e Diagrama de Blocos É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das idéias contidas nos algoritmos. A figura 2.1 mostra as principais formas geométricas usadas em fluxogramas.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
A figura 2.2 a seguir mostra a representação do algoritmo de cálculo da média de um aluno
sob a forma de um fluxograma.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Pode-se perceber então, que tudo pode ser um algoritmo.
O sistema de buscas do Google, tem um algoritmo por trás dele, o facebook, também tem um
algoritmo, e assim sucessivamente.
Para aprendermos melhor, antes de passar para qualquer tipo de linguagem de programação
propriamente dita, iremos aprender a programar em pseudocódigo, conhecido como Portugol
ou Português Estruturado.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Pseudocódigo . Portugol (Português Estruturado)
Esta forma de representação de algoritmos, , é bastante rica em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação, sendo portanto a forma de representação de algoritmos que será adoptada nesta disciplina. a seguir iremos passar a “programar” nesta linguagem, utilizando a ajuda do software VisualG.
O que são variáveis em programação?
Desenho de como seria uma variável
Vamos entender variável, como uma caixa, na qual podes dar o nome que achares
conveniente, e guardar o conteúdo que desejares.
Ou seja, toda a variável tem um nome, valor e tipo.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
6. são verdadeiros e quais valores são falsos. Utilize os valores: X=1 A=3 B=5 C=8 D=7 E=6 a) nao (x>3) ( ) b) (x<1) e nao (b>d) ( ) c) nao (D<0) e (C> 5) ( ) d) nao (X>3) ou (C< 7) ( ) e) (A > B) ou (C> B) ( ) f) (X>=2) ( ) g) (X< 1) e (B>=D) ( ) h) (D >3) ou (C> 5) ( ) i) nao (D>3) ou nao (B<7) ( ) j) (A>B) ou nao (C>B) ( ) 3) Indique a saída dos trechos de programa em português estruturado, mostrado abaixo. Para as saídas, considere os seguintes valores: A=2, B=3, C=5, D=9 e E=6. a) se nao (D > 5) entao
X (A + B) * D
senão
X (A - B) / c Fim_se escrever X Resposta: ____ b) se (A > 2) e (B < 7) entao
X (A + 2) * (B - 2)
senao
X (A + B) / D * (C + D) fim_se escrever X Resposta: ____
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
c) se (A = 2) ou ( B < 7) entao
X (A + 2) * (B - 2)
senao
X (A + B) / D * (C + D) fim_se escrever X Resposta: ____ d) se (A >= 2) ou (C <=1) entao
X (A + D)/2
senao
X D * C fim_se escrever X Resposta: ____ e) se nao (A > 2) ou nao (B < 7) entao
XA + E
senao
X A / E
fim_se escrever X Resposta: ____ f) se nao (A > 3) e não (B < 5) entao
X A + D
senão
X D / B fim_se escrever X
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Resposta: ____ g) se (C >=2) e (B <= 7) entao
X (A + D)/2
senão
X D * C fim_se escrever X Resposta: ____ h) se (A > 2) ou nao (B < 7) entao
X A + B - 2
senão
X A - B fim_se escrever X Resposta: ____
Quando e como utilizar o operador SE-ENTAO-SENAO, depende da ocasião, quando há
muitas escolhas diferentes, o código pode ficar grande, e de difícil leitura…
Nesse caso, entra mais uma função condicional, a :
ESCOLHA… CASO… CASO… OUTROCASO…
Ela é tão simples quanto o SE,a seguir temos um algoritmo, sobre a classificação de atletas
pela sua faixa etária, este exemplo, poderia ter sido feito utilizando a estrutura condicional se –
então, mas aqui utilizarei o escolha – caso, para que vocês entendam como funciona o
mesmo.
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Mas antes do algoritmo…
Vamos saber o que são comentários?
os comentários são bocados no código em que podemos escrever algo sem que o
interpretador ache que isso é uma linha de código.
Em portugol, os comentários são tudo aquilo precedido por // (duas barras)
Os comentários num código, servem para facilitar o entendimento por outros programadores..
Algoritmo
algoritmo “Classificação de Atletas”
var
nome, categoria: caractere
idade: inteiro
inicio
escreva(“Digite o nome do atleta: “)
leia(nome)
escreva(“Informe a idade do atleta: “)
leia(idade)
// Até aqui tudo bem, ele pede o nome e idade, lê os valores e coloca nas respectivas variáveis
escolha idade
// A função escolha irá interpretar os casos abaixo em cima da variável idade
caso 5,6,7,8,9,10
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
// Caso a variável idade receba os valores de 5 a 10, irá atribuir na variável categoria o valor:
infantil
…. categoria <- “infantil”
caso 11,12,13,14,15
// Caso a variável idade receba os valores de 11 a 15, irá atribuir na variável categoria o valor:
juvenil
…. categoria <- “juvenil”
caso 16,17,18,19,20
// Caso a variável idade receba os valores de 16 a 20, irá atribuir na variável categoria o valor:
junior
…. categoria <- “junior”
caso 21,22,23,24,25
// Caso a variável idade receba os valores de 21 a 25, irá atribuir na variável categoria o valor:
profissional
…. categoria <- “profissional”
outrocaso
// E se a variável idade não receber nenhum dos valores acima mencionados, vamos atribuir a
variável categoria o valor: inválido
…. categoria <- “INVALIDO”
fimescolha
// O fimescolha finaliza a função que abrimos anteriormente
escreva(“Categoria: “,categoria)
// E este último escreva, serve para que possamos mostrar o resultado ao utilizador
fimalgoritmo
REVISÃO ESTRUTURAS CONDICIONAIS FAÇA UM ALGORITMO QUE receba o
número do mês e mostre o mês correspondente. Valide mês inválido
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Estruturas de repetição (cíclicas) o que é isso?
Bom, até o momento, sempre fizemos algoritmos lineares, ou seja, o algoritmo possui um
começo, meio e fim, e segue essa ordem…
As estruturas de repetição, irão repetir determinados comandos, até que uma comparação
lógica se torne verdadeira ou falsa.
O Algoritmo abaixo, lê o nome e a nota de três provas de três alunos diferentes…
Algoritmo "MediaHarmonica"
var
a, b, c, MH: real
nome: caractere
inicio
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das três provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A média harmônica do aluno: ", NOME, " é ", MH)
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Preenchimento de um vetor com um dado
Para i de 1 ate 10 faca
Vetor[i] <- 30
Colocar os números de 1 a 10 em Vetor
Para i de 1 ate 10 faca
Vetor[i] <- i
Colocar os números de 10 a 1 em Vetor
Para i de 1 ate 10 faca
Vetor[i] <- 10-i
1- Construa um algoritmo (pseudocódigo) para ler 10 números reais ,
armazena-los em um vetor e escreve-los de ordem inversa. var
V : vetor[1..100] de real
i, numero : inteiro
Inicio
Escreval ("Algoritmo Reverso")
Escreva ("Nº de Elementos = ")
Leia (numero)
Para i de 1 ate numero faca
Escreva ("Elemento[", i, "] =")
Leia (V[i])
Fimpara
Escreva ("Números na Ordem Inversa")
Para i de 1 ate numero faca
Escreva (V[numero - i +1])
Fimpara
fimalgoritmo
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Construa um algoritmo (pseudocódigo) para ler cinco números reais,
armazena-los em um vetor e calcular a média entre eles. var
numero : vetor[1..5] de real
i: inteiro
soma:real
Inicio
soma<-0.0
Para i de 1 ate 5 faca
Escreva ("Digite um numero = ")
Leia (numero[I])
SOMA <-SOMA + NUMERO[I]
Fimpara
Escreva ("media= ",SOMA/5)
Fimalgoritmo
Construa um algoritmo (pseudocódigo) para ler cinco números reais,
armazena-los em um vetor e calcular qual é o maior deles e em que posição
se encontra no vector.
var
x:inteiro
i,n ,posicao,programa: inteiro
maior: real
A: vetor[0..100] de real
sair: caractere
inicio
programa <- 1
enquanto programa = 1 faca
limpatela
Escreva("Numero de elementos?: ")
Leia(n)
Para i de 0 ate n-1 Faca // Ler elementos do vetor
Escreva("A[",i,"]=")
Leia(A[i])
FimPara
maior <- A[0] // Assumir 1o elemento o maior
posicao<-0
Para i de 1 ate n-1 Faca // Procurar maior do 2 elemento em diante
Se (A[i] > maior) Entao
maior <-A[i]
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
posicao<-posicao+1
FimSe
FimPara
Escreval("Maior elemento = ",maior," na posição", posicao)
escreva("Deseja finalizar? (S/N) ")
leia(sair)
se sair = "S" entao
programa <- 0
fimse
fimenquanto
fimalgoritmo
Construa um algoritmo (pseudocódigo) para somar dois vetores e
armazena-los em um vetor : var
i: inteiro
A: Vetor[1..6] de real
B: Vetor[1..6] de real
R: Vetor[1..6] de real
Inicio
Para i de 1 ate 6 Faca
Escreva("entre com o valor para a posição ", i ," novetor A: ")
Leia(A[i])
Escreva ("entre com o valor para a posição ", i ,"no vetor B: ")
Leia (B[i])
R[i]<- A[i] + B[i]
Fimpara
Para i de 1 ate 6 faca
Escreval( i , " - " , R[ i ] )
Fimpara
Construa um Algoritmo. Dada uma classe de N >= 1 alunos, este algoritmo lê suas notas, calcula a média da classe e imprime quais os alunos possuem nota acima da média
var
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
soma, media: real
nota: vetor[1..100] de real
i, N : inteiro
Inicio
Escreva("Numero de alunos? ")
Leia(N)
Para i de 1 ate N Faca // Ler notas dos alunos
Escreva("Nota do aluno ",i,"? ")
Leia(nota[i])
FimPara
soma <- 0.0 // Calcular a média da classe
Para i de 1 ate N Faca
soma <- soma + nota[i]
FimPara
media <- soma / N
Escreval("Media = ",media)
Escreval("Alunos com nota acima da media")
Para i de 1 ate N Faca // Alunos com nota > media
Se (nota[i] > media) Entao
Escreval("Aluno ",i," Nota = ",nota[i])
senao
Escreval("não existem alunos com nota acima da média")
FimSe
FimPara
matriz?
Uma matriz, é nada mais, do que Vetores bi-dimensionais. Onde podemos aceder os dados ali
contidos através de dois valores. As “linhas” e as “colunas”.
Sintaxe…
1 nome: vetor[<linhas>,<colunas>] de <tipo>
Exemplo:
1 minhavar: vetor[1..3,1..3] de caractere
Onde o primeiro valor refere-se as linhas e o segundo as colunas. O exemplo acima, refere-se
a criação de uma matriz com 3 linhas e 3 colunas, conforme imagem abaixo:
Educação e Formação de Adultos – Tipologias de nível secundário
AALLGGOORRIITTMMOO EE LLÓÓGGIICCAA DDEE PPRROOGGRRAAMMAAÇÇÃÃOO FFOORRMMAADDOORR:: JJOOSSÉÉ BBAATTIISSTTAA
Como posso atribuir ou visualizar dados na minha matriz?
Para atribuir dados a uma determinada posição em uma Matriz, manteremos o mesmo padrão
para variáveis comuns ou vetores.
* Para atribuir um determinado valor:
melhorblog[1,2] <- "viseu online"
Atribui a palavra viseu online na posição (1,2) da matriz melhorblog.
* Para ler determinado valor:
escreva("O melhor blog é: ",melhorblog[1,2])
Lê o valor que se encontra na posição (1,2) da matriz melhorblog.
Construa um Algoritmo. Para preencher uma matriz 5x5 (25 elementos) com valores de 1 até 25 automaticamente e depois o mesmo algoritmo inseridos pelo utilizador