Você está na página 1de 51

03/04/2013

 Tecnólogo em Processamento de Dados


◦ Graduado em 1992

 Mestre em Ciência da Computação (UnB)


◦ Inteligência Artificial (1999)
Contato: alexandre.lenin@gmail.com
◦ (Algoritmo para) Aprendizado Automático em Redes
Bayesianas.

 Analista de Planejamento e Orçamento – APO  Professor


 Cargos anteriores ◦ Informática para Concursos

◦ Serpro – Analista de Sistemas (2005) ◦ Cursos técnicos desde 18 anos

◦ IBAMA – Analista Ambiental (2005-2007) ◦ Professor Universitário desde 1998

◦ Receita Federal – Analista-Tributário (2007-2009)  Algoritmos, Estruturas de Dados, Compiladores,


Inteligência Artificial, Linguagens Formais e
 Principais aprovações
Autômatos.
◦ STJ, PF (1ª fase), Câmara Legislativa, TJDFT
◦ Coordenador de Curso de Ciência da Computação

Contato: alexandre.lenin@gmail.com alexandre.lenin@gmail.com


Mais: www.provasdeti.com.br
Rede social dos concurseiros de TI: www.itnerante.com.br

Profile
http://www.itnerante.com.br/profiles/AlexandreLeninCarneiro

1
03/04/2013

 Conceitos Preliminares
◦ Teoria da Computação e Algoritmos
◦ Processo de Programação
◦ Algoritmos x Linguagens de Programação
Prof. Alexandre Lênin

 Máquina Hipotética

 Algoritmos  Teoria da Computação e Algoritmos


◦ construção de algoritmos
 Processo de Programação
◦ tipos de dados simples e estruturados;
 Algoritmos x Linguagens de Programação
◦ variáveis e constantes;
◦ comandos de atribuição, entrada e saída;
◦ bloco de comandos;
◦ estruturas de controle, seleção, repetição e desvio;
◦ operadores e expressões;

 Alan Mathison Turing nasceu em 23 de


junho de 1912 em Londres.  SISTEMA DE PROCESSAMENTO DE DADOS
◦ reconhecido como um dos grandes pioneiros no
campo da computação.
PROCESSAMENTO
DADOS DE DE DADOS DE
ENTRADA DADOS SAÍDA

 Na II Guerra Mundial, Turing foi trabalhar


no Departamento de Comunicações da
Grã Bretanha com o intuito de quebrar o
código das comunicações alemãs,
produzido por um tipo de computador
chamado Enigma.

2
03/04/2013

 SISTEMA DE PROCESSAMENTO DE DADOS  Categorias de Software


Computador

◦ Software Básico
PROCESSAMENTO
DADOS DE ◦ Sistema Operacional
DE DADOS DE
ENTRADA DADOS SAÍDA ◦ Linguagem de Programação
◦ Software Aplicativo
 Pacote de Software
 Sistemas Especialistas
DADOS x PROGRAMA  Inteligência Artificial

Homem

 Categorias de Software  Categorias de Software


Computador Computador

◦ Software Básico ◦ Software Básico


◦ Sistema Operacional ◦ Sistema Operacional
◦ Linguagem de Programação ◦ Linguagem de Programação
◦ Software Aplicativo ◦ Software Aplicativo
 Pacote de Software  Pacote de Software
 Sistemas Especialistas  Sistemas Especialistas
 Inteligência Artificial  Inteligência Artificial

Homem Homem

 Categorias de Software  Categorias de Software


Computador Computador

◦ Software Básico ◦ Software Básico


◦ Sistema Operacional ◦ Sistema Operacional
◦ Linguagem de Programação ◦ Linguagem de Programação
◦ Software Aplicativo ◦ Software Aplicativo
 Pacote de Software  Pacote de Software
 Sistemas Especialistas  Sistemas Especialistas
 Inteligência Artificial  Inteligência Artificial

Homem Homem

3
03/04/2013

 Categorias de Software  Categorias de Software


Computador Computador

◦ Software Básico ◦ Software Básico


◦ Sistema Operacional ◦ Sistema Operacional
◦ Linguagem de Programação ◦ Linguagem de Programação
◦ Software Aplicativo ◦ Software Aplicativo
 Pacote de Software  Pacote de Software
 Sistemas Especialistas  Sistemas Especialistas
 Inteligência Artificial  Inteligência Artificial

Homem Homem

 Categorias de Software
Computador  Um algoritmo é formalmente uma sequência
finita de passos que levam a execução de
◦ Software Básico
uma tarefa.
◦ Sistema Operacional
◦ Linguagem de Programação
◦ Software Aplicativo
 Pacote de Software
 Sistemas Especialistas
 Inteligência Artificial

Homem

 Suponha um carro em viagem. Num dado


◦ “Chupar uma bala”. instante o carro comporta-se como se um
pneu dianteiro, não se sabe qual, estivesse
 Pegar a bala furado.
 Retirar o papel
 Jogar o papel no lixo  Descreva um algoritmo para o motorista –
 Chupar a bala que é um robô – trocar o pneu, se possível e
necessário, e continuar a viagem.

 Lembre-se que se trata de um robô


desprovido de raciocínio ou interpretações.

4
03/04/2013

 Um algoritmo que comumente é apresentado  Um algoritmo que comumente é apresentado


como solução é: como solução é:

◦ Parar o carro ◦ Parar o carro


◦ Trocar o pneu ◦ Trocar o pneu
◦ Seguir viagem ◦ Seguir viagem

 Infelizmente este robô ou não entende o


comando parar o carro.
◦ É preciso descrever os passos para este comando.

 Um algoritmo que comumente é apresentado  Um algoritmo que comumente é apresentado


como solução é: como solução é:

◦ Parar o carro ◦ Parar o carro


 Usar o freio pedal  Usar o freio pedal
◦ Trocar o pneu  Vamos torcer para que o carro não se desgoverne!!! De
◦ Seguir viagem um modo geral é isso que acontece = acidente!!!
◦ Trocar o pneu
◦ Seguir viagem

 Um algoritmo que comumente é apresentado como  Um algoritmo que comumente é apresentado como
solução é: solução é:

◦ Parar o carro ◦ Parar o carro


 Controlar a direção para evitar que o carro saia da pista  Controlar a direção para evitar que o carro saia da pista
 Retire o pé do acelerador  Retire o pé do acelerador
 Reduzir as marchar até parar.  Reduzir as marchar até parar.
 Ao estar em baixa velocidade, desviar para o acostamento  Ao estar em baixa velocidade, desviar para o acostamento
 Desligar o carro após parar  Desligar o carro após parar
◦ Trocar o pneu ◦ Trocar o pneu
Vamos torcer para
◦ Seguir viagem ◦ Seguir viagem
dar tudo certo, pois
existem atividades
interdependentes

5
03/04/2013

◦ Os programas de computadores nada mais são do


que a representação de algoritmos escrita numa 1ª Geração: Linguagens Binárias
linguagem de programação 2ª Geração: Linguagens Assembly
3ª Geração: Linguagens Alto-Nível
 Linguagens de Programação 4ª Geração: Linguagens Consulta
5ª Geração: Linguagens Naturais
◦ é um conjunto de termos (vocabulário) e de regras
(sintaxe) que permitem a formulação de instruções
a um computador.

 Fase I: Especificação do Problema


- -
◦ Visa a compreensão completa e clara do problema.
Nível de

◦ Responde à questão:
Abstração Consumo de  Qual é o problema ?
2ª Recursos
Facilidade de
de 3ª Máquina  Fase II: Projeto de Solução em Alto-Nível
Programação 4ª ◦ Quais transformações são necessárias na entrada
5ª para gerar a saída desejada.
+ + ◦ Responde à questão:
 Como se resolve o problema ?

 Fase III: Análise de Alternativas


◦ Determinar qual a solução conveniente no  Fase V: Verificação de Comportamento (teste)
momento. ◦ Responde à questão:
◦ Responde à questão:  A solução contempla integralmente a especificação do
 Qual a solução mais adequada ? problema ?

 Fase IV: Refinamento e Codificação


◦ Transformar a solução em códigos viáveis no
ambiente computacional disponível.
◦ Responde à questão:
 Como viabilizar a solução no ambiente ?

6
03/04/2013

 Resumo
◦ Gráfico
◦ Fase I: Qual é o problema ?  Fluxogramas
◦ Fase II: Como se resolve o problema ?  Diagramas hierárquicos de fluxo
◦ Fase III: Qual a solução mais adequada ?  Gráficos de estrutra
◦ Fase IV: Como viabilizar a solução no ambiente ?
◦ Fase V: A solução contempla integralmente a ◦ Textual
especificação do problema ?  Descrição Narrativa
 Português Estruturado
 Portugol (pseudocódigo)

 Fluxogramas  Diagrama de Chaplin

 Descrição Narrativa  Português


Estruturado
(textual)

7
03/04/2013

 Regras para construção de algoritmos  Operador - só faz o que for


ordenado, não toma
decisões
◦ Ser objetivo nas instruções;  Conjunto de escaninhos -
◦ Usar somente um verbo por frase; com capacidade para um
cartão cada
◦ Escrever textos simples, para leigos;
 Máquina de calcular -
◦ Usar frases curtas e simples; executa as operações
◦ Usar palavras que não tenham sentido dúbio.  Caixa de entrada - para
receber cartões de fora
Máquina de escrever - para
Teste de mesa

 dar saída às informações /
◦ Como realizar testes de verificação da corretude de resultados
um algoritmo de forma simples e interativa?

 Existe uma INSTRUÇÃO  Exemplo:


em cada cartão; ◦ E1 : armazene o valor 1 em E10
◦ E2 : leia o conteúdo de E11
 O operador segue de (externo - a caixa de entrada)
escaninho em escaninho, ◦ E3 : multiplique E10 com E11 (usando a máquina de
fazendo exatamente o que calcular) e armazene o resultado em E10
está escrito em cada ◦ E4 : subtraia o valor 1 de E11
cartão, até encontrar um ◦ E5 : se o valor de E11 > 0, volte para E3
cartão contendo uma ◦ E6 : imprima o conteúdo de E10
instrução que manda que (usando a máquina de escrever)
ele PARE. ◦ E7 : PARE

E10 E11 E12 ... E10 E11 E12 ...


1 1 3

E1 : armazene o valor 1 em E10 E1 : armazene o valor 1 em E10


E2 : leia o conteúdo de E11 E2 : leia o conteúdo de E11 (externo - a caixa de entrada)
(externo - a caixa de entrada)
E3 : multiplique E10 com E11 (usando a máquina de
E3 : multiplique E10 com E11 (usando a máquina de calcular) e armazene o resultado em E10
calcular) e armazene o resultado em E10
E4 : subtraia o valor 1 de E11
E4 : subtraia o valor 1 de E11
E5 : se o valor de E11 > 0, volte para E3
E5 : se o valor de E11 > 0, volte para E3
E6 : imprima o conteúdo de E10 (usando a máquina de escrever)
E6 : imprima o conteúdo de E10 (usando a máquina de escrever)
E7 : PARE
E7 : PARE

8
03/04/2013

E10 E11 E12 ... E10 E11 E12 ...


1 3 3 3

E1 : armazene o valor 1 em E10 E1 : armazene o valor 1 em E10


E2 : leia o conteúdo de E11 (externo - a caixa de entrada) E2 : leia o conteúdo de E11 (externo - a caixa de entrada)
E3 : multiplique E10 com E11 (usando a máquina de E3 : multiplique E10 com E11 (usando a máquina de
calcular) e armazene o resultado em E10 calcular) e armazene o resultado em E10
E4 : subtraia o valor 1 de E11 E4 : subtraia o valor 1 de E11
E5 : se o valor de E11 > 0, volte para E3 E5 : se o valor de E11 > 0, volte para E3
E6 : imprima o conteúdo de E10 (usando a máquina de escrever) E6 : imprima o conteúdo de E10 (usando a máquina de escrever)
E7 : PARE E7 : PARE

