Vous êtes sur la page 1sur 86

Aula 06

Tecnologia da Informação p/ ICMS/SP


Professor: Victor Dalton
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06

AULA 06: Programação

SUMARIO PAGINA
1. Conceit os Básicos 2
2. E trutura de Cont role 17
3. Programação orientada a objetos 27
Exercícios comentados 31
Considerações Finais 66
Exercícios 67
Gabarito 85

Olá am igos e amigas!

Que bom nos encontrarm os em m ais um a aula!

Nosso assunto de hoje é Programação. Acho u m assu nto mais leve de se r


estudado, sem aquele " massacre" do decoreba dos frameworks.

Estamos j unt os?

Observação importante: este curso é protegido por direitos


autorais (copyright), nos termos da Lei 9.610/98, que altera,
atualiza e consolida a legislação sobre direitos autorais e dá
outras providências.

Grupos de rateio e pirataria são clandestinos, violam a lei e


prejudicam os professores que elaboram os cursos. Valorize o
trabalho de nossa equipe adquirindo os cursos honestamente
através do site Estratégia Concursos;-)

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 1 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro{ Victor Dalton -Aula 06
PROGRAMAÇÃO I
1. Conceitos Básicos

1.1 Lógica de Programação

A Lógica é um ramo da filosofia centrada no raciocínio . Na computação, a


Lógica de Programação é a técnica de encadear pensamentos, com o objetivo
de atingir determinado objetivo.

Toda e qualquer atividade, por mais intuitiva que nos pareça, pode ser
organizada em uma sequência lógica de passos. Por exemp lo, 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;
S.Confirmar a compra;
6.Se não for usuário cadastrado do site, preencher cadastro;
7. Realizar o pagamento;
S.Acessar os PDFs.

Sem maiores aprofundamentos, organ izei alguns procedimentos para a


compra de um curso . Concorda comigo? Estando de acordo, experimente,
mentalmente, trocar alguns passos de lugar. A tarefa fica sem sentido, não é
mesmo? Perde o sentido, porque perde-se a lógica!

A lógica de uma determinada tarefa ou atividade é centrada em um


algoritmo.

Um algoritmo é uma eguência finita de P-asso que levam à


execução de determinada tarefa ou conjunto de tarefas.

Por exemplo, um algoritmo que calcu le a média entre dois números inteiros
deverá :

1. Ler dois números inteiros;


2. Rea lizar uma soma entre os números;
3. Dividir por dois o número obtido anteriormente;
4. Escrever o resultado .

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 2 de85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Tudo bem até agora?

Os algoritmos são definidos por cinco características. São elas:

 Finitude: um algoritmo tem de terminar ao fim de um número finito


de passos;
 Clareza/definição: cada passo do algoritmo tem de ser definido
com precisão, sem ambiguidades;
 Entrada: um algoritmo pode ter zero ou mais entradas;
 Saídas: um algoritmo tem uma ou mais saídas;
 Eficácia/efetividade: todas as operações feitas por um algoritmo
têm de ser suficientemente básicas.

Algoritmo

Na computação, é comum a escrita de algoritmos em uma linguagem


comum, que seja independente de linguagem de programação. Esta linguagem
se chama pseudocódigo, ou portugol.

Exemplo de pseudocódigo:

Algoritmo que lê o nome e as quatro notas bimestrais de um aluno. Em


seguida, calcula e escreve a média obtida:

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.

Opa, veio muita informação ao mesmo tempo nesse algoritmo? Não se


preocupe, iremos detalhar as características dele para você. Mas acho que você
já percebeu que o pseudocódigo é um intermediário entre a linguagem natural e
a linguagem de programação. Quando um algoritmo é traduzido para uma

Prof. Victor Dalton


www.estrategiaconcursos.com.br 3 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
linguagem de programação propriamente dita, como C, C#, Pascal, Java, etc...
ele passa a se chamar Programa. Mas continuemos a estudar o algoritmo!

1.2 Formas de representação de um algoritmo

Existem diversas formas de representação de algoritmos, e a utilização de


determinada forma dependerá da situação, do público alvo e do nível de detalhe
requerido, dentre outros.

A descrição narrativa descreve o algoritmo em linguagem natural. Foi a


forma que eu utilizei para iniciar a aula, explicando como se adquire um curso
no Estratégia. Vamos escrever um algoritmo para calcular a média de dois
números:

1.Digite o primeiro número;


2.Digite o segundo número;
3.Caso os dois números sejam iguais a zero, volte ao passo 1;
4.Some os dois números e divida por 2;
5.Imprima o resultado encontrado.

Uma outra forma de representar um algoritmo é a utilização de um


fluxograma, ou diagrama de blocos.

Conheça alguns símbolos dessa metodologia:

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

Prof. Victor Dalton


www.estrategiaconcursos.com.br 4 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06
SAÍDA
Mostra informações ou resu ltados

DECISÃO
Perm ite elaborar processos de decisão

Poderíamos escrever aquele mesmo algoritmo que ca lcu la a média de dois


números utilizando essa representação . Seria a lgo parecido com :

Digite numero nl

SIM

NÃO

Some nl e n2 e divida por 2

Imprima o resultado

A terceira forma de representar um a lgoritmo é a linguagem


estruturada, também chamada de pseudocódigo ou portugol. É a forma que
mais trabalharemos nessa apostila.

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 5 de85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
1.3 Elementos de um algoritmo

Variável

Variável é um espaço da memória do computador que armazena um dado.


No algoritmo, a variável pode ser manipulada pelas instruções, modificando e
trabalhando seus valores.

Uma variável recebe um nome (também chamado de identificador), que a


diferencia das demais, no algoritmo. Normalmente atribui-se um nome intuitivo
à variável, para facilitar o entendimento do próprio algoritmo.

Destacarei as variáveis no algoritmo já visto:

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

A instrução é o passo, ou etapa do algoritmo. Normalmente, é a linha de


código seguida de ponto-e-vírgula.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 6 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Declaração de variáveis

Um algoritmo, via de regra, inicia-se pela declaração de variáveis. Perceba


no nosso algoritmo exemplo, destacado em azul.

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.

As constantes também são declaradas no início do algoritmo, juntamente


com as variáveis.

Conjunto de instruções

O conjunto de instruções é a inteligência do algoritmo, a sua razão de ser.


Veja, em destaque, no mesmo algoritmo:

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.

Em pseudocódigo, costuma-se utilizar “Inicio” e “Fim” para delimitar o


conjunto de instruções.

E agora? Ficou mais compreensível o nosso algoritmo? Mas ainda tem mais!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 7 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
1.4 Tipos de variáveis

Os tipos primitivos mais comuns de variáveis são:

INTEIRO – número inteiro;


REAL – número real;
CARACTERE (string) – texto, que pode conter letras, símbolos e números;
LÓGICO (boolean) – assumem apenas os valores verdadeiro ou falso.

1.4.1 Vetores, matrizes e registros

Vetores são estruturas unidimensionais, que possuem o mesmo princípio


de uma matriz, contendo apenas uma linha e várias colunas.

Descreve-se um vetor por meio do formato


Vetor <variavel>[ <dimensao> ] de <tipo>, em que:

variavel nome da variável;


dimensao tamanho do vetor;
tipo tipo primitivo da variável (deverá ser único).

Ex: VET A[10] de REAL;

Esse vetor pode ser representado da seguinte forma:

E suas variáveis podem ser manipuladas individualmente, sem problemas.


Basta selecioná-la pelo índice.
Ao fazer, por exemplo, A[3] 1.33 tem-se:

A 1,33

Matrizes, por sua vez, são estruturas bidimensionais, podendo conter


múltiplas linhas e colunas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 8 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Descreve-se uma matriz por meio do formato
Vetor <variavel>[ <dimensao1> ] [ <dimensao2> ] de <tipo>,
em que:

variavel nome da variável;


dimensao1 tamanho do vetor(colunas);
dimensao2 tamanho do vetor(linhas);
tipo tipo primitivo da variável (deverá ser único).

Ex: MAT B[3][5] de INTEIRO;

Essa matriz pode ser representado da seguinte forma:

E suas variáveis também podem ser manipuladas individualmente, sem


problemas. Basta selecioná-la pelo índice.
Ao fazer, por exemplo, B[1][2] 10 tem-se:

B
10

Tudo bem? Vetores e Matrizes podem ser utilizados livremente. Entretanto,


sua utilidade poderá ser vista quando estudarmos as estruturas de controle.

Por fim, Registros são estruturas de dados que agregam valores de


diferentes tipos, possibilitando a criação de novos tipos de dados. Agregam
dados logicamente relacionados, embora de tipos diferente. Registros podem
conter outros registros.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 9 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06
Ex :

Reg istro PESSOA

Nome : caractere [ 35]


Enderece : ca ract ere[ l OO ]
Idade : inteiro

Em programação orientada a o bjet os, são objetos, pro pria ment e ditos.

1.5 Atribuição

Em lóg ica de programação, temos que prest ar atenção à m anipu lação das
variáve is. Representadas por um":= " ou por uma seta para a esquerda (+--),a
at r ibuição implica em atribu ir a uma variável o va lor do out ro lado do símbo lo
( := ou +--) .

Po r exemplo, como você descreve o cont eúdo dessa instrução?

MEDIA:= (NOTAl + NOTA2 + NOTA3 + NOTA4) / 4;

Sim, eu quero que você verbalize a linha acima .

Caso você tenha começado a sent ença com "Média é igua l a .... " PARA
TUDO!!! Ent re mos na lóg ica de programação desde já!

Você deverá ler a se ntença da segu inte form a : " Méd ia recebe o va lor de
NOTA 1 + ....... "

Lembra que dissemos que variável é um es paço de m emória do


com put ador? Porta nto, na atribu ição, o valor resu ltante do lado direito da
inst rução é inserido na variável, do lado esquerdo da instrução.

Veja, na tabela aba ixo, alguns exemplos de possíveis at ribu ições :

Atribuição Exemplo
variáve l +--constante A +-- 45 ("A recebe 45")
variáve l +--variável A +-- B ("A recebe o valor de B")
variáve l +--expressão A +-- B + C ("A recebe o valor de B + C")
variáve l +--função A +-- calculo(B,C) ("A recebe o retorno da função calculo")

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 10 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06
Em lóg ica de programação, a igua ldade é ut ilizada para fi ns de
compa racão. Isso será v isto adiante.

1.6 Teste de Mesa

Para desenvolver ou analisa r um algoritmo, é altamente recomendável a


realização do chamado teste de mesa, t ambém chamado de t este chinês.
Rea lizar o teste de mesa é acom panhar um algoritmo passo a passo, mantendo
uma tabela com os va lores das va riáveis e regist rar as mudanças nestas
variáve is ao longo da execução do mesmo .

Nos exercícios, t eremos a oportu nidade de fazer e acompanhar vários


test es de mesa.

1.7 Operadores Aritméticos, Relacionais e Lógicos

A hierarquia de operadores aritméticos em lógica de programação não


foge a t rad iciona l:

Operador Símbolo Prioridade


Mu lt iplicação * la
Divisão I la
Ad ição + 2a
Subtração - 2a

O programado r, v ia de regra, observa a utilização do parênteses para


definir cla ramente a ordem das operações matemáticas. Na ausência deles,
opera-se conforme a tabe la acima, da esquerda para a d ireita da expressão
matemática .

Os operadores relacionais, por sua vez, são aqueles que comparam


va lores, va riáveis, constantes e expressões, retornando verdadeiro ou falso.
Eles estão descritos aba ixo :

Operador Significado
> maior
< menor
= igual
>= maior ou igual
<= menor ou igual
<> d iferente
Prof. Victor Da/ton
www.estrategiaconcursos.com.br 11 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06

Os operadores lógicos, finalmente, permit em verificar uma condição,


também retornando verdadeiro ou falso. Esses ope radores são
importantíssimos para permitir a criação de diferentes estruturas de a lgoritmos,
que se rão vistas mais adiante São eles :

Operação Operador
Negação não
Conj unção e
Disjunção ou
Disjunção exclusiva xou (lido como " ou exclusivo" )

Importantíssimo conhecer a tabela verdade desses ope radores (tudo bem


que essas operações são bem intuit ivas) . Entretanto, interpretar erroneamente
um operador lógico fatalmente conduz a uma interpretação equ ivocada de um
a lgorit mo.

X y X eY X ou Y não X X xou Y
v v v v F F
v F F v F v
F v F v v v
F F F F v F

1.8 Instruções "Ler" e "Escrever"

Ler e Escrever(t ambém chamado I mprimir) são instruções muito


corriqueiras em pseudocódigo. De maneira bem resumida, Le r implica em
solicitar ao usuário que entre com um dado, na tela do computador. No nosso
a lgorit mo exemp lo, as linhas :

LER (NOME);
LER (NOTAl, NOTA2, NOTA3, NOTA4);

implicam em uma "paralisação" do algoritmo, que espera o usuário inseri r


esses valores no computado r, pa ra que ele possa continua .

Po r fim, o comando Escrever imprime, na tela do computador, o dado.


Portanto, o comando

ESCREVER (NOME, MEDIA)

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 12 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
imprime, lado a lado, o conteúdo das variáveis NOME e MEDIA, na tela do
computador.

1.9 Procedimentos e funções

Os algoritmos (ou mesmo os programas) podem ser classificados como


funções ou como procedimentos.

Procedimento ou subrotina é o código que executa uma tarefa


particular. O software, devido à sua natureza, é complexo, e o programador
necessita organizar o seu código em diversas sub-rotinas. É comum, inclusive,
que procedimentos disparem a execução de outros procedimentos, ou funções.

Uma função, por sua vez, é um pouco mais peculiar, pois obrigatoriamente
retorna um valor.

Vamos rever um código, já mostrado anteriormente, que ilustre o que


estamos falando:

ALGORTIMO AREA_CIRCUNFERENCIA;
CONST PI = 3.1416;
VAR RAIO, AREA: REAL;
INICIO
LER (RAIO);
AREA:= PI * SQR(RAIO);
ESCREVER (‘AREA =’, AREA)
FIM.

O procedimento acima realiza o cálculo de uma área de circunferência.


Uma vez que o usuário insira o valor para a variável RAIO, o algoritmo calcula a
área de circunferência correspondente.

Mas você reparou em SQR(RAIO)?

SQR(parâmetro) é uma função, que ainda não foi apresentada a você.


Conheça seu código:

SQR(NUMERO:real):real;
VAR QUADRADO:real
INICIO
QUADRADO:= NUMERO * NUMERO;
RETORNAR QUADRADO;
FIM

Prof. Victor Dalton


www.estrategiaconcursos.com.br 13 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Compreendeu a natureza da função?

A função, via de regra, recebe parâmetros, realiza alguma inteligência


interna e retorna um valor. A função SQR(parâmetro), retorna um número real.
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.

Criar funções facilita muito o trabalho do programador, uma vez que


determinadas lógicas são empregadas com frequência dentro de um mesmo
software de computador. Ao invés de escrever várias vezes a mesma coisa, cria-
se uma única função, deixando apenas os parâmetros em aberto.

1.10 Variáveis locais e Variáveis globais

Os poucos algoritmos vistos até agora mostraram apenas variáveis locais.


As variáveis locais apenas “existem” dentro do bloco no qual foram declaradas.
Se uma função ou procedimento inicia declarando variáveis, aquelas variáveis
são locais. Embora possam ser passadas como parâmetro dentro do programa
em que estejam executando, o término do programa extingue essas variáveis.

funcao ABC (parametro1,parametro2):inteiro


VAR A,B,C:inteiro //variáveis locais
INICIO
......
FIM //ao término da função, as variáveis locais “desaparecem”

Por outro lado, existem as chamadas variáveis globais. As variáveis


globais são declaradas fora de todas as funções de um programa. Dessa forma,
as variáveis são persistentes, e podem ser manipuladas por todas as funções.
Veja abaixo, um “microprograma”, ilustrado em pseudocódigo:

VAR D,E: inteiro//variáveis globais; estão fora de todas as funções

funcao ABC (parametro1,parametro2):inteiro


VAR A,B,C:inteiro //variáveis locais
INICIO
......
FIM //ao término da função, as variáveis locais “desaparecem”
funcao XYX(parametro3, parametro4):inteiro

Prof. Victor Dalton


www.estrategiaconcursos.com.br 14 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
VAR Z:inteiro //variável local
INICIO
Z parametro3 +parametro4;
D D + Z // variável global sendo manipulada
FIM// variável local extinta, variável global modificada, e continua existindo

1.11 Passagem de parâmetros por valor e por referência

Você deve ter percebido que os parâmetros são elementos importantes na


programação. É conveniente definir funções ou procedimentos que recebam
parâmetros como entrada, e manipulem esse parâmetro no interior de seu
código.
Na programação estruturada, o bom programador deverá modularizar o
seu código, ou seja, dividir as tarefas do seu software, decompor um grande
problema em um conjunto de pequenos problemas simples.

Em resumo, um módulo é um conjunto de instruções organizado em


um trecho de algoritmo, para realizar uma tarefa bem definida.

A modularidade traz diversos benefícios, pois deixa o código mais legível,


mais fácil de manutenir, mais flexível, as tarefas podem ser divididas por mais
programadores, dentre outros.

Ao modularizar o código, busca-se alta coesão em cada módulo, ou seja,


que os seus elementos possuam alto relacionamento e possuam uma tarefa bem
definida.

Ao mesmo tempo, deseja-se o baixo acoplamento, ou seja, que cada


módulo comunique-se pouco com os demais. Naturalmente, a comunicação é
inevitável, e, nesse contexto, a passagem de parâmetros entre módulos que se
comunicam é comum.

Na passagem de parâmetros por valor, a variável passada como


parâmetro passa apenas o seu valor para o outro módulo, não sofrendo
modificações no seu módulo de origem.

Na passagem de parâmetros por referência, o parâmetro passado é, na


verdade, um ponteiro (endereço de memória) que aponta para a própria
variável. Ou seja, caso o parâmetro passado sofra modificações, a variável
também muda o seu valor.

Ficou complicado?

Prof. Victor Dalton


www.estrategiaconcursos.com.br 15 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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

Vamos executar o algoritmo VALOR?

Este algoritmo começa atribuindo à variável TESTE o valor 30. No passo


seguinte, é chamado o algoritmo MANIPULA_VARIAVEL, passando a variável
TESTE como parâmetro. Nesse momento, o algoritmo VALOR “pausa”, e começa
o algoritmo MANIPULA_VARIAVEL.

O algoritmo MANIPULA_VARIAVEL atribui a X, seu parâmetro recebido, o


próprio valor de X, acrescido de 10. É uma forma de somar 10 ao valor recebido,
seja ele qual for. Na sequência, imprime-se X na tela do computador, ou seja, o
valor 40. E o algoritmo chega ao fim.

Voltando ao algoritmo VALOR, imprime-se também o valor de TESTE na


tela do computador. Como a passagem de parâmetro foi por valor, TESTE não
sofreu nenhuma alteração, e o valor impresso em tela é 30. Tudo bem?

Comparemos o mesmo código quando a passagem de parâmetros é por


referência. Vejamos:

Algoritmo REFERENCIA
VAR TESTE:inteiro
INICIO
TESTE 30;
MANIPULA_VARIAVEL(TESTE);
ESCREVA(TESTE);
FIM
Algoritmo MANIPULA_VARIAVEL(X:inteiro)
INICIO

Prof. Victor Dalton


www.estrategiaconcursos.com.br 16 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
X X + 10;
ESCREVA(X);
FIM
Vamos executar o algoritmo REFERENCIA?

Este algoritmo começa atribuindo à variável TESTE o valor 30. No passo


seguinte, é chamado o algoritmo MANIPULA_VARIAVEL, passando a variável
TESTE como parâmetro. Nesse momento, o algoritmo REFERENCIA “pausa”, e
começa o algoritmo MANIPULA_VARIAVEL.

O algoritmo MANIPULA_VARIAVEL atribui a X, seu parâmetro recebido, o


próprio valor de X, acrescido de 10. Na sequência, imprime-se X na tela do
computador, ou seja, o valor 40. E o algoritmo chega ao fim.

Voltando ao algoritmo REFERENCIA, imprime-se também o valor de


TESTE na tela do computador. Como a passagem de parâmetro foi por
referência, a variável TESTE foi modificada no algoritmo
MANIPULA_VARIAVEL, e o valor impresso em tela é 40. Notou a diferença?

Resumindo:

Passagem de parâmetro por valor apenas o valor da variável é passado


como parâmetro. Modificações no parâmetro não modificam a variável original.

Passagem de parâmetro por referência o endereço da memória da


variável é passado como parâmetro. Modificações no parâmetro são modificações na
própria variável.

2. Estruturas de controle

Entendidos os fundamentos básicos acerca dos algoritmos, podemos


avançar o nosso estudo para algoritmos mais complexos.

2.1 Estrutura Sequencial

A estrutura sequencial é a estrutura mais simples que um algoritmo pode


possuir. Nela, as instruções são executadas sequencialmente, passo a passo.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 17 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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.

Esse é o nosso já conhecido algoritmo MEDIA_FINAL. Nela, já vimos que os


passos são seguidos, sequencialmente, de 1 a 9.

2.2 Estruturas de Seleção

As estruturas de seleção são aquelas em que, em algum passo, o algoritmo


verifica determinada condição para, então seguir por algum caminho. Vejamos
alguns subtipos.

2.2.1 Estrutura de seleção simples (ou estrutura de desvio, ou


estrutura condicional, ou estrutura if-then)

Analise comigo o algoritmo a seguir:

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.

Este é um algoritmo que possui uma estrutura de seleção simples.


Diferentemente da estrutura sequencial pura, perceba que a linha 5 somente
será executada se a condição analisada na linha 4 for atendida. Compreendeu?

Prof. Victor Dalton


www.estrategiaconcursos.com.br 18 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Então eu vou lançar mão de um recurso, daqui pra frente, chamado
identação. Identação é a utilização de tabulação nas linhas de código, para
visualizar o entendimento do mesmo. Veja novamente abaixo o mesmo código:

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.

Perceba que a identação não mudou em nada o conteúdo do código. Mas,


agora, fica mais fácil para você perceber a “subordinação” da linha 5 à análise
da linha 4, não é mesmo? Caso a condição seja falsa, a linha 5 simplesmente é
pulada, e o código não faz nada.

2.2.2 Estrutura de seleção composta (ou estrutura de desvio,


ou estrutura condicional, ou estrutura if-then-else)

Analisemos juntos mais um algoritmo:

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!

Nesse caso, a estrutura ficou um pouco mais refinada. O Comando SE (if),


na linha 4, apresenta uma condição. Se a condição for verdadeira, a linha 5 é
executada. Se a condição for falsa, a linha 6 será a executada.
Ou seja, obrigatoriamente uma, e somente uma das linhas 5 e 6 será
executada, antes do código chegar ao seu fim, compreendeu?

Os comandos chave para as estruturas condicionais são o se (if, que impõe


a condição), o então (then, executado quando a condição é verdadeira) e o
senão (else, executado quando a condição é falsa).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 19 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

2.2.3 Estrutura de seleção aninhada

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.

Captou o “espírito” desse algoritmo? Consegue acompanhar a execução


dele?
Então vou deixar um desafio no ar, para saber se você realmente entendeu.
Se você souber escolher valores “maliciosos” para A, B e C, o algoritmo falha.
Dica: envolve escolher números iguais. Resposta na última página da apostila!
Mas tente resolver sozinha (o)!

2.2.4 Estrutura de seleção múltipla

Quando a utilização de uma condição envolve um julgamento de verdadeiro


ou falso, utilizar if-then ou if-then-else são condutas bastante válidas. Mas o que
fazer quando se deseja uma seleção entre múltiplas escolhas?

Nesse momento entra em ação o comando case. Podemos ir direto a um


exemplo?

ALGORITMO_NUMEROLOGIA

Prof. Victor Dalton


www.estrategiaconcursos.com.br 20 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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

Tenho certeza que você entendeu! Utilizando o case, dependendo do valor


da variável, apenas uma das múltiplas opções será executada.

Nesse tipo de estrutura destacam-se os comandos como switch


(ESCOLHA), case (CASO) e default (OUTROCASO – executado quando a
variável não encontre nenhum correspondente entre os case.

2.3 Estruturas de repetição

As estruturas de repetição são uma ferramenta poderosa. Sem medo de


errar, afirmo que é o tipo de estrutura mais útil para o programador. Nela, é
possível colocar um trecho de código em “loop”, ou laço de repetição,
executando até que uma condição seja atingida, ou enquanto uma condição
permanecer válida.

2.3.1 Estruturas de repetição com verificação antecipada

Vamos direto a um exemplo, já que é assim que se aprende?

Prof. Victor Dalton


www.estrategiaconcursos.com.br 21 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

O código abaixo apresenta uma estrutura nova, utilizando o comando


enquanto (while).

Para auxiliar o nosso teste de mesa, vamos fazer uma tabelinha


controlando as variáveis J e X, tudo bem?

J X

Vamos acompanhar a execução desse código, passo a passo.

As primeiras linhas desse código não possuem mistério algum. Duas


variáveis, J e X são declaradas, como números inteiros, e já recebem valores
iniciais, 1 e 2, respectivamente. Registremos em nossa tabela.

J X
1 2

Entremos na estrutura enquanto (while).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 22 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Essa estrutura tem por característica verificar a condição de execução de
seu código ANTES de executá-lo. Como J (1) é menor que 10, podemos iniciar o
código.

Nele, X é acrescido de 1, e J é acrescido de 2, assumindo os valores 3 e 3 ,


respectivamente.
J X
1 2
3 3

Chegamos ao fim do enquanto. E agora vem a grande característica das


estruturas de repetição! Ao invés de prosseguir com o código, devemos voltar à
condição de verificação do while. Caso a condição permaneça verdadeira,
devemos permanecer dentro desse laço!

Laço: devemos permanecer dentro dele enquanto a condição for verdadeira

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

Adiantando um pouco o passo, prossigamos até ter o seguinte estado:

J X
1 2
3 3
5 4

Prof. Victor Dalton


www.estrategiaconcursos.com.br 23 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
7 5
9 6

Com J valendo 9, o laço é executado mais uma vez. X recebe o valor 7, e J


recebe o valor 11. Acabou, é isso?

NÃO! Chega-se ao fim do enquanto, e volta-se à condição de verificação,


mais uma vez.
J X
1 2
3 3
5 4
7 5
9 6
11 7

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.

Preste atenção! O laço só pode ser interrompido por ocasião da


verificação! Durante a execução do laço, J poderia assumir os valores mais
absurdos possíveis, que o laço continuaria executando.

Imprimindo-se X e J, apareceria na tela do computador 7 e 11. Entendido?


O while mantém o laço executando enquanto a condição for verdadeira.

2.3.2 Estruturas de repetição com verificação no final

Este tipo de estrutura é muito similar à anterior, mas a verificação ocorre


após a execução do laço. Utiliza os comandos repeat e until. Mas, enquanto o
while executa enquanto a condição for verdadeira, o repeat until executará
até que a condição seja verdadeira. É uma diferença sutil, mas fácil de
compreender.

Exemplo:

ALGORITMO EXIBE_NUMEROS;
Var N: inteiro;
Inicio
Leia(N);
Prof. Victor Dalton
www.estrategiaconcursos.com.br 24 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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?

Ainda, o repeat until possui outra sutileza: obrigatoriamente ele deverá


ser executado pelo menos uma vez, já que a verificação ocorre somente no
final. Quando se utiliza o while, caso a condição imposta seja falsa, logo no
começo, o laço sequer é executado!

2.3.2 Estruturas de repetição com variável de controle

Uma terceira forma de estrutura de repetição é a utilização de uma variável


de controle, própria do laço de repetição. Inclusive, é a mais comumente
utilizada. O comando chave, nestes moldes, é o comando PARA (for).

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:

PARA cont 1 até N FAÇA


Escreva(cont);

Prof. Victor Dalton


www.estrategiaconcursos.com.br 25 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
cont cont + 1;
FIM-PARA

Enfim, o “espírito” é o mesmo.

Assim sendo, esse código imprimirá, na tela do computador, números de 1


a N, sendo N a entrada do usuário. Tudo bem?

2.3.2 O comando break

Break é um comando que interrompe estruturas de repetição. Por


exemplo:

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.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 26 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
3. Programação orientada a objetos: conceitos

Antes de começar com os fundamentos, permitam-me escrever um pouco


de código Java. Explicá-lo-ei de uma maneira simples, no começo, e ao longo
dos exercícios falaremos mais detalhes dele.

// declaração inicial da classe Pessoa


public class Pessoa{

private String nome;


private String cpf;
private int idade;

public Pessoa(){
nome = “Nome Genérico”
}

public Pessoa(String novo_nome, String numerocpf, int idadeatual){


this.nome = novo_nome;
this.cpf = numerocpf;
this.idade = idadeatual;
}

public void setNome(String novo_nome){


nome=novo_nome;
}
public String getNome() {
return nome;}
}
// fim da declaração da classe Pessoa

// declaração inicial da classe Funcionário

public class Funcionario extends Pessoa{


private String departamento;

public void setDepartamento(String novo_departamento){


departamento=novo_departamento;
}
public String getDepartamento() {
return departamento;}

Prof. Victor Dalton


www.estrategiaconcursos.com.br 27 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
public String getNome() {
return concat(nome, departamento);}

}
// 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.

3.1 Conceitos básicos

A POO (programação orientada a objetos) é a mais popular nos dias de


hoje, e tem no Java o seu maior estandarte. A POO é alicerçada em alguns
conceitos básicos, a saber:

 Classe representa um conjunto de objetos com características afins. Uma


classe define o comportamento dos objetos através de seus métodos, e quais
estados ele é capaz de manter através de seus atributos. Exemplo de classe: Os
seres humanos. Subclasse é uma nova classe que herda características de
sua(s) classe(s) ancestral(is). No exemplo acima, Pessoa é classe e Funcionario
é subclasse de Pessoa. Mas Funcionario também é uma classe!

 Objeto / instância de uma classe. Um objeto é capaz de armazenar


estados através de seus atributos e reagir a mensagens enviadas a ele, assim
como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da
classe Humanos: João, José, Maria.

 Atributos são características de um objeto. Basicamente a estrutura de


dados que vai representar a classe. Exemplos: Funcionário: nome, endereço,
telefone, CPF,...; Carro: nome, marca, ano, cor, …; Livro: autor, editora, ano.
Por sua vez, os atributos possuem valores. Por exemplo, o atributo cor pode
conter o valor azul. O conjunto de valores dos atributos de um determinado
objeto é chamado de estado.

 Métodos definem as habilidades dos objetos. Bidu é uma instância da


classe Cachorro, portanto tem habilidade para latir, implementada através do

Prof. Victor Dalton


www.estrategiaconcursos.com.br 28 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
método deUmLatido. Um método em uma classe é apenas uma definição. A ação
só ocorre quando o método é invocado através do objeto, no caso Bidu. Dentro
do programa, a utilização de um método deve afetar apenas um objeto em
particular; Todos os cachorros podem latir, mas você quer que apenas Bidu dê o
latido. Normalmente, uma classe possui diversos métodos, que no caso da
classe Cachorro poderiam ser “sente”, “coma” e “morda”.

 Mensagem é uma chamada a um objeto para invocar um de seus


métodos, ativando um comportamento descrito por sua classe. Também pode
ser direcionada diretamente a uma classe (através de uma invocação a um
método estático).

 Herança (ou generalização) é o mecanismo pelo qual uma classe


(subclasse) pode estender outra classe (superclasse), aproveitando seus
comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de
herança: Mamífero é superclasse de Humano. Ou seja, um Humano é um
mamífero. Há herança múltipla quando uma subclasse possui mais de uma
superclasse. Essa relação é normalmente chamada de relação "é um". No
exemplo antes da questão, Funcionario está herdando Pessoa (extends). Logo,
ele também possui todos os atributos e métodos de Pessoa (nome, cpf, idade,
getNome e setNome).

 Associação é o mecanismo pelo qual um objeto utiliza os recursos de


outro. Pode tratar-se de uma associação simples "usa um" ou de um
acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1"
é parte de um telefone.

 Encapsulamento consiste na separação de aspectos internos e externos


de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso
direto ao estado de um objeto (seus atributos), disponibilizando externamente
apenas os métodos que alteram estes estados. Exemplo: você não precisa
conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do
telefone encapsula esses detalhes, provendo a você uma interface mais
amigável (os botões, o monofone e os sinais de tom). Na prática, em Java, todo
atributo no qual se escreve um private antes fica encapsulado, e outro objeto de
fora não possui acesso a ele, a não ser que exista um método que possibilite
isso, como os get/set Nome e Departamento, que são public. Cabe ressaltar que
ainda existe o protected, que permite que classes em um mesmo pacote
acessem o método ou atributo protegido.

 Abstração é a habilidade de concentrar nos aspectos essenciais de um


contexto qualquer, ignorando características menos importantes ou acidentais.
Em modelagem orientada a objetos, uma classe é uma abstração de entidades
existentes no domínio do sistema de software. Toda classe é uma forma de
abstração.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 29 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

 Polimorfismo é habilidade de uma única operação ou nome de atributo


ser definido em mais de uma classe e assumir diferentes implementações em
cada uma dessas classes. Está estritamente ligado à herança, uma vez que uma
classe abstrata pode definir um método sem implementá-lo, deixando a
implementação para as classes filhas. Ou, mesmo que a superclasse implemente
o método, pode a subclasse implementá-lo também.

Ocorre polimorfismo, no meu exemplo, na função getNome() na classe


Funcionario. Perceba que, mesmo que o método contenha a mesma assinatura
(getNome() em Pessoa e getNome() em Funcionario), isso não chega a ser um
problema, pois não ocorre confusão quando se chama a função. Quando
chamarem a função getNome() em um objeto Funcionario, será o getNome() da
classe Funcionario que será executado. Caso esse método não existisse, seria o
getNome() da classe Pessoa o executado. Isso é o polimorfismo.

 A sobrecarga de métodos é um recurso peculiar no qual mais de


um método possuem o mesmo nome, entretanto, recebem parâmetros distintos
(onde ocorre a diferenciação dos métodos).

 Interface é um contrato entre a classe e o mundo externo. Quando uma


classe implementa uma interface, ela está comprometida a fornecer o
comportamento publicado pela interface. É possível a criação de várias
interfaces para uma mesma classe, mas isso não é herança!

 Pacotes (ou Namespaces) são referências para organização lógica de


classes e interfaces.

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!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 30 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro Victor Dalton -Aula 06
EXERCICIOS COMENTADOS

1a Questão) (FCC - TRE/SP - Técnico Judiciário - Programação de


Sistemas - 2012) Analise o algoritmo a segu ir :

Algoritm o Cálcu lo
var n, r, cont: inteiro
início
r f- 1
cont f- 1
enquanto (cont<=S) faça
leia(n)
r f- r * n
cont f- cont + 1
fi m_enquanto
imprima (r)
fim

Se forem lidos os valores 2, 5, 7, 3 e 4,

a) a saída será 840 .


