Vous êtes sur la page 1sur 17

Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias

Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias


y Resumo da aula teórica n^ 7

> Estruturas de Controlo I - Selecção


> Selecção Simples
> if - then
- Permite decidir entre executar ou não um
conjunto de instruções.
> Selecção Alternativa
> if - then - else
- Permite escolher de entre 2 conjuntos de
instruções qual deles deve ser executado
> else-if
-“... continua sequencialmente até que uma
expressão seja verdadeira ou sejam todas falsas …”
> Selecção Múltipla
> switch
- É usada essencialmente para selecção de
variáveis discretas
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
^ Aula 1

Introdução à cadeira
>

Generalidades sobre a
>

linguagem de programação JAVA

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página3de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
> Aula 2

Definição de algoritmo

Definição de programa

Ciclo simplificado de desenvolvimento de


programas
Abstracção

•Sintaxe
Semântica

•Compilador
•Interpretador
Programação imperativa

Programação funcional

Programação em lógica

Programação orientada a objectos


1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página 4 de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
> Aula 3
> Exemplificação de processo de análise para
um problema simples
>Pseudo-código
>Fluxograma
>Definição de cenários de teste
>Alterações propostas
> Estrutura de um programa
>Declarações
>Instruções >
Comentários
> Sintaxe de uma linguagem
>Palavras reservadas
>Símbolos
>Identificadores
>Valores
1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8
slguerreiro@gmail.com Página5de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
> Aula 4

>Alocação de espaço de trabalho para


um programa, num computador
>Variáveis
>Tipos de dados
>Propriedades de uma variável
>Constantes
>Tipos de dados básicos em JAVA
>Operadores nativos
>Classes de operadores
>Expressões

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página6de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
>Aula 5
> Ordem de avaliação dos operadores numa
expressão
Parêntesis da expressão
-

Precedências dos operadores,


-

previamente definidas
Associatividade dos operadores,
-

previamente definidas
-Operadores unários
-Conversão de tipos de dados
-Entre mesmo tipo de dados
-Entre tipos de dados diferentes
Converter para maior precisão
-

Converter para menor precisão


-

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página7de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
>Aula 6

>Input em JAVA
>Output em JAVA

>Sequência de expressões acompanhado com inputs do


utilizador e output para o utilizador

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página8de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
> Aula 7

> Estruturas de controlo genericamente


>Selecção Simples
>Selecção Alternativa

>Selecção Múltipla

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página9de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
Exercícios Aula 1

Exemplifique 2 tipos de aplicações


distintas que podem ser


implementadas na linguagem de
programação JAVA.
A linguagem de programação JAVA

permite a portabilidade de código


entre sistemas operativos ?

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página10de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
Exercícios Aula 2

O que é um algoritmo ? Exemplifique.


O que é um programa ? Exemplifique.
Diga o que é a abstracção e explique as suas
vantagens. Exemplifique abstracção.
O que é a sintaxe de uma linguagem? Exemplifique.
Exemplifique algumas palavras reservadas de uma linguagem de
programação.
Diga o que é a semântica de uma linguagem? Exemplifique.
Diga, exemplificando, o que é um interpretador ?
Qual é a diferença entre um compilador e um interpretador ?
Para que seja possível executar sourcecode na linguagem de
programação JAVA deve usar um compilador ou um
intrepretador ?
Enuncie os diferentes paradigmas de linguagens de programação
que conhece.
Em que paradigma de linguagem de programação se inserem
as seguinte linguagens de programação ? Justifique.
– JAVA,
– C,
– Prolog,
– Scheme,
– C++.

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página11de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
Exercicios Aula3
Enumereosconstituintes da sintaxe de uma
linguagem de programação imperativa.

Elaborar um algoritmo, usando pseudo-código e


fluxograma para os seguintes enunciados:
• “calcular a média de um conjunto de números
inteiros que se sabe terminar com um número
negativo.”
>“todos os dias os empregados de uma empresa marcam o
ponto à chegada de manhã, à saída para almoço, à
entrada depois do almoço e ao fim do dia.”
>“calcular o vencimento de um funcionário de uma
empresa no final de um mês. Ao vencimento base do
funcionário juntam-se as horas extras que fizer. As
horas extras são pagas pela seguinte fórmula:
>Entre 1-10 horas 1/50 vencimento
>entre 11-20 horas 1/45 vencimento”

> “calcular a área total das paredes de uma caixa de