E10 E11 E12 ... E10 E11 E12 ...


3 2 3 2

E1 : armazene o valor 1 em E10


E2 : leia o conteúdo de E11 (externo - a caixa de entrada) E3 : multiplique E10 com E11 (usando a máquina de
calcular) e armazene o resultado em E10
E3 : multiplique E10 com E11 (usando a máquina de
calcular) e armazene o resultado em E10 E4 : subtraia o valor 1 de E11
E4 : subtraia o valor 1 de E11 E5 : se o valor de E11 > 0, volte para E3
E5 : se o valor de E11 > 0, volte para E3
E6 : imprima o conteúdo de E10 (usando a máquina de escrever)
E7 : PARE

E10 E11 E12 ... E10 E11 E12 ...


6 2 6 1

E3 : multiplique E10 com E11 (usando a máquina de E3 : multiplique E10 com E11 (usando a máquina de
calcular) e armazene o resultado em E10 calcular) e armazene o resultado em E10
E4 : subtraia o valor 1 de E11 E4 : subtraia o valor 1 de E11
E5 : se o valor de E11 > 0, volte para E3 E5 : se o valor de E11 > 0, volte para E3

9
03/04/2013

E10 E11 E12 ... E10 E11 E12 ...


6 1 6 1

E3 : multiplique E10 com E11 (usando a máquina de E3 : multiplique E10 com E11 (usando a máquina de
calcular) e armazene o resultado em E10 calcular) e armazene o resultado em E10
E4 : subtraia o valor 1 de E11 E4 : subtraia o valor 1 de E11
E5 : se o valor de E11 > 0, volte para E3 E5 : se o valor de E11 > 0, volte para E3

E10 E11 E12 ... E10 E11 E12 ...


6 0 6 0

E3 : multiplique E10 com E11 (usando a máquina de E3 : multiplique E10 com E11 (usando a máquina de
calcular) e armazene o resultado em E10 calcular) e armazene o resultado em E10
E4 : subtraia o valor 1 de E11 E4 : subtraia o valor 1 de E11
E5 : se o valor de E11 > 0, volte para E3 E5 : se o valor de E11 > 0, volte para E3

E10 E11 E12 ...  No mesmo algoritmo anterior, avalie as


6 0 consequências das seguintes alterações:

a) E5 : se o valor de E11 > 1, volte para E3,

b) E5 : se o valor de E11 >= 0, volte para E3;


e
E6 : imprima o conteúdo de E10
(usando a máquina de escrever)
E7 : PARE
c) E7 : XXX

10
03/04/2013

 Exercícios rápidos.  Resolva vários exercícios usando o computador


hipotético para internalizar a forma de
 1) Mostrar a soma de 2 números lidos; funcionamento dele. Certamente você ganhará mais
confiança e estará treinando seu cérebro a pensar
 2) Mostrar a média de 3 números lidos;
mais detalhadamente.

Algoritmo
<declaração de variáveis>
 "O problema dos computadores é que eles fazem
exatamente aquilo que você os instruiu a fazer e não
Início
aquilo que você realmente queria que eles fizessem.“ <comandos>
- Um programador frustrado
Fim.

Algoritmo  (ESAF - 2009 - ANA - Analista Administrativo -


Tecnologia da Informação - Desenvolvimento) Na
A, B, C : inteiro programação estruturada, são necessários
Início apenas três blocos de formas de controle para
leia (A, B) implementar algoritmos. São eles:
CA+B  a) seleção, repetição e aninhamento.
escreva(‘O valor da soma é:’, C)  b) empilhamento, aninhamento e operação.
Fim.  c) sequência, aninhamento e seleção.
 d) sequência, seleção e repetição.
 e) função, operação e programa.

11
03/04/2013

 (ESAF - 2009 - ANA - Analista Administrativo -  Os dados são representações de abstrações


Tecnologia da Informação - Desenvolvimento) Na acerca do mundo.
programação estruturada, são necessários
apenas três blocos de formas de controle para  São classificados em tipos.
implementar algoritmos. São eles:  Tipos podem ser primitivos ou construídos
 Tipos primitivos são os tipos fornecidos pela
 a) seleção, repetição e aninhamento. linguagem de programação de forma
 b) empilhamento, aninhamento e operação. intrínseca.
 c) sequência, aninhamento e seleção. • São a base para a construção de novos tipos
 d) sequência, seleção e repetição. • São eles: inteiros, reais, caracteres, lógico
 e) função, operação e programa.

 Numérico: Números Inteiros e Reais


 Caractere: Um símbolo da tabela ASCII
 Lógico: verdadeiro / falso
 Literal: agregado de caracteres

 As linguagens de programação definem seus


tipos primitivos;

 Tipos primitivos do Pascal:

Nome Faixa de Valores Tamanho


byte 0 a 255 1
shortint -128 a +127 1
integer -32.768 a 32.767 2
longint -2.147.438.648 a +2.147.438.647 4
word 0 a 65.535 2
comp (-2)63 +1 a (+2)63 - 1 8

12
03/04/2013

 Tipos primitivos do Pascal:  Tipos construídos do Pascal:


Nome Faixa de Valores Tamanho
single 1.5e-45 a 3.4e+38 4
Nome Descrição
real 2.9e-39 a 1.7e+38 6
double 5.0e-324 a 1.7e+308 8 Array vetores e matrizes

extended 3.4e-4932 a 1.1e+4932 10 Record Registros (agregados heterogêneos)


String Cadeias de caracteres (um tipo de vetor)
Nome Faixa de Valores Tamanho
Pointer Ponteiros
boolean False, True 1

Nome Faixa de Valores Tamanho


char Caracteres individuais 1

 Constante é um determinado valor fixo que  Uma variável é um espaço reservado na


não se modifica ao longo do tempo, durante memória do computador para armazenar um
a execução de um programa. Conforme o seu tipo de dado determinado.
tipo, a constante é classificada como sendo  O conteúdo pode ser alterado durante a
numérica, lógica e literal. execução do programa
 São posições de memória, as quais deve-se
◦ Declaração associar nomes (identificadores) e um tipo de
 Const <identificador> = <valor>
dado.
 const PI = 3.1416
 Só pode armazenar um valor a cada instante

declare <identificador> : <tipo de dado> ;


 (FCC - 2009 - TRE-PI - Técnico
 Judiciário - Programação de
Sistemas) No algoritmo do
 Exemplos: enunciado, observa-se que os
tipos de dados não foram
 declare X : inteiro declarados. Nesse caso, para

 declare Y : real ajustar o algoritmo, os tipos de


dados para nome, aux, salario e
 declare Z : caractere nivel_superior seriam,
respectivamente
 declare K, M, N : lógico
 a) real, lógico, inteiro e real.
 b) caracter, real, inteiro e lógico.
 c) real, lógico, inteiro e inteiro.
 d) caracter, inteiro, real e lógico.
 e) caracter, lógico, real e real.

13
03/04/2013

 (FCC - 2009 - TRE-PI - Técnico


Judiciário - Programação de
 Os operadores são meios pelo qual
Sistemas) No algoritmo do incrementamos, decrementamos,
enunciado, observa-se que os
tipos de dados não foram comparamos e avaliamos dados dentro do
declarados. Nesse caso, para
ajustar o algoritmo, os tipos de
computador. Temos três tipos de operadores:
dados para nome, aux, salario e
nivel_superior seriam,
respectivamente ◦ Operadores Aritméticos
◦ Operadores Relacionais
a) real, lógico, inteiro e real.

◦ Operadores Lógicos
 b) caracter, real, inteiro e lógico.
 c) real, lógico, inteiro e inteiro.
 d) caracter, inteiro, real e lógico.
 e) caracter, lógico, real e real.

Tabela verdade

 Operadores Aritméticos  Operadores Relacionais A B A e B A ou


B
~A

◦ Os operadores aritméticos são os utilizados para ◦ = , <>, <=, <, >, >= 0 0 0 0 1
obter resultados numéricos
0 1 0 1 1
 Operadores Lógicos
Símbolo Operação Tipo Resultado ◦ e - conjunção 1 0 0 1 0

* multiplicação mesmo ◦ ou - disjunção 1 1 1 1 0

/ divisão real ◦ não - negação


div Divisão inteira inteiro
mod Resto da divisão inteiro
 Funções
◦ sen(x), cos(x), abs(x), int(x), frac(x), log(x), sqrt(x)
+ soma mesmo
- subtração mesmo

Precedência
◦ X=Y
1ª parênteses
 Atribuição
◦ X <> Y Armazena um valor em uma variável.
2ª funções
◦ X+K>Y+2
3ª + - (unário )
◦ (A mod B) = 0 <identificador> <- <expressão | identificador>
◦ (5 < Z) e (3 > 5 + 6 * 31) 4ª ** (potência ^)

◦ 4 + ( (3 + 2) * 7) 5ª * / mod div
◦ ex:
◦ (4.5 mod 5) -->> inválido 6ª + e -  X5
◦ X e 5 --> inválido 7ª NÃO  Nome  ‘fulano’
8ª E  Z  X + 9 * 15
9ª OU
10ª relacionais

14
03/04/2013

 Entrada e/ou Saída  Entrada e/ou Saída


,

leia ( identificador ) ; ◦ leia ( <identificador> [, <identificador> [ ... ] ] )


 captura valores do dispositivo de entrada especificado,
armazenando-os nas variáveis. Padrão = teclado
,

imprima ( identificador ) ; ◦ escreva ( <expressão> )


 envia a expressão para o dispositivo de saída
expressão especificado. Padrão = tela.
 Expressão pode ser uma combinação de variáveis e
caracter constantes separadas por vírgulas.

 Exemplos Algoritmo Exemplo;


◦ leia (A, B, SOMA) declare X, Y, Z : inteiro;
início
◦ escreva (" MÉDIA = ", M) escreva( ‘Digite dois valores inteiros:’);
leia(X, Y);
◦ escreva(" VALOR LIDO: ", N, " RESULTADO = ", N ** 2 + 5) Z  (X * Y)/2;
escreva( ‘A média é = ‘, Z);
fim.

 São espaços utilizados nas linhas de ◦ Os comandos são executados na ordem em que
comandos de forma a refletir o alinhamento aparecem, de cima para baixo.
dos mesmos;
◦ Facilita a identificação das estruturas;
◦ Facilita a identificação dos comandos que Algoritmo SEQUÊNCIA;
“pertencem” a uma estrutura; declare <lista de variáveis>;
início
 <nivel 1> <comando 1>; Os comandos serão executados
na ordem em que aparecem.
◦ <nível 2>; <comando 2>;
 Comandos do nível 2; ...
◦ <fim - nível 2>; <comando n>;
 <fim - nível 1>. fim.

15
03/04/2013

 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da


Algoritmo SEQUÊNCIA; Computação) Em relação à lógica de programação, considere
declare Nome : literal; os pseudocódigos:
Nota1, Nota2, Media : real;
início
escreva( ‘Digite o nome do aluno:’ );
leia( Nome );
escreva( ‘Digite as 2 notas:’ );
leia( Nota1, Nota2 );
Media <- ( Nota1 + Nota2 ) / 2;
escreva( ‘A média é:’ , Media );
fim.  É correto afirmar:
◦ a) Somente Alg1 tem consistência em sua representação e chega a um
resultado.

 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da  (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da
Computação) Em relação à lógica de programação, considere Computação) Em relação à lógica de programação, considere
os pseudocódigos: os pseudocódigos:

 É correto afirmar:  É correto afirmar:


◦ b) Ambos os algoritmos abordam o mesmo problema e chegam ao mesmo ◦ c) Somente Alg2 tem consistência em sua representação e chega a um
resultado. resultado.

 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da  (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da
Computação) Em relação à lógica de programação, considere Computação) Em relação à lógica de programação, considere
os pseudocódigos: os pseudocódigos:

 É correto afirmar:  É correto afirmar:


◦ d) O resultado da solução apresentada por Alg2 é maior do que a de Alg1. ◦ e) O resultado da solução apresentada por Alg2 é menor do que a de Alg1.