b) haverá um erro, pois o resultado de um cálculo envolvendo a variável r
não pode ser armazenado na própria variável r .
c) a saída será 2 10 .
d) haverá um erro, pois o valor gerado será maior do que uma variáve l do
tipo inteiro pode suportar.
e) a saída será O.

Este é um bom exercício pa ra começar.

Três variáveis são criadas, n , r , cont, todos números inteiros. Preparemos


o nosso teste de mesa!

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 31 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06
n r cont

O cód igo inicia atribuindo a r e cont o valor 1.

n r cont
1 1

Na sequência, percebe-se que, enquant o co nt for menor que 5, f icaremos


dent ro do laço. N é variável inserida pelo usuário, e a quest ão já nos ad ianta que
os va lores inseridos serão 2 , 7 , 5 , 3 e 4.

Na pr imei ra it eração do laço, r recebe o valor de r vezes n.

n r cont
2 1 1
2

Cont é increment ado em 1, e o laço rem1c1a, po is a condição perm anece


vá lida. O usuário ent ra com o valor 7 e r recebe o valor de r vezes n.

n r cont
2 1 1
7 2 2
14

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 32 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro/ Victor Dalton -Aula 06
Já sabe onde isso vai dar?

n r cont
2 1 1
7 2 2
5 14 3
3 70 4
4 210 5
840 6

