Вы находитесь на странице: 1из 43

CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A

OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE


INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
1
www.pontodosconcursos.com.br
Ol, colegas,
Bm-vindos primeira aula do curso de Lgica de Programao /
Programao Orientada a Objetos / Testes (teoria e exerccios) para o
Cargo 25 MPU/2010.
O curso aborda os itens VII, XIII e XV (parte especfica) do concurso
MPU/2010, cargo 25: ANALISTA DE INFORMTICA/ DESENVOLVIMENTO DE
SISTEMAS. um curso em TEORIA E EXERCCIOS, dividido em 4 aulas
semanais. Na aula de hoje trabalharemos os seguintes itens:
LGICA DE PROGRAMAO: Construo de algoritmos; tipos de dados
simples; variveis e constantes; comandos de atribuio, entrada e
sada; avaliao de expresses; funes pr-definidas; conceito de
bloco de comandos; estruturas de controle, seleo, repetio e desvio;
operadores e expresses; conceitos bsicos de programao
estruturada;
ALGORITMOS
Segundo o dicionrio Aurlio, lgica a coerncia de raciocnio, de
idias, ou ainda a sequncia coerente, regular e necessria de
acontecimentos, de coisas. Ainda segundo Aurlio, algoritmos
processo de clculo, ou de resoluo de um grupo de problemas
semelhantes, em que se estipula, com generalidade e sem restries,
regras formais para a obteno do resultado ou da soluo do
problema.
Segundo o prisma da computao, Um algoritmo uma sequncia
finita de passos (ou instrues), descritos em uma ordem lgica, que
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
2
www.pontodosconcursos.com.br
visam atingir um objetivo bem definido. As instrues devem ser bem
definidas e no ambguas, bem como o tempo e o esforo para
executar as instrues devem ser finitos. Muitas vezes pensamos em
algoritmos como programas de computador, mas no so. Algoritmos
so sequncias de instrues para realizar uma tarefa, no
necessariamente a serem implementadas em uma linguagem de
programao.
De outro lado, um programa de computador, segundo Wirth, um
formulao concreta de algoritmos abstratos, baseados em
representaes e estruturas especficas de dados. Isto um programa
o resultado de algoritmos + estrutura de dados.
A Lgica de programao pode ser definida como o estudo das leis do
raciocnio e do modo de aplic-las corretamente na demonstrao da
verdade. Chamamos de algoritmo lgico aquele algoritmo cujas
instrues esto dispostas ordenadamente e de maneira compreensvel
por qualquer pessoa que possua conhecimento bsico sobre o assunto.
Isto , um algoritmo deve ser facilmente entendido, sem que seja
necessria uma grande perda de tempo para a traduo da idia
contida no mesmo. Um algoritmo lgico deve ser, tambm, formado
apenas pelo nmero mnimo de instrues necessrias para a resoluo
do problema referido.
Um algoritmo opera sobre um conjunto de entradas de modo a gerar
uma sada que seja til para o usurio. Um algoritmo tem cinco
caractersticas importantes:
Finitude: Um algoritmo deve sempre terminar aps um nmero
finito de passos.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
3
www.pontodosconcursos.com.br
Definio: Cada passo de um algoritmo deve ser precisamente
definido. As aes devem ser definidas rigorosamente e sem
ambiguidades.
Entradas: Um algoritmo deve ter zero ou mais entradas, isto
quantidades que so lhe so fornecidas antes do algoritmo
iniciar.
Sadas: Um algoritmo deve ter uma ou mais sadas, isto
quantidades que tem uma relao especfica com as entradas.
Efetividade: Um algoritmo deve ser efetivo. Isto significa que todas
as operaes devem ser suficientemente bsicas de modo que
possam ser em princpio executadas com preciso em um tempo
finito por um humano usando papel e lpis.
Neste curso utilizaremos o portugus estruturado para represent-
ar algoritmos.
Identificador
O elemento bsico da linguagem o identificador. Sua construo
dada pelo diagrama a seguir:
identificador letra
letra
dgito
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
4
www.pontodosconcursos.com.br
Os identificadores devem iniciar por uma letra (26 letras do alfabeto),
seguida de uma quantidade qualquer de dgitos (0 a 9). No
permitido utilizar os caracteres especiais (entre eles o espao). Algumas
linguagens de programao (e autores) aceitam outros caracteres
como vlidos (como o smnolo de sublinha _).
Tipos de Dados
Os algoritmos utilizam os comandos para manipular dados. Estes dados
ou fazem parte do algoritmo ou sero obtidos pelo algoritmo para
realizar as operaes necessrias. importante perceber que os dados
sero armazenados na memria da mquina, ou na poro de
memria reservada ao cdigo do programa (instrues) quando
fazem parte delas ou em rea reservada para armazenamento de
dados que podem ser modificados. Naturalmente somos levados a
pensar que os dados so de tipos diferentes, mas nem sempre nos
atentamos para as particularidades de cada tipo. Sabemos que na
vida real existem os nomes, os nmeros, as respostas sim e no e outros
tipos de representao da informao. Quando falamos em mquinas,
o armazenamento uma questo importante.
Os dados em memria so representados de formas diferentes
dependendo do que se quer representar e de quais operaes
podero ser realizadas. No caso dos caracteres, a representao por
meio de 1 byte para cada caractere representado, de forma que o
byte um nmero da tabela ASCII (American Code for Interchance
Information) associado ao caractere. Por exemplo, o nmero 65
representa o A, o 66 o B, o 32 o espao em branco, o 7 o bip
(som) e assim por diante. Quando falamos em representar cadeias de
caracteres, ento preciso dimensionar a quantidade de caracteres
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
5
www.pontodosconcursos.com.br
da cadeia e ser consumido um byte para representar cada elemento.
Se a questo armazenar apenas respostas sim e no, um bit
suficiente, apesar de que a menor unidade para alocao um byte.
Se o caso o armazenamento de um nmero, ento a quantidade de
bytes do nmero ter relao com a grandeza do mesmo. Note que
existe grande diferena entre armazenar um nmero inteiro e
armazenar um nmero real. O inteiro uma sequncia de bytes
interpretada como um todo. J o nmero real representado por um
nmero em notao cientfica, sendo composto por um grupo de bytes
dividido em duas partes, uma representa a mantissa e a outra o
expoente. Isto permite armazenar um nmero muito grande, mas com
pouca preciso numrica. Veja:
3,14 x 10
20
314 a mantissa e 10
18
o expoente. Assim precisaramos de
2 bytes para representar a mantissa e 1 byte para representar o
expoente.
Fiz este resumo sobre as diferentes representaes de dados em
memria para justificar a necessidade de definir tipos de dados.
Enquanto para os humanos isto pode ser indiferente (gastar a mesma
quantidade de papel), para os computadores significa espaos de
armazenamento diferentes, modos de operao diferentes, valores
diferentes. O mesmo grupo de bytes, se lido como inteiro representa um
nmero diferente do que se for lido como um nmero real.
Por isso, as linguagens de programao normalmente estabelecem
regras precisas para definir que tipos de dados elas iro manipular. J os
algoritmos procuram abstrair-se destes detalhes, mas estabelecem
algumas regras que limitam o conjunto de dados existentes na natureza
e que podero ser manipulados pelos algoritmos. Existem trs tipos
bsicos de dados que a linguagem ir manipular: dados numricos
(inteiros e reais), dados alfanumricos e dados Lgicos
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
6
www.pontodosconcursos.com.br
Lembre-se de que os nmeros reais possuem limitao para a
representao no computador. As linguagens limitam o nmero de
casas decimais e a quantidade de dgitos significativos. Alm disso,
como o computador utiliza o sistema binrio internamente, existem
problemas de perda de dgitos significativos no processo de converso
decimal binrio. Por exemplo, o nmero real 0.6 ao ser convertido
para a base dois gera uma dzima peridica.
Os dados alfanumricos servem para tratamento de textos e
normalmente so compostos por uma sequncia de caracteres
contendo letras, algarismos e outros caracteres da tabela ASCII
(normalmente caracteres de pontuao). Nos algoritmos estes dados
so representados por uma sequncia de caracteres entre aspas.
Alguns autores e linguagens optam pela representao delimitada por
apstrofes. Exemplo: Ponto dos Concursos ou 'Ponto dos Concursos'.
J os dados Lgicos, tambm chamados de booleanos, somente
podem assumir dois valores: verdadeiro e falso. A representao
internar normalmente feita por um byte do tipo inteiro, onde o valor
zero representa o falso e os demais valores o verdadeiro.
Estes trs tipos de dados (numrico, alfa-numrico e lgico) so os
chamados tipos primitivos (simples). Existem outros tipos de dados,
chamados de tipos de dados compostos. Destaco, nesta categoria, os
vetores e as matrizes (ou arranjos). Os dados compostos so formados
por agrupamento de outros tipos de dados.
Constantes: Uma constante um determinado valor que no se
modifica ao longo do tempo, durante a execuo de um programa.
permitido associar um nome (identificador) constante para facilita a
manuteno do cdigo e para dar maior clareza ao programa. Neste
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
7
www.pontodosconcursos.com.br
caso, preciso declarar a constante na sesso apropriada do
algoritmo.
Varivel: corresponde a uma rea de memria do computador, qual
atribumos um identificador. Esta rea da memria armazena valores
que podem variar ao longo do tempo, durante a execuo do
programa. No entanto, as variveis s podem armazenar um valor por
vez. Ao executar um comando que envia um valor para uma varivel, o
valor que j estiver armazenado ser perdido. Alm de possuir um
identificador (nome), cada varivel deve estar associada a um tipo de
dado. Note que algumas linguagens no exigem nem a declarao
nem a designao de tipo para as variveis, mas em algoritmos, tem-se
mantido este padro. A forma de definir variveis em um algoritmo :
Atribuio
O comando de atribuio armazena um valor em uma varivel. O valor
j existente na varivel substitudo pelo novo valor, uma vez que uma
varivel s pode assumir um valor de cada vez. No possvel
,
: identificador
inteiro
real
caracter
lgico
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
8
www.pontodosconcursos.com.br
recuperar o valor alterado pelo comando de atribuio. O smbolo
deste comando (entendido como operador por alguns autores) a
seta para esqueda: . Sua sintaxe :
O novo valor atribudo varivel feito durante o processamento do
programa utilizado e pode ser uma constante, o resultado de uma
expresso ou o valor de outra varivel.
Exemplo:
X 30
NOTA 5. 0 + 7. 0
Observaes Importantes
a expresso que se encontra do lado direito da atribuio deve
ser compatvel com o tipo de dado definido para a varivel;
na atribuio de varivel inteira, a expresso dever ser uma
expresso inteira;
na atribuio de variveis do tipo real, a expresso dever ser
numrica, sem nenhuma outra restrio;
na atribuio de variveis caractere o valor dever estar
envolvido por aspas. Ele no poder ter um tamanho maior do
que aquele estabelecido para a varivel. Se isto acontecer, o
valor ser truncado.
na atribuio de variveis lgicas deveremos usar as palavras
VERDADEIRO e FALSO, ou quando no houver risco de confuso,
podemos usar as abreviaturas V e F.
identificador

