Buscar

Algoritmos e Estrutura de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 304 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 304 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 304 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Contato: alexandre.lenin@gmail.com 
 
 Tecnólogo em Processamento de Dados 
◦ Graduado em 1992 
 Mestre em Ciência da Computação (UnB) 
◦ Inteligência Artificial (1999) 
◦ (Algoritmo para) Aprendizado Automático em Redes 
Bayesianas. 
 
 
 
 Analista de Planejamento e Orçamento – APO 
 Cargos anteriores 
◦ Serpro – Analista de Sistemas (2005) 
◦ IBAMA – Analista Ambiental (2005-2007) 
◦ Receita Federal – Analista-Tributário (2007-2009) 
 Principais aprovações 
◦ STJ, PF (1ª fase), Câmara Legislativa, TJDFT 
 
 Professor 
◦ Informática para Concursos 
◦ Cursos técnicos desde 18 anos 
◦ Professor Universitário desde 1998 
 Algoritmos, Estruturas de Dados, Compiladores, 
Inteligência Artificial, Linguagens Formais e 
Autômatos. 
◦ 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 
 
http://www.provasdeti.com.br/
http://www.itnerante.com.br/
Prof. Alexandre Lênin 
 
 
 
 
 Conceitos Preliminares 
◦ Teoria da Computação e Algoritmos 
◦ Processo de Programação 
◦ Algoritmos x Linguagens de Programação 
 
 Máquina Hipotética 
 
 
 
 
 Algoritmos 
◦ construção de algoritmos 
◦ tipos de dados simples e estruturados; 
◦ 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; 
 
 
 
 Teoria da Computação e Algoritmos 
 Processo de Programação 
 Algoritmos x Linguagens de Programação 
 Alan Mathison Turing nasceu em 23 de 
junho de 1912 em Londres. 
◦ reconhecido como um dos grandes pioneiros no 
campo da computação. 
 
 
 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. 
 SISTEMA DE PROCESSAMENTO DE DADOS 
 
DADOS DE 
ENTRADA 
PROCESSAMENTO 
DE 
DADOS 
DADOS DE 
SAÍDA 
 SISTEMA DE PROCESSAMENTO DE DADOS 
 
DADOS DE 
ENTRADA 
PROCESSAMENTO 
DE 
DADOS 
DADOS DE 
SAÍDA 
DADOS x PROGRAMA 
 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Categorias de Software 
 
◦ Software Básico 
◦ Sistema Operacional 
◦ Linguagem de Programação 
◦ Software Aplicativo 
 Pacote de Software 
 Sistemas Especialistas 
 Inteligência Artificial 
Homem 
Computador 
 Um algoritmo é formalmente uma sequência 
finita de passos que levam a execução de 
uma tarefa. 
 
◦ “Chupar uma bala”. 
 
 Pegar a bala 
 Retirar o papel 
 Jogar o papel no lixo 
 Chupar a bala 
 
 Suponha um carro em viagem. Num dado 
instante o carro comporta-se como se um 
pneu dianteiro, não se sabe qual, estivesse 
furado. 
 
 Descreva um algoritmo para o motorista – 
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. 
 Um algoritmo que comumente é apresentado 
como solução é: 
 
◦ Parar o carro 
◦ Trocar o pneu 
◦ Seguir viagem 
 
 
 Um algoritmo que comumente é apresentado 
como solução é: 
 
◦ Parar o carro 
◦ Trocar o pneu 
◦ 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 
como solução é: 
 
◦ Parar o carro 
 Usar o freio pedal 
◦ Trocar o pneu 
◦ Seguir viagem 
 
 
 Um algoritmo que comumente é apresentado 
como solução é: 
 
◦ Parar o carro 
 Usar o freio pedal 
 Vamos torcer para que o carro não se desgoverne!!! De 
um modo geral é isso que acontece = acidente!!! 
◦ Trocar o pneu 
◦ Seguir viagem 
 
 
 Um algoritmo que comumente é apresentado como 
solução é: 
 
◦ Parar o carro 
 Controlar a direção para evitar que o carro saia da pista 
 Retire o pé do acelerador 
 Reduzir as marchar até parar. 
 Ao estar em baixa velocidade, desviar para o acostamento 
 Desligar o carro após parar 
◦ Trocar o pneu 
◦ Seguir viagem 
 
 
 Um algoritmo que comumente é apresentado como 
solução é: 
 
◦ Parar o carro 
 Controlar a direção para evitar que o carro saia da pista 
 Retire o pé do acelerador 
 Reduzir as marchar até parar. 
 Ao estar em baixa velocidade, desviar para o acostamento 
 Desligar o carro após parar 
◦ Trocar o pneu 
◦ Seguir viagem 
 
 
Vamos torcer para 
dar tudo certo, pois 
existem atividades 
interdependentes 
 
◦ Os programas de computadores nada mais são do 
que a representação de algoritmos escrita numa 
linguagem de programação 
 
 Linguagens de Programação 
 
◦ é um conjunto de termos (vocabulário) e de regras 
(sintaxe) que permitem a formulação de instruções 
a um computador. 
1ª Geração: Linguagens Binárias 
2ª Geração: Linguagens Assembly 
3ª Geração: Linguagens Alto-Nível 
4ª Geração: Linguagens Consulta 
5ª Geração: Linguagens Naturais 
 
Nível de 
Abstração Consumo de 
Recursos 
de 
Máquina 
Facilidade 
de 
Programação 
- - 
+ + 
1ª 
2ª 
3ª 
4ª 
5ª 
 
 Fase I: Especificação do Problema 
◦ Visa a compreensão completa e clara do problema. 
◦ Responde à questão: 
 Qual é o problema ? 
 
 Fase II: Projeto de Solução em Alto-Nível 
◦ Quais transformações são necessárias na entrada 
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 
momento. 
◦ Responde à questão: 
 Qual a solução mais adequada ? 
 
 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 ? 
 
 Fase V: Verificação de Comportamento (teste) 
◦ Responde à questão: 
 A solução contempla integralmente a especificação do 
problema ? 
 
 
 Resumo 
 
◦ Fase I: Qual é o problema ? 
◦ Fase II: Como se resolve o problema ? 
◦ Fase III: Qual a solução mais adequada ? 
◦ Fase IV: Como viabilizar a solução no ambiente ? 
◦ Fase V: A solução contempla integralmente a 
 especificação do problema ? 
 
◦ Gráfico 
 Fluxogramas 
 Diagramas hierárquicos defluxo 
 Gráficos de estrutra 
 
◦ Textual 
 Descrição Narrativa 
 Português Estruturado 
 Portugol (pseudocódigo) 
 Fluxogramas 
 Diagrama de Chaplin 
 Descrição Narrativa 
 Português 
Estruturado 
(textual) 
 Regras para construção de algoritmos 
 
◦ Ser objetivo nas instruções; 
◦ Usar somente um verbo por frase; 
◦ Escrever textos simples, para leigos; 
◦ Usar frases curtas e simples; 
◦ Usar palavras que não tenham sentido dúbio. 
 
 Teste de mesa 
◦ Como realizar testes de verificação da corretude de 
um algoritmo de forma simples e interativa? 
 Operador - só faz o que for 
ordenado, não toma 
decisões 
 Conjunto de escaninhos - 
com capacidade para um 
cartão cada 
 Máquina de calcular - 
executa as operações 
 Caixa de entrada - para 
receber cartões de fora 
 Máquina de escrever - para 
dar saída às informações / 
resultados 
 
 Existe uma INSTRUÇÃO 
em cada cartão; 
 
 O operador segue de 