Concorda com igo? Faça com ca lma, à mão. Perceba que cont a lca nça o
va lor 6 , para então interromper o laço.

Dessa forma, r, ao ser impresso, mostra 840 na tela do computador.


Alternativa a).

2a Questão) (UEL - CMTU - Analista Administrativo - Tecnologia da


Informação- 2011) Observe o trecho do algoritmo a seguir

atribuir 50 a I
atribuir O a TOTAL
atribuir O a K

enquanto K < I faca

imcio
somar 10 a K;
atribuir TOT AL+K a TOTAL
imprimir(K);
fim;

fim-enquanto;

imprimir(TOTAL) ;

Ao fi nal do processamento, a variável TOTAL e o número de vezes que a K


será impresso são, respectivamente :

a) 100 e 4

b) 150 e 5

c) 150 e 8

d) 150 e 9

e) 210 e 6

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 33 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Outra linha de raciocínio!

A estrutura de repetição, novamente, será a que lhe exigirá mais


atenção no código:

enquanto K < I faca

inıcio
somar 10 a K;
atribuir TOTAL+K a TOTAL
imprimir(K);
fim;

fim-enquanto;

Essa estrutura do tipo “enquanto...faça” faz exatamente isso. Verifica uma


condição, no caso, o valor de K, e, enquanto a condição estiver sendo atendida,
ele executa o código no seu interior. Ao término, volta a verificar a condição e
executa quantas vezes a condição estiver sendo atendida. Daí você conclui que,
dentro desta estrutura, a variável de verificação (no caso, K), deve ser
modificada ao longo da execução. Caso isso não acontecesse, teríamos um “loop
infinito”.