expresso
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
9
www.pontodosconcursos.com.br
Operadores
Operadores so smbolos utilizados em expresses que contm variveis,
constantes e funes. De acordo com os tipos de dados das variveis e
o resultado da operao, os operadores dividem-se em trs tipos:
aritmticos, relacionais e lgicos.
ARITMTICOS: So aqueles que atuam apenas sobre constantes,
variveis e funes numricas, gerando um resultado numrico em uma
expresso. So eles:
+ adio
- subtrao binria
* multiplicao
/ diviso
** ou ^ exponenciao
- menos unrio
DIV E MOD
So duas importantes operaes (entendidas tambm por funes)
matemticas que atuam sobre nmeros inteiros e do como resultado
tambm nmeros inteiros.
Y Div X - resultado inteiro de uma diviso inteira de Y por X
Y Mod X - resto inteiro de uma diviso inteira de Y por X
Operadores Relacionais
So aqueles que realizam uma comparao entre duas expresses e
geram resultados lgicos, isto Verdadeiro ou Falso, so eles:
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
10
www.pontodosconcursos.com.br
= igual
<> ou diferente
> maior que
< menor que
>= ou maior ou igual
<= ou menor ou igual
Operadores Lgicos
So aqueles que geram resultados lgicos atravs da comparao
entre duas expresses lgicas, so trs:
conjuno E aquele que exige que todos os termos da
expresso sejam verdadeiros para que a expresso
inteira seja verdadeira.
disjuno OU aquele que exige que apenas um dos termos da
expresso seja verdadeiro para que a expresso
inteira seja verdadeira.
negao NO aquele que inverte ou nega o valor lgico de um
elemento.
Os operadores lgicos tem seu resultado baseado na Tabela Verdade,
eles operam sobre variveis lgicas (V ou F) e tem como resultado
valores lgicos (V ou F).
OU V F E V F NO V F
V V V V V F F V
F V F F F F
Prioridades
Na execuo de um comando complexo, podemos encontrar duas ou
mais operaes numricas uma ao lado da outra, e neste caso
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
11
www.pontodosconcursos.com.br
devemos seguir regras de prioridades de operadores para sabermos
qual ser executado primeiro. No Portugol as prioridades so:
PRIORIDADE COMANDO
1 parnteses
2 funes
3 menos unrio
4 ** ou ^
5 * e /
6 + e -
7 relacionais
8 lgicos NO
9 E
10 OU
Se houverem duas operaes de mesma prioridade, as operaes
sero realizadas da esquerda para a direita.
ESTRUTURA DE UM ALGORITMO
A estrutura bsica de um algoritmo :
al gor i t mo
decl ar aes ( var i vei s, const ant es, mdul os)
i n ci o
comandos
f i m.
SEQUNCIA SIMPLES
Trata-se de um grupo de comandos executados de forma seqencial.
Os comandos so executados de cima para baixo, sendo que o
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
12
www.pontodosconcursos.com.br
prximo comando da lista s poder ser executado aps o trmino do
comando anterior. comum delimitar os comandos de uma sequncia
simples pelas palavras reservadas INCIO e FIM, formando assim um
bloco de comandos.
FLUXOGRAMA PORTUGOL
....
< comando 1 >
< comando 2 >
......
< comando n >
..
Exemplo: Calcular a rea de um tringulo:
Al gor i t mo
Decl ar e
B, H, AREA : r eal
i ni ci o
l ei a ( B) {base}
l ei a ( H) {al t ur a}
AREA ( B * H ) / 2 {cal cul a a r ea}
escr eva( AREA)
f i m.
COMANDOS DE ENTRADA E SADA
A maioria dos algoritmos que escrevemos necessita receber dados
externos, e em algum momento necessitar comunicar respostas, para
tanto usamos os comandos de entrada e sada. Para a tarefa de buscar
comando 1
comando2
comando n
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
13
www.pontodosconcursos.com.br
valores externos ao algoritmo utilizamos o comando LEIA e para enviar
dados para a unidade de sada utilizamos o IMPRIMA ou ESCREVA.
A sintaxe destes comandos :
Entrada de dados:
leia (<identificador 1>, <identificador 2>, ..., <identificador n>)
Sada de dados:
imprima (<identificador 1>, <identificador 2>, ..., <identificador n>)
imprima (<expresso numrica>)
imprima( cadeia de caracteres)
FLUXOGRAMA PORTUGOL