escaninho em escaninho, 
fazendo exatamente o que 
está escrito em cada 
cartão, até encontrar um 
cartão contendo uma 
instrução que manda que 
ele PARE. 
 
 Exemplo: 
◦ 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 
◦ E4 : subtraia o valor 1 de E11 
◦ 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 ... 
1 
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 
E4 : subtraia o valor 1 de E11 
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 ... 
1 3 
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 
E4 : subtraia o valor 1 de E11 
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 ... 
1 3 
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 
E4 : subtraia o valor 1 de E11 
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 ... 
3 3 
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 
E4 : subtraia o valor 1 de E11 
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 ... 
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 
E4 : subtraia o valor 1 de E11 
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 ... 
3 2 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 2 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 1 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 1 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 1 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 0 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 0 
E3 : multiplique E10 com E11 (usando a máquina de 
 calcular) e armazene o resultado em E10 
E4 : subtraia o valor 1 de E11 
E5 : se o valor de E11 > 0, volte para E3 
E10 E11 E12 ... 
6 0 
E6 : imprima o conteúdo de E10 
 (usando a máquina de escrever) 
E7 : PARE 
 No mesmo algoritmo anterior, avalie as 
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 
 
c) E7 : XXX 
 
 
 Exercícios rápidos. 
 
 1) Mostrar a soma de 2 números lidos; 
 2) Mostrar a média de 3 números lidos; 
 
 Resolva vários exercícios usando o computador 
hipotético para internalizar a forma de 
funcionamento dele. Certamente você ganhará mais 
confiança e estará treinando seu cérebro a pensar 
mais detalhadamente. 
 
 
 
 
 
 "O problema dos computadores é que eles fazem 
exatamente aquilo que você os instruiu a fazer e não 
aquilo que você realmente queria que eles fizessem.“ 
 - Um programador frustrado 
 
Algoritmo 
 <declaração de variáveis> 
Início 
 <comandos> 
Fim. 
 
Algoritmo 
 A, B, C : inteiro 
Início 
 leia (A, B) 
 C  A + B 
 escreva(‘O valor da soma é:’, C) 
Fim. 
 
 (ESAF - 2009 - ANA - Analista Administrativo - 
Tecnologia da Informação - Desenvolvimento) Na 
programação estruturada, são necessários 
apenas três blocos de formas de controle para 
implementar algoritmos. São eles: 
 
 a) seleção, repetição e aninhamento. 
 b) empilhamento, aninhamento e operação. 
 c) sequência, aninhamento e seleção. 
 d) sequência, seleção e repetição. 
 e) função, operação e programa. 
 (ESAF - 2009 - ANA - Analista Administrativo - 
Tecnologia da Informação - Desenvolvimento) Na 
programação estruturada, são necessários 
apenas três blocos de formas de controle para 
implementar algoritmos. São eles: 
 
 a) seleção, repetição e aninhamento. 
 b) empilhamento, aninhamento e operação. 
 c) sequência, aninhamento e seleção. 
 d) sequência, seleção e repetição. 
 e) função, operação e programa. 
 Os dados são representações de abstrações 
acerca do mundo. 
 São classificados em tipos. 
 Tipos podem ser primitivos ou construídos 
 Tipos primitivos são os tipos fornecidos pela 
linguagem de programação de forma 
intrínseca. 
•São a base para a construção de novos tipos 
•São eles: inteiros, reais, caracteres, lógico 
 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: 
8 (-2)63 +1 a (+2)63 - 1 comp 
4 -2.147.438.648 a +2.147.438.647 longint 
1 -128 a +127 shortint 
2 0 a 65.535 word 
2 -32.768 a 32.767 integer 
1 0 a 255 byte 
Tamanho Faixa de Valores Nome 
 Tipos primitivos do Pascal: 
10 3.4e-4932 a 1.1e+4932 extended 
6 2.9e-39 a 1.7e+38 real 
8 5.0e-324 a 1.7e+308 double 
4 1.5e-45 a 3.4e+38 single 
Tamanho Faixa de Valores Nome 
1 False, True boolean 
Tamanho Faixa de Valores Nome 
1 Caracteres individuais char 
Tamanho Faixa de Valores Nome 
 Tipos construídos do Pascal: 
Ponteiros Pointer 
Cadeias de caracteres (um tipo de vetor) String 
Registros (agregados heterogêneos) Record 
vetorese matrizes Array 
Descrição Nome 
 Constante é um determinado valor fixo que 
não se modifica ao longo do tempo, durante 
a execução de um programa. Conforme o seu 
tipo, a constante é classificada como sendo 
numérica, lógica e literal. 
 
◦ Declaração 
 Const <identificador> = <valor> 
 const PI = 3.1416 
 
 Uma variável é um espaço reservado na 
memória do computador para armazenar um 
tipo de dado determinado. 
 O conteúdo pode ser alterado durante a 
execução do programa 
 São posições de memória, as quais deve-se 
associar nomes (identificadores) e um tipo de 
dado. 
 Só pode armazenar um valor a cada instante 
 declare <identificador> : <tipo de dado> ; 
 Exemplos: 
 declare X : inteiro 
 declare Y : real 
 declare Z : caractere 
 declare K, M, N : lógico 
 
 (FCC - 2009 - TRE-PI - Técnico 
Judiciário - Programação de 
Sistemas) No algoritmo do 
enunciado, observa-se que os 
tipos de dados não foram 
declarados. Nesse caso, para 
ajustar o algoritmo, os tipos de 
dados para nome, aux, salario e 
nivel_superior seriam, 
respectivamente 
 
 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. 
 
 (FCC - 2009 - TRE-PI - Técnico 
Judiciário - Programação de 
Sistemas) No algoritmo do 
enunciado, observa-se que os 
tipos de dados não foram 
declarados. Nesse caso, para 
ajustar o algoritmo, os tipos de 
dados para nome, aux, salario e 
nivel_superior seriam, 
respectivamente 
 
 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. 
 
 Os operadores são meios pelo qual 
incrementamos, decrementamos, 
comparamos e avaliamos dados dentro do 
computador. Temos três tipos de operadores: 
 
◦ Operadores Aritméticos 
◦ Operadores Relacionais 
◦ Operadores Lógicos 
 
 Operadores Aritméticos 
◦ Os operadores aritméticos são os utilizados para 
obter resultados numéricos 
mesmo subtração - 
real divisão / 
mesmo soma + 
mesmo multiplicação * 
Tipo Resultado Operação Símbolo 
inteiro Divisão inteira div 
inteiro Resto da divisão mod 
 Operadores Relacionais 
◦ = , <>, <=, <, >, >= 
 
 Operadores Lógicos 
◦ e - conjunção 
◦ ou - disjunção 
◦ não - negação 
 
 Funções 
◦ sen(x), cos(x), abs(x), int(x), frac(x), log(x), sqrt(x) 
 
 
Tabela verdade 
A B A e B A ou 
B 
~A 
0 0 0 1 1 
0 1 0 1 1 
1 0 0 1 0 
1 1 1 0 0 
◦ X = Y 
◦ X <> Y 
◦ X + K > Y + 2 
◦ (A mod B) = 0 
◦ (5 < Z) e (3 > 5 + 6 * 31) 
◦ 4 + ( (3 + 2) * 7) 
◦ (4.5 mod 5) -->> inválido 
◦ X e 5 --> inválido 
 
Precedência 
1ª parênteses 
2ª funções 
3ª + - (unário ) 
4ª ** (potência ^) 
5ª * / mod div 
6ª + e - 
7ª NÃO 
8ª E 
9ª OU 
10ª relacionais 
 Atribuição 
Armazena um valor em uma variável. 
 
<identificador> <- <expressão | identificador> 
 