Enfim, quando a condição de verificação deixar de ser atendida, a estrutura


“enquanto... faça” será pulada e o restante do código continuará a ser
executado.

Voltando ao exercício, temos primeiro algumas atribuições de variáveis:

atribuir 50 a I – I passa a valer 50

atribuir 0 a TOTAL – TOTAL passa a valer 0

atribuir 0 a K – K passa a valer 0

Vejamos agora a estrutura mais delicada, a condicional:

enquanto K < I faca

inıcio
somar 10 a K;
atribuir TOTAL+K a TOTAL
imprimir(K);
fim;

fim-enquanto;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 34 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Um dos objetivos é saber quantas vezes K será impresso. K será impresso
tantas vezes quantas adentrar-se na estrutura de repetição.

Com K = 0, entrar-se-á uma vez na estrutura. K passará a valer 10 (somar


10 a K). Entrar-se-á na estrutura novamente.

Contando nos dedos da mão (sim, essa é a melhor forma de se contar,


fazemos isso o tempo todo), percebe-se que a estrutura será executada com k =
0,10,20,30,40 ou seja , 5 vezes. Perceba que é K<I, e não K<=I, o que são
duas coisas diferentes!

Tendo metade da resposta, falta agora saber o valor de TOTAL.

Na primeira vez, TOTAL = TOTAL(0) + K(10) -> perceba que soma-se 10 a


K antes da atribuição da soma a total;

Na segunda vez, TOTAL = TOTAL(10) + K(20);

Na terceira vez, TOTAL = TOTAL(30) + K(30);

Na quarta vez, TOTAL = TOTAL(60) + K(40);

Na quinta vez, TOTAL = TOTAL(100) + K(50);

Ainda, observe que o último valor de K, 50, será reprovado na próxima


verificação, por ser igual a I, e toda a estrutura “enquanto” será pulada.
Entretanto, nada impediu que, quando dentro da estrutura, na passagem
anterior, K, que valia 40, passasse a valer 50, pois a verificação somente ocorre
no início.

Pulada a estrutura “enquanto...faça”, o valor de TOTAL será impresso, e


este equivale a 150.

Portanto, nossa resposta certa é a letra b).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 35 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
3ª Questão) (FCC – ARCE – Analista de Regulação - Analista de
Sistemas – 2012) Considere o algoritmo em pseudocódigo:

Os valores de R1, R2 e R3, após a execução do algoritmo são:

a) R1=0, R2=1, R3=1


b) R1=1, R2=1, R3=0
c) R1=1, R2=0, R3=0

Prof. Victor Dalton


www.estrategiaconcursos.com.br 36 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
d) R1=0, R2=0, R3=1
e) R1=0, R2=0, R3=0

Pois bem, pessoal, vamos analisar o nosso exercício.

Antes da execução do algoritmo, propriamente dita, ocorre a declaração


de variáveis.
A,B e C são variáveis lógicas, também chamadas de booleanas, pois
podem assumir apenas dois valores: certo e errado, true ou false, 1 ou 0;
X e Y podem assumir valores de números reais;
R1, R2 e R3 podem assumir valores de números inteiros.

Quando o algoritmo se inicia, ocorre uma série de atribuição de valores. A e


C são verdadeiros, B é falso, X vale 2,5 e Y 3,5.

Na sequência, encontramos nossa primeira estrutura condicional:

se (C ou (X – Y > 0))

OU é uma estrutura do tipo “caso uma das condições seja


verdadeira, tudo é verdadeiro”. X-Y será menor que zero, mas, como C é
verdadeiro, isto significa que a condição foi atendida e o conteúdo
condicional será executado. Então, R1 receberá o valor 1.

Nossa segunda estrutura condicional diz que:

se (((A e B) ou C) e ((X > Y) ou não(A)))

Mais uma vez, temos que descobrir se a sentença nos retorna


verdadeiro ou falso, para executarmos o então ou o senão. Como a
nossa ao matemática nos ensina, vamos resolver os parênteses de dentro
para fora:

A e B -> B é falso, logo, A e B -> falso;


falso ou C -> C é verdadeiro, logo, falso ou C -> verdadeiro;
X>Y é falso;
não(A) é falso, uma vez que A é verdadeiro;
falso ou falso é falso;

Então, aquela complexa estrutura condiciona ficou igual a:

se (verdadeiro e falso)

Prof. Victor Dalton


www.estrategiaconcursos.com.br 37 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Assim sendo, a sentença é falsa e o próximo passo do algoritmo
será executar o senão. Logo, R2 recebe o valor 0.

Por fim, temos a terceira estrutura condicional, cuja sentença é a mais


extensa:
se (( B ou (X-Y<0)) e ((B e não(A)) ou (não(C)))

Vamos estudá-la em detalhes, e reescrevendo-a a cada passo.

X-Y < 0 -> 2,5 – 3,5 < 0 -> verdadeiro;


não(A) -> não (verdadeiro) -> falso;
não(C) -> não (verdadeiro) -> falso;
B -> falso;

Com isso, temos:

se (( falso ou verdadeiro) e ((falso e falso) ou falso))

falso ou verdadeiro -> verdadeiro;


falso e falso -> falso; -> falso ou falso -> falso;

E a sentença se resume a se (verdadeiro e falso), o que nos leva a


falso, e, novamente, a condição executada será o senão. Isto posto, R3
recebe o valor 0.

Finalizado o algoritmo, R1 vale 1, R2 e R3 valem 0.

Conseguiu acompanhar? Um programa nada mais é que uma série de


procedimentos simples, que, uma vez unidos, se tornam um todo altamente
complexo. Portanto, para “debugá-lo”, o procedimento é decompor o problema
até o nível que você enxerga passos simples, e assim consegue analisá-lo.

Resposta certa, alternativa c).

Prof. Victor Dalton


www.estrategiaconcursos.com.br 38 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
4ª Questão)(FCC – TRF/4ª Região – Analista Judiciário – Informática
– 2010) Considere:

Dado o algoritmo representado na forma de português estruturado, o valor


de saída contido na variável RESP será

a) 6.
b) 22.
c) 86.
d) 0.
e) 342.

E continuemos a nos exercitar!

Este exercício é um pouco mais complexo, pois possui uma estrutura de


repetição dentro da outra. Tal visualização é possível por causa da identação,
que é esse recurso visual de tabular mais à direita as estruturas que devem ser
executadas dentro de outras estruturas.

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

Prof. Victor Dalton


www.estrategiaconcursos.com.br 39 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
todas as variáveis e os valores que elas assumem ao longo 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

Prof. Victor Dalton


www.estrategiaconcursos.com.br 40 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
CONTB 1 2
EXP 2 4
RESP 2 6

Chegamos ao fim do primeiro ciclo do primeiro para. Logo, devemos


incrementar o contador, de passo 2, e tentar executar a iteração novamente.

CONTA agora vale 4, ficando igual a N. Podemos prosseguir.


EXP novamente assume o valor 2, e CONTB volta a assumir o valor 1. Tudo
sob controle?

N 4
X 2
CONTA 2 4
CONTB 1 2 1
EXP 2 4 2
RESP 2 6

No segundo para CONTB vale 1 e deverá ser incrementado até CONTA-1,


ou seja, até 3.

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

Pulado o segundo para, executa-se a última linha do primeiro para,


atribuindo a RESP o seu próprio valor acrescido de EXP. 6 + 16, 22.

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!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 41 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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.

Resposta certa, alternativa b).

5ª Questão) (FCC – METRÔ/SP – Analista Desenvolvimento Gestão


Júnior – Ciências da Computação - 2012) Analise a estrutura abaixo.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 42 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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.

