Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva...
Transcript of Engº Pedro CostaAcessibilidade e Programação Web 1 Workshop Comunicação Inclusiva...
Engº Pedro Costa Acessibilidade e Programação Web 1
Workshop
Comunicação Inclusiva
Acessibilidade e Programação Web
Engº Pedro Costa Acessibilidade e Programação Web 2
Programação
Definição e análise do problema
Um programa deve ser projectado de modo a permitir resolver os problemas a que se propõe, de um modo simples e eficaz. O utilizador final, ou seja aquele que na realidade o vai utilizar, pretende uma ferramenta de trabalho, de uso simples, que lhe resolva os problemas e não lhe crie dificuldades suplementares devidas à sua complexidade. Nesta fase procede-se então à análise das necessidades em termos de entrada (Input) a introduzir, de saídas (Output) a obter, mapas , relatórios, para impressora, monitor ou ficheiros.
Compreensão do problema; Estudo dos dados de entrada; Estudo dos resultados de saída; Estudo das relações entre as entradas e saídas.
Engº Pedro Costa Acessibilidade e Programação Web 3
Programação
Desenho do algoritmo - Definição dos procedimentos necessários à resolução do problema, desde a validação dos dados (de modo a corrigir possíveis erros de operação) até à definição dos procedimentos de leitura e escrita em periféricos, cálculos, comparações, movimentações, etc.
Codificação e teste do programa - Após a definição do problema e da escolha da linguagem de programação a utilizar, procede-se então à elaboração do respectivo código, e ao teste e correcção de erros.
Elaboração da documentação - Esta fase ultima a elaboração do programa permitindo o conhecimento geral do programa, dos meios humanos e físicos (hardware) necessários, e ainda a descrição dos procedimentos de operação e manutenção do programa.
Engº Pedro Costa Acessibilidade e Programação Web 4
Programa
• Flexibilidade - um programa deve ser claro e organizado, para facilitar a sua leitura e compreensão não só ao seu autor mas também aos seus colaboradores
• Fiabilidade - a aplicação deve ser robusta, quer dizer, capaz de recuperar perante erros e utilização inadequada por parte do utilizador .
• Portabilidade - O desenho da aplicação deve permitir a codificação em diversas linguagens, utilizando para tal um desenho único e universal, sem utilizar declarações e operadores específicos de alguma linguagem.
• Mobilidade - a sua instalação em diversas máquinas deve ser possível e fácil. Deve ainda facilitar ao máximo sua manutenção, alteração e actualização.
• Eficiência - o programa deve aproveitar adequadamente os recursos da máquina. Isto é conseguido minimizando a utilização da memória, o tempo de processamento e de execução Não nos devemos deixar levar pelo surgimento de máquinas cada vez mais potentes nos dias de hoje, e sempre que possível devemos considerar que dispomos de poucos recursos.
Engº Pedro Costa Acessibilidade e Programação Web 5
Tipo de dados
• Os programas vão manipular dados. Esses dados podem ser de vários tipos.
Tipo ExemploInteiros 1, 0 , -12 , 124
Reais 1.2 , 2.4, -5.233
Alfabético “a”, “abc”, “ola”, “-2”, “100”
Lógico Falso, Verdadeiro
Data 18-02-2008
Engº Pedro Costa Acessibilidade e Programação Web 6
Constantes e Variáveis
• Quando queremos guardar os dados manipulados pelo algoritmo,
usamos as variáveis. – ocupam um espaço na memoria do computador – Os dados podem ser guardados na variável:
• atravês da atribuição
– media = 5 ( coloca o valor 5 na variável media)
• Atraves da leitura
– Ler(media) (guarda na variavel media o valor introduzido pelo utilizador)
• Quando queremos guardar dados que se vão manter ao longo do algoritmo, usamos constantes ( por norma os nomes das constantes são em maiúsculas )
Engº Pedro Costa Acessibilidade e Programação Web 7
Variáveis
• Nomes da variáveis podem ser de 1 ou mais caracteres
• Não podem ser utilizados na formação de nomes de variáveis outros caracteres que não sejam letras, números e o _ .
• O 1º carácter só pode ser uma letra, nunca pode ser um número.
• O nome da variável não pode ter espaços em branco, isso é substituído pelo _ underline
• Não pode ser nome de uma variável uma palavra reservada a uma instrução da linguagem de programação
• Por norma o nome da variável deve de ser sugestivo, de modo ao ler-se o programa conseguíamos entender o que a variável represente
Engº Pedro Costa Acessibilidade e Programação Web 8
Operadores
Operador Descrição
Operador Atribuição
= <- Atribui o valor da direita à variavel da esquerda
Operadores Aritméticos
+ adição
- subtração
* multiplicação
/ divisão
% Resto da divisão de dois inteiros
Operadores Lógicos
e disjunção
ou conjunção
negar negação
Engº Pedro Costa Acessibilidade e Programação Web 9
Operadores
Operador Descrição
Operador Relacional
= igualdade
< menor que
<= Menor e igual que
> Maior que
>= Maior e igual que
<> desiguldade
Engº Pedro Costa Acessibilidade e Programação Web 10
Pseudo Codigo / Fluxograma
Pseudo Código Fluxograma Descrição
Inicio Inicio do algoritmo
Fim Fim do algoritmo
Ler Operação de leitura
Escrever Operação de escrita
Inicio
Fim
data
“escrever”
No fluxograma a ligação entre símbolos faz-se através de setas
Engº Pedro Costa Acessibilidade e Programação Web 11
1º Exemplo
• Escrever o algoritmo que pede dois números e calcula a sua soma.
Pseudo código
Inicio
Escrever(“ Introduza dois números”)
Ler(numero1,numero2)
Soma=numero1+numero2
Escrever(“ A soma dos numeros: “, numero1,”e”, numero2,”é igual a “, soma)
fim
Inicio
“Introduza dois números”
Numero1numero2
Soma=numero1+numero2
“ A soma dos numeros: “, numero1, ”e”, numero2,”
é igual a “ , soma
Fim
Engº Pedro Costa Acessibilidade e Programação Web 12
Exercícios
1. Elaborar um programa que lê uma temperatura em graus celsius e apresentá-la convertida em graus Fahrenheit.
2. Elaborar um programa que faça a conversão de uma quantidade de dólares para euros.
3. Elaborar um programa que calcule o volume de uma caixa rectangular.
Para cada um deles fazer o pseudo código e fluxograma.
Engº Pedro Costa Acessibilidade e Programação Web 13
Tipos de instruções
• Atribuição– Permite alterar o valor de uma variável
• Condição– Permite a execução condicional de instruções.
• Ciclo ou Repetições– Permite a execução repetida de instruções
Engº Pedro Costa Acessibilidade e Programação Web 14
Condição
Se condição
Então
bloco de instruções1
Senão
bloco de instruções2
Fim_se
condição
bloco de instruções1 bloco de instruções2
Se a condição for verdadeira o algoritmo executa o bloco de instruções1 se for falsa executa o bloco de instruções2.
A condição pode ser simples ou composta:
media<4
soma>=10
(soma>4) e (soma<10)
(Media=5) ou (media=10)
V F
Engº Pedro Costa Acessibilidade e Programação Web 15
Condições compostas
Condição1 Condição2 Resultado
Falso Falso Falso
Falso Verdadeiro Falso
Verdadeiro Falso Falso
Verdadeiro Verdadeiro Verdadeiro
Condição1 Condição2 Resultado
Falso Falso Falso
Falso Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro
Disjunção ou Conjunção e
Engº Pedro Costa Acessibilidade e Programação Web 16
2º exemplo
• Dados dois números encontrar o maior
InicioEscrever(“ Introduza dois números”)Ler(numero1,numero2)Se numero1>numero2 então
maior=numero1Senão
maior=numero2Fim_seEscrever(“ O maior número entre : “, numero1,”e”, numero2,”é o “, maior)fim
Engº Pedro Costa Acessibilidade e Programação Web 17
Exercícios
1. Elaborar um programa em que dados três números encontre o menor.
2. Elaborar um programa em que dados dois números apresente a diferença do maior para o menor
3. Elaborar um programa em que dado 4 notas de um aluno, mostra para cada nota se o aluno passou ou não e no fim mostra a média do aluno
Para cada um deles fazer o pseudo código e fluxograma.
Engº Pedro Costa Acessibilidade e Programação Web 18
Repetições
repetir enquanto condiçãoBloco de instruçõesfim_enq
condição
bloco de instruçõesF
VQuando queremos repetir um bloco de instruçõesEnquanto acontece determinada condições
Quando queremos repetir um bloco de instruçõesDurante um numero determinado de vezes
repetir para contador=inicio Até fim Bloco de instruções
Fim_para
While do
For
Engº Pedro Costa Acessibilidade e Programação Web 19
3º exemplo
• Escrever um algoritmo que permita calcular a média das notas da turma de multimédia no workshop.
InicioEscrever(“ Número de alunos”)Ler(nalunos)Soma=0i=1Repetir enquanto i<=nalunos
escrever(“Nota do “, i, “º alunos”)ler(nota)soma=soma+notai=i+1
Fim_enqMedia=soma/nalunosEscrever (“ a média das notas dos “, nalunos, “ é de: “, media)fim
InicioEscrever(“ Número de alunos”)Ler(nalunos)Soma=0Repetir para i=1 até nalunos
escrever(“Nota do “, i, “º alunos”)ler(nota)soma=soma+nota
Fim_paraMedia=soma/nalunosEscrever (“ a média das notas dos “, nalunos, “ é de: “, media)fim
Engº Pedro Costa Acessibilidade e Programação Web 20
Exercícios
1. Escrever um algoritmo que efectue a leitura de 10 números e apresente no final o somatório e a média dos valores.
2. Escrever um algoritmo permita determinar o maior e o menor de uma lista de 10 números introduzidos pelo utilizador
3. Escrever um algoritmo que apresente os valores de conversão de graus celsius em Fahrenheit, de 10 em 10 graus, iniciando a contagem em 10ºC e finalizando em 100ªC.
Engº Pedro Costa Acessibilidade e Programação Web 21
Matrizes ou Vectores
Quando queremos guardar por exemplo as notas dos alunos do exercício anterior vamos ter as seguintes variáveis : nota1,nota2,nota3,nota4,nota5….
Isto torna-se impraticável se for 100 ou mil notas. Para isso existe os vectores que tem um nome e um atributo numérico.
nota[1 até 1000] temos o vector nota que pode ter valores desde posição um até à mil
nota[1]=2nota[3]=6 quer dizer que o vector nota na posição 3 tem o valor
6nota[6]=10
A grande vantagem é que podemos usá-la no bloco de instruções das repetições
Repetir para i=1 até 1000ler (nota[i])
Fim_para
Engº Pedro Costa Acessibilidade e Programação Web 22
4º exemplo• Escrever um algoritmo que dado um vector de 100 elementos,
encontre se existir um determinado elemento dado pelo utilizadorIniciovect[1 ate 100]Escrever(“ Qual o número que pretende ?”)Ler(num)cond=falsoi=1Repetir enquanto (i<=100) e (negar(cond))
se vect[i]=num entãocond=verdadeiro
senãoi=i+1
fim_seFim_enqSe cond então
Escrever (“ Foi encontrado o número “, num, “na posição “ , i)Senão
Escrever( “Não foi encontrado”)Fim_sefim
Engº Pedro Costa Acessibilidade e Programação Web 23
Exercícios
1. Escrever um algoritmo que lê um vector com 10 elementos, construa outro vector com esses elementos na ordem invertida, ou seja o primeiro elemento do 1º vector é o último elemento do 2º vector. No fim mostre os dois vectores.
2. Escrever um algoritmo que lê um vector com 12 elementos e construa outro vector em que copie os elementos da 1º matriz se forem pares e multiplique por 2 se forem impar.
3. Escrever um algoritmo que lê 25 valores de temperaturas em graus celsius num vector e construa outro vector com a respectiva conversão em graus fahrenheit.
Engº Pedro Costa Acessibilidade e Programação Web 24
Sub rotina
• Existem dois tipos de sub rotinas: as funções e o procedimentos. A utilização de sub rotinas permite:
– Modularizar– Simplificar
• Quanto mais independentes as sub rotinas forem mais fácil se torna detectar erros.
• Quando se chama uma sub rotina estamos a passar o controlo para essa rotina. A diferença entre funções e procedimentos é que a primeira retornam um valor e a segunda não.
• As sub rotinas executam operações sobre dados que lhe são passados. As sub rotinas normalmente possuem parâmetros.
• As variáveis criadas nas sub rotinas são destruídas no momento que a sub rotina termina.
Engº Pedro Costa Acessibilidade e Programação Web 25
Função
Função nome (lista de parâmetros)
Bloco de instruções
Nome=expressão
Bloco de instruções
Fim-função
Exemplo: Calcular o cubo de um numero
Função cubo(num)
cubo=num*num*num
Fim_função
Inicio
Escrever(”Introduza um numero”)
Ler(n)
Escrever( “O cubo de “, n ,” é “, cubo(n))
fim
Engº Pedro Costa Acessibilidade e Programação Web 26
Procedimento
procedimento nome (lista de parâmetros)Bloco de instruções
Fim-função
Exemplo: Calcular o cubo de um numero
procedimento cubo(num)
total=num*num*num
Escrever( “O cubo de “, num ,” é “, total)
Fim_função
Inicio
Escrever(”Introduza um numero”)
Ler(n)
Cubo(n)
fim
Engº Pedro Costa Acessibilidade e Programação Web 27
Exercícios
1. Escrever um algoritmo que efectue a leitura do nome e do sexo de uma pessoa. E por meio de uma sub rotina deve de apresentar a mensagem “Exmo. Senhor” e o nome se for masculino ,e “Exma. Senhora “ e o nome se for feminina.
2. Escrever um algoritmo que use uma sub rotina em que calcule a conversão de dólar para euro.
3. Escrever um algoritmo que dado dois vectores de 10 elementos cada um ordenados do menor para o maior, junte num terceiro vector com 20 elementos também ordenado do menor para o maior.
4. Escrever um algoritmo em que dado um vector de 12 elementos ordená-lo do menor para o maior.