◦ ex: 
 X  5 
 Nome  ‘fulano’ 
 Z  X + 9 * 15 
 
 
 Entrada e/ou Saída 
 
 
identificador ;imprima )(
,
caracter
expressão
identificador ;leia )(
,
 Entrada e/ou Saída 
 
◦ leia ( <identificador> [, <identificador> [ ... ] ] ) 
 captura valores do dispositivo de entrada especificado, 
armazenando-os nas variáveis. Padrão = teclado 
 
◦ escreva ( <expressão> ) 
 envia a expressão para o dispositivo de saída 
especificado. Padrão = tela. 
 Expressão pode ser uma combinação de variáveis e 
constantes separadas por vírgulas. 
 
 Exemplos 
◦ leia (A, B, SOMA) 
 
◦ escreva (" MÉDIA = ", M) 
 
◦ escreva(" VALOR LIDO: ", N, " RESULTADO = ", N ** 2 + 5) 
 
 
Algoritmo Exemplo; 
declare X, Y, Z : inteiro; 
início 
escreva( ‘Digite dois valores inteiros:’); 
leia(X, Y); 
Z  (X * Y)/2; 
escreva( ‘A média é = ‘, Z); 
fim. 
 
 São espaços utilizados nas linhas de 
comandos de forma a refletir o alinhamento 
dos mesmos; 
◦ Facilita a identificação das estruturas; 
◦ Facilita a identificação dos comandos que 
“pertencem” a uma estrutura; 
 
 <nivel 1> 
◦ <nível 2>; 
 Comandos do nível 2; 
◦ <fim - nível 2>; 
 <fim - nível 1>. 
◦ Os comandos são executados na ordem em que 
aparecem, de cima para baixo. 
 
 
Algoritmo SEQUÊNCIA; 
declare <lista de variáveis>; 
início 
 <comando 1>; 
 <comando 2>; 
 ... 
 <comando n>; 
fim. 
Os comandos serão executados 
na ordem em que aparecem. 
 
Algoritmo SEQUÊNCIA; 
declare Nome : literal; 
 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. 
 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da 
Computação) Em relação à lógica de programação, considere 
os pseudocódigos: 
 
 
 
 
 
 
 
 
 É 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 
Computação) Em relação à lógica de programação, considere 
os pseudocódigos: 
 
 
 
 
 
 
 
 
 É correto afirmar: 
◦ b) Ambos os algoritmos abordam o mesmo problema e chegam ao mesmo 
resultado. 
 
 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da 
Computação) Em relação à lógica de programação, considere 
os pseudocódigos: 
 
 
 
 
 
 
 
 
 É correto afirmar: 
◦ c) Somente Alg2 tem consistência em sua representação e chega a um 
resultado. 
 
 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da 
Computação) Em relação à lógica de programação, considere 
os pseudocódigos: 
 
 
 
 
 
 
 
 
 É correto afirmar: 
◦ d) O resultado da solução apresentada por Alg2 é maior do que a de Alg1. 
 
 (FCC - 2008 - METRÔ-SP - Analista Treinee - Ciências da 
Computação) Em relação à lógica de programação, considere 
os pseudocódigos: 
 
 
 
 
 
 
 
 
 É correto afirmar: 
◦ e) O resultado da solução apresentada por Alg2 é menor do que a de Alg1. 
 (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de Sistemas) 
Considere a sub-rotina abaixo para responder 
às questões XX e XX. 
Com base no algoritmo acima, e 
supondo que o valor fornecido para "A" 
na linha "leia A" seja 3 e o valor 
fornecido para "B" na linha "leia B" seja 
4, pode-se afirmar que o valor da 
variável "C" na linha "escreva C" é: 
 
a) 24 
b) 28 
c) 32 
d) 34 
e) 43 
 (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de Sistemas) 
Considere a sub-rotina abaixo para responder 
às questões XX e XX. 
Com base no algoritmo acima, e 
supondo que o valor fornecido para "A" 
na linha "leia A" seja 3 e o valor 
fornecido para "B" na linha "leia B" seja 
4, pode-se afirmar que o valor da 
variável "C" na linha "escreva C" é: 
 
a) 24 
b) 28 
c) 32 
d) 34 
e) 43 
 1) Dados dois números inteiros A e B, calcular e 
exibir: C=A+B+7, D=A.B-A, E=A2, F=2.A-5.B, 
G=5.A/B-7.A, H=5.A/(B-7.A), J=(A3-senB)/7. 
 
 2) Calcular e escrever a média aritmética de duas 
notas fornecidas pelo usuário. 
 
 3) Dada a temperatura de um corpo, em graus 
Fahrenheit, calcular e exibir o valor da referida 
temperatura em graus Celsius e em Kelvin. Fazer 
simulações. 
 
 4) Dado um número inteiro de segundos, 
determinar o seu valor equivalente em horas, 
minutos e segundos. Simular para 16723. 
 
 5) Dado um número inteiro e positivo A, calcular 
e exibir: B=A DIV 5, C=A MOD 5, D= A/5 e 
E=5/A. 
 
 6) Ler dois valores para as variáveis A e B, efetuar 
a troca dos valores de forma que a variável A 
passe a possuir o valor de B e que a variável B 
passe a possuir o valor da variável A. Apresentar 
os valores trocados. 
Algoritmo Números; 
declare A, B, C, D, E, F, G, H, J : real; 
início 
 escreva( ‘Digite o valor de A e B:’ ); 
 leia(A, B); 
 C  A+B+7;D  A*B-A; 
 E  A*A; 
 F  2 * A-5*B; 
 G  5*A/B-7*A; 
 H  5*A/(B-7*A); 
 J (A*A*A-sen(B))/7; 
fim. 
Algoritmo Media; 
declare NotaB1, NotaB2, Media : real; 
início 
 escreva( ‘Digite a primeira nota:’ ); 
 leia(NotaB1); 
 escreva( ‘Digite a segunda nota:’ ); 
 leia(NotaB2); 
 Media  (NotaB1 + NotaB2)/2; 
 escreva(“A Média é =“, Media); 
fim. 
Algoritmo Transforma; 
declare F, C, K: real; 
início 
 escreva( ‘Digite a temperatura em fahrenheit:’ ); 
 leia(F); 
 C  (F-32) / 1.8; 
 K  C + 273; 
 escreva(“Graus Celsius=“, C); 
 escreva(“Graus Kelvin=“, K); 
fim. 
 
Algoritmo Horas; 
declare N, S, M, H: inteiro; 
início 
 escreva( ‘Digite um número inteiro de segundos:’ ); 
 leia(N); 
 H  N DIV 3600; 
 M  (N MOD 3600) DIV 60; 
 S  (N MOD 3600) MOD 60 
 escreva(S, “Segundos são “, H, “:”, M, “:”, S); 
fim. 
Algoritmo Div_Mod; 
declare A, B, C: inteiro; 
declare D, E: real; 
início 
 escreva( ‘Digite um número inteiro positivo:’ ); 
 leia(A); 
 B  A MOD 5; 
 C  A DIV 5; 
 D  A / 5; 
 E  5 / A; 
fim. 
Algoritmo Troca; 
declare A, B, Aux : real; 
início 
 escreva( ‘Digite dois valores:’ ); 
 leia(A,B); 
 Aux <- A; 
 A <- B; 
 B <- Aux; 
 escreva( A, B ); 
fim. 
Escreva outra solução 
para este problema, 
sem utilizar a terceira 
variável! 
◦ Em muitas situações, é necessário executar um 
grupo de ações dependendo do resultado de certas 
avaliações. 
 
◦ Imagine o caso de identificar se um aluno foi ou 
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. 
comandos cond 
Verdadeiro 
Falso 
 Se a condição for verdadeira, provocará um 
