13 - Programação
13 - Programação
13 - Programação
SUMÁRIO PÁGINA
1. Conceitos Básicos 2
2. Estruturas de Controle 17
3. Programação orientada a objetos 27
Exercícios comentados 31
Considerações Finais 60
Exercícios 61
Gabarito 74
Estamos juntos?
PROGRAMAÇÃO
1. Conceitos Básicos
Toda e qualquer atividade, por mais intuitiva que nos pareça, pode ser
organizada em uma sequência lógica de passos. Por exemplo, para acessar um
curso completo em PDFs aqui no Estratégia, você precisa:
1.Ligar o computador;
2.Abrir o navegador de Internet;
3.Acessar o site do Estratégia;
4.Selecionar o curso;
5.Confirmar a compra;
6.Se não for usuário cadastrado do site, preencher cadastro;
7.Realizar o pagamento;
8.Acessar os PDFs.
Por exemplo, um algoritmo que calcule a média entre dois números inteiros
deverá:
Algoritmo
Exemplo de pseudocódigo:
ALGORITMO MEDIA_FINAL;
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO;
NOME: CARACTERE [35]
INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
ESCREVER (NOME, MEDIA)
FIM.
FLUXO DE DADOS
Indica o sentido do fluxo de dados. Conecta os
demais símbolos
TERMINAL
Indica o INÍCIO ou FIM de um processamento
Exemplo: Início do algoritmo
PROCESSAMENTO
Processamento em geral
Exemplo: Calculo de dois números
ENTRADA/SAÍDA (Genérica)
Operação de entrada e saída de dados
Exemplo: Leitura e Gravação de Arquivos
SAÍDA
DECISÃO
Permite elaborar processos de decisão
Inicio
Digite numero n1
Digite numero n2
SIM
n1 &
n2 =
NÃO 0?
Imprima o resultado
Fim
Variável
ALGORITMO MEDIA_FINAL;
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; (tipo de variável,
número inteiro)
NOME: CARACTERE [35]; (tipo de variável, texto até 35 caracteres)
INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
ESCREVER (NOME, MEDIA)
FIM.
Constante
Constante, conforme o próprio nome diz, difere da variável por não permitir
modificação em seus valores pelo algoritmo.
ALGORTIMO AREA_CIRCUNFERENCIA;
CONST PI = 3.1416;
VAR RAIO, AREA: REAL;
INICIO
LER (RAIO);
AREA:= PI * SQR(RAIO);
ESCREVER (‘AREA =’, AREA)
FIM.
Instrução
ALGORITMO MEDIA_FINAL;
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO;
NOME: CARACTERE [35]
INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
ESCREVER (NOME, MEDIA)
FIM.
Conjunto de instruções
ALGORITMO MEDIA_FINAL;
VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO;
NOME: CARACTERE [35]
INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
ESCREVER (NOME, MEDIA)
FIM.
E agora? Ficou mais compreensível o nosso algoritmo? Mas ainda tem mais!
A 1,33
B
10
Ex:
Registro PESSOA
Nome: caractere[35]
Endereco: caractere[100]
Idade: inteiro
1.5 Atribuição
Caso você tenha começado a sentença com “Média é igual a....” PARA
TUDO!!! Entremos na lógica de programação desde já!
Atribuição Exemplo
variável constante A 45 (“A recebe 45”)
variável variável A B (“A recebe o valor de B”)
variável expressão A B + C (“A recebe o valor de B + C”)
variável função A calculo(B,C) (“A recebe o retorno da função calculo”)
Operador Significado
> maior
< menor
= igual
>= maior ou igual
<= menor ou igual
<> diferente
Operação Operador
Negação não
Conjunção e
Disjunção ou
Disjunção exclusiva xou (lido como “ou exclusivo”)
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
Uma função, por sua vez, é um pouco mais peculiar, pois obrigatoriamente
retorna um valor.
ALGORTIMO AREA_CIRCUNFERENCIA;
CONST PI = 3.1416;
VAR RAIO, AREA: REAL;
INICIO
LER (RAIO);
AREA:= PI * SQR(RAIO);
ESCREVER (‘AREA =’, AREA)
FIM.
SQR(NUMERO:real):real;
VAR QUADRADO:real
INICIO
QUADRADO:= NUMERO * NUMERO;
RETORNAR QUADRADO;
FIM
Compreendeu a natureza da função?
Seu parâmetro, identificado como NUMERO, também deve ser um número real,
conforme definido neste exemplo. Internamente, ela trabalha apenas com uma
variável, que recebeu o valor do quadrado do número passado como parâmetro.
A instrução RETORNAR “devolve”, para quem chamou a função, o valor
calculado pela própria função.
Ficou complicado?
Vamos retratar essa diferença por meio de dois exemplos bem didáticos,
pode ser?
Algoritmo VALOR
VAR TESTE:inteiro
INICIO
TESTE 30;
MANIPULA_VARIAVEL(TESTE);
ESCREVA(TESTE);
FIM
Algoritmo MANIPULA_VARIAVEL(X:inteiro)
INICIO
X X + 10;
ESCREVA(X);
FIM
Algoritmo REFERENCIA
VAR TESTE:inteiro
INICIO
TESTE 30;
MANIPULA_VARIAVEL(TESTE);
ESCREVA(TESTE);
FIM
Algoritmo MANIPULA_VARIAVEL(X:inteiro)
INICIO
X X + 10;
ESCREVA(X);
FIM
Vamos executar o algoritmo REFERENCIA?
Resumindo:
2. Estruturas de controle
1.ALGORITMO MEDIA_FINAL;
2.VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO;
3.NOME : CARACTERE [35]
4.INICIO
5.LER (NOME);
6.LER (NOTA1, NOTA2, NOTA3, NOTA4);
7.MEDIA := (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
8.ESCREVER (NOME, MEDIA)
9.FIM.
ALGORITMO NUMEROS_IGUAIS;
1.VAR A, B: INTEIRO;
2.INICIO
3.LER (A, B);
4.SE (A=B)
5.ENTÃO ESCREVER (“Os números são iguais!”);
6.FIM.
ALGORITMO NUMEROS_IGUAIS;
1.VAR A, B: INTEIRO;
2.INICIO
3.LER (A, B);
4.SE (A=B)
ALGORITMO MAIOR_NUMERO;
1.VAR A, B: INTEIRO;
2.INICIO
3.LER (A, B);
4.SE (A>B)
5.ENTÃO ESCREVER (A);
6.SENAO ESCREVER (B);
7.FIM.
Acho que você já está entrando no ritmo!
A estrutura de seleção aninhada não chega a ser uma outra variante. Apenas,
mostra que é possível, de maneira variada, aproveitar-se com comandos if-then-
else. Veja:
ALGORITMO ACHA_MAIOR_NUMERO;
1.VAR A, B, C: INTEIRO;
2.INICIO
3.LER (A, B, C);
4.SE (A>B) E (A>C)
5.ENTÃO ESCREVER (A)
6.SENÃO SE (B>A) E (B>C)
7.ENTÃO ESCREVER (B)
8.SENÃO ESCREVER (C)
9.FIM.
ALGORITMO_NUMEROLOGIA
VAR opcao:INTEIRO
INICIO
ESCREVA(“Digite um número de 1 a 9”);
LEIA(opcao)
ESCOLHA(opção)
CASO 1
ESCREVA(“Você é azarado!”);
CASO 2
ESCREVA(“Você é sortudo!”);
CASO 3
ESCREVA(“Você vai passar nesse concurso!”);
.........
OUTROCASO (“Eu pedi pra escolher entre 1 e 9!”);
FIM
Para auxiliar o nosso teste de mesa, vamos fazer uma tabelinha controlando
as variáveis J e X, tudo bem?
J X
J X
1 2
Como J (3) é menor que 10, executamos o laço novamente, e X passa a valer
4, e J passa a valer 5.
J X
1 2
3 3
5 4
J X
1 2
3 3
5 4
7 5
9 6
Nesse momento, verifica-se que J (11) não é menor que 10. Aqui sim, o laço
termina, e pula-se, então, para a linha imediatamente após o laço.
Exemplo:
ALGORITMO EXIBE_NUMEROS;
Var N: inteiro;
Inicio
Leia(N);
REPITA
Escreva(N);
N:= N + 1
ATÉ N>10;
Fim
Bem, acho que você já percebeu que esse algoritmo vai escrever, na tela do
computador, números de N (que será a entrada do usuário) até 10, não é verdade?
ALGORITMO EXIBE_NUMEROS_COM_FOR;
Var N: inteiro;
Inicio
Leia(N);
PARA cont 1 até N passo 1 FAÇA
Escreva(cont);
FIM-PARA
Fim
A essa altura, creio que você já esteja entendendo bem. A estrutura PARA
criou uma variável, chamada cont, que inicia com o valor 1. Esse laço deverá se
repetir até que cont assuma o valor N, que, neste código, é uma entrada do
usuário.
Naturalmente, cont precisa sofrer alguma forma de modificação a cada
passagem pelo laço. Caso isso não ocorresse, ficaríamos em loop infinito, presos
no laço. Para o código acima, o passo 1 indica que, a cada volta no laço, cont
deverá ser incrementado em um inteiro.
Não existe uma convenção muito “amarrada” em pseudocódigo para esse
incremento. Esse laço também poderia estar escrito assim:
ALGORITMO EXIBE_NUMEROS_COM_BREAK;
Var N: inteiro;
Inicio
Leia(N);
FOR cont 1 até N passo 1
Escreva(cont);
if (cont >=25) break;
END-FOR
Imprima (“O programa chegou ao seu final”);
Fim
Neste caso, perceba que o break, nesse código, funciona como uma proteção.
Caso o usuário atribua um valor acima de 25 a N, quando aquele if se tornar
verdadeiro, o laço será interrompido “à força”, e o programa continua
normalmente, fora do laço. No exemplo acima, após imprimir 25 na tela do
computador, o algoritmo imprime O programa chegou ao seu final. Tudo bem?
O comando break pode ser utilizado com for, while e repeat until, sem
problemas.
public Pessoa(){
nome = “Nome Genérico”
}
this.idade = idadeatual;
}
}
// fim da declaração da classe Departamento
Vejam que neste pedaço de código estamos falando da classe Pessoa, que
contém atributos, como nome, cpf e idade, e também contém métodos, como o
setNome e getNome. Além disso, ele possui dois construtores, um Pessoa() e
Pessoa(String novo_nome, String numerocpf, int idadeatual).
A classe Funcionario, por sua vez, também tem seu atributo departamento,
e seus métodos setDepartamento e getDepartamento.
Enfim, vistos estes conceitos básicos, é hora de “enfiar a cara” nos exercícios.
Eles trarão exemplos práticos e ajudarão a consolidar os conceitos que vimos na
aula!
EXERCÍCIOS COMENTADOS
n r cont
n r cont
1 1
n r cont
2 1 1
2
n r cont
2 1 1
7 2 2
14
n r cont
2 1 1
7 2 2
5 14 3
3 70 4
4 210 5
840 6
Concorda comigo? Faça com calma, à mão. Perceba que cont alcança o valor
6, para então interromper o laço.
atribuir 50 a I
atribuir 0 a TOTAL
atribuir 0 a K
tes
testessomar 10 a K;
testesatribuir TOTAL+K a TOTAL
testesimprimir(K);
tesfim;
fim-enquanto;
imprimir(TOTAL);
a) 100 e 4
b) 150 e 5
c) 150 e 8
d) 150 e 9
e) 210 e 6
tes
testessomar 10 a K;
testesatribuir TOTAL+K a TOTAL
testesimprimir(K);
tesfim;
fim-enquanto;
tes
testessomar 10 a K;
testesatribuir TOTAL+K a TOTAL
testesimprimir(K);
tesfim;
fim-enquanto;
se (C ou (X – Y > 0))
se (verdadeiro e falso)
a) 6.
b) 22.
c) 86.
d) 0.
e) 342.
Quando nos deparamos com esse tipo de exercício, a melhor coisa que se
pode fazer, para não se perder durante a “debugação”, é fazer uma tabela com
todas as variáveis e os valores que elas assumem ao lo ngo da execução do
programa. Assim:
N 4
X 2
CONTA
CONTB
EXP
RESP 2
Agora, toda vez que alguma variável sofrer uma modificação, basta escrevê-
la na tabela, para não se perder. Sem mais rodeios, vamos encarar o algoritmo:
Com N,X e RESP recebendo seus valores iniciais, temos a primeira estrutura
para. Nela, CONTA recebe o valor 2 e tal estrutura deverá ser repetida até que
CONTA alcance o valor de N (ou seja, quando o valor de CONTA for maior ao valor
de N a estrutura deverá ser pulada). Detalhe: a estrutura tem passo 2, ou seja,
o contador incrementa de 2 em 2 inteiros. Como 2 é menor do que 4, entra-se.
Ao entrar no primeiro para, EXP recebe o valor de X, 2, CONTB recebe o
valor de 1, e precisamos entrar na segunda estrutura para. Mantenhamos o
controle do valor das variáveis!
N 4
X 2
CONTA 2
CONTB 1
EXP 2
RESP 2
No segundo para, a estrutura deverá ser executada até que CONTB atinja o
VALOR de CONTA-1, com passo 1. Como 1 é igual a 1, entra-se.
Dentro do segundo para, EXP recebe o próprio valor multiplicado por X, ou
seja, 2*2, que é igual a 4. EXP passa a valer 4.
No fim_para, volta-se ao seu início, incrementa-se o contador e verifica-se
a condição novamente. CONTB agora vale 2, CONTA -1 continua sendo 1. Logo, o
segundo para deve ser pulado.
Ainda estamos dentro do primeiro para! Chegamos á linha remanescente,
na qual RESP deverá receber seu próprio valor acrescido de EXP. 2 + 4, 6. Você
continua controlando as variáveis?
N 4
X 2
CONTA 2
CONTB 1 2
EXP 2 4
RESP 2 6
N 4
X 2
CONTA 2 4
CONTB 1 2 1
EXP 2 4 2
RESP 2 6
Na prática, EXP receberá o seu próprio valor multiplicado por X várias vezes.
Quando CONTB = 1, EXP será 2*2, 4;
Quando CONTB = 2, EXP será 4*2, 8;
Quando CONTB = 3, EXP será 8*2, 16;
Quando CONTB = 4, pula-se o segundo para.
Acompanhou?
N 4
X 2
CONTA 2 4
CONTB 1 2 1 1 2 3 4
EXP 2 4 2 4 8 16 16
RESP 2 6
Agora CONTA passou a valer 6, por causa do passo 2, e como 6 é maior que
4, o primeiro para deve ser pulado. Mais controle!
N 4 4
X 2 2
CONTA 2 4 6
CONTB 1 2 1 1 2 3 4
EXP 2 4 2 4 8 16 16
RESP 2 6 22
RESP foi impresso, com o valor 22, e você já sabe os valores finais de todas
as variáveis do código. É importante manter esse controle, para que você não se
perca.
Considere mod o operador que calcula o resto da divisão entre dois números
inteiros.
Por meio de um teste de mesa é possível constatar que o portugol mostrado
representa a resolução da equação:
a) resp = 0 + 1 – 2 + 3 – 4 + 5 – ... (+ ou –) n
b) resp = 0 + 1 – 22 + 34 – 46 + 5n
c) resp = 0 – 1 – 2 – 3 – 4 – 5 – ... – n
d) resp = 0 + 1! – 2! + 3! – 4! + 5! – n!
e) resp = 0 – 1 + 2 – 3 + 4 – 5 + ... – n
Esse código já está com cara de que vai dar trabalho! Então, logo pra início
de conversa, vamos fazer a nossa tabelinha com as variáveis do código:
N ?
CONT 1
RESP 0
S -1
N, pelo visto, será o parâmetro inserido pelo usuário. A função leia(n) nos
mostra isso. Logo, toda vez que esse programa for executado, leia(n) trará o
valor de N para o programa e continuará a sua execução.
N ? ? ? ?
CONT 1 1 2 3
RESP 0 1 (0+1) -1(0+1-2) 2(0+1-2+3)
S -1 -1 -1 -1
Alternativa a).
a) 0
b) 1
Prof. Victor Dalton
www.estrategiaconcursos.com.br 44 de 74
Informática para Concursos de TRTs - 2017
Prof Victor Dalton Aula Bônus
c) 3
d) 5
e) 6
Pessoal, esta aqui é a nossa questão desafio. Se você entender este código,
não existe algortimo que você não consiga decifrar na prova. Além dos conceitos
que vimos até agora, este código também trabalha com vetores, que nada mais
são do que um conjunto de variáveis organizadas unidimensionalmente.
ordena (int vet[], int n) é uma função que recebe como parâmetros um
vetor de inteiros e um inteiro. Lembro que o que caracteriza um vetor (array) são
os colchetes ([]), e não o nome “vet”. O nome da variável é apenas o nome dela.
O vetor que a questão está passando é {6,5,4,3,2,1} e o inteiro é 6, conforme
enunciado.
Ao iniciar, a função cria 4 variáveis do tipo inteiro, i,j,pos e aux, sem definir
valor a elas.
VET[] {6,5,4,3,2,1}
N 6
I
J
POS
AUX
VET[] {6,5,4,3,2,1}
N 6
I 1
J 2
POS 1
AUX
VET[] {6,5,4,3,2,1}
N 6
I 1
J 7
POS 6
AUX
Haverão mais duas modificações no vetor vet: de {1,5,4,3,2,6} ele ainda irá
a {1,2,4,3,5,6} e a {1,2,3,4,5,6}, ficando ordenado.
Tudo bem ter achado esse exercício difícil, e ele realmente o é. Se você tiver,
ao menos, acompanhado esse raciocínio, está de ótimo tamanho.
Errada. A impressão é que faltou definir qual seria a instrução. While, for
e repeat until são instruções que definem uma estrutura a ser repetida dentro
de um programa.
início
CONTADOR : numérico
Prof. Victor Dalton
www.estrategiaconcursos.com.br 48 de 74
Informática para Concursos de TRTs - 2017
Prof Victor Dalton Aula Bônus
VET2[CONTADOR] (VET1[CONTADOR] * 3)
fim-para
fim
Algoritmo REFERENCIA
VAR TESTE:inteiro
INICIO
TESTE 30;
MANIPULA_VARIAVEL(TESTE);
ESCREVA(TESTE);
FIM
Prof. Victor Dalton
www.estrategiaconcursos.com.br 50 de 74
Informática para Concursos de TRTs - 2017
Prof Victor Dalton Aula Bônus
Algoritmo MANIPULA_VARIAVEL(X:inteiro)
INICIO
X X + 10;
ESCREVA(X);
FIM
Correta. Se um comando while verificar uma condição que seja falsa logo
na primeira verificação, a estrutura de repetição é pulada sem nenhuma execução.
Correta.
a) Uma classe é o projeto do objeto. Ela informa à máquina virtual como criar
um objeto de um tipo específico. Cada objeto criado a partir da classe terá os
mesmos valores para as variáveis de instância da classe.
b) Um relacionamento de herança significa que a superclasse herdará as
variáveis de instância e métodos da subclasse.
c) Uma interface é uma classe 100% abstrata, ou seja, uma classe que não
pode ser instanciada.
d) Os objetos têm seu estado definido pelos métodos e seu comportamento
definido nas variáveis de instância.
e) A principal regra prática do encapsulamento é marcar as variáveis de
instância como públicas e fornecer métodos de captura e configuração privados.
Vamos treinar!
a) A visibilidade a ser atribuída é a privada. Errada;
b) C++ permite herança múltipla, Java não. Herança múltipla seria algo
como, por exemplo, criar uma subclasse SofaCama, que herdasse,
ao mesmo tempo, as superclasses Sofa e Cama. Isso é herança
múltipla. Entretanto, se a classe Funcionario herda Pessoa e Pessoa
herda Mamifero que herda SerVivo, todos ao mesmo tempo, isso não
é Herança Múltipla. Errada;
c) Java procura contornar o problema de herança múltipla permitindo a
implementação de múltiplas interfaces. Errada;
d)Correta. A sobrecarga de construtores é uma das formas mais
comuns de aplicação do polimorfismo. Um exemplo de sobrecarga de
construtores está na classe Pessoa, onde existe um Pessoa() e Pessoa(String
novo_nome, String numerocpf, int idadeatual). Quando se executa o
primeiro, cria-se uma pessoa com o atributo nome preenchido com “Nome
Genérico”, e quando se executa o segundo , devem ser passados
parâmetros(String novo_nome, String numerocpf, int idadeatual), para que
a pessoa criada tenha os atributos nome, cpf e idade preenchidos com os
valores passados em novo_nome, numerocpf e idadeatual.
e) Basta que um método seja abstrato para que a classe possa ser
considerada abstrata. Errada.
Eu já disse antes e digo novamente: não estamo s aqui para nos formarmos
experts em programação, estamos aqui para dizermos para a banca o que ela
quer ouvir. A FCC parece abraçar esse conceito, mas eu não me surpreenderia se
uma outra questão da mesma banca se opusesse à mesma ideia. O mais
importante é você saber que a dobradinha polimorfismo/sobrecarga de métodos
pode querer atrapalhar a sua vida em provas.
class c{
void m(int i);
void m(float i);
a) polimorfismo
b)herança múltipla
c)métodos virtuais
d)métodos privados
e)sobrecarga de métodos
Uma questão que cobra de você uma visualização na prática dos conceitos
POO, diferenciando o polimorfismo da sobrecarga de métodos.
a) da extensão do procedimento.
b) do quanto uma classe depende ou está relacionada à outra.
c) da intensidade das ligações entre procedimentos.
d) das relações entre atributos.
e) das ligações redundantes entre formas de processamento.
a) métodos abstratos são aqueles que não devem ser redefinidos em classes
derivadas, devem ser herdados tal como foram definidos.
d) o comportamento de um objeto.
e) as operações de uma classe.
III. Na agregação, quando uma instância for removida, suas partes não
necessariamente deverão ser removidas.
(D) I, II e III.
Analisando as assertivas:
“filhas” de uma mesma classe mãe utilizarem o mesmo nome de método para
executar tarefas diferentes.
III. Na agregação, quando uma instância for removida, suas partes não
necessariamente deverão ser removidas. – correto. Na agregação, as partes
podem existir sem o todo.
Se for informado o valor 4000 para a variável salary será exibido o valor
(A) 4400
(B) 4300
(C) 5000
(D) 4200
(E) 9000
CONSIDERAÇÕES FINAIS
Companheiros e companheiras,
Victor Dalton
EXERCÍCIOS
atribuir 50 a I
atribuir 0 a TOTAL
atribuir 0 a K
tes
testessomar 10 a K;
testesatribuir TOTAL+K a TOTAL
testesimprimir(K);
tesfim;
fim-enquanto;
imprimir(TOTAL);
a) 100 e 4
b) 150 e 5
c) 150 e 8
d) 150 e 9
e) 210 e 6
a) 6.
b) 22.
c) 86.
d) 0.
e) 342.
Considere mod o operador que calcula o resto da divisão entre dois números
inteiros.
Por meio de um teste de mesa é possível constatar que o portugol mostrado
representa a resolução da equação:
a) resp = 0 + 1 – 2 + 3 – 4 + 5 – ... (+ ou –) n
b) resp = 0 + 1 – 22 + 34 – 46 + 5n
c) resp = 0 – 1 – 2 – 3 – 4 – 5 – ... – n
d) resp = 0 + 1! – 2! + 3! – 4! + 5! – n!
e) resp = 0 – 1 + 2 – 3 + 4 – 5 + ... – n
a) 0
b) 1
c) 3
d) 5
e) 6
início
CONTADOR : numérico
VET2[CONTADOR] (VET1[CONTADOR] * 3)
fim-para
fim
Algoritmo REFERENCIA
VAR TESTE:inteiro
INICIO
TESTE 30;
MANIPULA_VARIAVEL(TESTE);
ESCREVA(TESTE);
FIM
Algoritmo MANIPULA_VARIAVEL(X:inteiro)
INICIO
X X + 10;
ESCREVA(X);
FIM
a) Uma classe é o projeto do objeto. Ela informa à máquina virtual como criar
um objeto de um tipo específico. Cada objeto criado a partir da classe terá os
mesmos valores para as variáveis de instância da classe.
b) Um relacionamento de herança significa que a superclasse herdará as
variáveis de instância e métodos da subclasse.
c) Uma interface é uma classe 100% abstrata, ou seja, uma classe que não
pode ser instanciada.
d) Os objetos têm seu estado definido pelos métodos e seu comportamento
definido nas variáveis de instância.
e) A principal regra prática do encapsulamento é marcar as variáveis de
instância como públicas e fornecer métodos de captura e configuração privados.
class c{
void m(int i);
void m(float i);
void m(double i);
}
a) polimorfismo
b)herança múltipla
c)métodos virtuais
d)métodos privados
e)sobrecarga de métodos
a) da extensão do procedimento.
b) do quanto uma classe depende ou está relacionada à outra.
c) da intensidade das ligações entre procedimentos.
d) das relações entre atributos.
e) das ligações redundantes entre formas de processamento.
a) métodos abstratos são aqueles que não devem ser redefinidos em classes
derivadas, devem ser herdados tal como foram definidos.
b) métodos estáticos são aqueles que, ao serem executados, não acessam
atributos de instância da classe.
III. Na agregação, quando uma instância for removida, suas partes não
necessariamente deverão ser removidas.
(D) I, II e III.
Se for informado o valor 4000 para a variável salary será exibido o valor
(A) 4400
(B) 4300
(C) 5000
(D) 4200
(E) 9000
GABARITO
1.a 2.b 3.c 4.b 5.a 6.c 7.c 8.e 9.c 10.e
11.c 12.c 13.e 14.c 15.e 16.c 17.c 18.e 19.e 20.c
21.c 22.c 23.c 24.c 25.e 26.b 27.c 28.d 29.d 30.e
31.b 32.b 33.c 34.d 35.c