LEI A ( var 1, . . . , var n) I M-
PRI MA ( var 1, . . . , var n)
ou
I MPRI MA ( mensagem, var )
ESTRUTURA CONDICIONAL SIMPLES
Na vida real tomamos decises a todo o momento baseadas em uma
situao existente. Em um algoritmo, chamamos esta situao de
condio. Associada a uma condio, existir uma alternativa possvel
de aes. Exemplo: "se tiver R$ 10,00 sobrando ento irei ao cinema
hoje noite.
leia var1, ...,
var n
imprima var
1, ... var n
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
14
www.pontodosconcursos.com.br
A condio nesta frase "tiver R$ 10,00 sobrando". Ela uma expresso
lgica, pois a pergunta "Tenho R$ 10,00 sobrando?" Pode (tem que) ser
respondida com "Sim" ou "No". Lembre-se, ento: em um algoritmo,
toda condio tem que ser uma expresso lgica, algo que possa-se
pensar como isto VERDADEIRO ou isto FALSO. Se a condio for
verdadeira, a ao a ser executada "irei ao cinema", se a resposta
pergunta "Tenho dinheiro suficiente?" for "Sim". Ento, em um algoritmo,
as aes so um ou mais comandos que sero realizados apenas se a
avaliao da condio resulta VERDADEIRO. Vamos colocar agora a
frase do exemplo anterior em outra forma, mais parecida com nosso
Portugus Estruturado:
se " t i ver R$ 10, 00 sobr ando" ento
" i r ei ao ci nema"
fim-se
Veja que grifei trs palavras: se, ento e fim-se. Elas so muito
importantes na estrutura dos comandos de deciso. Como prximo
passo, vamos generalizar a estrutura que criamos acima:
se <condi o> ent o
<aes a ser emr eal i zadas se a condi o f or ver dadei r a>
fim-se
Para terminar a nossa comparao, devemos lembrar que os
comandos de um algoritmo so sempre indispensveis, e que o
computador s lida com quantidades definidas (ou seja, ele no sabe o
que "ter R$ 10,00 sobrando"). Para aproximar mais nossa frase de um
algoritmo, poderemos ter a seguinte forma:
se Di nhei r o >= 10 ent o
I r _ao_Ci nema <- VERDADEI RO
Fi m- se
O exemplo acima poderia ser estendido para o caso do sujeito no ter
dinheiro sobrando: "se tiver R$ 10,00 sobrando irei ao cinema hoje
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
15
www.pontodosconcursos.com.br
noite, mas se no tiver ficarei vendo TV em casa". Neste caso, uma
codificao possvel para esse algoritmo seria:
se Di nhei r o >= 10 ent o
I r _ao_Ci nema <- VERDADEI RO
Ver _TV <- FALSO
Fi m- se
se Di nhei r o < 10 ent o
I r _ao_Ci nema <- FALSO
Ver _TV <- VERDADEI RO
Fi m- se
importante frisar que sempre direita do comando se dever parecer
uma expresso lgica, e uma expresso cujo resultado VERDADEIRO
ou FALSO. Assim, os seguintes comandos so incorretos:
se A <- B ent o / / uma at r i bui o e no uma ex-
pr esso . . .
Fi m- se
se A + B ent o / / uma expr esso ar i t mt i ca e no uma ex-
pr esso . . .
Fi m- se
Por outro lado, esto corretos os seguintes comandos:
se ( A > B) e ( A > C) e ( B <> C) ent o
. . .
Fi m- se
se no Achou ent o / / Cor r et o se Achou f oi decl ar ada como l gi -
co . . .
Fi m- se
A sintaxe da estrutura condicional simples :
Se <condi o> ent o
<ao( es) >
f i m- se
Alguns autores preferem colocar o ento na segunda linha. Isto no
modifica a estrutura nem a forma de execuo.
Se <condi o>
ent o <ao( es) >
f i m- se
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
16
www.pontodosconcursos.com.br
FLUXOGRAMA PORTUGOL
SE <condio >
ENTO < comando 1>
< comando 2>
. ..
<comando n>;
FIMSE
ESTRUTURA CONDICIONAL COMPOSTA
uma extenso da alternativa simples, neste caso temos determinar o
que fazer se a condio for verdadeira, e o que fazer se a condio for
falsa. O formato deste comando :
Si nt axe:
Se <condi o>
ent o <ao 1>
seno <ao 2>
f i m- se
Semntica: se a condio contida no comando SE for verdadeira so
executados os comandos internos ao ENTO, e os comandos internos
ao SENO so desprezados at encontrar o FIM-SE correspondente.
Caso contrrio, se a condio contida no comando SE for falsa, os
comandos internos ao ENTO so desprezados e os comandos internos
ao SENO so executados at encontrar o FIM-SE correspondente.
comando 1
comando n
condio
V
F
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
17
www.pontodosconcursos.com.br
Exemplo:
DELTA 4 * A * C - B ** 2
se DELTA < 0
ent o i mpr i ma ( r a zes i magi nr i as)
seno X DELTA ^ 0. 5
f i m- se
FLUXOGRAMA PORTUGOL
SE <condi o >
ENTO < comando 1>
< comando 2>
. ..
<comando n>
SENO < comando 1>
< comando 2>
. ..
< comando n>
FI M- SE
ANINHAMENTO DE ESTRUTURAS
Os algoritmos podem ser formados por diversas estruturas, cada uma
com uma funo especfica. Existem casos em que uma estrutura
poder estar dentro de outra, e a isto d-se o nome de aninhamento.
Nada impede que exista uma condio dentro de outra, e isto tambm
poder ocorrer com as prximas estruturas de comando.
No existe um limite para o nmero de estruturas que podem ser
colocadas dentro de outra estrutura qualquer, mas se o nmero for
comando 1
comando n
condio
comando 11
comando nn
V F
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
18
www.pontodosconcursos.com.br
muito grande, a compreenso e a visualizao sero prejudicadas.
Para facilitar a compreenso e a visualizao do incio e do final de
cada estrutura, utiliza-se o artifcio da identao.
Nos casos em que so necessrias muitas estruturas internas, a soluo
a utilizao do processo de modularizao do algoritmo, assunto que
ser tratado na aula seguinte
Exemplo:
SEM IDENTAO COM IDENTAO
Se A <> 0
ent o B 0
se C <> 0
ent o D 0
F 3
Fi m- se;
G 77
Fi m- se;
Se A <> 0
ent o B 0
se C <> 0
ent o D 0
F 3
Fi m- se
G 77
Fi m- se
Uma regra importante, que deve ser sempre seguida, a de que o
incio e o final da estrutura mais interna devem ser sempre dentro da
estrutura imediata que a contm.
MLTIPLA ESCOLHA
Em algumas situaes necessrio termos vrias solues ligadas a
respostas diferentes, neste caso o comando de alternativa simples ou
composta no uma soluo prtica, isto porque obrigar o
programador a escrever muitas linhas de programa, alm de ter que
criar vrios comandos de alternativas compostas e verificar a validade
de suas condies para que o comando execute o caminho correto
para uma determinada condio. Temos ento o comando de
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
19
www.pontodosconcursos.com.br
alternativa de mltipla escolha. O funcionamento deste comando
obedece a seguinte regra:
caso <expr esso>
val or 1 : <comando1>
val or 2 : < comando2>
. . .
val or n : <comando n>
seno: <comando n+1>
f i m- caso
Semntica:
a expresso do CASO avaliada, e deve gerar um resultado
determinado;
este resultado comparado com os valores indicados coloca-
dos do lado esquerdo do dois pontos ( : );
quando um valor igual for encontrado, o comando colocado ao
lado direito do dois pontos ( : ) ser executado, retornando ao
FIMCASO correspondente, sem executar mais nenhuma
comparao, onde prossegue o fluxo normal do algoritmo;
caso nenhum valor seja igual ao resultado obtido na expresso do
CASO o comando existente do lado direito do dois pontos ( : ) do
SENO ser executado, retornando ao FIMCASO onde prossegue
o fluxo normal do algoritmo.
Esta estrutura tambm aparece na literatura com a forma:
escol ha < expr esso- de- sel eo >
caso < exp 1 > , < exp 2 >, . . . , < exp n
>
< l i st a- de- comandos- 1 >
caso < exp 1 > , < exp 2 >, . . . , < exp n
>
< l i st a- de- comandos- 2 >
out r ocaso
< l i st a- de- comandos- 3 >
Fi m- escol ha
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
20
www.pontodosconcursos.com.br
TESTE DE MESA
Um algoritmo, depois de ser elaborado, pode (e deve) ser testado. Para
tal, utilizamos um mtodo conhecido como teste de mesa. O teste de
mesa como uma simulao de todos os passos, ou seja, entradas,
comandos e instrues do algoritmo, a fim de saber se ele chega ao
resultado a que se prope e se a lgica est correta. Para tal,
preenche-se uma tabela com valores para as variveis e segue-se o
fluxo de execuo do algoritmo, simulando a execuo de cada
instruo, ou seja, refazendo o que o computador faria ao executar
cada instruo. A cada comando simulado (executado), o valor das
variveis na tabela deve ser atualizado. Se, para uma instruo
executada, uma ou mais variveis no ficaram com os valores
esperados, h um erro na lgica do algoritmo.
Algoritmo Teste de Mesa
Declare Variveis Sada
a,b,c: REAL a b c
Inicio ? ? ?
a <- 5 5 ? ?
b <- 15 5 15 ?
c <- a+b 5 15 20
escreva (c) 5 15 20 20
a <- 10 10 15 20
b <- 25 10 25 20
c <- a+b 10 25 35
escreva (c) 10 25 35 35
a <- a-b (10-25)= -15 25 35
escreva (a) -15 25 35 -15
a <- 0 0 25 35
b <- 0 0 0 35
c <- 0 0 0 0
Fim
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
21
www.pontodosconcursos.com.br
Esta uma sugesto. Voc pode simplific-la, escrevendo apenas as
variveis e sadas. Economize tempo no escrevendo os comandos e
anotando apenas as alteraes ocorridas nas variveis. Quando algum
comando no efetuar alteraes de valores nem uma sada, ento no
precisar anotar. Isto resultar em ganho de tempo na construo do
teste.
ESTRUTURAS DE REPETIO
Para a soluo de diversos problemas, as sequncias simples e as
estruturas condicionais devem ser executadas diversas vezes. Em muitos
destes casos, as instrues para execuo so as mesmas, alterando
apenas os valores das variveis. Os comandos de repetio permitem o
reaproveitamento de instrues do algoritmo. Vejamos estas estruturas
ESTRUTURA DE REPETIO ENQUANTO
Na estrutura enquanto..faca, a expresso lgica avaliada e, se ela for
verdadeira, a lista de comandos executada. Isso se repete at que a
condio seja falsa. Veja a sua forma geral:
enquant o <expr esso l gi ca> f aa
<l i st a de comandos>
Fi m- enquant o
Semntica - a condio (<expresso lgica>) entre o ENQUANTO e o
FAA avaliada antes de executar qualquer comando interno
estrutura (<lista de comandos>). Se a condio for verdadeira, os
comandos so executados. Se for falsa todos os comandos internos ao
ENQUANTO sero desprezados e a repetio encerrada, mesmo se
no tiver executado os comandos uma vez. Ao encontrar o fim-
enquanto, a execuo dos comandos volta para a linha enquanto,
analisando a expresso lgica novamente.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
22
www.pontodosconcursos.com.br
Exemplo: Calcular a soma dos nmeros inteiros at 100.
Al gor i t mo
Decl ar e
SOMA, NUM: i nt ei r o
i ni ci o
SOMA 0
NUM 0
enquant o NUM <= 100 f aa
SOMA SOMA + NUM
NUM NUM + 1
Fi m- enquant o
escr eva( SOMA)
f i m.
Cuidado com os laos (repeties) infinitos. Em algumas construes, a
condio da estrutura de repetio (condio de interrupo) no
resulta em valores que resultem em interrupo da repetio. Nestes
casos, o programa executado para sempre. o costumeiro: TRAVOU!
FLUXOGRAMA PORTUGOL
ENQUANTO <condi o > FAA
< comando 1>;
< comando 2>;
. ..
<comando n>;
FI MENQUANTO;
comando 1
comando n
condio
F
V
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
23
www.pontodosconcursos.com.br
REPITA...AT
Nessa estrutura, todos os comandos da lista so executados e uma
expresso lgica avaliada. Isto se repete at que a avaliao da
condio resulte em FALSO, quanto ento o prximo comando a ser
executado o comando imediatamente aps o ate. Cada repetio
da lista de comandos tambm chamada de iterao e essa estrutura
tambm chamada de lao de repetio. Sua forma geral :
Sintaxe:
r epi t a
<l i st a de comandos>
at <expr esso l gi ca>
Semntica : os comandos internos ao REPITA so executados at que a
condio aps o at seja avaliada com resultado VERDADEIRO. Se o
resultado da expresso lgica for FALSO, a lista de comandos ser
executada novamente. Observe que a lista de comandos executada
antes da avaliao da expresso. Desta forma, a lista executa, no
mnimo, uma vez, independente da expresso lgica.
Exemplo:
Algoritmo que escreve os nmeros de 1 a 10.
Al gor i t mo
DECLARE
i : I NTEI RO
i ni ci o
i <- 1
r epi t a
escr eva ( i )
i <- i + 1
at e i > 10
f i m- al gor i t mo
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
24
www.pontodosconcursos.com.br
No exemplo acima, a varivel i controla o nmero de repeties do
lao. Normalmente, a varivel de controle do lao recebe um valor
inicial, incrementada (ou decrementada) de um valor constante no
lao e tem seu valor testado no final do lao. Ao chegar a um
determinado valor, o lao interrompido. A inicializao da varivel
contadora deve acontecer fora do lao, antes do seu incio.
FLUXOGRAMA PORTUGOL
REPI TA
< comando 1>
< comando 2>
. ..
<comando n>
AT <condi o >
COMPARAO ENTRE OS COMANDOS ENQUANTO E REPITA
ENQUANTO REPITA
1. os comandos internos ao
enquanto podem nunca serem
executados;
1. os comandos internos ao repita so
executados pelo menos uma vez;
2. o lao do enquanto
executado quando a condio
for verdadeira;
2. o lao do repita realizado quando a
condio for falsa;
3. a estrutura enquanto testa e
faz.
3. a estrutura repita faz e testa.
comando 1
comando n
condio
F
V
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
25
www.pontodosconcursos.com.br
ESTRUTURA DE REPETIO COM VARIVEL DE CONTROLE
O comando para...faa tambm permite a descrio, dentro de um
algoritmo, de uma estrutura de repetio. Sua forma geral :
par a <var i vel de cont r ol e> de <val or i ni ci al > at <val or f i nal >
[ passo <i ncr ement o>] f aa
<l i st a de comandos>
Fi m- par a
Na estrutura para..faa, a varivel de controle inicializada com <valor
inicial> e no incio de cada iterao, seu valor comparado com
<valor final>. Se o valor da varivel for menor ou igual a <valor final>, a
lista de comandos executada e aps ser executado o ltimo
comando da lista, a varivel de controle incrementada. Isto repete-se
at que o valor da varivel de controle seja maior que <valor final>,
quando ento executado o comando imediatamente aps a palavra
fim-para. A instruo passo necessria se o incremento for diferente
de 1.
Um algoritmo que l escreve os nmeros mpares de 1 a 1000.
par a i de 1 at e 1000 passo 2 f aa / / I ncr ement a i de 2 em2
escr eva ( i , mpar )
f i m- par a
Observaes sobre o comando:
dentro dos comandos internos ao PARA a varivel de controle
no pode ser alterada
os valores de inicio, final e incremento podem ser nmeros,
variveis ou expresses.
no permitido alterar as variveis com os valores de incio, final
e incremento dentro da estrutura.
quando o valor do incremento for 1, este pode ser omitido;
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
26
www.pontodosconcursos.com.br
o valor do incremento pode ser negativo, neste caso o valor
inicial da varivel de controle deve ser maior do que seu valor
final.
FLUXOGRAMA PORTUGOL
PARA <var i vel > DE <i ni ci o>
AT <f i nal > PASSO
<i ncr ement o> FAA