desvio e executará o bloco de comandos. 
 
 
... 
se <condição> então 
 <instrução para condição verdadeira>; 
fimse 
... 
 
◦ Condição é uma expressão lógica. 
◦ Se o resultado da condição for verdadeiro, será 
executado o comando após a palavra então. 
◦ Caso a condição resulte em falso, ou após a 
execução da instrução, o programa continua... 
Algoritmo DesvioSimples 
declare N1, N2, Media : real 
início 
 escreva( ‘Digite duas notas:’ ) 
 leia(N1, N2) 
 Media <- (N1 + N2)/2 
 se Media < 7.0 então 
 escreva(‘Deve fazer o Exame Final’) 
 fimse 
 escreva(‘Média = ’, Media) 
fimalgoritmo 
 
se <condição> 
 então <instrução para condição verdadeira> 
 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... 
comandosA cond 
Verdadeiro Falso 
 Se a condição for verdadeira, executará o bloco 
de comandos A, caso contrário, executará o 
bloco B. Nunca os dois. 
 
comandosB 
Algoritmo DesvioComposto 
declare N1, N2, Media : real 
início 
 escreva( ‘Digite duas notas:’ ) 
 leia(N1, N2) 
 Media <- (N1 + N2)/2 
 se Media < 5.0 
 então escreva(‘Aluno Reprovado!!!’) 
 senão escreva(‘Aluno Aprovado!!!’) 
 fimse 
 escreva(‘Média = ’, Media) 
fimalgoritmo 
 (FCC - 2010 - DPE - SP - Agente de 
Defensoria - Analista de Sistemas) É utilizada 
para avaliar uma determinada expressão e 
definir se um bloco de código deve ou não 
ser executado. Essa é a definição da estrutura 
condicional: 
 a) For 
 b) If...Then...Else 
 c) While 
 d) Do...While 
 e) Next 
 
 (FCC - 2010 - DPE - SP - Agente de 
Defensoria - Analista de Sistemas) É utilizada 
para avaliar uma determinada expressão e 
definir se um bloco de código deve ou não 
ser executado. Essa é a definição da estrutura 
condicional: 
 a) For 
 b) If...Then...Else 
 c) While 
 d) Do...While 
 e) Next 
 
(FCC/2012/TST - Técnico Judiciário - 
Programação) Considere o trecho de um 
algoritmo em pseudocódigo que mostra 
comandos condicionais (se) aninhados com 
início e fim delimitados por { }: 
Analisando este trecho, é correto afirmar 
que 
a) se B1 for falso, o Comando3 e o 
Comando4 serão executados. 
b) se B2 for verdadeiro, somente o 
Comando3 será executado. 
c) o Comando5 poderá ser o único 
comando a ser executado. 
d) o Comando4 sempre será executado, 
uma vez que o comando B2 é sempre falso. 
e) o Comando5 sempre será executado. 
 
(FCC/2012/TST - Técnico Judiciário - 
Programação) Considere o trecho de um 
algoritmo em pseudocódigo que mostra 
comandos condicionais (se) aninhados com 
início e fim delimitados por { }: 
Analisando este trecho, é correto afirmar 
que 
a) se B1 for falso, o Comando3 e o 
Comando4 serão executados. 
b) se B2 for verdadeiro, somente o 
Comando3 será executado. 
c) o Comando5 poderá ser o único 
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... 
 A cláusula está com a sintaxe correta, mas o teste da 
condição está levando a ações erradas, se considerados os 
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... 
 c) SE ( (preço = 100) E (quantidade > 10) ) ENTÃO... 
 d) SE ( (preço = 100) OU (quantidade > 10) ) ENTÃO... 
 (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... 
 A cláusula está com a sintaxe correta, mas o teste da 
condição está levando a ações erradas, se considerados os 
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... 
 c) SE ( (preço = 100) E (quantidade > 10) ) ENTÃO... 
 d) SE ( (preço = 100) OU (quantidade > 10) ) ENTÃO... 
 
◦ Pode-se utilizar um grupo de comandos ao invés de 
uma única instrução. Para tanto deve-se criar um 
bloco de comandos usando as palavras início e fim. 
 
 
início 
 <bloco de comandos> 
fim 
 
 Exemplo 
 
 
 
 
 
 
 
se Media < 7.0 
 então início 
 escreva(‘Nota EF1:’) 
 leia(EF1) 
 MediaFinal <- (Media+EF1) / 2 
 fim 
 senão escreva(‘Aprovado.’) 
fimse 
 Aninhamento de Estruturas 
 
◦ Aninhamento = Uma estrutura pode conter outras 
estruturas em sua definição. 
 
◦ Uma estrutura condicional pode conter outras 
estruturas condicionais em sua definição. 
 
◦ Não há limites para a quantidade de níveis de 
aninhamento. 
 (FCC/2012/TRF - 2ª REGIÃO/Técnico 
Judiciário – Informática) Analise o 
algoritmo abaixo: 
 Sobre ele é INCORRETO afirmar: 
 a) Exibirá o maior entre três números 
lidos, exceto se os três valores forem 
iguais. 
 b) Se forem lidos os valores 1, 3 e 6 nas 
variáveis n1, n2 e n3 respectivamente, a 
variável m receberá o valor 1, em seguida 
o valor 3 e, por último, o valor 6. 
 c) Se forem lidos os valores 7, 2 e 9 nas 
variáveis n1, n2 e n3 respectivamente, a 
variável m receberá o valor 7, em seguida 
o valor 2 e, por último, o valor 9. 
 d) Se forem lidos os valores 9, 7 e 2 nas 
variáveis n1, n2 e n3 respectivamente, a 
variável m receberá apenas o valor 9. 
 e) Se forem lidos os valores -1, -3 e -8 
nas variáveis n1, n2 e n3 respectivamente, 
a variável m receberá apenas o valor -1. 
 
 (FCC/2012/TRF - 2ª REGIÃO/Técnico 
Judiciário – Informática) Analise o 
algoritmo abaixo: 
 Sobreele é INCORRETO afirmar: 
 a) Exibirá o maior entre três números 
lidos, exceto se os três valores forem 
iguais. 
 b) Se forem lidos os valores 1, 3 e 6 nas 
variáveis n1, n2 e n3 respectivamente, a 
variável m receberá o valor 1, em seguida 
o valor 3 e, por último, o valor 6. 
 c) Se forem lidos os valores 7, 2 e 9 nas 
variáveis n1, n2 e n3 respectivamente, a 
variável m receberá o valor 7, em seguida 
o valor 2 e, por último, o valor 9. 
 d) Se forem lidos os valores 9, 7 e 2 nas 
variáveis n1, n2 e n3 respectivamente, a 
variável m receberá apenas o valor 9. 
 e) Se forem lidos os valores -1, -3 e -8 
nas variáveis n1, n2 e n3 respectivamente, 
a variável m receberá apenas o valor -1. 
 
 Considerando os seguintes valores: A=3, B=2, C=5 
e D=7, indique o resultado da variável X, dos 
trechos abaixo: 
 
◦ a) se não (D > 5) 
 então X <- (A + B) / D 
 senão X <- (A - B) * C; 
 
◦ b) se (A > 2) e (B < 7) 
 então X <- (A + 2) * (B - 2) 
 senão X <- (A - B) / / D * (C + D); 
 
◦ c) se (A = 2) ou (B < 7) 
 então X <- (A + 2) * (B - 2) 
 senão X <- (A + B) / D * (C + D); 
 
 Considerando os seguintes valores: A=3, B=2, C=5 
e D=7, indique o resultado da variável X, dos 
trechos abaixo: 
 
◦ a) se não (D > 5) 
 então X <- (A + B) * D 
 senão X <- (A - B) * C; 
 