16
03/04/2013

 (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de Sistemas)  (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de Sistemas)
Considere a sub-rotina abaixo para responder Considere a sub-rotina abaixo para responder
às questões XX e XX. às questões XX e XX.

Com base no algoritmo acima, e Com base no algoritmo acima, e


supondo que o valor fornecido para "A" supondo que o valor fornecido para "A"
na linha "leia A" seja 3 e o valor na linha "leia A" seja 3 e o valor
fornecido para "B" na linha "leia B" seja fornecido para "B" na linha "leia B" seja
4, pode-se afirmar que o valor da 4, pode-se afirmar que o valor da
variável "C" na linha "escreva C" é: variável "C" na linha "escreva C" é:

a) 24 a) 24
b) 28 b) 28
c) 32 c) 32
d) 34 d) 34
e) 43 e) 43

 1) Dados dois números inteiros A e B, calcular e  4) Dado um número inteiro de segundos,


exibir: C=A+B+7, D=A.B-A, E=A2, F=2.A-5.B, determinar o seu valor equivalente em horas,
minutos e segundos. Simular para 16723.
G=5.A/B-7.A, H=5.A/(B-7.A), J=(A3-senB)/7.
 5) Dado um número inteiro e positivo A, calcular
 2) Calcular e escrever a média aritmética de duas e exibir: B=A DIV 5, C=A MOD 5, D= A/5 e
notas fornecidas pelo usuário. E=5/A.

 6) Ler dois valores para as variáveis A e B, efetuar


 3) Dada a temperatura de um corpo, em graus a troca dos valores de forma que a variável A
Fahrenheit, calcular e exibir o valor da referida passe a possuir o valor de B e que a variável B
temperatura em graus Celsius e em Kelvin. Fazer passe a possuir o valor da variável A. Apresentar
os valores trocados.
simulações.

Algoritmo Números;
declare A, B, C, D, E, F, G, H, J : real; Algoritmo Media;
início declare NotaB1, NotaB2, Media : real;
escreva( ‘Digite o valor de A e B:’ ); início
leia(A, B); escreva( ‘Digite a primeira nota:’ );
C  A+B+7; leia(NotaB1);
D  A*B-A;
escreva( ‘Digite a segunda nota:’ );
E  A*A;
F  2 * A-5*B; leia(NotaB2);
G  5*A/B-7*A; Media  (NotaB1 + NotaB2)/2;
H  5*A/(B-7*A); escreva(“A Média é =“, Media);
J (A*A*A-sen(B))/7; fim.
fim.

17
03/04/2013

Algoritmo Transforma; Algoritmo Horas;


declare F, C, K: real; declare N, S, M, H: inteiro;
início início
escreva( ‘Digite a temperatura em fahrenheit:’ ); escreva( ‘Digite um número inteiro de segundos:’ );
leia(F); leia(N);
C  (F-32) / 1.8; H  N DIV 3600;
K  C + 273; M  (N MOD 3600) DIV 60;
escreva(“Graus Celsius=“, C); S  (N MOD 3600) MOD 60
escreva(“Graus Kelvin=“, K); escreva(S, “Segundos são “, H, “:”, M, “:”, S);
fim. fim.

Algoritmo Div_Mod; Algoritmo Troca;


declare A, B, C: inteiro; declare A, B, Aux : real;
declare D, E: real; início
início escreva( ‘Digite dois valores:’ );
escreva( ‘Digite um número inteiro positivo:’ ); leia(A,B);
leia(A); Aux <- A;
B  A MOD 5; A <- B;
C  A DIV 5; B <- Aux;
D  A / 5; escreva( A, B ); Escreva outra solução
E  5 / A; fim. para este problema,
fim. sem utilizar a terceira
variável!

◦ Em muitas situações, é necessário executar um


grupo de ações dependendo do resultado de certas Verdadeiro
cond comandos
avaliações.

◦ Imagine o caso de identificar se um aluno foi ou Falso


não aprovado. O resultado depende da avaliação da
média obtida pelo aluno.

◦ Usamos o DESVIO CONDICIONAL para executar um


grupo de comandos dependendo do resultado de
uma expressão lógica.  Se a condição for verdadeira, provocará um
desvio e executará o bloco de comandos.

18
03/04/2013

Algoritmo DesvioSimples
... declare N1, N2, Media : real
se <condição> então início
<instrução para condição verdadeira>; escreva( ‘Digite duas notas:’ )
fimse
leia(N1, N2)
...
Media <- (N1 + N2)/2
◦ Condição é uma expressão lógica. se Media < 7.0 então
◦ Se o resultado da condição for verdadeiro, será escreva(‘Deve fazer o Exame Final’)
executado o comando após a palavra então. fimse
◦ Caso a condição resulte em falso, ou após a escreva(‘Média = ’, Media)
execução da instrução, o programa continua... fimalgoritmo

se <condição> Falso Verdadeiro


então <instrução para condição verdadeira> comandosB cond comandosA

senão <instrução para condição falsa>;


fim-se

◦ Se o resultado da condição for verdadeiro, será


executado o comando após a palavra então, caso
contrário, será executado a instrução após a palavra
senão.
◦ Somente uma das duas será executada. Após, o
programa continua...  Se a condição for verdadeira, executará o bloco
de comandos A, caso contrário, executará o
bloco B. Nunca os dois.

Algoritmo DesvioComposto  (FCC - 2010 - DPE - SP - Agente de


declare N1, N2, Media : real Defensoria - Analista de Sistemas) É utilizada
início para avaliar uma determinada expressão e
escreva( ‘Digite duas notas:’ ) definir se um bloco de código deve ou não
leia(N1, N2) ser executado. Essa é a definição da estrutura
Media <- (N1 + N2)/2 condicional:
se Media < 5.0
 a) For
então escreva(‘Aluno Reprovado!!!’)
senão escreva(‘Aluno Aprovado!!!’)  b) If...Then...Else
fimse  c) While
escreva(‘Média = ’, Media)  d) Do...While
fimalgoritmo  e) Next

19
03/04/2013

(FCC/2012/TST - Técnico Judiciário -


 (FCC - 2010 - DPE - SP - Agente de Programação) Considere o trecho de um
Defensoria - Analista de Sistemas) É utilizada algoritmo em pseudocódigo que mostra
comandos condicionais (se) aninhados com
para avaliar uma determinada expressão e início e fim delimitados por { }:
definir se um bloco de código deve ou não Analisando este trecho, é correto afirmar
ser executado. Essa é a definição da estrutura que
condicional: a) se B1 for falso, o Comando3 e o
Comando4 serão executados.
 a) For b) se B2 for verdadeiro, somente o
 b) If...Then...Else Comando3 será executado.
c) o Comando5 poderá ser o único
 c) While comando a ser executado.
 d) Do...While d) o Comando4 sempre será executado,
uma vez que o comando B2 é sempre falso.
 e) Next
e) o Comando5 sempre será executado.

(FCC/2012/TST - Técnico Judiciário -


Programação) Considere o trecho de um  (FUMARC/2004/Analista de Sistemas) Um programador
algoritmo em pseudocódigo que mostra escreveu esta condição para uma cláusula SE:
comandos condicionais (se) aninhados com  SE ( (preço <> 100) E (quantidade < 10) ) ENTÃO...
início e fim delimitados por { }:  A cláusula está com a sintaxe correta, mas o teste da
Analisando este trecho, é correto afirmar condição está levando a ações erradas, se considerados os
que requerimentos do software. A cláusula correta seria,
exatamente, a negação da cláusula inicialmente escrita.
a) se B1 for falso, o Comando3 e o Marque a alternativa que possui a cláusula CORRETA.
Comando4 serão executados.  a) SE ( (preço = 100) OU (quantidade >= 10) ) ENTÃO...
b) se B2 for verdadeiro, somente o  b) SE ( (preço <> 100) OU (quantidade < 10) ) ENTÃO...
Comando3 será executado.  c) SE ( (preço = 100) E (quantidade > 10) ) ENTÃO...
c) o Comando5 poderá ser o único  d) SE ( (preço = 100) OU (quantidade > 10) ) ENTÃO...
comando a ser executado.
d) o Comando4 sempre será executado,
uma vez que o comando B2 é sempre falso.
e) o Comando5 sempre será executado.

 (FUMARC/2004/Analista de Sistemas) Um programador


escreveu esta condição para uma cláusula SE:
 SE ( (preço <> 100) E (quantidade < 10) ) ENTÃO... ◦ Pode-se utilizar um grupo de comandos ao invés de
 A cláusula está com a sintaxe correta, mas o teste da uma única instrução. Para tanto deve-se criar um
condição está levando a ações erradas, se considerados os bloco de comandos usando as palavras início e fim.
requerimentos do software. A cláusula correta seria,
exatamente, a negação da cláusula inicialmente escrita.
Marque a alternativa que possui a cláusula CORRETA.
 a) SE ( (preço = 100) OU (quantidade >= 10) ) ENTÃO...
 b) SE ( (preço <> 100) OU (quantidade < 10) ) ENTÃO... início
 c) SE ( (preço = 100) E (quantidade > 10) ) ENTÃO... <bloco de comandos>
 d) SE ( (preço = 100) OU (quantidade > 10) ) ENTÃO...
fim

20
03/04/2013

 Exemplo  Aninhamento de Estruturas

se Media < 7.0 ◦ Aninhamento = Uma estrutura pode conter outras


então início estruturas em sua definição.
escreva(‘Nota EF1:’)
leia(EF1)
MediaFinal <- (Media+EF1) / 2 ◦ Uma estrutura condicional pode conter outras
fim estruturas condicionais em sua definição.
senão escreva(‘Aprovado.’)
fimse
◦ Não há limites para a quantidade de níveis de
aninhamento.

 (FCC/2012/TRF - 2ª REGIÃO/Técnico  (FCC/2012/TRF - 2ª REGIÃO/Técnico


Judiciário – Informática) Analise o Judiciário – Informática) Analise o
algoritmo abaixo: algoritmo abaixo:
 Sobre ele é INCORRETO afirmar:  Sobre ele é INCORRETO afirmar:
 a) Exibirá o maior entre três números  a) Exibirá o maior entre três números
lidos, exceto se os três valores forem lidos, exceto se os três valores forem
iguais. iguais.
 b) Se forem lidos os valores 1, 3 e 6 nas  b) Se forem lidos os valores 1, 3 e 6 nas
variáveis n1, n2 e n3 respectivamente, a variáveis n1, n2 e n3 respectivamente, a
variável m receberá o valor 1, em seguida variável m receberá o valor 1, em seguida
o valor 3 e, por último, o valor 6. o valor 3 e, por último, o valor 6.
 c) Se forem lidos os valores 7, 2 e 9 nas  c) Se forem lidos os valores 7, 2 e 9 nas
variáveis n1, n2 e n3 respectivamente, a variáveis n1, n2 e n3 respectivamente, a
variável m receberá o valor 7, em seguida variável m receberá o valor 7, em seguida
o valor 2 e, por último, o valor 9. o valor 2 e, por último, o valor 9.
 d) Se forem lidos os valores 9, 7 e 2 nas  d) Se forem lidos os valores 9, 7 e 2 nas
variáveis n1, n2 e n3 respectivamente, a variáveis n1, n2 e n3 respectivamente, a
variável m receberá apenas o valor 9. variável m receberá apenas o valor 9.
 e) Se forem lidos os valores -1, -3 e -8  e) Se forem lidos os valores -1, -3 e -8
nas variáveis n1, n2 e n3 respectivamente, nas variáveis n1, n2 e n3 respectivamente,
a variável m receberá apenas o valor -1. a variável m receberá apenas o valor -1.

 Considerando os seguintes valores: A=3, B=2, C=5  Considerando os seguintes valores: A=3, B=2, C=5
e D=7, indique o resultado da variável X, dos e D=7, indique o resultado da variável X, dos
trechos abaixo: trechos abaixo:

