Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Universidade Federal do Ceará – Campus Russas
Linguagens de Programação
Prof. Ms. Rafael Ivo
Lista de Exercícios 4 – Tipos
1) Defina tipo.
2) O que é um erro de tipo?
3) Qual a diferença entre uma linguagem com tipagem estática e tipagem dinâmica?
4) Qual a diferença entre uma linguagem fortemente tipada e fracamente tipada?
5) O que é o erro de overflow e porque ele acontece?
6) O operador “+” realiza a soma de dois números na maioria das linguagens. Ele realiza a mesma
operação quando recebe dois valores inteiros e quando recebe dois valores de ponto flutuante?
Justifique sua resposta.
7) O que acontece na maioria das linguagens quando duas variáveis de tipos diferentes estão sendo
combinados por um operador?
8) Diferencie conversão implícita de conversão explícita.
9) Diferencie conversão limitante de conversão ampliadora.
10) Por que conversões limitantes não são feitas implicitamente em uma linguagem fortemente
tipada?
11) É possível que uma conversão ampliadora resulte em perda de dados? Se sim, cite um caso.
12) Diferencie equivalência de nomes e equivalência estrutural de tipos.
13) O que é um subtipo?
14) O que é polimorfismo paramétrico?
15) Este código em Java compila? Justifique sua resposta.
byte b = 50;
b = b * 50;
16) No código escrito em C abaixo, quais conversões são válidas?
void main(){
int a = 22;
long b = 44;
double c = 1.406;
b = a;
c = a;
a = b;
b = c;
}
17) Qual deve ser o tipo de dados da variável e para que o programa abaixo seja correto?
void main(){
float a;
int b;
long int c;
double d;
...
e = a*b/c*d;
}
18) Analise a última linha de cada código. Indique todas as conversões que estejam acontecendo e
os tipos dos operadores. Indique, se possível, o valor final da variável x.
a) Código 1
float x;
int y = 5, z = 3;
x = y/z;
b) Código 2
float x;
int y = 3, z = 2;
x = (float)y/z;
c) Código 3
int x;
float y = 3.2, z = 1.6;
x = (int)y/(int)z;
19) O programa abaixo escrito em Java está correto? Explique o que acontece em cada sentença de
atribuição.
class Animal{
}
class Gato extends Animal{
}
public class Principal{
public static void main(String[] args){
Gato miau, persa;
Animal pet;
miau = new Gato();
pet = miau;
persa = (Gato) pet;
}
}
20) No poker, uma pessoa tem 5 cartas na mão. Cada carta possui um número ou letra e um naipe.
Os naipes podem ser copas, espadas, paus e ouros. Crie um trecho de código em C que modele estas
informações usando enumerações, estruturas e matrizes.
21) Na estrutura de dados árvore binária, cada nó da árvore possui um elemento a ser armazenado
(ex: um inteiro) e possivelmente duas árvores binárias filhas. A figura abaixo mostra o esquema
gráfico de uma árvore binária. Crie um trecho de código em C que modele esta estrutura.

Mais conteúdos dessa disciplina