◦ b) se (A > 2) e (B < 7) 
 então X <- (A + 2) * (B - 2) 
 senão X <- (A - B) / / D * (C + D); 
 
◦ c) se (A = 2) ou (B < 7) 
 então X <- (A + 2) * (B - 2) 
 senão X <- (A + B) / D * (C + D); 
 
X = 5 
X = 0 
X = 0 
 Efetuar a leitura de três valores inteiros e 
distintos (A, B e C) e apresentar o maior valor. 
 
 
 Efetuar a leitura de três valores inteiros e 
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; 
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 Maior <- A 
 senão Maior <- C 
 fim-se 
 senão se B > C 
 então Maior <- B 
 senão Maior <- C; 
 fim-se 
 fim-se 
 escreva(Maior); 
fim. 
Algoritmo Um_outraSolucao2; 
declare A, B, C : inteiro; 
início 
 escreva( ‘Digite três valores inteiros: ’ ); 
 leia(A, B, C); 
 se (A > B) e (A > C) 
 então Maior <- A 
 senão se B > C 
 então Maior <- B 
 senão Maior <- C; 
 fim-se 
 fim-se 
 escreva(Maior); 
fim. 
 A estrutura Caso é uma estrutura de seleção 
múltipla; 
 
◦ Neste tipo de estrutura, temos uma expressão a ser 
avaliada e várias “guardas” (possíveis valores); 
◦ Os comandos cuja “guarda” é verdadeira (encaixa-
se com o resultado da expressão) será executada; 
◦ pode-se incluir uma “guarda” padrão. 
◦ Somente pode-se utilizar valores escalares (inteiro, 
caractere, boolean) 
 
 Sintaxe 
Caso <expressão> seja 
 <guarda1> : <comandos>; 
 <guarda2> : <comandos>; 
 ... 
 <guardan> : <comandos>; 
 <default> : <comandos>; 
fim; 
 
 Sintaxe: 
 
 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 
 
 (CESGRANRIO - 2006 - DNPM - Técnico Administrativo - 
Especialidade - Informática) Considere o algoritmo abaixo, descrito 
em pseudocódigo. 
 
 Suponha que os dados de entrada SALARIO e TITULO sejam, 
respectivamente, "1000,00" e "Doutor". Qual o valor do 
salário com a gratificação, em reais, que será apresentado na 
saída do algoritmo? 
 a) 1000,00 
 b) 2000,00 
 c) 3000,00 
 d) 5000,00 
 e) 6000,00 
 
 Suponha que os dados de entrada SALARIO e TITULO sejam, 
respectivamente, "1000,00" e "Doutor". Qual o valor do 
salário com a gratificação, em reais, que será apresentado na 
saída do algoritmo? 
 a) 1000,00 
 b) 2000,00 
 c) 3000,00 
 d) 5000,00 
 e) 6000,00 
 
 Permitem a execução de comandos repetidas 
vezes. 
◦ Repetição condicional: a repetição acontecerá com 
base em uma condição. 
 
 Condição no início 
 Condição no final 
 
◦ Repetição com variável de controle: a repetição será 
controlada por uma variável (contador) 
 
comandos cond 
Verdadeiro 
Falso 
 Se a condição for verdadeira, os comandos serão 
executados e o processo reinicia; caso contrário, 
a repetição não acontecerá 
 Os comandos do bloco de ações são 
executados enquanto uma condição é 
atendida (verdadeira) 
 
enquanto <condição> faca 
 <ação 1> 
 <ação 2> 
 ... 
 <ação n> 
fimenquanto 
 Exemplo 
... 
soma ← 0 
i ← 1 
enquanto (i ≤ N) faca 
 soma ← soma + i 
 i ← i + 1 
fimenquanto 
escreval(“a soma é:”, soma) 
 Exemplo 2 
leia(Nota); 
enquanto (Nota<>-1) faça 
início 
 Total <- Total + Nota; 
 N <- N + 1; 
 leia(Nota); 
fim; 
Media <- Total / N; 
escreva( Media ); 
 Este exemplo calcula a média de 
uma quantidade variável de notas. 
Quando o operador digitar o valor 
-1 (FLAG), será calculada a média. 
 
 Entretanto, o exemplo não 
funciona corretamente, por quê? 
 Exemplo 2 - corrigido 
leia(Nota); 
enquanto (Nota <> -1) faça 
início 
 Total <- Total + Nota; 
 N <- N + 1; 
 leia(Nota); 
fim; 
se N > 0 
 então Media <- Total / N; 
fim-se 
escreva( Media ); 
Cuidado com os laços (repetições) 
infinitos. Em algumas construções, a 
condição da estrutura de repetição 
(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 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nívela seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
13 21 34 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
13 21 34 
21 34 55 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
13 21 34 
21 34 55 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
13 21 34 
21 34 55 
34 55 89 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
13 21 34 
21 34 55 
34 55 89 
55 89 144 
 (FUMARC/2007/PREF.MUN.BETIM/Analista de 
Sistemas da Saúde) Considere que, no algoritmo em 
alto nível a seguir, todas as variáveis sejam inteiras: 
 Na execução desse algoritmo, o valor impresso na 
linha 7 é: 
 a) 55 
 b) 89 
 c) 144 
 d) 233 
 
X Y Z 
1 1 2 
1 2 3 
2 3 5 
3 5 8 
5 8 13 
8 13 21 
13 21 34 
21 34 55 
34 55 89 
55 89 144 
 Escrever um programa que lê dois números 
inteiros, inicial e final, e mostra na tela os números 
inteiros do inicial até o final (inclusive). Critica: o 
número final deve ser maior do que o inicial. 
 
 Implemente um programa que calcula a soma dos 
números pares entre dois números lidos (inclusive). 
 
 Escrever programa para calcular, para N (inteiro) 
lido, o valor de S, dado por 
 
12
1
...
2
3
1
21 NN
NNN
S 






Algoritmo Exerc_Um; 
var inicial, final, aux, cont : inteiro; 
início 
 escreva( ‘Digite dois números inteiros:’ ); 
 leia( inicial, final ); 
 se inicial > final 
 então troca(inicial, final); 
 fim-se; 
 cont <- inicial; 
 enquanto (cont <= final) faça 
 início 
 escreva( cont ); 
 cont <- cont + 1; 
 fim; 
fim. 
início 
 Aux <- inicial; 
 inicial <- final; 
 final <- Aux; 
fim; 
Algoritmo Exerc_dois; 
var inicial, final, aux, cont, soma : real; 
início 
escreva( ‘Digite dois números:’ ); leia( inicial, final ); 
se inicial < final então troca(inicial, final); fim-se; 
se (inicial mod 2) = 0 
 então cont <- inicial 
 senão cont <- inicial + 1; 
fim-se; 
enquanto (cont <= final) faça 
início 
 soma <- soma + cont; 
 cont <- cont + 2; 
fim; 
escreva( ’A soma é =‘, soma ); 
fim. 
início 
 Aux <- inicial; 
 inicial <- final; 
 final <- inicial; 
fim; 
Algoritmo Exerc_três; 
var num, den, N: inteiro; termo, S : real; 
início 
 escreva( ‘Digite um número inteiro > 0:’ ); leia( N ); 
 num <- 1; den <- N; 
 enquanto (num <= N) faça 
 início 
 termo <- num / den; 
 soma <- soma + termo; 
 num <- num + 1; 
 den <- den - 1; 
 fim; 
 escreva( ’S =‘, soma ); 
fim. 
comandos 
cond 
Verdadeiro 
Falso 
 O bloco de comandos é 
executado uma vez. 
 Se a condição for falsa, os 