◦ a) se não (D > 5) ◦ a) se não (D > 5)


então X <- (A + B) / D então X <- (A + B) * D X=5
senão X <- (A - B) * C; senão X <- (A - B) * C;

◦ b) se (A > 2) e (B < 7) ◦ b) se (A > 2) e (B < 7)


então X <- (A + 2) * (B - 2) então X <- (A + 2) * (B - 2) X=0
senão X <- (A - B) / / D * (C + D); senão X <- (A - B) / / D * (C + D);

◦ c) se (A = 2) ou (B < 7) ◦ c) se (A = 2) ou (B < 7)
então X <- (A + 2) * (B - 2) então X <- (A + 2) * (B - 2)
senão X <- (A + B) / D * (C + D); senão X <- (A + B) / D * (C + D); X=0

21
03/04/2013

 Efetuar a leitura de três valores inteiros e  Efetuar a leitura de três valores inteiros e
distintos (A, B e C) e apresentar o maior valor. distintos (A, B e C) e apresentar o maior valor.
Algoritmo Um;
  declare A, B, C : inteiro;
início
escreva( ‘Digite três valores inteiros: ’ );
leia(A, B, C);
se A > B
então se A > C
então escreva(A)
senão escreva(C)
fim-se
senão se B > C
então escreva(B)
senão escreva(C);
fim-se
fim-se
fim.

Algoritmo Um_outraSolucao; Algoritmo Um_outraSolucao2;


declare A, B, C : inteiro; declare A, B, C : inteiro;
início
escreva( ‘Digite três valores inteiros: ’ ); início
leia(A, B, C); escreva( ‘Digite três valores inteiros: ’ );
se A > B leia(A, B, C);
então se A > C se (A > B) e (A > C)
então Maior <- A então Maior <- A
senão Maior <- C
fim-se senão se B > C
senão se B > C então Maior <- B
então Maior <- B senão Maior <- C;
senão Maior <- C; fim-se
fim-se
fim-se
fim-se
escreva(Maior); escreva(Maior);
fim. fim.

 A estrutura Caso é uma estrutura de seleção  Sintaxe


múltipla; Caso <expressão> seja
<guarda1> : <comandos>;
<guarda2> : <comandos>;
◦ Neste tipo de estrutura, temos uma expressão a ser ...
avaliada e várias “guardas” (possíveis valores); <guardan> : <comandos>;
◦ Os comandos cuja “guarda” é verdadeira (encaixa- <default> : <comandos>;
se com o resultado da expressão) será executada; fim;
◦ pode-se incluir uma “guarda” padrão.
◦ Somente pode-se utilizar valores escalares (inteiro,
caractere, boolean)

22
03/04/2013

 Sintaxe:  (CESGRANRIO - 2006 - DNPM - Técnico Administrativo -


Especialidade - Informática) Considere o algoritmo abaixo, descrito
em pseudocódigo.
escolha (<variável>)
caso <valor11>, <valor12>, ..., <valor1n>
<seqüência-de-comandos-1>
caso <valor21>, <valor22>, ..., <valor2m>
<seqüência-de-comandos-2>
...
outrocaso
<seqüência-de-comandos-extra>
fimescolha

 Suponha que os dados de entrada SALARIO e TITULO sejam,  Suponha que os dados de entrada SALARIO e TITULO sejam,
respectivamente, "1000,00" e "Doutor". Qual o valor do respectivamente, "1000,00" e "Doutor". Qual o valor do
salário com a gratificação, em reais, que será apresentado na salário com a gratificação, em reais, que será apresentado na
saída do algoritmo? saída do algoritmo?
 a) 1000,00  a) 1000,00
 b) 2000,00  b) 2000,00
 c) 3000,00  c) 3000,00
 d) 5000,00  d) 5000,00
 e) 6000,00  e) 6000,00

 Permitem a execução de comandos repetidas


vezes.
◦ Repetição condicional: a repetição acontecerá com Verdadeiro
base em uma condição. cond comandos

 Condição no início Falso


 Condição no final

◦ Repetição com variável de controle: a repetição será


controlada por uma variável (contador)  Se a condição for verdadeira, os comandos serão
executados e o processo reinicia; caso contrário,
a repetição não acontecerá

23
03/04/2013

 Exemplo
enquanto <condição> faca
<ação 1> ...
<ação 2> soma ← 0
... i ←1
<ação n> enquanto (i ≤ N) faca
fimenquanto soma ← soma + i
i ←i + 1
 Os comandos do bloco de ações são fimenquanto
executados enquanto uma condição é escreval(“a soma é:”, soma)
atendida (verdadeira)

 Exemplo 2  Este exemplo calcula a média de  Exemplo 2 - corrigido


uma quantidade variável de notas. leia(Nota);
leia(Nota);
Quando o operador digitar o valor
enquanto (Nota<>-1) faça enquanto (Nota <> -1) faça
-1 (FLAG), será calculada a média.
início início
Total <- Total + Nota; Total <- Total + Nota;
 Entretanto, o exemplo não
N <- N + 1; funciona corretamente, por quê? N <- N + 1;
leia(Nota); leia(Nota);
fim; fim;
Media <- Total / N; se N > 0 Cuidado com os laços (repetições)
escreva( Media ); então Media <- Total / N; infinitos. Em algumas construções, a
fim-se condição da estrutura de repetição
escreva( Media ); (condição de interrupção) não resulta
em valores que resultem em
interrupção da repetição. Nestes casos,
o programa é executado para sempre.
É o costumeiro: TRAVOU!

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233

24
03/04/2013

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233
X Y Z X Y Z
1 1 2 1 1 2
1 2 3

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233
X Y Z X Y Z
1 1 2 1 1 2
1 2 3 1 2 3
2 3 5 2 3 5
3 5 8

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233
X Y Z X Y Z
1 1 2 1 1 2
1 2 3 1 2 3
2 3 5 2 3 5
3 5 8 3 5 8
5 8 13 5 8 13
8 13 21

25
03/04/2013

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233
X Y Z X Y Z
1 1 2 1 1 2
1 2 3 1 2 3
2 3 5 2 3 5
3 5 8 3 5 8
5 8 13 5 8 13
8 13 21 8 13 21
13 21 34 13 21 34
21 34 55

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233
X Y Z X Y Z
1 1 2 1 1 2
1 2 3 1 2 3
2 3 5 2 3 5
3 5 8 3 5 8
5 8 13 5 8 13
8 13 21 8 13 21
13 21 34 13 21 34
21 34 55 21 34 55
34 55 89

 (FUMARC/2007/PREF.MUN.BETIM/Analista de  (FUMARC/2007/PREF.MUN.BETIM/Analista de
Sistemas da Saúde) Considere que, no algoritmo em Sistemas da Saúde) Considere que, no algoritmo em
alto nível a seguir, todas as variáveis sejam inteiras: alto nível a seguir, todas as variáveis sejam inteiras:
 Na execução desse algoritmo, o valor impresso na  Na execução desse algoritmo, o valor impresso na
linha 7 é: linha 7 é:
 a) 55  a) 55
 b) 89  b) 89
 c) 144  c) 144
 d) 233  d) 233
X Y Z X Y Z
1 1 2 1 1 2
1 2 3 1 2 3
2 3 5 2 3 5
3 5 8 3 5 8
5 8 13 5 8 13
8 13 21 8 13 21
13 21 34 13 21 34
21 34 55 21 34 55
34 55 89 34 55 89
55 89 144 55 89 144

26
03/04/2013

Algoritmo Exerc_Um;
 Escrever um programa que lê dois números var inicial, final, aux, cont : inteiro;
inteiros, inicial e final, e mostra na tela os números início
inteiros do inicial até o final (inclusive). Critica: o escreva( ‘Digite dois números inteiros:’ );
leia( inicial, final );
número final deve ser maior do que o inicial.
se inicial > final
então troca(inicial, final);
 Implemente um programa que calcula a soma dos fim-se; início
cont <- inicial; Aux <- inicial;
números pares entre dois números lidos (inclusive). inicial <- final;
enquanto (cont <= final) faça
final <- Aux;
início
fim;
 Escrever programa para calcular, para N (inteiro) escreva( cont );
lido, o valor de S, dado por cont <- cont + 1;
1 2 3 N 1 N fim;
S    ...   fim.
N N 1 N  2 2 1

Algoritmo Exerc_dois; Algoritmo Exerc_três;


var inicial, final, aux, cont, soma : real; var num, den, N: inteiro; termo, S : real;
início início
escreva( ‘Digite dois números:’ ); leia( inicial, final ); escreva( ‘Digite um número inteiro > 0:’ ); leia( N );
se inicial < final então troca(inicial, final); fim-se; num <- 1; den <- N;
se (inicial mod 2) = 0 enquanto (num <= N) faça
então cont <- inicial início
senão cont <- inicial + 1; termo <- num / den;
fim-se; soma <- soma + termo;
enquanto (cont <= final) faça num <- num + 1;
início início den <- den - 1;
soma <- soma + cont; Aux <- inicial; fim;
cont <- cont + 2; inicial <- final; escreva( ’S =‘, soma );
fim; final <- inicial;
fim.
fim;
escreva( ’A soma é =‘, soma );
fim.

repita
comandos  O bloco de comandos é
<ação 1>
executado uma vez.
<ação 2>
 Se a condição for falsa, os
comandos serão
...
cond Falso
executados novamente; <ação n>
 caso contrário, a repetição ate <condição>
Verdadeiro
não acontecerá e o
Os comandos do bloco de ações são executados até
programa continua.

que uma condição seja atendida (verdadeira)

27
03/04/2013

 Dado o valor de N, calcular a soma dos  Exemplo 2  Este exemplo calcula a média de
uma quantidade variável de notas.
leia(Nota);
números inteiros de 1 a N repita
Quando o operador digitar o valor
-1 (FLAG), será calculada a média.
Total <- Total + Nota;
... N <- N + 1;  O exemplo funciona
soma ← 0 leia(Nota); corretamente? Por quê?
até (Nota = -1);
i ← 1
Media <- Total / N;
repita escreva( Media );
soma ← soma + i
i ← i + 1
ate (i > N)
escreval(“a soma é:”, soma)

 (CESGRANRIO - 2004 -
Prefeitura de Manaus -
Analista de Sistemas) Com
base no algoritmo acima, e
supondo que o valor
fornecido para "B" na linha
"leia B" seja 5, pode-se
afirmar que o valor da
variável "A" na linha "escreva
A" é:
 a) 7
 b) 9
 c) 12
 d) 16
 e) 21

 (CESGRANRIO - 2004 -  (CESGRANRIO - 2005 - MPE-


Prefeitura de Manaus - RO - Analista Programador)
Analista de Sistemas) Com Analise o algoritmo a seguir.
Com base no algoritmo
base no algoritmo acima, e acima, e supondo que o
supondo que o valor valor fornecido para "B" na
fornecido para "B" na linha linha "leia B" seja 7, pode-se
"leia B" seja 5, pode-se afirmar que o algoritmo
afirmar que o valor da apresentará como saída na
linha "escreva F",
variável "A" na linha "escreva respectivamente, a
A" é: sequência:
 a) 7  a) 0, 1, 2, 3, 4 e 5.
 b) 9  b) 1, 2, 3, 4, 5 e 6.
 c) 12  c) 1, 1, 2, 3, 5 e 8.
d) 1, 1, 3, 5, 7 e 9.
 d) 16 
 e) 1, 2, 3, 6, 7 e 9.
 e) 21

28
03/04/2013

 (CESGRANRIO - 2005 - MPE-  Repetições que possuem um número finito de


RO - Analista Programador)
Analise o algoritmo a seguir. execuções (conhecido) podem ser processadas através
Com base no algoritmo de uma repetição controlada por uma variável de
acima, e supondo que o
valor fornecido para "B" na controle do tipo contador;
linha "leia B" seja 7, pode-se
afirmar que o algoritmo
apresentará como saída na  Podem ser crescentes ou decrescentes;
linha "escreva F",
respectivamente, a
sequência:  Idealmente, a execução dos comandos acontece para
a) 0, 1, 2, 3, 4 e 5.