O algoritmo começa pra valer na estrutura de repetição “enquanto...faça”.


Esta, por sua vez, já inicia com uma estrutura condicional: se (cont mod 2 = 0).

mod, como o próprio enunciado da questão informa, é o operador que


calcula o resto da divisão entre dois números inteiros. Saber se X mod 2 = 0,
por exemplo, significa saber se o resto da divisão de X por 2 é zero ou não. Na
prática, serve para analisar se o número é par ou ímpar, percebeu? É só
analisar:

1 mod 2 = 0 -> falso;


2 mod 2 = 0 -> verdadeiro;
3 mod 2 = 0 -> falso;
4 mod 2 = 0 -> verdadeiro;

Programação é isso, pequenos raciocínios o tempo todo. Continuemos:

Na sequência, temos um então, executado quando o contador for par, e


um senão, executado quando o contador for ímpar.

Quando o contador é par, a resp é adicionado o valor do contador com


sinal negativo (resp <- resp + cont*s);

Prof. Victor Dalton


www.estrategiaconcursos.com.br 43 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Por sua vez, quando o contador é ímpar, a resp é adicionado o valor do
próprio contador, sem modificações (resp <- resp + cont);

Já conseguiu enxergar isso? Se você estiver enxergando, já será um


excelente sinal. Veja como a tabela evolui ao longo de três contagens:

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

O procedimento do algortimo é esse. Quando contador(CONT) ultrapassa o


valor de N,a estrutura “enquanto...faça” é abortada e o valor de RESP é
impresso.
Assim sendo, percebemos que resp representa a solução da equação 0 + 1
- 2 + 3 - 4 + 5 ... (+ ou -) n.

Alternativa a).

6ª Questão) (UEL - CELEPAR – Analista de Informática Júnior –


Desenvolvimento de Sistemas - 2009) O seguinte algoritmo implementa um
método de ordenação:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 44 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Assinale a alternativa que indica quantas vezes o trecho destacado do
algoritmo será executado, se o algoritmo for executado recebendo como
parâmetros {6, 5, 4, 3, 2, 1} e 6.

a) 0

b) 1

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.

Na sequência temos uma grande estrutura de repetição, que engloba uma


estrutura de repetição e uma condicional. A primeira executará inicializando o
valor de i com 1, e executará enquanto 1 for menor que n-1, ou seja , 5. Vamos
precisar da nossa tabela auxiliar com as variáveis:

VET[] {6,5,4,3,2,1}
N 6
I
J
POS
AUX

Ao iniciar, atribui-se à variável pos o valor de i, que é 1. Na sequência,


outra estrutura de repetição! Vá acompanhando com a mão, rabisque a lápis se
necessário, mas acompanhe o código linha a linha!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 45 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
E é isso mesmo. Ao entrar em uma estrutura de repetição dentro de uma
outra estrutura de repetição, a estrutura anterior só continua a sua execução
após o término da interna. E, quando a estrutura externa retomar outro “loop”,
a interna será executada novamente, como se nada tivesse acontecido antes.
Acompanhe!

Na segunda estrutura condicional, j começa com o valor de i + 1 (2),


podendo ir até n (6). Vamos continuar anotando?

No primeiro “loop”, tanto do primeiro para quanto do segundo para,


temos:

VET[] {6,5,4,3,2,1}
N 6
I 1
J 2
POS 1
AUX

Perceba que vet[1] é 6, vet[2] é 5, ..., e vet[6] é 1. Normalmente em


pseudocódigo é assim.

No primeiro se, que ocorre em se (vet[pos]> vet[j]), ocorre uma


comparação. Caso o valor de vet[pos], pos valendo 1, seja maior que o valor
de vet[j], j valendo 2, ele atribuirá a pos o valor de j, 2, atribuirá a j o valor de
j + 1 (3). Está ficando bem difícil, por isso desenhe em folha de papel à parte,
continue acompanhando com a tabelinha e escreva os valores das variáveis e
modifique eles à medida que o código modificá-la. Somente assim você
conseguirá acompanhar! Como essa questão apresentou um vetor invertido, na
verdade todo o vetor vai ser percorrido para verificação na primeira passagem,
encerrando somente quando pos=6 e j=7. E agora a mágica começa.

VET[] {6,5,4,3,2,1}
N 6
I 1
J 7
POS 6
AUX

Após a segunda estrutura de repetição “para...faça”, será verificado se pos


é diferente de i(na próxima estrutura condicional). Perceba que ainda estamos
dentro da primeira estrutura “para...faça”. Não deixe de acompanhar a
explicação lendo o código!

Prof. Victor Dalton


www.estrategiaconcursos.com.br 46 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Como pos vale 6 e i ainda vale 1, o conjunto dentro do quadrado trocará
os valores de vet[i] e vet[pos], usando uma variável auxiliar como
ferramenta. Conseguiu captar? vet, que é {6,5,4,3,2,1} passou a ser
{1,5,4,3,2,6}. Olha a função ordena trabalhando!

Feito isso, i será incrementado em 1, passando a valer 2, e o primeiro


“para...faça” continua a trabalhar.

pos recebe o valor de i (2), e o outro “para....faça” recomeça, com j=3,...


e por aí vai, de maneira análoga ao raciocínio desenvolvido anteriormente. Vou
deixar que você trabalhe o raciocínio no “braço”.

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.

Por fim, a resposta correta é a alternativa c).

Rascunhe no braço a resolução! Parece difícil, mas a solução para decifrar


algoritmos complicados é compartimentar os problema em pequenos problemas
fáceis, fazendo passo a passo, linha a linha, e mantendo o controle dos valores
de TODAS as variáveis.

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.

(CESPE – SERPRO – Técnico – Programação - 2008) A respeito da


lógica de programação, que é fundamental para o desenvolvimento de códigos
por meio de linguagens de programação, julgue os itens subsequentes.

7 Um algoritmo pode ser definido como uma sequência finita de


passos que levam à execução de determinada tarefa ou conjunto de
tarefas.

Correta. Definição clássica de algoritmo.

8 Na lógica de programação, a instrução é o comando principal que


indica a um programa uma condição estrutural a repetir.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 47 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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.

9 Um diagrama de blocos é uma forma padronizada para se


representar os passos lógicos de determinado processamento. Por meio
do diagrama, pode ser utilizada uma sequência de símbolos, com
significado bem definido, para auxiliar a representação dos passos de
um processamento.

Correta. Os diagramas são ferramentas úteis para representar visualmente


a execução de um algoritmo.

10 Os operadores relacionais são utilizados para comparar


números. Para se comparar sequências de caracteres (strings), são
utilizados os operadores lógicos, que retornam valores verdadeiro e
falso.

Errada. É possível comparar strings (texto) utilizando operadores


relacionais, que também retornam verdadeiro ou falso. Maior ou menor
comparam tamanho, enquanto igual ou diferente comparam conteúdo.

11 Em lógica de programação, uma constante é um valor fixo que


não se modifica ao longo do tempo durante a execução de um programa.
Essa constante pode ser numérica, lógica ou literal.

Correta. A constante não pode ser modificada, apenas a variável.

(CESPE – SERPRO – Analista – Suporte Técnico - 2013) Julgue os


itens seguintes, relativos a programação e lógica de programação.

12 Parâmetros são pontos de comunicação entre módulos de um


programa. A passagem de parâmetros, que consiste na substituição do
parâmetro formal pelo parâmetro real, pode ser realizada por valor ou
por referência.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 48 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Correta. Parâmetros são úteis, principalmente, em funções.

13 Segundo o pseudocódigo abaixo, um vetor de 100 números é


lido e, em seguida, é montado um segundo vetor a partir dos valores do
primeiro vetor multiplicados por 3.

início

VET1,VET2 : vetor [1..100] numérico

CONTADOR : numérico

para CONTADOR de 1 até 100 faça

leia "Digite um número: ",VET1[CONTADOR]

VET2[CONTADOR] (VET1[CONTADOR] * 3)

fim-para

fim

Errada. A montagem do segundo vetor ocorre paralelamente à montagem


do primeiro vetor (não em seguida, como sugere a assertiva), já que a leitura
dos valores do vetor ocorre dentro do laço. Faça o teste de mesa se tiver
dúvidas!

(CESPE – STM – Analista Judiciário – Análise de Sistemas – 2011 -


adaptada) Com relação a algoritmos e lógica de programação, julgue os itens a
seguir.

14 Procedimento ou sub-rotina é um conjunto de instruções que


realiza determinada tarefa. A diferença de um procedimento para uma
função é que as funções podem ser utilizadas em expressões, como se
fossem variáveis, pois elas retornam valores associados ao seu nome.

Correta. Funções facilitam a vida do programador, principalmente para


implementar operações matemáticas específicas.

15 Na passagem de parâmetros por referência, o valor do


parâmetro real é copiado para o parâmetro formal do módulo,
preservando, assim, o valor original do parâmetro. Na passagem de
parâmetros por valor, toda alteração feita nos parâmetros formais
reflete-se nos parâmetros reais.
Prof. Victor Dalton
www.estrategiaconcursos.com.br 49 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Errada. Inversão de conceitos! “Na passagem de parâmetros por
valor, o valor do parâmetro real é copiado para o parâmetro formal do
módulo, preservando, assim, o valor original do parâmetro. Na
passagem de parâmetros por referência, toda alteração feita nos
parâmetros formais reflete-se nos parâmetros reais.”

16 Nas estruturas de controle, tais como as estruturas de seleção


simples, compostas ou encadeadas, é necessário verificar as condições
para a realização de uma instrução ou sequência de instruções.

Correta. A verificação das condições ocorre no comando if.

(CESPE – Banco da Amazônia – Técnico Científico – Análise de


Sistemas - 2012)

17 O comando while utilizado em algoritmos implementa laços com


teste antecipado de condições, testando a condição e, sendo ela
verdadeira, executando o bloco de comandos.

Correta. Já o repeat until verifica a condição depois da execução da


estrutura.

18 Quando um break é encontrado dentro de um laço for, a


execução do código é interrompida e o programa é finalizado.

Errada. A execução do código é interrompida e o laço é encerrado,


retomando a execução normal do programa, imediatamente após o laço.

(CESPE – UNIPAMPA – Analista de Tecnologia da Informação –


Rede e Suporte - 2009) Em relação aos conceitos de lógica de programação
utilizados para a construção de algoritmos, julgue os próximos itens.

19 Valores que sejam armazenados em variáveis locais de


determinado procedimento ou função não podem ser utilizados em
outros procedimentos ou funções.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 50 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Errada. Não há problema algum, caso algum procedimento ou função seja
chamado dentro do procedimento ou função que contenha a variável local.
Abaixo, segue o exemplo, já visto, do procedimento REFERENCIA, que, sem
nenhum problema, passa a sua variável local como parâmetro para outro
procedimento, e o algoritmo funciona normalmente.

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

20 Estruturas de repetição permitem que uma sequência de


comandos seja executada repetidamente até que determinada condição
de interrupção seja satisfeita. É possível que, em determinada execução
do algoritmo, a sequência de comandos não seja executada nenhuma
vez.

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.

21 Registros são estruturas consideradas heterogêneas porque são


compostos de dados que, apesar de serem logicamente relacionados,
não têm necessariamente o mesmo tipo.

Correta. Registros são utilizados em programação estruturada. Seu


equivalente, na programação orientada a objetos, é o objeto.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 51 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
(CESPE – Banco da Amazônia – Técnico Científico – Redes e
Telecomunicações - 2010) Julgue os itens seguintes, relativos à lógica de
programação e construção de algoritmos.