comandos serão 
executados novamente; 
 caso contrário, a repetição 
não acontecerá e o 
programa continua. 
 Os comandos do bloco de ações são executados até 
que uma condição seja atendida (verdadeira) 
 
repita 
 <ação 1> 
 <ação 2> 
 ... 
 <ação n> 
ate <condição> 
 Dado o valor de N, calcular a soma dos 
números inteiros de 1 a N 
... 
soma ← 0 
i ← 1 
repita 
 soma ← soma + i 
 i ← i + 1 
ate (i > N) 
escreval(“a soma é:”, soma) 
 Exemplo 2 
leia(Nota); 
repita 
 Total <- Total + Nota; 
 N <- N + 1; 
 leia(Nota); 
até (Nota = -1); 
Media <- Total / N; 
escreva( Media ); 
 Este exemplo calcula a média de 
uma quantidade variável de notas. 
Quando o operador digitar o valor 
-1 (FLAG), será calculada a média. 
 
 O exemplo funciona 
corretamente? Por quê? 
 
 (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 - 
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 - 2005 - MPE-
RO - Analista Programador) 
Analise o algoritmo a seguir. 
Com base no algoritmo 
acima, e supondo que o 
valor fornecido para "B" na 
linha "leia B" seja 7, pode-se 
afirmar que o algoritmo 
apresentará como saída na 
linha "escreva F", 
respectivamente, a 
sequência: 
 a) 0, 1, 2, 3, 4 e 5. 
 b) 1, 2, 3, 4, 5 e 6. 
 c) 1, 1, 2, 3, 5 e 8. 
 d) 1, 1, 3, 5, 7 e 9. 
 e) 1, 2, 3, 6, 7 e 9. 
 (CESGRANRIO - 2005 - MPE-
RO - Analista Programador) 
Analise o algoritmo a seguir. 
Com base no algoritmo 
acima, e supondo que o 
valor fornecido para "B" na 
linha "leia B" seja 7, pode-se 
afirmar que o algoritmo 
apresentará como saída na 
linha "escreva F", 
respectivamente, a 
sequência: 
 a) 0, 1, 2, 3, 4 e 5. 
 b) 1, 2, 3, 4, 5 e 6. 
 c) 1, 1, 2, 3, 5 e 8. 
 d) 1, 1, 3, 5, 7 e 9. 
 e) 1, 2, 3, 6, 7 e 9. 
 Repetições que possuem um número finito de 
execuções (conhecido) podem ser processadas através 
de uma repetição controlada por uma variável de 
controle do tipo contador; 
 
 Podem ser crescentes ou decrescentes; 
 
 Idealmente, a execução dos comandos acontece para 
cada valor de um determinado conjunto de valores. Em 
cada repetição, a variável de controle assume um dos 
valores do conjunto. Quando a variável tiver assumido 
uma vez cada valor, então a repetição termina. 
 
para variavel de início ate 
fim passo <incremento> faca 
 <ação 1> 
 <ação 2> 
 ... 
 <ação n> 
fimpara 
 
 Variável é a variável de controle (contador) do laço 
 início: indica o valor inicial da variável de controle. 
 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 início ate fim passo 
<incremento> faca 
 <ação 1> 
 <ação 2> 
 ... 
 <ação n> 
fimpara 
 A variável de controle assumirá cada elemento entre o valor1 e 
o valor2 (são os elementos do conjunto); 
 Na primeira vez, a variável de controle assume o valor1 e 
executa os comandos uma vez. Ao terminara execução, 
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. 
para variavel de valor1 ate valor2 passo 
<incremento> faca 
 <ação 1> 
 <ação 2> 
 ... 
 <ação n> 
fimpara 
... 
soma ← 0 
para i de 1 ate N passo 1 faca 
 soma ← soma + i 
fimpara 
escreval(“a soma é:”, soma) 
... 
 Dado o valor de N, calcular a soma dos números 
inteiros de 1 a N 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB = 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContA ContB EXP RESP 
2 2 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
2 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
2 8 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
2 8 
3 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ←X 
 CONTB ← 1 
 para CONTB ← 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
2 8 
3 16 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB = 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
2 8 
3 16 
22 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB = 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
fim 
ContaA ContB EXP RESP 
2 1 2 2 
1 4 
6 
4 1 2 
1 4 
8 
16 
22 
(FCC - 2010 - TRF - 4ª REGIÃO - Analista Judiciário) Considere: 
Dado o algoritmo representado na forma de português 
estruturado, o valor de saída contido na variável RESP será 
a) 342. 
b) 6. 
c) 22. 
d) 86. 
e) 0. 
 
algoritmo PROVA 
var N, X, CONTA, CONTB, EXP, RESP: inteiro 
inicio 
 N ← 4 
 X ← 2 
 RESP ← X 
 para CONTA ← 2 até N passo 2 faça 
 EXP ← X 
 CONTB ← 1 
 para CONTB = 1 até CONTA-1 passo 1 faça 
 EXP ← EXP * X 
 fim-para 
 RESP ← RESP + EXP 
 fim-para 
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; 
 
 (CESPE - 2009 - ANAC - Analista 
Administrativo - Tecnologia da Informação) 
Na construção de um algoritmo, utilizam-se 
estruturas de repetição para que um bloco de 
comandos seja executado várias vezes. Todos 
os tipos de estrutura de repetição permitem 
que o bloco de comandos seja executado 
zero, uma ou mais vezes, de acordo com uma 
condição que será avaliada a cada iteração. 
 
 (CESPE - 2009 - ANAC - Analista 
Administrativo - Tecnologia da Informação) 
Na construção de um algoritmo, utilizam-se 
estruturas de repetição para que um bloco de 
comandos seja executado várias vezes. Todos 
os tipos de estrutura de repetição permitem 
que o bloco de comandos seja executado 
zero, uma ou mais vezes, de acordo com uma 
condição que será avaliada a cada iteração. 
 
ERRADO 
 (CESPE/2010/BANCO DA AMAZÔNIA/Técnico 
Científico — Área: Tecnologia da Informação) 
Na programação estruturada, existem 
estruturas de sequência, de decisão e de 
iteração. No primeiro tipo, uma tarefa é 
executada após a outra, linearmente. No 
segundo, a partir de um teste lógico, 
determinado trecho de código é executado, 
ou não. No terceiro, a partir de um teste 
lógico, determinado trecho de código é 
repetido por um número finito de vezes. 
 
 (CESPE/2010/BANCO DA AMAZÔNIA/Técnico 
Científico — Área: Tecnologia da Informação) 
Na programação estruturada, existem 
estruturas de sequência, de decisão e de 
iteração. No primeiro tipo, uma tarefa é 
executada após a outra, linearmente. No 
segundo, a partir de um teste lógico, 
determinado trecho de código é executado, 
ou não. No terceiro, a partir de um teste 
lógico, determinado trecho de código é 
repetido por um número finito de vezes. 
 
CERTO 
 Imagine como faríamos para construir um 
algoritmo, que lesse os nomes de 500 
pessoas e imprimisse um relatório destes 
mesmos nomes, mas ordenados 
alfabeticamente. 
 
 Declarar 500 variáveis? 
 Ler tudo? 
◦ Imagine: digitar um comando para cada variável? 
 E se mudar para 1000? E depois voltar para 
500? 
Algoritmo "Inviável" 
Declare 
 nome1, nome2, ..., nome500: caractere 
inicio 
 leia (nome1,nome2,...,nome500) 
 ... 
Fim 
 
 Inviável 
◦ tamanho do algoritmo; 
◦ trabalho braçal; 
 
 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. 
 
 Também denominados Estruturas compostas 
homogêneas unidimensionais 
 Permitem a manipulação de um conjunto de 