cada valor de um determinado conjunto de valores. Em
 b) 1, 2, 3, 4, 5 e 6.
 c) 1, 1, 2, 3, 5 e 8. cada repetição, a variável de controle assume um dos
 d) 1, 1, 3, 5, 7 e 9. valores do conjunto. Quando a variável tiver assumido
 e) 1, 2, 3, 6, 7 e 9. uma vez cada valor, então a repetição termina.

para variavel de início ate fim passo


<incremento> faca
para variavel de início ate <ação 1>
<ação 2>
fim passo <incremento> faca ...
<ação 1> <ação n>
fimpara
<ação 2>
...  Variável é a variável de controle (contador) do laço
<ação n>  início: indica o valor inicial da variável de controle.
fimpara  fim: define o valor final da variável de controle
 incremento: define como a variável de controle se altera a
cada repetição

para variavel de valor1 ate valor2 passo


<incremento> faca  Dado o valor de N, calcular a soma dos números
<ação 1>
<ação 2> inteiros de 1 a N
...
<ação n>
fimpara
...
soma ← 0
 A variável de controle assumirá cada elemento entre o valor1 e para i de 1 ate N passo 1 faca
o valor2 (são os elementos do conjunto); soma ← soma + i
 Na primeira vez, a variável de controle assume o valor1 e fimpara
executa os comandos uma vez. Ao terminar a execução, escreval(“a soma é:”, soma)
assume o sucessor de valor1 e executa novamente. Ao assumir
o valor2 e executar os comandos a repetição é interrompida; ...
 Algumas linguagens aceitam definir o tamanho do incremento.

29
03/04/2013

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342. a) 342.
ContaA ContB EXP RESP

b) 6. algoritmo PROVA b) 6. 2 algoritmo PROVA


var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. inicio c) 22. inicio
d) 86. N←4 d) 86. N←4
X←2 X←2
e) 0. RESP ← X
e) 0. RESP ← X
para CONTA ← 2 até N passo 2 faça para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
CONTB ← 1 CONTB ← 1
para CONTB = 1 até CONTA-1 passo 1 faça para CONTB ← 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContA ContB EXP RESP
a) 342.
ContaA ContB EXP RESP

b)
2 6. 2 algoritmo PROVA b)
2 6. 1 2 2 algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. inicio c) 22. inicio
d) 86. N←4 d) 86. N←4
X←2 X←2
e) 0. RESP ← X
e) 0. RESP ← X
para CONTA ← 2 até N passo 2 faça para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
CONTB ← 1 CONTB ← 1
para CONTB ← 1 até CONTA-1 passo 1 faça para CONTB ← 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContaA ContB EXP RESP
a) 342.
ContaA ContB EXP RESP

b)
2 6. 1 2 2 algoritmo PROVA b)
2 6. 1 2 2 algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. 1 4
inicio c) 22. 1 4
inicio
d) 86. N←4 d) 86. 6 N←4
X←2 X←2
e) 0. RESP ← X
e) 0. RESP ← X
para CONTA ← 2 até N passo 2 faça para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
CONTB ← 1 CONTB ← 1
para CONTB ← 1 até CONTA-1 passo 1 faça para CONTB ← 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

30
03/04/2013

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContaA ContB EXP RESP
a) 342.
ContaA ContB EXP RESP

b)
2 6. 1 2 2 algoritmo PROVA b)
2 6. 1 2 2 algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. 1 4
inicio c) 22. 1 4
inicio
d) 86. 6 N←4 d) 86. 6 N←4
X←2 X←2
e)
4 0.
RESP ← X
e)
4 0. 1 2
RESP ← X
para CONTA ← 2 até N passo 2 faça para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
CONTB ← 1 CONTB ← 1
para CONTB ← 1 até CONTA-1 passo 1 faça para CONTB ← 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContaA ContB EXP RESP
a) 342.
ContaA ContB EXP RESP

b)
2 6. 1 2 2 algoritmo PROVA b)
2 6. 1 2 2 algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. 1 4
inicio c) 22. 1 4
inicio
d) 86. 6 N←4 d) 86. 6 N←4
X←2 X←2
e)
4 0. 1 2
RESP ← X
e)
4 0. 1 2
RESP ← X
1 4 para CONTA ← 2 até N passo 2 faça 1 4 para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
2
CONTB ← 1 CONTB ← 1
para CONTB ← 1 até CONTA-1 passo 1 faça para CONTB ← 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContaA ContB EXP RESP
a) 342.
ContaA ContB EXP RESP

b)
2 6. 1 2 2 algoritmo PROVA b)
2 6. 1 2 2 algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. 1 4
inicio c) 22. 1 4
inicio
d) 86. 6 N←4 d) 86. 6 N←4
X←2 X←2
e)
4 0. 1 2
RESP ← X
e)
4 0. 1 2
RESP ← X
1 4 para CONTA ← 2 até N passo 2 faça 1 4 para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
2 8 2 8
CONTB ← 1 CONTB ← 1
para CONTB ← 1 até CONTA-1 passo 1 faça 3 para CONTB ← 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

31
03/04/2013

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContaA ContB EXP RESP
a) 342.
ContaA ContB EXP RESP

b)
2 6. 1 2 2 algoritmo PROVA b)
2 6. 1 2 2 algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. 1 4
inicio c) 22. 1 4
inicio
d) 86. 6 N←4 d) 86. 6 N←4
X←2 X←2
e)
4 0. 1 2
RESP ← X
e)
4 0. 1 2
RESP ← X
1 4 para CONTA ← 2 até N passo 2 faça 1 4 para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
2 8 2 8
CONTB ← 1 CONTB ← 1
3 16 para CONTB ← 1 até CONTA-1 passo 1 faça 3 16 para CONTB = 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
fim-para 22 fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: (FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere:
Dado o algoritmo representado na forma de português Dado o algoritmo representado na forma de português
estruturado, o valor de saída contido na variável RESP será estruturado, o valor de saída contido na variável RESP será
a) 342.
ContaA ContB EXP RESP
a) 342.
b)
2 6. 1 2 2 algoritmo PROVA b) 6. algoritmo PROVA
var N, X, CONTA, CONTB, EXP, RESP: inteiro var N, X, CONTA, CONTB, EXP, RESP: inteiro
c) 22. 1 4
inicio c) 22. inicio
d) 86. 6 N←4 d) 86. N←4
X←2 X←2
e)
4 0. 1 2
RESP ← X
e) 0. RESP ← X
1 4 para CONTA ← 2 até N passo 2 faça para CONTA ← 2 até N passo 2 faça
EXP ← X EXP ← X
8
CONTB ← 1 CONTB ← 1
16 para CONTB = 1 até CONTA-1 passo 1 faça para CONTB = 1 até CONTA-1 passo 1 faça
EXP ← EXP * X EXP ← EXP * X
22 fim-para fim-para
RESP ← RESP + EXP RESP ← RESP + EXP
fim-para fim-para
fim fim

 Caso queira interromper uma repetição antes


do final natural da mesma, use o comando

INTERROMPA;

◦ é claro que esta deve ser incluída em uma estrutura


condicional:

se (<condição>)
então interrompa;
fim-se;

32
03/04/2013

 (CESPE - 2009 - ANAC - Analista  (CESPE - 2009 - ANAC - Analista


Administrativo - Tecnologia da Informação) Administrativo - Tecnologia da Informação)
Na construção de um algoritmo, utilizam-se Na construção de um algoritmo, utilizam-se
estruturas de repetição para que um bloco de estruturas de repetição para que um bloco de
comandos seja executado várias vezes. Todos comandos seja executado várias vezes. Todos
os tipos de estrutura de repetição permitem os tipos de estrutura de repetição permitem
que o bloco de comandos seja executado que o bloco de comandos seja executado
zero, uma ou mais vezes, de acordo com uma zero, uma ou mais vezes, de acordo com uma
condição que será avaliada a cada iteração. condição que será avaliada a cada iteração.

ERRADO

 (CESPE/2010/BANCO DA AMAZÔNIA/Técnico  (CESPE/2010/BANCO DA AMAZÔNIA/Técnico


Científico — Área: Tecnologia da Informação) Científico — Área: Tecnologia da Informação)
Na programação estruturada, existem Na programação estruturada, existem
estruturas de sequência, de decisão e de estruturas de sequência, de decisão e de
iteração. No primeiro tipo, uma tarefa é iteração. No primeiro tipo, uma tarefa é
executada após a outra, linearmente. No executada após a outra, linearmente. No
segundo, a partir de um teste lógico, segundo, a partir de um teste lógico,
determinado trecho de código é executado, determinado trecho de código é executado,
ou não. No terceiro, a partir de um teste ou não. No terceiro, a partir de um teste
lógico, determinado trecho de código é lógico, determinado trecho de código é
repetido por um número finito de vezes. repetido por um número finito de vezes.

CERTO

 Imagine como faríamos para construir um Algoritmo "Inviável"


algoritmo, que lesse os nomes de 500 Declare
pessoas e imprimisse um relatório destes nome1, nome2, ..., nome500: caractere
mesmos nomes, mas ordenados inicio
alfabeticamente.
leia (nome1,nome2,...,nome500)
...
 Declarar 500 variáveis?
Fim
 Ler tudo?
◦ Imagine: digitar um comando para cada variável?
 E se mudar para 1000? E depois voltar para
500?

33
03/04/2013

 Inviável  Também denominados Estruturas compostas


◦ tamanho do algoritmo; homogêneas unidimensionais
◦ trabalho braçal;  Permitem a manipulação de um conjunto de
informações de um mesmo tipo primitivo
 Variáveis Indexadas.
◦ várias variáveis cujo identificador difere apenas por
um índice.
◦ O índice, geralmente, numérico começando em 1;
◦ Cada variável indexada é tratada como uma variável
comum.

 Vetores = variáveis indexadas por um só índice;  Atribuição:


◦ Para se atribuir um valor a um elemento do vetor
devemos utilizar o seguinte padrão:
 <identificador> : vetor [<tamanho>] de < tipo >
 Onde:  < identificador>[<posição>]  <valor>
◦ <tamanho> = VI..VF
◦ Vi é o valor inicial do índice e  Exemplos:
◦ VF é o valor final do índice.  nomes[1]  “João da Silva”
 idades[1]  35
 Exemplo  nomes[3]  “Maria Aparecida”
 IDADE: VETOR [1..5] DE INTEIRO  idades[3]  idades[1]
 NOMES: VETOR [1..5] DE CARACTERE  i5
 idades[i]  45

Algoritmo que lê um vetor NUMERO de 6 posições e o escreve. A seguir, ele conta



quantos valores de NUMERO são negativos e escreva esta informação.  (CESPE - 2009 - ANAC - Analista
 Algoritmo Administrativo - Tecnologia da Informação)


Declare NUMERO: VETOR [1..6] DE REAL
I, conta_neg: INTEIRO
Um array é um agregado, possivelmente
 início heterogêneo, de elementos de dados. Nele,
conta_neg <- 0
um elemento individual é identificado por sua

 para i de 1 ate 6 faca
leia (NUMERO[i])
posição em relação ao primeiro.

 se NUMERO[i] < 0 entao
 conta_neg <- conta_neg + 1
 fim-se
 fim-para
 para i de 1 ate 6 faca
 imprima(NUMERO[i])
 fim-para
 imprima("Total de números negativos: ", conta_neg)
 fim

34
03/04/2013

 (CESPE - 2009 - ANAC - Analista  (FUMARC/2007/PREF.MUN.BETIM/Anal


ista de Sistemas da Saúde) Considere
Administrativo - Tecnologia da Informação) que, no algoritmo em alto nível a
seguir, V seja um vetor de inteiros
Um array é um agregado, possivelmente contendo 100 elementos indexados de
heterogêneo, de elementos de dados. Nele, 0 a 99, e todas as demais variáveis
sejam inteiras.
um elemento individual é identificado por sua  O objetivo desse algoritmo é:
posição em relação ao primeiro.  a) Imprimir o vetor V em ordem
crescente.
 b) Imprimir o vetor V em ordem
 ERRADO decrescente.
 c) Imprimir o maior valor armazenado