secção rectangular a partir das suas dimensões”
1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8
slguerreiro@gmail.com Página12de 17
Fundamentos de Programação
E i i A l 4
Universidade Lusófona de Humanidades Tecnologias
>Em que componente física do computador residem as variáveis declaradas num programa?
>É obrigatório declarar uma variável e inicializá-la ?
>Quais os cuidados a ter, na codificação, quando não se inicializa uma variável ?
>Qual é a forma geral para declaração de variáveis numa linguagem imperativa ?
>Qual é a diferença entre variáveis e constantes ?
>Em que situações se deve optar por usar variáveis ou por usar constantes ?
>Declare uma variável de nome carrinho_compras do:
1.tipo inteiro.
2.tipo virgula flutuante de precisão simples.
3.tipo virgula flutuante de precisão dupla.
4.tipo inteiro, inicializada a zero.
5.tipo virgula flutuante de precisão simples, inicializada a zero.
6.tipo virgula flutuante de precisão dupla, inicializada a zero
> Declare uma variável de nome carrinho_cheio do :
1.tipo boleano.
2.tipo boleano, inicializada a falso
> Declare uma variável de nome estado_do_carrinho do:
1.tipo caracter.
2.tipo caracter, inicializada a vazio.
> Dos seguintes valores quais são válidos em JAVA e quais não são válidos ? Indique o respectivo
tipo
no primeiro caso e justifique o segundo
0,8
2.5E-1 a
x16
>Numa linguagem de programação imperativa quais as caracterítiscas que diferenciam os tipos de dados ?
>Na linguagem de programação JAVA, em que diferem os tipos de dados byte, short, int ou long ?
>Qual é a diferença entre um operador e um operando ?
>Identifique se cada uma das seguintes expressões estão correctas:
integer d; float i; double f;
int a , b , c;
char char;
int Xpto , xPTo;
char c1 , double c2;
double v = 1.23 , y, z = 5;
double v = 1.23 , y, y = 5;

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página13de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
Aula 5 - exercicios
• Qual a ordem de execução e resultado final de cada uma das seguintes expressões ?
2.5 + 6 % 4 * 2.1
(3 + 5 / 2) >= (1 - 4 % 2)
x = 3 == 4
8 - 1 != 3 + 4
'a' < 'b' || 'c' < 'a'
(!a && b) || (a || !b) , onde a=true e b=false
1+2*3/4-5*6/(7+8)
resultado = ( i ++ * 8 ) / (int) ( 6 % -- j + 4.1 ) – i * j;
• Qual é o valor de resultado nas duas situações ? E da variável i ?
float i=10; float
resultado; resultado = i
-- * 2.5;

float i=10; float


resultado; resultado = --
i * 2.5;
• Quais os valores finais de x, y e z ?
/* Programa exemplo para variáveis do mesmo tipo de dados */
int x=4;
int y;
int z=1;
y = x + z;
x = x * 2;
z = y - x;
• Qual o valor da variável total ? Qual o tipo de dados de “(i ++* 2.5)” ? Qual o tipo de dados, final, de i ? Qual o tipo de
dados, final, de total ?
/* Programa exemplo para variáveis de tipos de dados diferentes */
short i = 11;
double total;
total = (i ++* 2.5) / 6;
• Quais os valores calculados em x ?
double x , y = 6.3 , z = 2.2;
x = y / z;
x = (int) y / z;
x = y / (int) z;
x = (int) y / (int) z;
x = (int) (y / z);
• Qual o valor de total ? Qual o valor de total2 ? Qual o valor de i ? Qual o valor de j ?
short i = 22 , j = 5;
double total , total2;
total = (double) (( i ++ * 8 ) / ( 6 % -- j + 4 ));
total2 = ( i ++ * 8 ) / (int) ( 6 % -- j + 4.1 );
•Como fazer a desmultiplicação da expressão: ”total = (double) (( i ++ * 8 ) / ( 6 % -- j + 4 ));” em várias
expressões ?
•Explique, a forma de resolução de ambiguidades, entre operadores, na linguagem de programação JAVA.
•Qual é a diferença entre apresentar um operador unário à direita ou à esquerda do operando ?

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página14de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
Exercícios Aula 6
– Qual a entidade computacional que assegura
os input e os outputs invocados pela linguagem de
programação ?
– Escreva um programa, que recebe um valor de vírgula
flutuante, representando uma nota quantitativa de um
aluno (entre 0 e 20) permita a sua apresentação, ao
utilizador, numa nota qualitativa, de acordo com a
seguinte definição:
18 a 20 -> Muito Bom
14 a 17 -> Bom
10 a 13 -> Suficiente
5 a 9 -> Mediocre
0 a 4 -> Mau
Desenvolva um programa que o ajude
a calcular a nota de um aluno,
sabendo que esta é definida da
seguinte forma = 50% médias das 2
frequências + 50% projecto

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página15de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias
Exercícios Aula 7
– Escreva um programa para verificar se um ano é bissexto. Um ano é bissexto se fôr
divisível por 4 e não fôr divisível por 100, a não ser que seja também divisível por
400. Por exemplo, 1984 é bissexto, 1100 não é e 2000 é bissexto.
– Em que condições se deve optar por selecção alternativa ou por selecção múltipla ?
– Escreva um programa para calcular a soma dos dígitos de um número inteiro, do tipo
short. Por exemplo, 12345 tem o valor 15. Sugestão: use as funções de / e % para
cálculo da divisão e resto inteiro entre 2 números.
• Escreva um programa que seja capaz de identificar se um nº é par ou
ímpar. Considere os seguinte passos:
– Ler um nº inteiro do teclado –
Validar se o nº é par
•Se sim, escrever no ecrã: “o nº é par”
•Se não, escrever no ecrã: “o nº é ímpar”
• Defina um programa que permita transformar a nota de um determinado
aluno entre a escala 0 a 20 para E a A, onde:
A – [18 a 20]
B – [15 a 17]
C – [10 a 14]
D – [5 a 9]
E – [0 a 4]
Peça ao utilizador a nota na escala 0..20. No final, espera-se que o programa apresente a nota na escala E a A.
• Repita o exercicio anterior, agora usando selecção múltipla como
estrutura de controlo para as notas de 0...20

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página16de 17
Fundamentos de Programação Universidade Lusófona de Humanidades Tecnologias

>Dúvidas ?

1º Semestre 2007/2008 Prof. Sérgio Guerreiro Aula Teórica 8


slguerreiro@gmail.com Página17de 17