informações de um mesmo tipo primitivo 
 Vetores = variáveis indexadas por um só índice; 
 
 <identificador> : vetor [<tamanho>] de < tipo > 
 Onde: 
◦ <tamanho> = VI..VF 
◦ Vi é o valor inicial do índice e 
◦ VF é o valor final do índice. 
 
 Exemplo 
 IDADE: VETOR [1..5] DE INTEIRO 
 NOMES: VETOR [1..5] DE CARACTERE 
 
 Atribuição: 
◦ Para se atribuir um valor a um elemento do vetor 
devemos utilizar o seguinte padrão: 
 
 < identificador>[<posição>]  <valor> 
 
 Exemplos: 
 nomes[1]  “João da Silva” 
 idades[1]  35 
 nomes[3]  “Maria Aparecida” 
 idades[3]  idades[1] 
 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. 
 
 Algoritmo 
 Declare NUMERO: VETOR [1..6] DE REAL 
 I, conta_neg: INTEIRO 
 início 
 conta_neg <- 0 
 para i de 1 ate 6 faca 
 leia (NUMERO[i]) 
 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 
 
 (CESPE - 2009 - ANAC - Analista 
Administrativo - Tecnologia da Informação) 
Um array é um agregado, possivelmente 
heterogêneo, de elementos de dados. Nele, 
um elemento individual é identificado por sua 
posição em relação ao primeiro. 
 
 (CESPE - 2009 - ANAC - Analista 
Administrativo - Tecnologia da Informação) 
Um array é um agregado, possivelmente 
heterogêneo, de elementos de dados. Nele, 
um elemento individual é identificado por sua 
posição em relação ao primeiro. 
 
 ERRADO 
 
 (FUMARC/2007/PREF.MUN.BETIM/Anal
ista de Sistemas da Saúde) Considere 
que, no algoritmo em alto nível a 
seguir, V seja um vetor de inteiros 
contendo 100 elementos indexados de 
0 a 99, e todas as demais variáveis 
sejam inteiras. 
 O objetivo desse algoritmo é: 
 a) Imprimir o vetor V em ordem 
crescente. 
 b) Imprimir o vetor V em ordem 
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
ista de Sistemas da Saúde) Considere 
que, no algoritmo em alto nível a 
seguir, V seja um vetor de inteiros 
contendo 100 elementos indexados de 
0 a 99, e todas as demais variáveis 
sejam inteiras. 
 O objetivo desse algoritmo é: 
 a) Imprimir o vetor V em ordem 
crescente. 
 b) Imprimir o vetor V em ordem 
decrescente. 
 c) Imprimir o maior valor armazenado 
no vetor V. 
 d) Imprimir o menor valor armazenado 
no vetor V. 
 
 (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de 
Sistemas) Em relação às estruturas de dados, 
todas as afirmativas estão corretas, EXCETO: 
 a) Vetores são variáveis compostas 
unidimensionais identificadas por um mesmo 
nome. 
 b) Matrizes são variáveis compostas 
multidimensionais individualizadas por índices. 
 c) Registros são conjuntos de dados logicamente 
relacionados, mas de tipos diferentes. 
 d) Variáveis compostas homogêneas 
correspondem a posições de memóriacujo 
conteúdo pode ser de diferentes tipos de dados. 
 (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de 
Sistemas) Em relação às estruturas de dados, 
todas as afirmativas estão corretas, EXCETO: 
 a) Vetores são variáveis compostas 
unidimensionais identificadas por um mesmo 
nome. 
 b) Matrizes são variáveis compostas 
multidimensionais individualizadas por índices. 
 c) Registros são conjuntos de dados logicamente 
relacionados, mas de tipos diferentes. 
 d) Variáveis compostas homogêneas 
correspondem a posições de memória cujo 
conteúdo pode ser de diferentes tipos de dados. 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
17 0 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
17 0 
24 1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
17 0 
24 1 
33 1 -1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
17 0 
24 1 
33 1 -1 
33 0 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
17 0 
24 1 
33 1 -1 
33 0 
34 1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
soma ix iy dy dx 
0 2 1 
1 -1 -1 
3 0 
6 1 
11 0 -1 
17 0 
24 1 
33 1 -1 
33 0 
34 1 
 (FUMARC/2004/Analista de Sistemas) Seja 
dado o programa: 
 Marque a alternativa que representa o valor 
da variável soma a ser impresso por esse 
programa. 
 a) 20 
 b) 60 
 c) 40 
 d) 34 
 
 Variáveis indexadas com duas dimensões 
(matrizes); 
◦ são referenciadas por dois índices; 
◦ Cada dimensão da matriz, em geral, representa uma 
classificação de informação. 
 Por exemplo, as linhas poderiam representar um aluno, 
enquanto as colunas representariam as notas. 
 Mesmo com mais de 2 dimensões também são 
chamadas de matrizes (multidimensionais) 
 Importante 
◦ Cada posição é uma variável e ocupa espaço de 
memória; 
 
 A sintaxe para declaração é: 
 <identificador> : vetor [<tamanho1>,<tamanho2>] de < tipo > 
 
 Ex: PESSOAS: VETOR [1..2,1..3] DE CARACTERE 
 
 A declaração acima corresponde à declaração de 6 variáveis: 
 PESSOAS[1,1], PESSOAS [1,2], PESSOAS[1,3], 
 PESSOAS[2,1], PESSOAS[2,2], e PESSOAS [2,3]. 
 
 Para se atribuir um valor a um elemento do vetor devemos 
utilizar o seguinte padrão: 
 
 < identificador>[<posição 1>,<posição 2>]  <valor> 
 Ex: PESSOAS[1,3]  “Tonet” 
 
 (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de 
Sistemas) Um Analista de Sistemas recebeu a tarefa de 
implementar uma sub-rotina que, a partir de uma matriz de 
entrada "A", gerasse uma outra matriz de saída "B". Um 
pedaço desta sub-rotina, implementada em Visual Basic 6.0, 
está apresentado abaixo. 
 
 
 
 Considere a matriz A = (aij) de dimensão 2 x 
2, a seguir, onde aij são os elementos da 
matriz A. 
 
 
 
 Nesta matriz, por exemplo, o elemento a11 
possui o valor 3. 
 
 
 A matriz "B" resultante da execução do algoritmo 
acima, tendo a matriz "A" como entrada, é: 
a) 
b) 
c) 
d) 
e) 
 A matriz "B" resultante da execução do algoritmo 
acima, tendo a matriz "A" como entrada, é: 
a) 
b) 
c) 
d) 
e) 
 (FUMARC/2007/PREF.MUN.BETIM/Analista 
de Sistemas da Saúde) Considere que no 
algoritmo em alto nível a seguir, M seja 
uma matriz de booleanos contendo 8 
linhas, indexadas de 0 a 7, e 3 colunas, 
indexadas de 0 a 2; X, Y e Z sejam 
variáveis inteiras; e todas as demais 
variáveis sejam booleanas. 
 Considere ainda que M seja a seguinte 
matriz: 
 Os valores impressos no fim da execução 
do algoritmo são: 
 a) 0 e 5 
 b) 4 e 4 
 c) 7 e 3 
 d) 8 e 8 
 
 (FUMARC/2007/PREF.MUN.BETIM/Analista 
de Sistemas da Saúde) Considere que no 
algoritmo em alto nível a seguir, M seja 
uma matriz de booleanos contendo 8 
linhas, indexadas de 0 a 7, e 3 colunas, 
indexadas de 0 a 2; X, Y e Z sejam 
variáveis inteiras; e todas as demais 
variáveis sejam booleanas. 
 Considere ainda que M seja a seguinte 