no vetor V.
 d) Imprimir o menor valor armazenado
no vetor V.

 (FUMARC/2007/PREF.MUN.BETIM/Anal  (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de


ista de Sistemas da Saúde) Considere Sistemas) Em relação às estruturas de dados,
que, no algoritmo em alto nível a
seguir, V seja um vetor de inteiros todas as afirmativas estão corretas, EXCETO:
contendo 100 elementos indexados de  a) Vetores são variáveis compostas
0 a 99, e todas as demais variáveis unidimensionais identificadas por um mesmo
sejam inteiras. nome.
 O objetivo desse algoritmo é:  b) Matrizes são variáveis compostas
 a) Imprimir o vetor V em ordem multidimensionais individualizadas por índices.
crescente.
 b) Imprimir o vetor V em ordem  c) Registros são conjuntos de dados logicamente
decrescente. relacionados, mas de tipos diferentes.
 c) Imprimir o maior valor armazenado  d) Variáveis compostas homogêneas
no vetor V. correspondem a posições de memória cujo
 d) Imprimir o menor valor armazenado conteúdo pode ser de diferentes tipos de dados.
no vetor V.

 (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de  (FUMARC/2004/Analista de Sistemas) Seja


Sistemas) Em relação às estruturas de dados,
todas as afirmativas estão corretas, EXCETO: dado o programa:
 a) Vetores são variáveis compostas  Marque a alternativa que representa o valor
unidimensionais identificadas por um mesmo da variável soma a ser impresso por esse
nome.
 b) Matrizes são variáveis compostas programa.
multidimensionais individualizadas por índices.  a) 20
 c) Registros são conjuntos de dados logicamente  b) 60
relacionados, mas de tipos diferentes.
 d) Variáveis compostas homogêneas  c) 40
correspondem a posições de memória cujo  d) 34
conteúdo pode ser de diferentes tipos de dados.

35
03/04/2013

(FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja (FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja
dado
0 2
o 1programa: 0
dado2
o 1programa:
1 -1 -1
 Marque a alternativa que representa o valor  Marque a alternativa que representa o valor
da variável soma a ser impresso por esse da variável soma a ser impresso por esse
programa. programa.
 a) 20  a) 20
 b) 60  b) 60
 c) 40  c) 40
 d) 34  d) 34

(FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja (FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja
dado
0 2
o 1programa: 0
dado2
o 1programa:
1 -1 -1 1 -1 -1
 Marque a alternativa que representa o valor  Marque a alternativa que representa o valor
3 0 3 0
da variável soma a ser impresso por esse da variável soma
6 1
a ser impresso por esse
programa. programa.
 a) 20  a) 20
 b) 60  b) 60
 c) 40  c) 40
 d) 34  d) 34

(FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja (FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja
dado
0 2
o 1programa: 0
dado 2
o 1programa:
1 -1 -1 1 -1 -1
 Marque a alternativa que representa o valor  Marque a alternativa que representa o valor
3 0 3 0
da variável soma
6 1
a ser impresso por esse da variável soma
6 1
a ser impresso por esse
programa.0 -1
11 programa.0 -1
11

 a) 20  17a) 20 0

 b) 60  b) 60
 c) 40  c) 40
 d) 34  d) 34

36
03/04/2013

(FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja (FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja
0
dado 2
o 1programa: dado
0 2
o 1programa:
1 -1 -1 1 -1 -1
 Marque a alternativa que representa o valor  Marque a alternativa que representa o valor
3 0 3 0
da
6
variável soma
1
a ser impresso por esse da
6
variável soma
1
a ser impresso por esse
programa.0 -1
11 programa.0 -1
11

 17a) 20 0  17a) 20 0

 b) 60  b) 60
24 1 24 1

33 1 -1
 c) 40  c) 40
 d) 34  d) 34

(FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja (FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja
0
dado 2
o 1programa: dado
0 2
o 1programa:
1 -1 -1 1 -1 -1
 Marque a alternativa que representa o valor  Marque a alternativa que representa o valor
3 0 3 0
da variável soma
6 1
a ser impresso por esse da variável soma
6 1
a ser impresso por esse
programa.0 -1
11 programa.0 -1
11

 17a) 20 0  17a) 20 0

 b) 60  b) 60
24 1 24 1

33 1 -1 33 1 -1
 c) 40  c) 40
33 0 33 0

 d) 34  34d) 34 1

(FUMARC/2004/Analista
soma ix iy dy dx
de Sistemas) Seja  (FUMARC/2004/Analista de Sistemas) Seja
0
dado 2
o 1programa: dado o programa:
1 -1 -1
 Marque a alternativa que representa o valor  Marque a alternativa que representa o valor
3 0
da variável soma
6 1
a ser impresso por esse da variável soma a ser impresso por esse
programa.0 -1
11 programa.
 17a) 20 0  a) 20
 b) 60 b) 60
24 1

33 1 -1
 c) 40  c) 40
33 0

 34d) 34 1  d) 34

37
03/04/2013

 Variáveis indexadas com duas dimensões  A sintaxe para declaração é:


 <identificador> : vetor [<tamanho1>,<tamanho2>] de < tipo >
(matrizes);
◦ são referenciadas por dois índices;  Ex: PESSOAS: VETOR [1..2,1..3] DE CARACTERE
◦ Cada dimensão da matriz, em geral, representa uma
A declaração acima corresponde à declaração de 6 variáveis:
classificação de informação. 
 PESSOAS[1,1], PESSOAS [1,2], PESSOAS[1,3],
 Por exemplo, as linhas poderiam representar um aluno,  PESSOAS[2,1], PESSOAS[2,2], e PESSOAS [2,3].
enquanto as colunas representariam as notas.
 Mesmo com mais de 2 dimensões também são  Para se atribuir um valor a um elemento do vetor devemos
utilizar o seguinte padrão:
chamadas de matrizes (multidimensionais)
 Importante  < identificador>[<posição 1>,<posição 2>]  <valor>
 Ex: PESSOAS[1,3]  “Tonet”
◦ Cada posição é uma variável e ocupa espaço de
memória;

 (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de  Considere a matriz A = (aij) de dimensão 2 x


Sistemas) Um Analista de Sistemas recebeu a tarefa de
implementar uma sub-rotina que, a partir de uma matriz de 2, a seguir, onde aij são os elementos da
entrada "A", gerasse uma outra matriz de saída "B". Um matriz A.
pedaço desta sub-rotina, implementada em Visual Basic 6.0,
está apresentado abaixo.

 Nesta matriz, por exemplo, o elemento a11


possui o valor 3.

 A matriz "B" resultante da execução do algoritmo  A matriz "B" resultante da execução do algoritmo
acima, tendo a matriz "A" como entrada, é: acima, tendo a matriz "A" como entrada, é:

a) d) a) d)

b) b)

e) e)
c) c)

38
03/04/2013

 (FUMARC/2007/PREF.MUN.BETIM/Analista  (FUMARC/2007/PREF.MUN.BETIM/Analista
de Sistemas da Saúde) Considere que no de Sistemas da Saúde) Considere que no
algoritmo em alto nível a seguir, M seja algoritmo em alto nível a seguir, M seja
uma matriz de booleanos contendo 8 uma matriz de booleanos contendo 8
linhas, indexadas de 0 a 7, e 3 colunas, linhas, indexadas de 0 a 7, e 3 colunas,
indexadas de 0 a 2; X, Y e Z sejam indexadas de 0 a 2; X, Y e Z sejam
variáveis inteiras; e todas as demais variáveis inteiras; e todas as demais
variáveis sejam booleanas. variáveis sejam booleanas.
 Considere ainda que M seja a seguinte  Considere ainda que M seja a seguinte
matriz: matriz:
 Os valores impressos no fim da execução  Os valores impressos no fim da execução
do algoritmo são: do algoritmo são:
 a) 0 e 5  a) 0 e 5
 b) 4 e 4  b) 4 e 4
 c) 7 e 3  c) 7 e 3
 d) 8 e 8  d) 8 e 8

 Refinamentos sucessivos Programa

◦ Dividir para conquistar Bloco A

 Confiabilidade instrução 1
instrução 2
 Legibilidade instrução n

 Manutenibilidade Bloco Principal

 Flexibilidade. instrução 1
instrução 2
ativa bloco A
instrução m

Programa Programa
Bloco A Bloco A

instrução 1 instrução 1
instrução 2 instrução 2
instrução n instrução n

Bloco Principal Bloco Principal

instrução 1 instrução 1
instrução 2 instrução 2
ativa bloco A ativa bloco A
instrução m instrução m

39
03/04/2013

Programa Programa
Bloco A Bloco A

instrução 1 instrução 1
instrução 2 instrução 2
instrução n instrução n

Bloco Principal Bloco Principal

instrução 1 instrução 1
instrução 2 instrução 2
ativa bloco A ativa bloco A
instrução m instrução m

Programa Programa
Bloco A Bloco A

instrução 1 instrução 1
instrução 2 instrução 2
instrução n instrução n

Bloco Principal Bloco Principal

instrução 1 instrução 1
instrução 2 instrução 2
ativa bloco A ativa bloco A
instrução m instrução m

Programa Programa
Bloco A Bloco A

instrução 1 instrução 1
instrução 2 instrução 2
instrução n instrução n

Bloco Principal Bloco Principal

instrução 1 instrução 1
instrução 2 instrução 2
ativa bloco A ativa bloco A
instrução m instrução m

40
03/04/2013

 Procedimentos e Funções  Procedimentos


◦ Vantagem = reutilização do código ◦ Ações sem retorno de valores.
◦ Desvantagem = aumento do tempo de execução ◦ Não podem ser utilizados em expressões
(funcionam como comandos)
 Vamos adotar a sintaxe abaixo:
 Funções
◦ Possuem um valor de retorno (=tipo)
◦ O retorno, em geral, não pode ser um arranjo.
◦ Usamos a palavra RETORNE seguida do valor de
retorno;

 Os módulos possuem uma assinatura  Os parâmetros declarados em um módulo são


(interface) e um corpo; chamados de parâmetros formais.

 Podem possuir variáveis declaradas  Os parâmetros passados como argumentos


quando da chamada do módulo são
internamente e/ou usar as variáveis de outros
chamados parâmetros reais.
módulos hierarquicamente superiores;
◦ Cuidado com a dependência de outros módulos
(acoplamento)
 Existem duas formas de passagem de
parâmetros:
◦ Passagem por valor
◦ Passagem por referência.

 Passagem de Parâmetros - por valor  (ESAF/2008/STN/DESENVOLVIMENTO DE


SISTEMAS) Para resolver um determinado
problema, um programador tem em mente como
procedimento Prc1 (num, cod : inteiro; nome: literal) deve ser o programa principal que, por sua vez,
controlará todas as outras tarefas distribuídas
em sub-rotinas, para as quais deverá
 Passagem de Parâmetros - por referência desenvolver os respectivos algoritmos. Este
cenário exemplifica o conceito de programação
 a) estruturada.
 b) orientada a objetos.
procedimento Prc1 (var num, cod : inteiro; nome: literal)  c) funcional.
 d) numérica.
 e) orientada a aspectos.