22 Na definição de uma função, a passagem de parâmetros por


referência possibilita que o valor de uma variável passado como
argumento seja alterado na função, e sua alteração mantenha-se
mesmo após a execução da função.

Correta.

23 É possível implementar procedimentos cujos valores gerados


podem ser armazenados em variáveis que garantem sua existência
mesmo após o término da execução de tais procedimentos.

Correta. Basta armazenar esses valores em variáveis globais, que


deverão estar fora de todas as funções ou procedimentos do programa.

24 Estruturas de repetição são usadas para que determinado bloco


de comandos seja executado diversas vezes. A garantia de parada da
repetição ocorre por meio de uma condição que é verificada a cada nova
iteração. Dependendo do tipo de estrutura de repetição utilizado, o
bloco de comandos é executado pelo menos uma vez.

Correta. Quando se utiliza o repeat until, o bloco de comandos será


executado pelo menos uma vez.

25 Variáveis declaradas dentro de funções ou procedimentos são


chamadas de variáveis locais e não são visíveis por outras funções. Por
esse motivo, não é possível declarar variáveis que possam ser utilizadas
por qualquer função de um programa.

Errada. É perfeitamente possível. Basta declarar variáveis globais.

26ª Questão) (FCC – TCE/PR – Analista de Controle –Informática –


2011) Em relação à Programação Orientada a Objetos, é INCORRETO afirmar:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 52 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
a) Polimorfismo pode ser entendido como um conceito complementar ao de
herança. Assim, no polimorfismo é possível enviar a mesma mensagem a
diferentes objetos e cada objeto responder da maneira mais apropriada para sua
classe.
b) Uma agregação representa um todo que é composto de várias partes e
constitui um relacionamento de contenção; se qualquer uma das partes for
destruída, as demais partes também o serão.
c) Interfaces são como as classes abstratas, mas nelas não é possível
implementar nenhum método, apenas declarar suas assinaturas; uma classe ao
implementar uma interface deverá escrever todos os seus métodos.
d) No contexto da herança, uma instância da subclasse é, também, uma
instância da superclasse.
e) A aplicação do polimorfismo utilizando interfaces requer que o método
polimórfico seja definido na classe ancestral como abstract para possibilitar sua
redefinição nas classes descendentes.

O erro esta questão vem lá dos conceitos de UML. A agregação e a


composição são formas de associação entre objetos. O item descreve a
composição, sendo que, na agregação, a extinção de um objeto não elimina os
demais.
Para diferenciar agregação e composição eu sempre gosto de utilizar o
exemplo do time de futebol e do carro. Se você excluir o objeto “time de
futebol”, os jogadores permanecem. Já a exclusão do objeto “carro” leva consigo
os objetos “motor”, “pneus”, “câmbio”....

A alternativa errada é a letra b). As demais assertivas estão corretas.

27ª Questão) (FCC – INFRAERO – Analista Superior III –Analista de


Sistemas - Desenvolvimento e Manutenção – 2011) Sobre orientação a
objetos, é correto afirmar:

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.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 53 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

Marque a incorreta, marque a correta.... questões sobre POO, via de regra,


são teóricas. Indo direto ao ponto:

a) Errada. As variáveis de instância possuem valor específico ao objeto. As


variáveis de classe possuem um valor comum à classe;
b) Errada. A subclasse herda da superclasse;
c) Certa.
d) Errada. Estado -> atributos. Comportamento -> métodos;
e) Errada. As variáveis de instância são privadas e os métodos de captura e
configuração (get e set) são públicos.

28ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) A programação
orientada a objetos é baseada em diversos conceitos, tais como
encapsulamento, herança, polimorfismo e abstração. Com relação a esses
conceitos, é correto afirmar que
a) o conceito de encapsulamento é alcançado por meio da definição da
visibilidade pública aos atributos e métodos.
b) herança é um mecanismo que permite que uma classe herde todo o
comportamento e os atributos de outra classe. Em Java, pode-se implementar
tanto a herança única quanto a herança múltipla.
c) interface pode ser considerada como a forma com que um objeto se
apresenta para outros, no que diz respeito aos seus atributos e métodos. Em
Java, uma mesma classe não pode implementar mais de uma interface.
d) polimorfismo é o uso de um mesmo nome para identificar diferentes
implementações dos métodos. Seu uso é comum na definição de construtores,
em que os mesmos podem ser implementados em diferentes versões para as
diferentes formas de se instanciar a classe.
e) para uma classe ser considerada abstrata, todos os seus métodos devem
ser abstratos. Em Java, para se definir uma classe abstrata deve-se utilizar a
palavra chave “abstract” no início de sua declaração.

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;

Prof. Victor Dalton


www.estrategiaconcursos.com.br 54 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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.

Portanto, nossa alternativa correta é a letra d).

29ª Questão) (FCC – INFRAERO – Analista Superior III –Analista de


Sistemas - Desenvolvimento e Manutenção – 2011) Em Sistemas
Orientados a Objeto (OOP), a utilização de polimorfismo contribui para a
extensão das funcionalidades do sistema, pois

a) favorece a reutilização de código devido ao encapsulamento de suas


operações e atributos.
b) permite que uma classe possa herdar operações e atributos de outra
classe, introduzindo suas próprias operações e atributos.
c) a abstração na geração de novas classes permite que novos atributos
herdem as características da superclasse.
d) possibilita a utilização de uma mesma operação para tarefas diferentes,
determinadas por sua assinatura ou sobrecarga da operação original.
e) permite que a mesma mensagem seja enviada a objetos de classes
distintas, favorecendo a reutilização de código.

Várias alternativas confusas, e inclusive nonsense. Mas quero usar esta


questão para chamar sua atenção para um conceito interessante.

A sobrecarga de métodos pode ser considerada um Polimorfismo Ad-Hoc.


Embora os principais tratem a sobrecarga de métodos como uma característica
distinta do polimorfismo, professores e estudantes discutem esse “polimorfismo
ad-hoc” mundo afora (ou seja, fóruns afora). A próxima questão, de outra
banca, vai justamente diferenciar o polimorfismo da sobrecarga de métodos.

Mas Victor, então eu devo ou não devo considerar a sobrecarga de métodos


como uma forma de polimorfismo?

Prof. Victor Dalton


www.estrategiaconcursos.com.br 55 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

Eu já disse antes e digo novamente: não estamos 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.

Resposta certa, alternativa d).

30ª Questão) (UEL – Agência de Fomento do Paraná – Analista de


Tecnologia da Informação – 2010) Analise os métodos da classe a seguir:

class c{
void m(int i);
void m(float i);
void m(double i);
}

Esses métodos constituem um exemplo de

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.

Métodos com mesmo nome, mudando apenas o parâmetro passado


(assinaturas diferentes), é a sobrecarga.Letra e).

31ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2012 - adaptada)
Acoplamento é uma medida

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.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 56 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

Acoplamento mede o quanto uma classe depende ou está relacionada à


outra. Uma característica desejável no software orientado a objetos é o
acoplamento fraco. Seu principal “vilão” é a herança, e cabe aos analistas de
sistema e aos programadores a dosagem adequada desta ferramenta, sob pena
de tornar o software difícil de manutenir.

Desta forma, a resposta correta é a alternativa b).

32ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) Com relação aos
conceitos de programação orientada a objetos, é correto afirmar que

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.
c) métodos finais, também conhecidos como finalizadores ou destrutores,
são chamados na destruição de uma instância.
d) métodos construtores são métodos chamados sobre um objeto quando
ele é criado. Em Java, os construtores têm o mesmo nome da classe da qual são
membros e o tipo retornado por eles é especificado na sua definição.
e) métodos de classe são aqueles que executam operações que afetam
objetos individuais da classe.

Vamos ver mais ideias analisando as alternativas.


a) Métodos abstratos são métodos definidos e não implementados nas
classes abstratas, devendo serem implementadas por suas subclasses.
Se “public class Pessoa” fosse “public abstract class Pessoa”, Pessoa
seria uma classe abstrata, e não poderiam existir objetos Pessoa. Mas
objetos Funcionario, herdando os atributos de Pessoa, poderiam existir
sem problemas. Errada;
b) Métodos estáticos são métodos atrelados à classe (métodos de
classe), e que não exigem a instância de um objeto para a sua
execução. Desta forma, não pode o método manipular um atributo da
classe, mesmo porque não faria sentido um método sair modificando
atributos simultaneamente em todas as instâncias da classe, ou até
mesmo tentar modificar um atributo sem nenhum objeto instanciado.
Correta!
c) Métodos finais são métodos declarados em uma superclasse que
não poderão ser sobrescritos em uma subclasse. Não se relacionam
com destrutores, que são métodos executados quando da exclusão de
um objeto. Se “public void setNome(String novo_nome)” fosse “public
final void setNome(String novo_nome)”, a classe Funcionario não

Prof. Victor Dalton


www.estrategiaconcursos.com.br 57 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
poderia escrever, dentro dela um outro método “public void
setNome(String novo_nome)”, ou seja, não poderia sobrescrever o
método da superclasse. Errada;
d) A sentença estaria correta, mas construtor não necessita especificar
nenhum tipo, uma vez que seu nome é o nome da própria classe a ser
instanciada. Errada;
e) Conforme falado na alternativa b, métodos de classe não operam
sobre atributos da classe, nem dos objetos instanciados. Errada;

33ª Questão) (FCC – Agente Fiscal de Rendas – Tecnologia da


Informação - 2009) Os valores das propriedades de um objeto em um
determinado instante, que podem mudar ao longo do tempo, representam

a) a instância de uma classe.


b) a identidade de um objeto.
c) o estado de um objeto.
d) o comportamento de um objeto.
e) as operações de uma classe.

Um objeto instanciado (o que é pleonasmo, pois todo objeto é uma classe


instanciada), possui duas características-chave: seu estado e seu
comportamento.
O comportamento de um objeto é refletido pelos métodos que ele pode
chamar, sejam eles nativos da classe ou herdados de superclasses.
O estado do objeto, por sua vez, são os valores das propriedades de um
objeto em um determinado instante. Por exemplo, um objeto Pessoa com nome
= “José”, cpf=”123.456.789-00” e idade=18 encontra-se em um determinado
estado. Caso mudemos o nome para “João”, modificamos o estado do objeto.
Compreendido?

Resposta certa, letra c).

34ª Questão) (CETRO – SEMSA – Especialista em Saúde – Analista de


Sistemas - 2012) Quanto à orientação a objetos, analise as assertivas abaixo.

I. O polimorfismo permite que uma mesma classe possa ser utilizada em


diferentes contextos.

II. Na composição, quando uma instância é removida, suas partes também


deverão ser removidas.

III. Na agregação, quando uma instância for removida, suas partes não
necessariamente deverão ser removidas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 58 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
É correto o que se afirma em

(A) I e III, apenas.

(B) I e II, apenas.

(C) II e III, apenas.

(D) I, II e III.

(E) II, apenas.

Analisando as assertivas:

I. O polimorfismo permite que uma mesma classe possa ser utilizada em


diferentes contextos. – correto. No polimorfismo, um mesmo método pode ser
definido de formas diferentes. Associado à herança, podem diferentes classes
“filhas” de uma mesma classe mãe utilizarem o mesmo nome de método para
executar tarefas diferentes.

II. Na composição, quando uma instância é removida, suas partes também


deverão ser removidas. – correto. Na composição, a parte não existe sem o
todo.

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.

Resposta certa, alternativa d).

35ª Questão) (UEL – SEFAZ/PR – Auditor Fiscal – 2012) Um