matriz: 
 Os valores impressos no fim da execução 
do algoritmo são: 
 a) 0 e 5 
 b) 4 e 4 
 c) 7 e 3 
 d) 8 e 8 
 
 Refinamentos sucessivos 
◦ Dividir para conquistar 
 Confiabilidade 
 Legibilidade 
 Manutenibilidade 
 Flexibilidade. 
 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instrução m 
Programa 
instrução 1 
Bloco A 
Bloco Principal 
instrução 1 
instrução 2 
instrução n 
instrução 2 
ativa bloco A 
instruçãom 
Programa 
instrução 1 
 Procedimentos e Funções 
◦ Vantagem = reutilização do código 
◦ Desvantagem = aumento do tempo de execução 
 
 Vamos adotar a sintaxe abaixo: 
 
 
 Procedimentos 
◦ Ações sem retorno de valores. 
◦ Não podem ser utilizados em expressões 
(funcionam como comandos) 
 
 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 
(interface) e um corpo; 
 
 Podem possuir variáveis declaradas 
internamente e/ou usar as variáveis de outros 
módulos hierarquicamente superiores; 
◦ Cuidado com a dependência de outros módulos 
(acoplamento) 
 
 
 Os parâmetros declarados em um módulo são 
chamados de parâmetros formais. 
 
 Os parâmetros passados como argumentos 
quando da chamada do módulo são 
chamados parâmetros reais. 
 
 Existem duas formas de passagem de 
parâmetros: 
◦ Passagem por valor 
◦ Passagem por referência. 
 
 Passagem de Parâmetros - por valor 
 
 
 
 Passagem de Parâmetros - por referência 
 
procedimento Prc1 (num, cod : inteiro; nome: literal) 
procedimento Prc1 (var num, cod : inteiro; nome: literal) 
 (ESAF/2008/STN/DESENVOLVIMENTO DE 
SISTEMAS) Para resolver um determinado 
problema, um programador tem em mente como 
deve ser o programa principal que, por sua vez, 
controlará todas as outras tarefas distribuídas 
em sub-rotinas, para as quais deverá 
desenvolver os respectivos algoritmos. Este 
cenário exemplifica o conceito de programação 
 a) estruturada. 
 b) orientada a objetos. 
 c) funcional. 
 d) numérica. 
 e) orientada a aspectos. 
 
 
 (ESAF/2008/STN/DESENVOLVIMENTO DE 
SISTEMAS) Para resolver um determinado 
problema, um programador tem em mente como 
deve ser o programa principal que, por sua vez, 
controlará todas as outras tarefas distribuídas 
em sub-rotinas, para as quais deverá 
desenvolver os respectivos algoritmos. Este 
cenário exemplifica o conceito de programação 
 a) estruturada. 
 b) orientada a objetos. 
 c) funcional. 
 d) numérica. 
 e) orientada a aspectos. 
 
 
 (ESAF/2008/Prefeitura de Natal - RN/Auditor do Tesouro Municipal - Tecnologia 
da Informação) Analise as seguintes afirmações relacionadas a conceitos básicos 
sobre Programação: 
 I. Um procedimento é um conjunto de comandos para uma tarefa específica 
referenciada por um nome no algoritmo principal, retornando um determinado 
valor no seu próprio nome. 
 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 
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. 
 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 
real. 
 Indique a opção que contenha todas as afirmações verdadeiras. 
 a) I e II. 
 b) II e III. 
 c) III e IV. 
 d) I e III. 
 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 
sobre Programação: 
 I. Um procedimento é um conjunto de comandos para uma tarefa específica 
referenciada por um nome no algoritmo principal, retornando um determinado 
valor no seu próprio nome. 
 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 
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. 
 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 
real. 
 Indique a opção que contenha todas as afirmações verdadeiras. 
 a) I e II. 
 b) II e III. 
 c) III e IV. 
 d) I e III. 
 e) II e IV. 
 (CESPE/2009/ANAC/Analista 
Administrativo/Tecnologia da Informação). 
Na passagem de parâmetro por valor, o 
parâmetro formal tem seu valor inicializado 
pelo valor do parâmetro real. Por esse 
motivo, o parâmetro real nunca é alterado. O 
seu valor se mantém inalterado depois que o 
subprograma termina a execução. 
 
 (CESPE/2009/ANAC/Analista 
Administrativo/Tecnologia da Informação). 
Na passagem de parâmetro por valor, o 
parâmetro formal tem seu valor inicializado 
pelo valor do parâmetro real. Por esse 
motivo, o parâmetro real nunca é alterado. O 
seu valor se mantém inalterado depois que o 
subprograma termina a execução. 
 
 GABARITO: item CERTO. 
 (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de Sistemas) 
Em relação a algoritmos e lógica de programação, todas as 
afirmativas estão corretas, EXCETO: 
 a) Funções e sub-rotinas (procedimentos) são ferramentas 
de modularização de programas. 
 b) Os comandos de entrada e saída são utilizados para 
iniciar e finalizar a execução de um programa de 
computador. 
 c) Estruturas condicionais permitem escolher ações que 
serão executadas quando determinadas condições são 
satisfeitas. 
 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. 
 (FUMARC/2007/MINISTÉRIO PÚBLICO/Análise de Sistemas) 
Em relação a algoritmos e lógica de programação, todas as 
afirmativas estão corretas, EXCETO: 
 a) Funções e sub-rotinas (procedimentos) são ferramentas 
de modularização de programas. 
 b) Os comandos de entrada e saída são utilizados para 
iniciar e finalizar a execução de um programa de 
computador. 
 c) Estruturas condicionais permitem escolher ações que 
serão executadas quando determinadas condições são 
satisfeitas. 
 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. 
 
 Interpretador de Algoritmos 
◦ Interpreta o portugol diretamente 
◦ Claro, precisou de mais formalismo 
◦ Melhor ferramenta para aprender algoritmos 
 
 Outras ferramentas boas para aprender 
◦ Linguagem Pascal (especialmente o Turbo Pascal 4) 
◦ Linguagem C – um pouco mais difícil de aprender 
◦ Linguagem Declarativa – Prolog 
◦ Linguagem Funcional – LISP, Gofer 
 
http://www.apoioinformatica.inf.br/o-visualg 
Estrutura do VisuALG 
“Algoritmo 1” 
Converter reais em dólar 
Prof Lênin 
2013 
Declaração das variáveis 
Ex: 
 
Qtd_reais : real 
Cotacao : real 
Linhas de Comandos: 
Ex: 
 
Escreva 
Escreval 
Leia 
Esqueleto Terminal secundário 
 A Barra de Tarefas 
◦ Contém os comandos mais utilizados no VisuAlg 
(estes comandos também podem ser acessados 
pelo menu ou por atalhos no teclado). 
 
 Executar (F9): Inicia (ou continua) a execução 
automática do pseudocódigo. 
 
 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. 
 Intervalo do timer: Atraso em cada linha, para 
quando se deseja executar o pseudocódigo 
com timer. 
 Passo (F8): Inicia (ou continua) a execução 
linha por linha do pseudocódigo 
 Parar (Ctrl-F2): Termina imediatamente a 
execução do pseudocódigo. 
 Liga/desliga breakpoint (F5): Insere/remove 
um ponto de parada na linha em que esteja o 
cursor. 
NOME DO ALGORITMO 
 
 VAR 
 declaração de variáveis 
 . 
 . 
 . 
INICIO DO ALGORITMO 
 bloco de comandos 
 . 
 . 
 . 
FIM DO ALGORITMO 
algoritmo "soma dois numeros" 
 var 
 n1, n2, d: inteiro 
 
inicio 
 escreval("Digite dois numeros")

Outros materiais