41
03/04/2013

 (ESAF/2008/STN/DESENVOLVIMENTO DE  (ESAF/2008/Prefeitura de Natal - RN/Auditor do Tesouro Municipal - Tecnologia


da Informação) Analise as seguintes afirmações relacionadas a conceitos básicos
SISTEMAS) Para resolver um determinado sobre Programação:
problema, um programador tem em mente como  I. Um procedimento é um conjunto de comandos para uma tarefa específica
referenciada por um nome no algoritmo principal, retornando um determinado
deve ser o programa principal que, por sua vez, valor no seu próprio nome.
controlará todas as outras tarefas distribuídas  II. Podem-se inserir módulos em um algoritmo. Para isso, pode-se utilizar
"Procedimentos" ou "Funções". As ações das "Funções" e dos "Procedimentos" são
em sub-rotinas, para as quais deverá hierarquicamente subordinadas a um módulo principal.
desenvolver os respectivos algoritmos. Este  III. Cada "Função" ou "Procedimento" pode utilizar constantes ou variáveis do
módulo principal ou definir suas próprias constantes ou variáveis.
cenário exemplifica o conceito de programação  IV. Uma variável global indica o endereço onde um valor é armazenado na
memória do computador enquanto um ponteiro representa um valor numérico
 a) estruturada. real.
 b) orientada a objetos. 

Indique a opção que contenha todas as afirmações verdadeiras.
a) I e II.
 c) funcional.  b) II e III.
 d) numérica. 

c) III e IV.
d) I e III.
 e) orientada a aspectos.  e) II e IV.

(ESAF/2008/Prefeitura de Natal - RN/Auditor do Tesouro Municipal - Tecnologia



da Informação) Analise as seguintes afirmações relacionadas a conceitos básicos  (CESPE/2009/ANAC/Analista
sobre Programação:
 I. Um procedimento é um conjunto de comandos para uma tarefa específica Administrativo/Tecnologia da Informação).
referenciada por um nome no algoritmo principal, retornando um determinado
valor no seu próprio nome. Na passagem de parâmetro por valor, o
II. Podem-se inserir módulos em um algoritmo. Para isso, pode-se utilizar
parâmetro formal tem seu valor inicializado

"Procedimentos" ou "Funções". As ações das "Funções" e dos "Procedimentos" são
hierarquicamente subordinadas a um módulo principal.
 III. Cada "Função" ou "Procedimento" pode utilizar constantes ou variáveis do
módulo principal ou definir suas próprias constantes ou variáveis.
pelo valor do parâmetro real. Por esse
 IV. Uma variável global indica o endereço onde um valor é armazenado na
memória do computador enquanto um ponteiro representa um valor numérico
motivo, o parâmetro real nunca é alterado. O
real. seu valor se mantém inalterado depois que o
Indique a opção que contenha todas as afirmações verdadeiras.
subprograma termina a execução.

 a) I e II.
 b) II e III.
 c) III e IV.
 d) I e III.
 e) II e IV.

 (CESPE/2009/ANAC/Analista  (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de Sistemas)


Em relação a algoritmos e lógica de programação, todas as
Administrativo/Tecnologia da Informação). afirmativas estão corretas, EXCETO:
Na passagem de parâmetro por valor, o  a) Funções e sub-rotinas (procedimentos) são ferramentas
de modularização de programas.
parâmetro formal tem seu valor inicializado  b) Os comandos de entrada e saída são utilizados para
pelo valor do parâmetro real. Por esse iniciar e finalizar a execução de um programa de
computador.
motivo, o parâmetro real nunca é alterado. O  c) Estruturas condicionais permitem escolher ações que
seu valor se mantém inalterado depois que o serão executadas quando determinadas condições são
satisfeitas.
subprograma termina a execução.  d) Estruturas de repetição permitem que uma sequência de
comandos seja executada repetidamente até que uma
determinada condição de interrupção seja satisfeita.
 GABARITO: item CERTO.

42
03/04/2013

 (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de Sistemas)  Interpretador de Algoritmos


Em relação a algoritmos e lógica de programação, todas as
afirmativas estão corretas, EXCETO: ◦ Interpreta o portugol diretamente
 a) Funções e sub-rotinas (procedimentos) são ferramentas ◦ Claro, precisou de mais formalismo
de modularização de programas.
 b) Os comandos de entrada e saída são utilizados para ◦ Melhor ferramenta para aprender algoritmos
iniciar e finalizar a execução de um programa de
computador.
 c) Estruturas condicionais permitem escolher ações que  Outras ferramentas boas para aprender
serão executadas quando determinadas condições são ◦ Linguagem Pascal (especialmente o Turbo Pascal 4)
satisfeitas.
 d) Estruturas de repetição permitem que uma sequência de ◦ Linguagem C – um pouco mais difícil de aprender
comandos seja executada repetidamente até que uma ◦ Linguagem Declarativa – Prolog
determinada condição de interrupção seja satisfeita.
◦ Linguagem Funcional – LISP, Gofer

Estrutura do VisuALG

http://www.apoioinformatica.inf.br/o-visualg
“Algoritmo 1”
Converter reais em dólar
Prof Lênin
Declaração
Linhas dedas variáveis
Comandos:
2013
Ex:
Ex:

Qtd_reais : real
Escreva
Cotacao : real
Escreval
Leia

Esqueleto Terminal secundário

 A Barra de Tarefas  Executar (F9): Inicia (ou continua) a execução


◦ Contém os comandos mais utilizados no VisuAlg automática do pseudocódigo.
(estes comandos também podem ser acessados
pelo menu ou por atalhos no teclado).
 Executar com timer (Shift-F9):: Insere um
atraso (que pode ser especificado no
intervalo ao lado) antes da execução de cada
linha. Também realça em fundo azul o
comando que está sendo executado, da
mesma forma que na execução passo a
passo.

43
03/04/2013

 Intervalo do timer: Atraso em cada linha, para


quando se deseja executar o pseudocódigo NOME DO ALGORITMO algoritmo "soma dois numeros"

com timer.
var
VAR n1, n2, d: inteiro
declaração de variáveis
 Passo (F8): Inicia (ou continua) a execução .
inicio
linha por linha do pseudocódigo .
. escreval("Digite dois numeros")
INICIO DO ALGORITMO
 Parar (Ctrl-F2): Termina imediatamente a bloco de comandos
leia(n1)
leia(n2)
execução do pseudocódigo. .
.
d<-n1+n2

Liga/desliga breakpoint (F5): Insere/remove


escreva("A soma eh igual a ", d)
 .
fimalgoritmo
FIM DO ALGORITMO
um ponto de parada na linha em que esteja o
cursor.

 Declaração de variáveis. Tipo Descrição


Var inteiro Representa valores inteiros.
n1, n2: inteiro Exemplos: 10, 5, -5, -10
d: real real ou Representa valores reais (com ponto
k: caractere numerico separador da parte decimal).
sinal: logico Exemplos: 10, 15.5, -14.67
literal ou Representa texto (seqüência ou cadeia
 Comandos de atribuição. caractere de caracteres) entre aspas duplas.
Exemplo "Esta é uma cadeia de
n1 <- 3 caracteres", “B”, “1234”
n2 <- n1+ 4
k <- “teste de atribuição” logico Representa valores lógicos
sinal <- verdadeiro (VERDADEIRO ou FALSO)

Operação Operador Operador Operação


Adição + a<b a é menor que b
Subtração - a <= b a é menor ou igual a b
Multiplicação * a>b a é maior que b
a >= b a é maior ou igual a b
Divisão /
a=b a é igual a b
Divisão Inteira \ ou div
a <> b a não é igual a b
Exponenciação ^ ou Exp
(<base>,<expoente>)
Resto da Divisão %

44
03/04/2013

 Exemplos:  E (AND), OU (OR), NAO (NOT)


◦ cond1 ← 2 = 3 // (falso)
Operação Resultado
◦ cond2 ← 1.6 <> 5.0 // (verdadeiro)
aEb VERDADEIRO se ambas as partes
◦ cond3 ← 1 > 5 // (falso) (a e b) forem verdadeiras
◦ cond4 ← (1 + 2) < 5 // (verdadeiro) a OU b VERDADEIRO se apenas uma das
partes (a ou b) é verdadeira.
◦ cond5 ← 10 >= 3 // (verdadeiro)
NAO a Nega uma afirmação, invertendo o
◦ cond6 ← 1 <= 4 // (verdadeiro) seu valor lógico: se a for
VERDADEIRO retorna FALSO, se a
for FALSO retorna VERDADEIRO.

 Exemplos:
a b aEb a OU b NAO a NAO b
◦ cond1 ← verdadeiro E falso // (falso)
◦ cond2 ← falso OU falso //(falso) V V V V F F
◦ cond3 ← NAO cond1 // (verdadeiro) V F F V F V
◦ cond4 ← (verdadeiro E falso) OU (5 > 3)
// (verdadeiro)
F V F V V F
F F F F V V

Operador Aritmético Prioridade


 Podem ser pré-definidas da linguagem ou
Exponenciação 3 (maior) definidas pelo programador
Multiplicação 2
Divisão 2  Exemplos:
Adição 1 ◦ seno(angulo)
Subtração 1 (menor) Operador Prioridade ◦ exp(x,y)
Lógico ◦ ler(var1,var2,...)
E 3 ◦ escrever(resul1,result2,...)
OU 2
NAO 1
2 2
6 7
9 0

45
03/04/2013

Função Descrição
Abs (valor : real) : real Valor absoluto Pressonando  Utilizados para descrever texto
Asc (s : caracter) : inteiro Retorna o código ASCII (CTRL+J) o
visualg esclarecendo trechos do código
Compr (c : caracter) : inteiro Retorna o tamanho da cadeia de
caracteres
mostra uma
Lista de ◦ {} (Farrer) ou
Cos (valor : real) : real Cosseno funções
predefinidas
◦ // (C++, Visualg) ou
Exp (<base>,<expoente>) Exponenciação
Int (valor : real) : inteiro Converte o valor em
inteiro

Log (valor : real) : real Logaritmo de base 10