fluxograma pode ser entendido como um diagrama que ilustra de forma gráfica
ou esquemática a sequência de passos para a realização de uma determinada
tarefa ou processo, de maneira simples. Também são utilizados para ilustrar o
fluxo de execução de algoritmos. Considere o fluxograma a seguir.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 59 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

Assinale a alternativa que apresenta, corretamente, o pseudocódigo cujo fluxo


de execução esteja representado por esse fluxograma.
a)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
fim
senao
I8

Prof. Victor Dalton


www.estrategiaconcursos.com.br 60 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
I9
fim
I10
fim
I11
fim
I12
fim
b)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
senao
I8
I9
fim
I10
fim
I11
fim
I12
fim
c)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
enquanto C6 faca
se C5
I6
I7
senao
I8
I9
fim
fim
fim
I10
fim
I11
fim
I12
fim
Prof. Victor Dalton
www.estrategiaconcursos.com.br 61 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
d)
inicio
I1
se C1
enquanto C2 faca
I2
I3
fim
I4
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
senao
I8
I9
fim
fim
I10
fim
I11
fim
I12
fim
e)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
senao
I8
I9
fim
fim
I10
fim
fim
I11
I12
fim

A questão pode até assustar, no começo, mas é simples. Basta entender o que
se pede.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 62 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
Primeiro, é necessário compreender a "legenda". Início e Fim são elipses.
Uma declaração é representada por um retângulo. Se (e senão) estão
representados por losangos. A estrutura enquanto é um hexágono. Ainda,
perceba que o encerramento de uma função, e seu escape para a função
superior, é representada por uma circunferência pequena.

Ciente dessas informações,não resta nada a fazer, a não ser, de alternativa em


alternativa, procurar aquela que se encaixa no código. Tentar desenhar as
alternativas à mão não é intuitivo, e você ainda corre o risco de desenhar a
alternativa correta e seu desenho não equivaler ao do enunciado, por questões
de posicionamento das estruturas que você desenhar.

Para auxiliar a compreensão, segue abaixo o gabarito da alternativa a), que é


a correta. Espero que ela auxilie seus estudos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 63 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
36ª Questão) (UEL – SEFAZ/PR – Auditor Fiscal – 2012) Um
determinado algoritmo recebeu a seguinte sequência de valores de entrada:

44 23 31 51 92 77 45 37 61 17 83 0

O algoritmo produziu, como saída, os valores 92 e 17, respectivamente.

Assinale a alternativa que contém, corretamente, o pseudocódigo do algoritmo


que apresenta o comportamento descrito.

a)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > c entao
c <- a
senao
se a < b
b <- a
fim
fim
leia(a)
fim
imprima(c,b)

b)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > c entao
c <- a
senao
se a < b
b <- a
fim
fim 21600511287

leia(a)
fim
imprima(b,c)
fim

c)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > b entao
b <- a
senao
se a < c
c <- a
fim

Prof. Victor Dalton


www.estrategiaconcursos.com.br 64 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
fim
leia(a)
fim
imprima(c,b)
fim

d)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > b entao
b <- a
senao
c <- a
fim
leia(a)
fim
imprima(b,c)
fim

e)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > b entao
c <- a
fim
se a < c
b <- a
fim
leia(a)
fim
imprima(b,c)
fim

Outra questão que vem para testar seu raciocínio lógico, mais do que qualquer
outra coisa.

Neste caso, não resta outra opção a não ser inserir este array em todas as
21600511287

alternativas e verificar qual produz a saída desejada.

Ao realizar este trabalho braçal, você verificará que a alternativa a) é a


correta.

Perceba que, nesta questão, atribui-se à variável c o maior valor do array, e à


variável b o menor, e o zero encerra o enquanto.

c assume os valores 44, 51 e 92, finalizando com esse valor. b assume os


valores 44, 23 e termina com 17.

A alternativa b) chega a fazer a mesma coisa, mas imprime 17 e 92.

É uma questão fácil, mas trabalhosa.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 65 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
37ª Questão) (UEL – SEFAZ/PR – Auditor Fiscal – 2012) Em relação a
classes abstratas, assinale a alternativa correta.

a) Classes filhas de classes abstratas não podem ser abstratas.

b) Não é possível declarar métodos virtuais em classes abstratas.

c) Não é possível instanciar um objeto de uma classe abstrata.

d) Uma classe abstrata não pode ser usada como base para outras classes.

e) Uma classe abstrata não pode possuir atributos protected.

Uma classe abstrata é desenvolvida para representar entidades e conceitos


abstratos. A classe abstrata é sempre uma superclasse que não possui
instâncias. Ela define um modelo (template) para uma funcionalidade e fornece
uma implementação incompleta - a parte genérica dessa funcionalidade - que é
compartilhada por um grupo de classes derivadas. Cada uma das classes
derivadas completa a funcionalidade da classe abstrata adicionando um
comportamento específico.

Uma classe abstrata normalmente possui métodos abstratos. Esses


métodos são implementados nas suas classes derivadas concretas com o
objetivo de definir o comportamento específico. O método abstrato define
apenas a assinatura do método e, portanto, não contém código.

Perceba que, quanto às alternativas, apenas a c) é correta. As demais


alternativas chegam a ser uma contradição à própria finalidade da classe
abstrata, que é permitir a implementação e a modificação de seus atributos por
subclasses. E nada impede que existam subclasses abstratas.

CONSIDERAÇÕES FINAIS

Companheiros e companheiras,

Espero que esta apostila tenha sido de valia para vocês, em especial se
você nunca viu programação na vida. Chega de ter medo de código!

Se você continuou sentindo dificuldade, não deixe de assistir à videoaula.


Tenho certeza que ela pode lhe ajudar na assimilação desse conteúdo.

Nossa próxima aula é sobre Redes de Computadores. Até lá!

Victor Dalton

Prof. Victor Dalton


www.estrategiaconcursos.com.br 66 de 85
Tecnologia da Informação para /CMS/SP 2015- Pré Edital
Agente Fiscal de Rendas- Especialidade Gestão Tributária
Pro Victor Dalton -Aula 06
EXERCICIOS COMENTADOS

1a Questão) (FCC - TRE/SP - Técnico Judiciário - Programação de


Sistemas - 2012) Analise o algoritmo a segu ir:

Algoritmo Cálculo
var n, r, cont: inteiro
início
r f- 1
cont f- 1
enquanto (cont<=S) faça
leia(n)
r f- r * n
cont f- cont + 1
fim_enquanto
imprima (r)
fim

Se forem lidos os valores 2, 5, 7, 3 e 4,

a) a saída será 840 .


b) haverá um erro, pois o resultado de um cálculo envolvendo a variável r
não pode ser armazenado na própria variável r .
c) a saída será 2 10 .
d) haverá um erro, pois o valor gerado será maior do que uma variáve l do
tipo inteiro pode suportar.
e) a saída será O.

Prof. Victor Da/ton


www.estrategiaconcursos.com.br 67 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
2ª Questão) (UEL - CMTU – Analista Administrativo – Tecnologia da
Informação - 2011) Observe o trecho do algoritmo a seguir

atribuir 50 a I
atribuir 0 a TOTAL
atribuir 0 a K

enquanto K < I faca

inıcio
somar 10 a K;
atribuir TOTAL+K a TOTAL
imprimir(K);
fim;

fim-enquanto;

imprimir(TOTAL);

Ao final do processamento, a variável TOTAL e o número de vezes que a K


será impresso são, respectivamente:

a) 100 e 4

b) 150 e 5

c) 150 e 8

d) 150 e 9

e) 210 e 6

Prof. Victor Dalton


www.estrategiaconcursos.com.br 68 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
3ª Questão) (FCC – ARCE – Analista de Regulação - Analista de
Sistemas – 2012) Considere o algoritmo em pseudocódigo:

Os valores de R1, R2 e R3, após a execução do algoritmo são:

a) R1=0, R2=1, R3=1


b) R1=1, R2=1, R3=0
c) R1=1, R2=0, R3=0

Prof. Victor Dalton


www.estrategiaconcursos.com.br 69 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
d) R1=0, R2=0, R3=1
e) R1=0, R2=0, R3=0

4ª Questão)(FCC – TRF/4ª Região – Analista Judiciário – Informática


– 2010) Considere:

Dado o algoritmo representado na forma de português estruturado, o valor


de saída contido na variável RESP será

a) 6.
b) 22.
c) 86.
d) 0.
e) 342.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 70 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
5ª Questão) (FCC – METRÔ/SP – Analista Desenvolvimento Gestão
Júnior – Ciências da Computação - 2012) Analise a estrutura abaixo.

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

Prof. Victor Dalton


www.estrategiaconcursos.com.br 71 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
6ª Questão) (UEL - CELEPAR – Analista de Informática Júnior –
Desenvolvimento de Sistemas - 2009) O seguinte algoritmo implementa um
método de ordenação:

Assinale a alternativa que indica quantas vezes o trecho destacado do


algoritmo será executado, se o algoritmo for executado recebendo como
parâmetros {6, 5, 4, 3, 2, 1} e 6.

a) 0

b) 1

c) 3

d) 5

e) 6

(CESPE – SERPRO – Técnico – Programação - 2008) A respeito da


lógica de programação, que é fundamental para o desenvolvimento de códigos
por meio de linguagens de programação, julgue os itens subsequentes.

7 Um algoritmo pode ser definido como uma sequência finita de


passos que levam à execução de determinada tarefa ou conjunto de
tarefas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 72 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

8 Na lógica de programação, a instrução é o comando principal que


indica a um programa uma condição estrutural a repetir.

9 Um diagrama de blocos é uma forma padronizada para se


representar os passos lógicos de determinado processamento. Por meio
do diagrama, pode ser utilizada uma sequência de símbolos, com
significado bem definido, para auxiliar a representação dos passos de
um processamento.

10 Os operadores relacionais são utilizados para comparar


números. Para se comparar sequências de caracteres (strings), são
utilizados os operadores lógicos, que retornam valores verdadeiro e
falso.

11 Em lógica de programação, uma constante é um valor fixo que


não se modifica ao longo do tempo durante a execução de um programa.
Essa constante pode ser numérica, lógica ou literal.

(CESPE – SERPRO – Analista – Suporte Técnico - 2013) Julgue os


itens seguintes, relativos a programação e lógica de programação.

12 Parâmetros são pontos de comunicação entre módulos de um


programa. A passagem de parâmetros, que consiste na substituição do
parâmetro formal pelo parâmetro real, pode ser realizada por valor ou
por referência.

13 Segundo o pseudocódigo abaixo, um vetor de 100 números é


lido e, em seguida, é montado um segundo vetor a partir dos valores do
primeiro vetor multiplicados por 3.

início

VET1,VET2 : vetor [1..100] numérico

CONTADOR : numérico

para CONTADOR de 1 até 100 faça

leia "Digite um número: ",VET1[CONTADOR]

Prof. Victor Dalton


www.estrategiaconcursos.com.br 73 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
VET2[CONTADOR] (VET1[CONTADOR] * 3)

fim-para

fim

(CESPE – STM – Analista Judiciário – Análise de Sistemas – 2011 -


adaptada) Com relação a algoritmos e lógica de programação, julgue os itens a
seguir.

14 Procedimento ou sub-rotina é um conjunto de instruções que


realiza determinada tarefa. A diferença de um procedimento para uma
função é que as funções podem ser utilizadas em expressões, como se
fossem variáveis, pois elas retornam valores associados ao seu nome.

15 Na passagem de parâmetros por referência, o valor do