<l i st a de comandos>
FI M- PARA
RESUMO ESTRUTURAS DE REPETIO
A- ENQUANTO
Enquanto a condio for
VERDADEIRA, o conjunto
de comandos executado.
Se a condio FALSA o
conjunto NO executado
ENQUANTO < condio >
FAA
comando 1
comando n
FIM-ENQUANTO
B- REPITA
-Os comandos internos a
ele so executados ao
menos uma vez,
independente da condio
- O lao REPITA realizado
somente se a condio for
FALSA
REPITA
comando 1

comando n
AT <condio>
C- PARA
uma varivel que controla
o incio e o fim da
execuo
PARA varivel DE valor1 AT
valor2 PASSO valor3 FAA
comando 1

comando n
FIM-PARA
para <var >de
<inicio>at
<fim>passo
<valor>
comando 1
comando n
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
27
www.pontodosconcursos.com.br
VARIVEIS COMPOSTAS HOMOGNEAS - ARRAYS
A declarao de variveis, uma a uma, suficiente para a codificao
algortmica da soluo de uma ampla gama de problemas, mas
insuficiente para resolver um grande nmero de problemas
computacionais. Imagine, por exemplo, como faramos para construir
um algoritmo, que lesse os nomes de 500 pessoas e imprimisse um
relatrio destes mesmos nomes, mas ordenados alfabeticamente. No
seria uma tarefa simples, pois teramos que definir 500 variveis do tipo
literal, como mostrado abaixo:
Al gor i t mo " I nvi vel "
Decl ar e
nome1, nome2, nome3, nome4, . . . , nome499, nome500: car a-
ct er e i ni ci o
l ei a ( nome1, nome2, . . . , nome500)
. . .
Fi m
Considere o tamanho do algoritmo, e o trabalho braal necessrio para
constru-lo. Para resolver problemas como este, e outros, existem as
variveis indexadas. A declarao de uma varivel indexada
corresponde, na verdade, declarao de vrias variveis cujo
identificador difere apenas por um ndice. O ndice corresponde a um
valor numrico comeando por 1. Cada varivel indexada pode
receber valores no decorrer do algoritmo como se fosse uma varivel
comum.
VARIVEIS COMPOSTAS HOMOGNEAS UNIDIMENSIONAIS (VETORES)
Variveis indexadas com uma nica dimenso, tambm conhecidas
como vetores, so referenciadas por um nico ndice. A sintaxe para
declarao :
<i dent i f i cador > : vet or [ <t amanho>] de < t i po >
Tamanho [ VI . . VF]
Vi o val or i ni ci al do ndi ce e
VF o val or f i nal do ndi ce.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
28
www.pontodosconcursos.com.br
Exempl o
I DADE: VETOR [ 1. . 5] DE I NTEI RO
NOMES: VETOR [ 1. . 5] DE CARACTERE
A declarao acima corresponde declarao de 10 variveis:
nomes[ 1] , nomes[ 2] , nomes[ 3] , nomes[ 4] , nomes[ 5] ,
i dades[ 1] , i dades[ 2] , i dades[ 3] , i dades[ 4] e i dades[ 5] .
Para se atribuir um valor a um elemento do vetor devemos utilizar o
seguinte padro:
< i dent i f i cador >[ <posi o>] <- <val or >
Exempl os:
1. nomes[ 1] <- J oo da Si l va
2. i dades[ 1] <- 35
3. nomes[ 3] <- Mar i a Apar eci da
4. i dades[ 3] <- i dades[ 1]
5. i <- 5
6. i dades[ i ] <- 45
Algoritmo que l um vetor NUMERO de 6 posies e o escreve. A seguir,
ele conta quantos valores de NUMERO so negativos e escreva esta
informao.
Al gor i t mo " vet or es"
Decl ar e
NUMERO: VETOR [ 1. . 6] DE REAL
I , cont a_neg: I NTEI RO
i ni ci o
cont a_neg <- 0
par a i de 1 at e 6 f aca
l ei a ( NUMERO[ i ] )
se NUMERO[ i ] < 0 ent ao
cont a_neg <- cont a_neg + 1
f i m- se
f i m- par a
par a i de 1 at e 6 f aca
i mpr i ma( NUMERO[ i ] )
f i m- par a
i mpr i ma( " Tot al de nmer os negat i vos: " , cont a_neg)
f i m
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
29
www.pontodosconcursos.com.br
VARIVEIS COMPOSTAS HOMOGNEAS BIDIMENSIONAIS (MATRIZES)
Variveis indexadas com duas dimenses, tambm conhecida como
matrizes, so referenciadas por dois ndices, cada qual comeando por
1. Observe que as linguagens de programao determinam os limites
vlidos para os ndices. Cada dimenso da matriz, em geral, representa
uma classificao de informao. Por exemplo, as linhas poderiam
representar um aluno, enquanto as colunas representariam as notas.
possvel criar variveis compostas com mais de duas dimenses, basta
acrescentar as novas dimenses na declarao e na manipulao (da
mesma forma como acrescentamos aqui).
importante ressaltar que cada posio da matriz uma varivel
interna e, como tal, ocupa espao. Assim, temos que nos preocupar
com o total de espao utilizado pela estrutura para no consumir todo
o espao disponvel e causar falhas nos programas.
A sintaxe para declarao :
<i dent i f i cador > : vet or [ <t amanho1>, <t amanho2>] de < t i po >
Ex: PESSOAS: VETOR [ 1. . 2, 1. . 3] DE CARACTERE
A declarao acima corresponde declarao de 6 variveis:
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 padro:
< i dent i f i cador >[ <posi o 1>, <posi o 2>] <- <val or >
Ex: PESSOAS[ 1, 3] <- Tonet
Algoritmo que l uma matriz v Valores(3,3) e calcula as somas:
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
30
www.pontodosconcursos.com.br
a) da linha 3 de Valores;
b) da coluna 2 de Valores;
c) da diagonal principal;
d) da diagonal secundria; e
e) de todos os elementos da matriz.
Al gor i t mo " Mat r i z"
Decl ar e
VALORES : VETOR [ 1. . 3, 1. . 3] DE REAL
somaLi nha3, somaCol una2, somaDi agPr i nc,
somaDi agsecu, somaTudo: REAL
i , j : I NTEI RO / / os ndi ce sempr e i nt ei r o
i ni ci o
somaLi nha3 <- 0
somaCol una2 <- 0
somaDi agPr i nc <- 0
somaDi agsecu <- 0
somaTudo <- 0
Par a i de 1 at e 3 f aca
Par a j de 1 at e 3 f aca
Escr eva( " Di gi t e umval or par a a mat r i z" )
Lei a ( VALORES[ i , j ] )
somaTudo <- VALORES[ i , j ] + somaTudo
se i =3 ent ao
somaLi nha3 <- VALORES[ i , j ] + somaLi nha3
f i m- e
se j =2 ent ao
somaCol una2 <- VALORES[ i , j ] + somaCol una2
f i m- e
se i =j ent ao
somaDi agPr i nc <- VALORES[ i , j ] + somaDi agPr i nc
f i m- e
se j =4- i ent ao
somaDi agsecu <- VALORES[ i , j ] + somaDi agsecu
f i m- e
f i m- ar a
f i m- ar a
Par a i de 1 at e 3 f aca
par a j de 1 at e 3 f aca
escr eva( VALORES[ i , j ] )
f i m- ar a
f i m- ar a
escr eva( " Soma de t odos os el ement os " , somaTudo)
escr eva( " Soma dos el ement os da l i nha 3 " , somaLi nha3)
escr eva( " Soma dos el ement os da col una 2 " , somaCol una2)
escr eva( " Soma dos el ement os da di agonal pr i nci pal " ,
somaDi agPr i nc)
escr eva( " Soma dos el ement os da di agonal secundr i a " ,
somaDi agsecu)
f i m
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
31
www.pontodosconcursos.com.br
EXERCCIOS COMENTADOS
01. (FCC - 2010 - DPE - SP - Agente de Defensoria - Analista de Sistemas)
utilizada para avaliar uma determinada expresso e definir se um
bloco de cdigo deve ou no ser executado. Essa a definio da
estrutura condicional:
a) For
b) If...Then...Else
c) While
d) Do...While
e) Next
Comentrios: a estrutura utilizada para definir se um bloco de cdigo
deve ou no ser executado, com base na avaliao de uma expresso
a estrutura condicional. Normalmente representada por
If...Then...Else ou Se...Ento...Seno.
GABARITO: B.
02. (CESPE - 2009 - ANAC - Analista Administrativo - Tecnologia da
Informao) J ulgue os itens que se seguem, com relao a conceitos
de construo de algoritmos.
Na construo de um algoritmo, utilizam-se estruturas de repetio para
que um bloco de comandos seja executado vrias vezes. Todos os tipos
de estrutura de repetio permitem que o bloco de comandos seja
executado zero, uma ou mais vezes, de acordo com uma condio
que ser avaliada a cada iterao.
( ) Certo ( ) Errado
Comentrios: A estrutura de repetio com interrupo no final,
repita...at, executa os comandos uma vez antes de avaliar a
condio de interrupo. Neste caso, no possvel que o bloco de
comandos no seja executado (zero vezes como afirma questo).
GABARITO: ERRADO.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
32
www.pontodosconcursos.com.br
03. (FCC - 2008 - METR-SP - Analista Treinee - Cincias da
Computao) Em relao lgica de programao, considere os
pseudocdigos:
a) Somente Alg1 tem consistncia em sua representao e chega a um
resultado.
b) Ambos os algoritmos abordam o mesmo problema e chegam ao
mesmo resultado.
c) Somente Alg2 tem consistncia em sua representao e chega a um
resultado.
d) O resultado da soluo apresentada por Alg2 maior do que a de
Alg1.
e) O resultado da soluo apresentada por Alg2 menor do que a de
Alg1.
Comentrios: Observe que a diferena entre os algoritmos reside na
frmula de clculo da varivel SalReceber. Enquanto o primeiro
algoritmo calcula o valor em duas etapas, o segundo calcula por meio
de uma nica frmula. Assim, o Algoritmo 2 dispensa uma varivel. No
entanto, o resultado o mesmo e ambos calculam o valor lquido de
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
33
www.pontodosconcursos.com.br
um salrio, com base em uma gratificao de 5% e um desconto de
7%.
GABARITO: B
04. (FCC - 2010 - TRF - 4 REGIO - Analista Judicirio) Considere:
al gor i t mo PROVA
var N, X, CONTA, CONTB, EXP, RESP: i nt ei r o
i ni ci o
N 4
X 2
RESP X
par a CONTA 2 at N passo 2 f aa
EXP X
CONTB 1
par a CONTB = 1 at CONTA- 1 passo 1 f aa
EXP EXP * X
f i m- par a
RESP RESP + EXP
f i m
Dado o algoritmo representado na forma de portugus estruturado, o
valor de sada contido na varivel RESP ser
a) 342.
b) 6.
c) 22.
d) 86.
e) 0.
Comentrios: Para resolver este tipo de questo, quando a banca
apresenta um algoritmo com repeties e clculos, temos duas opes.
1) Realizamos o teste de mesa para apurar o resultado, ou
seja
executamos o algoritmo manualmente anotando os valores
das
variveis no decorrer da execuo.
2) Analisamos o algoritmo para encontrar o problema que
ele
resolve. Assim obtemos uma frmula para calcular o resultado
do
algoritmo em funo dos valores de entrada.
Minha sugesto para que voc decida o caminho para a soluo da
questo com base na quantidade de repeties que sero efetuadas.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
34
www.pontodosconcursos.com.br
Adote como padro a primeira opo, que a mais segura. Mas, se o
nmero de repeties for grande, ento voc precisar de muito
tempo para resolver (pode at ser que o tempo de prova seja
insuficiente). Nestes casos, procure realizar algumas simulaes para
buscar a frmula que o algoritmo implementa.
No caso da questo acima, observe que ela possui duas estruturas de
repetio. A quantidade de execues da primeira depende de N e o
nmero de execues da segunda depende da primeira. Como N
pequeno, sem maiores anlises, provavelmente a quantidade de
repeties ser pequena. Como N igual a 4, a primeira repetio ser
executada de 2 a 4, com passo 2. Neste caso, a varivel CONTA
assumir os valores 2 e 4, na primeira e segunda repeties,
respectivamente. Ento, a segunda repetio interna primeira ser
executada 2 vezes. Uma para CONTA = 2 e outra para CONTA = 4. Note
que para esta repetio o passo 1, ou seja, na primeira vez ser
executada de 1 a 1 (CONTA-1) e na segunda vez de 1 a 3 (CONTA-1).
Total de repeties para CONTB = 4 (1 repetio para CONTA = 2 e 3
repeties para CONTA = 4). Conclumos que a quantidade de
repeties pequena, podemos fazer o teste de mesa.
OBSERVAO: quando for fazer a prova, no h necessidade de fazer
todos estes clculos. Observe apenas se as repeties so grandes e se
existem muitas repeties aninhadas.
Apresento uma variao do teste de mesa mostrado na aula.
passo N X CONTA EXP CONTAB RESP
1) 4
2) 2
3) 2
4) 2
5) 2
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
35
www.pontodosconcursos.com.br
6) 1
7) 1
8) 2*2=4
9) 2+4=6
10) 2+2=4
11) 2
12) 1
13) 1
14) 2*2=4
15) 2
16) 4*2=8
17) 3
18) 8*2=16
19) 6+16=22
GABARITO: C
05. (FCC - 2008 - METR-SP - Analista Treinee - Cincias da
Computao) Em relao lgica de programao, considere os
pseudocdigos:
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
36
www.pontodosconcursos.com.br
a) Somente Alg1 tem consistncia em sua representao e chega a um
resultado.
b) Ambos os algoritmos abordam o mesmo problema e chegam ao
mesmo resultado.
c) Somente Alg2 tem consistncia em sua representao e chega a um
resultado.
d) O resultado da soluo apresentada por Alg2 maior do que a de
Alg1.
e) O resultado da soluo apresentada por Alg2 menor do que a de
Alg1.
Comentrios: Observe que a diferena entre os algoritmos reside na
frmula de clculo da varivel SalReceber. Enquanto o primeiro
algoritmo calcula o valor em duas etapas, o segundo calcula por meio
de uma nica frmula. Assim, o Algoritmo 2 dispensa uma varivel. No
entanto, o resultado o mesmo e ambos calculam o valor lquido de
um salrio, com base em uma gratificao de 5% e um desconto de
7%.
GABARITO: B
06. (FCC - 2009 - TRE-PI - Tcnico Judicirio - Programao de Sistemas)
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
37
www.pontodosconcursos.com.br
No algoritmo do enunciado, observa-se que os tipos de dados no
foram declarados. Nesse caso, para ajustar o algoritmo, os tipos de
dados para nome, aux, salario e nivel_superior seriam, respectivamente
a) real, lgico, inteiro e real.
b) caracter, real, inteiro e lgico.
c) real, lgico, inteiro e inteiro.
d) caracter, inteiro, real e lgico.
e) caracter, lgico, real e real.
Comentrios: nome deve ser do tipo caractere, para que o
identificador faa sentido. No h restries quanto ao tipo desta
varivel, uma vez que ela lida no incio e depois no mais utilizada.
Aux recebe um valor no decorrer do programa e aparece em dois
outros momentos: em uma expresso lgica e um comando de sada.
No comando de atribuio e na expresso lgica, a varivel tratada
como nmero. A comparao feita com um nmero inteiro, ento a
varivel deve ser classificada como inteiro.
Salrio, ora recebe o valor 1000 (inteiro) ora recebe o resultado de 1000
x 1.15. Aqui fica claro que uma varivel do tipo real, pois o resultado
da expresso 1000 x 1.5 um nmero real.
A ltima varivel, nvel_superior, s pode ser classificada como sendo do
tipo lgico, uma vez que ela a prpria condio da estrutura
se...ento...seno. Ateno, a varivel no participa de uma expresso
lgica, ela a prpria expresso lgica.
GABARITO: D
07. (CESPE - 2009 - ANAC - Analista Administrativo - Tecnologia da
Informao) J ulgue os itens que se seguem, com relao a conceitos
de construo de algoritmos.
Um array um agregado, possivelmente heterogneo, de elementos
de dados. Nele, um elemento individual identificado por sua posio
em relao ao primeiro.
( ) Certo ( ) Errado
Comentrios: Um arranjo (array, vetor ou matriz) um agregado
HOMOGNEO de elementos de dados. No h possibilidade de que o
array seja de elementos heterogneos. No confunda um arranjo onde
os elementos so registros (onde os componentes do registro podem ser
de tipos diferentes) com a ideia de arranjo heterogneo. Quando o
arranjo um agregado de registros, todos os elementos do arranjo
possuem a mesma forma (definida pelo registro), ou seja, o arranjo
homogneo. Outro cuidado no confundir o tipo de dado do arranjo
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
38
www.pontodosconcursos.com.br
(homogneo = tipos iguais) com o contedo de cada elemento do
arranjo (valores diferentes).
GABARITO: ERRADO.
08. (ESAF - 2009 - ANA - Analista Administrativo - Tecnologia da
Informao - Desenvolvimento) Na programao estruturada, so
necessrios apenas trs blocos de formas de controle para implementar
algoritmos. So eles:
a) seleo, repetio e aninhamento.
b) empilhamento, aninhamento e operao.
c) sequncia, aninhamento e seleo.
d) sequncia, seleo e repetio.
e) funo, operao e programa.
Comentrios: Os controles disponveis para os algoritmos so a
sequncia, a seleo (estrutura condicional) e a repetio.
GABARITO: D
09. (CESGRANRIO - 2006 - DNPM - Tcnico Administrativo - Especialidade
- Informtica) Considere o algoritmo abaixo, descrito em pseudocdigo.
Suponha que os dados de entrada SALARIO e TITULO sejam,
respectivamente, "1000,00" e "Doutor". Qual o valor do salrio com a
gratificao, em reais, que ser apresentado na sada do algoritmo?
a) 1000,00
b) 2000,00
c) 3000,00
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
39
www.pontodosconcursos.com.br
d) 5000,00
e) 6000,00
Comentrios: A estrutura caso est avaliando a varivel Ttulo para
definir qual linha ser executada. A condio de guarda (caso) que
ser satisfeita com os dados informados a primeira (Doutor). Assim,
SALARIO_GRAT receber o valor de SALARIO * 3, ou seja, 1000 x 3 =
3000,00.
GABARITO: C
10. (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de Sistemas)
Considere a sub-rotina abaixo para responder
s questes 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 varivel "C" na linha "escreva C"
:
a) 24
b) 28
c) 32
d) 34
e) 43
Comentrios: Questo tpica para teste de mesa. Mas como no tem
repeties, basta aplicar a frmula. C (3 + 4) * 4. C = 28.
GABARITO: B
11. (CESGRANRIO - 2004 - Prefeitura de Manaus - Analista de Sistemas)
Considere a sub-rotina abaixo para responder s questes XX e XX.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
40
www.pontodosconcursos.com.br
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 varivel "A" na
linha "escreva A" :
a) 7
b) 9
c) 12
d) 16
e) 21
Comentrios: Esta questo mostra o comando interrompa. Este
comando encerra a execuo da repetio de modo imediato (sem
esperar a condio). Faa o teste de mesa para a questo. A
repetio ser executada 2x e o valor em A ser 16 0 + 7 + 9.
GABARITO: D
12. (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 sada "B". Um pedao desta sub-rotina, implementada em
Visual Basic 6.0, est apresentado abaixo.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
41
www.pontodosconcursos.com.br
Considere a matriz A = (aij) de dimenso 2 x 2, a seguir, onde aij so os
elementos da matriz A.
Nesta matriz, por exemplo, o elemento a11 possui o valor 3. A matriz "B"
resultante da execuo do algoritmo acima, tendo a matriz "A" como
entrada, :
a)
b)
c)
d)
e)
Comentrios: Como as repeties sero executadas apenas 4x,
podemos aplicar o teste de mesa. Mas se observarmos o algoritmo
apresentado, podemos concluir que os elementos de B so os
elementos de A com os nmeros de posio invertidos. Como as
posies onde a linha e coluna so iguais no so afetadas, temos
apenas as seguintes diferenas: Assim B(1,2) = A(2,1) e B(2,1) = A(1,2).
GABARITO: C
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
42
www.pontodosconcursos.com.br
12. (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 sada na linha "escreva F", respectivamente, a seqncia:
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.
Comentrios: Observe que a banca mostra uma variao do comando
repita. Aqui o comando no repita...at <condio> e sim
repira...<interrompa>...fim repita. No entanto, como existe o comando
interrompa, podemos executar. Observe que ser interrompida a
repetio quando A for >= B. Sendo B = 7 e A, que inicia em 1,
aumentando de 1 em 1 a cada repetio, a quantidade de vezes que
os comandos da repetio sero executados ser 6. Aplique o teste de
mesa e veja se consegue os mesmos valores.
CURSO ON-LINE DE LGICA DE PROGRAMAO / PROGRAMAO ORIENTADA A
OBJETOS / TESTES (TEORIA E EXERCCIOS) PARA O CARGO 25: ANALISTA DE
INFORMTICA/DESENVOLVIMENTO DE SISTEMAS MPU/2010.
PROFESSOR: LNIN CARNEIRO
43
www.pontodosconcursos.com.br
A B C D E F Sada
1 7 1 ? 0 1
1 1 1 1
2 2 1 1
1 1 2
3 6 4
2 2 3 2
4 15 9
3 3 5 3
5 40 25
5 5 8 5
6 104 64
8 8 13 8
7 253 149
interrompe
GABARITO: C

Вам также может понравиться