◦ /* (Java)
Pi : real A constante PI
Sen (valor : real) : real Seno 2 2
Raizq (valor : real) : real Raiz quadrada 7 7
Quad (valor : real) : real Elevado quadrado
1 2

 Entrada de dados.  Saída de dados.


Sintaxe  leia (<lista de variáveis>) Sintaxe  escreva (<lista-de-variáveis>)
Exemplos: escreval (<lista-de-variáveis>)

leia (n1) - O valor digitado será armazenado na variável n1. Obs: escreval  imprime a variável na tela e o cursor vai
leia (k) - Um ou vários caracteres digitados serão armazenados para uma nova linha.
na variável k (Definida como caractere).
Exemplos:
 No caso de utilizar leia (<lista de variáveis>), será
respeitada a ordem da lista de variáveis, da esquerda para escreva (n1) - Será mostrado na tela o conteúdo da variável n1.
direita.
escreva (“O texto digitado foi ”, k) - Será mostrado o texto entre
◦ Exemplo: leia (n1, k, n2) “” e depois o conteúdo da variável k.

 Saída de dados.  Considere um problema que exija uma decisão.


◦ Tomemos como exemplo uma divisão, onde haja a
◦ É possível especificar o número de colunas da tela necessidade de que o algoritmo verifique se o divisor
onde se deseja escrever um determinado valor. é igual ou diferente de zero. Se for igual não é
possível dividir. Se for diferente é possível dividir.
◦ Exemplo: considerando uma variável inteira x, o
comando escreva (x:5) escreve o valor da variável x  Sintaxe:
em 5 colunas, alinhado-o à direita. se (<expressão-lógica>) então
<sequência de comandos>
◦ Exemplo: considerando y como uma variável real, o senão
comando escreva (y:6:2), escreve seu valor em 6 <seqüência de comandos>
colunas colocando 2 casas decimais. fimse

46
03/04/2013

 Exemplo:
algoritmo "Divisão"

var
n1, n2: inteiro
resultado: real
inicio
escreva ("Digite o dividendo ==> ")
leia (n1)
escreva ("Digite o divisor ==> ") Algoritmos e Estruturas de Dados
leia (n2)
se (n2=0) entao Módulo I
escreva ("impossivel dividir por 0")
senao
resultado <- n1/n2
escreva ("O resultado eh ==>", resultado)
fimse
fimalgoritmo

 (CESPE - 2012 - Banco da Amazônia -  (CESPE - 2012 - Banco da Amazônia -


Técnico Científico - Análise de Sistemas) O Técnico Científico - Análise de Sistemas) O
comando while utilizado em algoritmos comando while utilizado em algoritmos
implementa laços com teste antecipado de implementa laços com teste antecipado de
condições, testando a condição e, sendo ela condições, testando a condição e, sendo ela
verdadeira, executando o bloco de verdadeira, executando o bloco de
comandos. comandos.

CERTO

 (CESPE - 2012 - Banco da Amazônia -  (CESPE - 2012 - Banco da Amazônia -


Técnico Científico - Análise de Sistemas) Técnico Científico - Análise de Sistemas)
Quando um break é encontrado dentro de um Quando um break é encontrado dentro de um
laço for, a execução do código é interrompida laço for, a execução do código é interrompida
e o programa é finalizado. e o programa é finalizado.

 ERRADO

47
03/04/2013

 (CESGRANRIO - 2012 - CMB - Assistente Técnico  (CESGRANRIO - 2012 - CMB - Assistente Técnico
- Administrativo - Programador de Computador) - Administrativo - Programador de Computador)
Na resolução de problemas relacionados com a Na resolução de problemas relacionados com a
construção de algoritmos, são usadas diversas construção de algoritmos, são usadas diversas
estratégias. Uma delas consiste em dividir o estratégias. Uma delas consiste em dividir o
problema em problemas menores até que cada problema em problemas menores até que cada
parte seja pequena o bastante para que a solução parte seja pequena o bastante para que a solução
seja encontrada. Tal estratégia denomina-se seja encontrada. Tal estratégia denomina-se
 a) comutação  a) comutação
 b) decomposição  b) decomposição
 c) diversificação  c) diversificação
 d) qualificação  d) qualificação
 e) variação  e) variação

(FCC/2012/TRT - 6ª Região (PE)/Técnico Judiciário - Tecnologia da (FCC/2012/TRT - 6ª Região (PE)/Técnico Judiciário - Tecnologia da
Informação) Sobre o algoritmo acima, é correto afirmar: Informação) Sobre o algoritmo acima, é correto afirmar:

a) Qualquer valor digitado e armazenado a) Qualquer valor digitado e armazenado


na variável valor menor do que 10 na variável valor menor do que 10
desencadeará a impressão da mensagem desencadeará a impressão da mensagem
"Situação 2". "Situação 2".

b) A mensagem "Situação 3" será exibida b) A mensagem "Situação 3" será exibida
apenas se o valor digitado e armazenado apenas se o valor digitado e armazenado
na variável valor for maior do que 10. na variável valor for maior do que 10.

c) O algoritmo será finalizado apenas c) O algoritmo será finalizado apenas


quando a resposta da pergunta “Deseja quando a resposta da pergunta “Deseja
continuar[sim/não]?” for "não". continuar[sim/não]?” for "não".

d) A mensagem “Situação 2” será exibida d) A mensagem “Situação 2” será exibida


se o valor digitado e armazenado na se o valor digitado e armazenado na
variável valor for maior ou igual a 5 e variável valor for maior ou igual a 5 e
menor do que 10. menor do que 10.

e) A mensagem "Situação 1" será exibida e) A mensagem "Situação 1" será exibida
apenas de o valor lido para a variável apenas de o valor lido para a variável
valor for maior ou igual a zero e menor valor for maior ou igual a zero e menor
do que 5. do que 5.

(FCC - 2012 - TST - Técnico Judiciário - Programação) Fornecidos os dados (FCC - 2012 - TST - Técnico Judiciário - Programação) Fornecidos os dados
das candidatas ao time de basquete: altura, peso e idade e as restrições das candidatas ao time de basquete: altura, peso e idade e as restrições
abaixo: abaixo:
altura: de 1.70 a 1.85 m peso: de 48 a 60 kg idade: de 15 a 20 anos altura: de 1.70 a 1.85 m peso: de 48 a 60 kg idade: de 15 a 20 anos
O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os
dados se enquadram nas restrições fornecidas é: dados se enquadram nas restrições fornecidas é:

a) b)

se ((altura>=1.70 ou altura <= 185) se (1.70 < altura < 1.85)


e (peso >=48 ou peso <= 60) e (48kg < peso< 60kg) e (15anos < idade < 20anos)
e idade (idade >=15 ou idade <=20)) então
então imprima("Candidato aprovado")
imprima ("Candidato aprovado") senão
senão imprima ("Candidato reprovado")
imprima ("Candidato reprovado")

48
03/04/2013

(FCC - 2012 - TST - Técnico Judiciário - Programação) Fornecidos os dados (FCC - 2012 - TST - Técnico Judiciário - Programação) Fornecidos os dados
das candidatas ao time de basquete: altura, peso e idade e as restrições das candidatas ao time de basquete: altura, peso e idade e as restrições
abaixo: abaixo:
altura: de 1.70 a 1.85 m peso: de 48 a 60 kg idade: de 15 a 20 anos altura: de 1.70 a 1.85 m peso: de 48 a 60 kg idade: de 15 a 20 anos
O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os
dados se enquadram nas restrições fornecidas é: dados se enquadram nas restrições fornecidas é:

c)
se ( 170 ≤ altura ≤ 1.85 ) e (48 ≤ peso ≤ 60) e (15 ≤ idade ≤ 20) d)
então se ((altura >=1.70 e altura <= 1.85)
imprima (" Candidata aprovada") e (peso >= 48 e peso <= 60) e (idade >=15 e idade <=20))
senão então
imprima ("Candidata reprovada") imprima("Candidata aprovada")
senão
imprima("Candidata reprovada")

(FCC - 2012 - TST - Técnico Judiciário - Programação) Fornecidos os dados (FCC - 2012 - TST - Técnico Judiciário - Programação) Fornecidos os dados
das candidatas ao time de basquete: altura, peso e idade e as restrições das candidatas ao time de basquete: altura, peso e idade e as restrições
abaixo: abaixo:
altura: de 1.70 a 1.85 m peso: de 48 a 60 kg idade: de 15 a 20 anos altura: de 1.70 a 1.85 m peso: de 48 a 60 kg idade: de 15 a 20 anos
O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os O trecho de algoritmo, em pseudocódigo, que verifica corretamente se os
dados se enquadram nas restrições fornecidas é: dados se enquadram nas restrições fornecidas é:

d) e)
se ((altura >=1.70 e altura <= 1.85) se ((altura >= 1.70 e altura <= 1.85)
e (peso >= 48 e peso <= 60) e (idade >=15 e idade <=20)) ou (peso>=48 e peso <=60) ou (idade >= 15 e idade <=20))
então então
imprima("Candidata aprovada") imprima ("Candidata aprovada")
senão senão
imprima("Candidata reprovada") imprima ("Candidata reprovada")

CORRETO

(FCC - 2012 - TRE-CE - Técnico Judiciário - Programação de


Sistemas) Considere o algoritmo seguinte:
A saída na tela será
a) 0.
(FCC - 2012 - TRE-CE - Técnico Judiciário - Programação de b) 2, 4, 8, 16 e 16.
Sistemas) Considere o algoritmo seguinte: c) 2, 4, 8 e 8.
A saída na tela será
d) 1.
a) 0.
e) 0, 0, 0, 0 e 0.
b) 2, 4, 8, 16 e 16.
Res Cont X N
c) 2, 4, 8 e 8.
0 1 2 4
d) 1.
e) 0, 0, 0, 0 e 0.

49
03/04/2013

(FCC - 2012 - TRE-CE - Técnico Judiciário - Programação de (FCC - 2012 - TRE-CE - Técnico Judiciário - Programação de
Sistemas) Considere o algoritmo seguinte: Sistemas) Considere o algoritmo seguinte:
A saída na tela será A saída na tela será
a) 0. a) 0.
b) 2, 4, 8, 16 e 16. b) 2, 4, 8, 16 e 16.
c) 2, 4, 8 e 8. c) 2, 4, 8 e 8.
d) 1. d) 1.
e) 0, 0, 0, 0 e 0. e) 0, 0, 0, 0 e 0.
Res Cont X N Res Cont X N
0 1 2 4 0 1 2 4
0 2 0 2
0 3

(FCC - 2012 - TRE-CE - Técnico Judiciário - Programação de (FCC - 2012 - TRE-CE - Técnico Judiciário - Programação de
Sistemas) Considere o algoritmo seguinte: Sistemas) Considere o algoritmo seguinte:
A saída na tela será A saída na tela será
a) 0. a) 0.
b) 2, 4, 8, 16 e 16. b) 2, 4, 8, 16 e 16.
c) 2, 4, 8 e 8. c) 2, 4, 8 e 8.
d) 1. d) 1.
e) 0, 0, 0, 0 e 0. e) 0, 0, 0, 0 e 0.

(FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) O (FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) O
seguinte trecho de pseudo-código representa a definição de uma função seguinte trecho de pseudo-código representa a definição de uma função
(sub-rotina) f com um único argumento x. (sub-rotina) f com um único argumento x.

f(x) f(x)
x←x+1 x←x+1
devolva x devolva x
Considere agora o seguinte trecho de código que invoca a função f Considere agora o seguinte trecho de código que invoca a função f
definida acima. definida acima.
a←0 A execução do trecho de código acima resultaria na escrita de a←0
escreva a a) 0, 1 e 0 no caso de passagem de parâmetros por valor e 0, 1 escreva a
escreva f(a) e 0 no caso de passagem de parâmetros por referência. escreva f(a)
escreva a b) 0, 1 e 1 no caso de passagem de parâmetros por valor e 0, 1 escreva a
e 0 no caso de passagem de parâmetros por referência.
c) 0, 1 e 0 no caso de passagem de parâmetros por valor e 0, 1
e 1 no caso de passagem de parâmetros por referência. A execução do trecho de código acima resultaria na escrita de
d) 0, 1 e 1 no caso de passagem de parâmetros por valor e 0, 1
a) 0, 1 e 0 no caso de passagem de parâmetros por valor e
e 1 no caso de passagem de parâmetros por referência.
e) 0, 0 e 0 no caso de passagem de parâmetros por valor e 0, 1
0, 1 e 0 no caso de passagem de parâmetros por referência.
e 1 no caso de passagem de parâmetros por referência.

50
03/04/2013

(FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) O (FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) O
seguinte trecho de pseudo-código representa a definição de uma função seguinte trecho de pseudo-código representa a definição de uma função
(sub-rotina) f com um único argumento x. (sub-rotina) f com um único argumento x.

f(x) f(x)
x←x+1 x←x+1
devolva x devolva x
Considere agora o seguinte trecho de código que invoca a função f Considere agora o seguinte trecho de código que invoca a função f
definida acima. definida acima.
a←0 a←0
escreva a escreva a
escreva f(a) escreva f(a)
escreva a escreva a

b) 0, 1 e 1 no caso de passagem de parâmetros c) 0, 1 e 0 no caso de passagem de parâmetros


por valor e 0, 1 e 0 no caso de passagem de por valor e 0, 1 e 1 no caso de passagem de
parâmetros por referência. parâmetros por referência.

(FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) O (FCC - 2012 - TJ-RJ - Analista Judiciário - Análise de Sistemas) O
seguinte trecho de pseudo-código representa a definição de uma função seguinte trecho de pseudo-código representa a definição de uma função
(sub-rotina) f com um único argumento x. (sub-rotina) f com um único argumento x.

f(x) f(x)
x←x+1 x←x+1
devolva x devolva x
Considere agora o seguinte trecho de código que invoca a função f Considere agora o seguinte trecho de código que invoca a função f
definida acima. definida acima.
a←0 a←0
escreva a escreva a
escreva f(a) escreva f(a)
escreva a escreva a

d) 0, 1 e 1 no caso de passagem de parâmetros e) 0, 0 e 0 no caso de passagem de parâmetros


por valor e 0, 1 e 1 no caso de passagem de por valor e 0, 1 e 1 no caso de passagem de
parâmetros por referência. parâmetros por referência.

51

Você também pode gostar