parâmetro real é copiado para o parâmetro formal do módulo,
preservando, assim, o valor original do parâmetro. Na passagem de
parâmetros por valor, toda alteração feita nos parâmetros formais
reflete-se nos parâmetros reais.

16 Nas estruturas de controle, tais como as estruturas de seleção


simples, compostas ou encadeadas, é necessário verificar as condições
para a realização de uma instrução ou sequência de instruções.

(CESPE – Banco da Amazônia – Técnico Científico – Análise de


Sistemas - 2012)

17 O comando while utilizado em algoritmos implementa laços com


teste antecipado de condições, testando a condição e, sendo ela
verdadeira, executando o bloco de comandos.

18 Quando um break é encontrado dentro de um laço for, a


execução do código é interrompida e o programa é finalizado.

(CESPE – UNIPAMPA – Analista de Tecnologia da Informação –


Rede e Suporte - 2009) Em relação aos conceitos de lógica de programação
utilizados para a construção de algoritmos, julgue os próximos itens.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 74 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
19 Valores que sejam armazenados em variáveis locais de
determinado procedimento ou função não podem ser utilizados em
outros procedimentos ou funções.

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

20 Estruturas de repetição permitem que uma sequência de


comandos seja executada repetidamente até que determinada condição
de interrupção seja satisfeita. É possível que, em determinada execução
do algoritmo, a sequência de comandos não seja executada nenhuma
vez.

21 Registros são estruturas consideradas heterogêneas porque são


compostos de dados que, apesar de serem logicamente relacionados,
não têm necessariamente o mesmo tipo.

(CESPE – Banco da Amazônia – Técnico Científico – Redes e


Telecomunicações - 2010) Julgue os itens seguintes, relativos à lógica de
programação e construção de algoritmos.

22 Na definição de uma função, a passagem de parâmetros por


referência possibilita que o valor de uma variável passado como
argumento seja alterado na função, e sua alteração mantenha-se
mesmo após a execução da função.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 75 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
23 É possível implementar procedimentos cujos valores gerados
podem ser armazenados em variáveis que garantem sua existência
mesmo após o término da execução de tais procedimentos.

24 Estruturas de repetição são usadas para que determinado bloco


de comandos seja executado diversas vezes. A garantia de parada da
repetição ocorre por meio de uma condição que é verificada a cada nova
iteração. Dependendo do tipo de estrutura de repetição utilizado, o
bloco de comandos é executado pelo menos uma vez.

25 Variáveis declaradas dentro de funções ou procedimentos são


chamadas de variáveis locais e não são visíveis por outras funções. Por
esse motivo, não é possível declarar variáveis que possam ser utilizadas
por qualquer função de um programa.

26ª Questão) (FCC – TCE/PR – Analista de Controle –Informática –


2011) Em relação à Programação Orientada a Objetos, é INCORRETO afirmar:

a) Polimorfismo pode ser entendido como um conceito complementar ao de


herança. Assim, no polimorfismo é possível enviar a mesma mensagem a
diferentes objetos e cada objeto responder da maneira mais apropriada para sua
classe.
b) Uma agregação representa um todo que é composto de várias partes e
constitui um relacionamento de contenção; se qualquer uma das partes for
destruída, as demais partes também o serão.
c) Interfaces são como as classes abstratas, mas nelas não é possível
implementar nenhum método, apenas declarar suas assinaturas; uma classe ao
implementar uma interface deverá escrever todos os seus métodos.
d) No contexto da herança, uma instância da subclasse é, também, uma
instância da superclasse.
e) A aplicação do polimorfismo utilizando interfaces requer que o método
polimórfico seja definido na classe ancestral como abstract para possibilitar sua
redefinição nas classes descendentes.

27ª Questão) (FCC – INFRAERO – Analista Superior III –Analista de


Sistemas - Desenvolvimento e Manutenção – 2011) Sobre orientação a
objetos, é correto afirmar:

Prof. Victor Dalton


www.estrategiaconcursos.com.br 76 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
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.

28ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) A programação
orientada a objetos é baseada em diversos conceitos, tais como
encapsulamento, herança, polimorfismo e abstração. Com relação a esses
conceitos, é correto afirmar que
a) o conceito de encapsulamento é alcançado por meio da definição da
visibilidade pública aos atributos e métodos.
b) herança é um mecanismo que permite que uma classe herde todo o
comportamento e os atributos de outra classe. Em Java, pode-se implementar
tanto a herança única quanto a herança múltipla.
c) interface pode ser considerada como a forma com que um objeto se
apresenta para outros, no que diz respeito aos seus atributos e métodos. Em
Java, uma mesma classe não pode implementar mais de uma interface.
d) polimorfismo é o uso de um mesmo nome para identificar diferentes
implementações dos métodos. Seu uso é comum na definição de construtores,
em que os mesmos podem ser implementados em diferentes versões para as
diferentes formas de se instanciar a classe.
e) para uma classe ser considerada abstrata, todos os seus métodos devem
ser abstratos. Em Java, para se definir uma classe abstrata deve-se utilizar a
palavra chave “abstract” no início de sua declaração.

29ª Questão) (FCC – INFRAERO – Analista Superior III –Analista de


Sistemas - Desenvolvimento e Manutenção – 2011) Em Sistemas
Orientados a Objeto (OOP), a utilização de polimorfismo contribui para a
extensão das funcionalidades do sistema, pois

a) favorece a reutilização de código devido ao encapsulamento de suas


operações e atributos.
b) permite que uma classe possa herdar operações e atributos de outra
classe, introduzindo suas próprias operações e atributos.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 77 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
c) a abstração na geração de novas classes permite que novos atributos
herdem as características da superclasse.
d) possibilita a utilização de uma mesma operação para tarefas diferentes,
determinadas por sua assinatura ou sobrecarga da operação original.
e) permite que a mesma mensagem seja enviada a objetos de classes
distintas, favorecendo a reutilização de código.

30ª Questão) (UEL – Agência de Fomento do Paraná – Analista de


Tecnologia da Informação – 2010) Analise os métodos da classe a seguir:

class c{
void m(int i);
void m(float i);
void m(double i);
}

Esses métodos constituem um exemplo de

a) polimorfismo
b)herança múltipla
c)métodos virtuais
d)métodos privados
e)sobrecarga de métodos

31ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2012 - adaptada)
Acoplamento é uma medida

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.

32ª Questão) (ESAF – Analista de Finanças e Controle –


Desenvolvimento de Sistemas de Informação – 2008) Com relação aos
conceitos de programação orientada a objetos, é correto afirmar que

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.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 78 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
c) métodos finais, também conhecidos como finalizadores ou destrutores,
são chamados na destruição de uma instância.
d) métodos construtores são métodos chamados sobre um objeto quando
ele é criado. Em Java, os construtores têm o mesmo nome da classe da qual são
membros e o tipo retornado por eles é especificado na sua definição.
e) métodos de classe são aqueles que executam operações que afetam
objetos individuais da classe.

33ª Questão) (FCC – Agente Fiscal de Rendas – Tecnologia da


Informação - 2009) Os valores das propriedades de um objeto em um
determinado instante, que podem mudar ao longo do tempo, representam

a) a instância de uma classe.


b) a identidade de um objeto.
c) o estado de um objeto.
d) o comportamento de um objeto.
e) as operações de uma classe.

34ª Questão) (CETRO – SEMSA – Especialista em Saúde – Analista de


Sistemas - 2012) Quanto à orientação a objetos, analise as assertivas abaixo.

I. O polimorfismo permite que uma mesma classe possa ser utilizada em


diferentes contextos.

II. Na composição, quando uma instância é removida, suas partes também


deverão ser removidas.

III. Na agregação, quando uma instância for removida, suas partes não
necessariamente deverão ser removidas.

É correto o que se afirma em

(A) I e III, apenas.

(B) I e II, apenas.

(C) II e III, apenas.

(D) I, II e III.

(E) II, apenas.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 79 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
35ª Questão) (UEL – SEFAZ/PR – Auditor Fiscal – 2012) Um
fluxograma pode ser entendido como um diagrama que ilustra de forma gráfica
ou esquemática a sequência de passos para a realização de uma determinada
tarefa ou processo, de maneira simples. Também são utilizados para ilustrar o
fluxo de execução de algoritmos. Considere o fluxograma a seguir.

Assinale a alternativa que apresenta, corretamente, o pseudocódigo cujo fluxo


de execução esteja representado por esse fluxograma.
a)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca

Prof. Victor Dalton


www.estrategiaconcursos.com.br 80 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
fim
senao
I8
I9
fim
I10
fim
I11
fim
I12
fim
b)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
senao
I8
I9
fim
I10
fim
I11
fim
I12
fim
c)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
enquanto C6 faca
se C5
I6
I7
senao
I8
Prof. Victor Dalton
www.estrategiaconcursos.com.br 81 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
I9
fim
fim
fim
I10
fim
I11
fim
I12
fim
d)
inicio
I1
se C1
enquanto C2 faca
I2
I3
fim
I4
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
senao
I8
I9
fim
fim
I10
fim
I11
fim
I12
fim
e)
inicio
I1
se C1
I2
enquanto C2 faca
I3
I4
fim
senao
enquanto C3 faca
I5
se C4
se C5
enquanto C6 faca
I6
I7
fim
senao
I8
I9
fim
fim
I10
fim
fim
Prof. Victor Dalton
www.estrategiaconcursos.com.br 82 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
I11
I12
fim

36ª Questão) (UEL – SEFAZ/PR – Auditor Fiscal – 2012) Um


determinado algoritmo recebeu a seguinte sequência de valores de entrada:

44 23 31 51 92 77 45 37 61 17 83 0

O algoritmo produziu, como saída, os valores 92 e 17, respectivamente.

Assinale a alternativa que contém, corretamente, o pseudocódigo do algoritmo


que apresenta o comportamento descrito.

a)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > c entao
c <- a
senao
se a < b
b <- a
fim
fim
leia(a)
fim
imprima(c,b)

b)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > c entao 21600511287

c <- a
senao
se a < b
b <- a
fim
fim
leia(a)
fim
imprima(b,c)
fim

c)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca

Prof. Victor Dalton


www.estrategiaconcursos.com.br 83 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06
se a > b entao
b <- a
senao
se a < c
c <- a
fim
fim
leia(a)
fim
imprima(c,b)
fim

d)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > b entao
b <- a
senao
c <- a
fim
leia(a)
fim
imprima(b,c)
fim

e)
inicio
leia(a)
b <- a
c <- a

enquanto a 6 0 faca
se a > b entao
c <- a
fim
se a < c
b <- a
fim
leia(a)
fim
imprima(b,c)
fim
21600511287

37ª Questão) (UEL – SEFAZ/PR – Auditor Fiscal – 2012) Em relação a


classes abstratas, assinale a alternativa correta.

a) Classes filhas de classes abstratas não podem ser abstratas.

b) Não é possível declarar métodos virtuais em classes abstratas.

c) Não é possível instanciar um objeto de uma classe abstrata.

d) Uma classe abstrata não pode ser usada como base para outras classes.

Prof. Victor Dalton


www.estrategiaconcursos.com.br 84 de 85
Tecnologia da Informação para ICMS/SP 2015 Pré Edital
Agente Fiscal de Rendas Especialidade Gestão Tributária
Prof Victor Dalton Aula 06

e) Uma classe abstrata não pode possuir atributos protected.

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.a 36.a 37.c

Prof. Victor Dalton


www.estrategiaconcursos.com.br 85 de 85

Vous aimerez peut-être aussi