Escolar Documentos
Profissional Documentos
Cultura Documentos
Logica Programacao
Logica Programacao
Programao
UNIDADE 1 1.1
1.2
1.3
1.4
1.5
1.6
UNIDADE 2 2.1
2.2
2.3
2.4
CONTEDO DINMICO........................................................................................................................... 36
UNIDADE 9 9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
UNIDADE 8 8.1
8.2
VETORES ................................................................................................................................................................... 31
MATRIZES ................................................................................................................................................................. 32
UNIDADE 7 7.1
7.2
7.3
SEQUNCIA ............................................................................................................................................................... 24
SELEO ................................................................................................................................................................... 24
REPETIO ................................................................................................................................................................ 27
UNIDADE 6 6.1
6.1
COMANDO DE ATRIBUIO........................................................................................................................................... 22
COMANDO DE ENTRADA DE DADOS ............................................................................................................................... 23
COMANDO DE SADA DE DADOS .................................................................................................................................... 23
UNIDADE 5 5.1
5.2
5.3
UNIDADE 4 4.1
4.2
4.3
UNIDADE 3 3.1
3.2
3.3
LINGUAGEM PHP.................................................................................................................................... 38
9.9
9.10
9.11
ARRAYS .................................................................................................................................................................... 42
TIPOS DE DADOS SUPORTADOS ..................................................................................................................................... 43
ESTRUTURAS DE CONTROLE .......................................................................................................................................... 46
UNIDADE 10 10.1
10.2
10.3
10.4
10.5
UNIDADE 11 11.1
11.2
11.3
11.4
LINGUAGEM C .................................................................................................................................... 52
UNIDADE 12 -
Planejamento
Anlise
Projeto
Implementa
o
Testes
Manuteno
Lgica de Programao
Anlise
Tambm chamada de anlise de requisitos, onde deve se obter um claro entendimento sobre o
sistema. A anlise proporciona a base para uma boa implementao do software.
Projeto
Tambm chamada de especificao do projeto, onde propomos uma arquitetura de
implementao para o software, que atenda aos requisitos do sistema identificados na anlise.
Aqui, passamos a nos preocupar com os diversos aspectos computacionais necessrios para uma
boa implementao do software. Os algoritmos dos programas a serem implementados so
construdos nesta fase.
Implementao
A etapa de implementao onde os programas so efetivamente construdos, a partir da
arquitetura de implementao feita na etapa anterior. Nesta etapa onde a atividade de
codificao ocorre de forma massiva.
Teste
Nesta etapa os programas construdos sero testados de forma exaustiva. Existe uma grande
variedade de testes que so realizados, indo desde o teste unitrio dos mdulos de programas at
o teste de integrao de todo o sistema de software.
Manuteno
onde ocorrem ajustes do software implementado, que podem ser ocasionados por vrios
motivos: erros de projeto identificados aps a implementao e o teste do software, inovaes
tecnolgicas, evoluo do sistema, etc..
Lgica de Programao
1.4 Instrues
Na linguagem comum, entende-se por instrues "um conjunto de regras ou normas definidas
para a realizao ou emprego de algo".
Em informtica, porm, instruo a informao que indica a um computador uma ao elementar
a ser executada.
Convm ressaltar que uma ordem isolada no permite realizar o processo completo, para isso
necessrio um conjunto de instrues colocadas em ordem sequencial lgica.
Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prtica uma
srie de instrues: descascar as batatas, bater os ovos, fritar as batatas, etc...
evidente que essas instrues tm que ser executadas em uma ordem adequada no se pode
fritar as batatas para depois descasc-las.
Dessa maneira, uma instruo tomada em separado, no tem muito sentido. Para obtermos o
resultado, precisamos colocar em prtica o conjunto de todas as instrues, na ordem correta.
Instrues so um conjunto de regras ou normas definidas para a realizao ou emprego de algo.
Em informtica, o que indica a um computador uma ao elementar a executar.
1.5 Algoritmo
A palavra algoritmo, primeira vista, parece-nos estranha. Embora possua designao
desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como
uma pessoa toma banho um algoritmo, por exemplo.
Outros algoritmos frequentemente encontrados so:
instrues para se utilizar um aparelho eletrodomstico;
uma receita para preparo de algum prato;
guia de preenchimento para declarao do imposto de renda;
a regra para determinao de mximos e mnimos de funes por derivadas sucessivas;
a maneira como as contas de gua, luz e telefone so calculadas mensalmente, dentre outros.
So vrios os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui.
"Um conjunto finito de regras que prov uma sequncia de operaes para resolver um tipo
de problema especfico"
Ronald Knuth
Lgica de Programao
ter fim;
Formas de Representao
Existem vrias ferramentas que podem ser utilizadas para a representao de algoritmos, entre
elas: linguagem natural, pseudocdigo (ou portugus estruturado), diagrama de NassiShneiderman (ou Chapin), fluxogramas, etc.
A seguir, veremos em nvel de detalhe algumas delas.
Descrio Narrativa
Faz-se uso da linguagem natural para descrever algoritmos.
Exemplo:
Receita de Bolo
6
Lgica de Programao
Providencie ingredientes.
Misture os ingredientes.
Espere 20 minutos.
Deixe esfriar.
Prove.
Vantagens
Desvantagens
O idioma bastante
conhecido por ns.
Impreciso.
Pouca
confiabilidade
impreciso
acarreta
desconfiana).
(a
a
Extenso
(normalmente,
escreve-se muito para dizer
pouca coisa).
Existem trs estruturas bsicas para a construo de algoritmos: sequenciaco, seleo e
repetio. A combinao destas trs estruturas permite-nos a construo de algoritmos para a
resoluo de problemas extremamente complexos. A programao estruturada baseia-se nestas
trs estruturas bsicas.
Imagine a seguinte situao: precisamos elaborar um algoritmo para trocar uma lmpada.
Incio
- pegue uma escada
- coloque-a embaixo da lmpada
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
Fim
Lgica de Programao
Observe que este algoritmo resolve o nosso problema da troca de lmpada. No entanto, trata-se
de um algoritmo bastante simples, que se utiliza apenas da estrutura de sequenciao, ou seja,
nenhuma seleo ou repetio de procedimentos aparece no algoritmo. Uma estrutura de
sequncia, caracteriza-se por possuir uma nica sequncia de aes, que executada apenas
uma vez.
No entanto, antes de trocarmos a lmpada devemos nos certificar de que ela realmente esteja
queimada, para ento troc-la. Assim, podemos melhorar nosso algoritmo.
Incio
- ligue o interruptor
- se a lampada no acender, ento:
- pegue uma escada
- coloque-a embaixo da lmpada
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
Fim
Agora o nosso algoritmo, alm da estrutura, de sequncia, passa a utilizar uma estrutura de
seleo. Na estrutura de seleo, uma condio deve ser analisada e, a partir do resultado da
anlise, um "caminho" do algoritmo ser executado. Em outras palavras, uma estrutura de seleo
escolhe aes a serem executadas a partir de uma condio (que pode ser simples ou composta).
Embora nosso algoritmo tenha melhorado, ainda podemos deix-lo mais completo. Quando
verificamos que a lmpada est queimada, subimos para troc-la, mas no consideramos a
hiptese da lmpada nova tambm estar queimada. Se isso ocorrer, precisaremos executar
algumas aes novamente, at que possamos efetivamente resolver nosso problema.
Incio
- ligue o interruptor
- se a lmpada no acender, ento:
- pegue uma escada
- coloque-a embaixo da lmpada
- enquanto a lmpada no acender, faa:
- busque uma lmpada nova
- suba na escada com a lmpada nova
- retire a lmpada velha
- coloque a lmpada nova
- desa da escada
Fim
Lgica de Programao
Neste algoritmo, somente iremos parar de trocar a lmpada quando colocarmos uma lmpada que
acenda. Portanto, um conjunto de aes ser executado repetidamente enquanto a condio de
repetio for verdadeira. Assim, inserimos uma estrutura de repetio no nosso algoritmo, que
passa a trabalhar com as trs estruturas bsicas de construo de algoritmos.
importante salientar que existem vrias formas de se construir um algoritmo, pois as pessoas
pensam de formas diferentes. No entanto, devemos sempre buscar a forma mais otimizada
possvel (dentro dos limites impostos pela situao).
Lgica de Programao
Sequncia
Ao - 1
Ao - 2
Ao - 3
Seleo
Condio
V
Aes
F
Aes
10
Lgica de Programao
Repetio
Aes
Aes
Repetir at (condio)
Exemplo
Queremos resolver o seguinte problema: Calcular a mdia de todos os alunos que cursaram uma
disciplina X, a partir da leitura das notas da 1 e 2 prova, passando por um clculo de mdia
aritmtica. Aps a mdia calculada, devemos anunciar se o aluno foi aprovado ou reprovado por
nota. Somente esto aprovados os alunos com mdia maior ou igual 5,0.
F
Aluno Reprovado
11
Lgica de Programao
Embora os diagramas N-S ofeream uma representao muito clara do algoritmo, medida que os
algoritmos vo se tornando mais complexos, fica difcil realizar os desenhos necessrios numa
nica pgina, prejudicando a sua visualizao.
2.2 Fluxogramas
O fluxograma foi utilizado por muito tempo para a representao de algoritmos. No entanto, o seu
grande problema permitir o desenvolvimento de algoritmos no estruturados. Com o advento das
linguagens de programao estruturada o fluxograma caiu em desuso.
O fluxograma utiliza-se de smbolos especficos para a representao de algoritmos. Existe uma
certa variao na simbologia empregada, mas mesmo assim, apresentaremos a seguir uma
simbologia tradicionalmente usada:
Processo
Deciso
Leitura
Escrita
Conector
Terminal
Setas de Fluxo de Controle
12
Lgica de Programao
Exemplo
Com base no exemplo anterior, feito com N-S, complete o fluxograma abaixo:
Vantagens
Desvantagens
Padro mundial.
13
Lgica de Programao
2.4 Pseudocdigo
O pseudocdigo vem sendo amplamente utilizado por projetistas de softwares e programadores,
pois obriga o uso de estruturas que facilitem o entendimento do algoritmo, e tambm facilitam a
transformao do mesmo em cdigos reais.
O pseudocdigo tambm recebe outros nomes, como: portugus estruturado, PDL (Program
Design Language), pascalide, etc.. Utilizaremos neste curso o pseudocdigo como a forma de
representao padro para algoritmos. Um dos ambientes que entende o pseudocdigo ou
portugus estruturado o AMBAP (Ambiente de Aprendizado de Programao desenvolvido pela
UFAL Universidade Federal de Alagoas).
O exemplo anterior ser representado atravs de pseudocdigo.
//Algoritmo MediaAluno
variaveis
numerico nota1, nota2, media
inicio
faca enquanto (no for fim da lista de alunos)
leia (nota1)
leia (nota2)
media = (nota1+nota2)/2
se (media >= 5.0)entao
escreva ("Aluno aprovado")
senao
escreva ("Aluno reprovado")
14
Lgica de Programao
fim_se
fim_enquanto
fim
Observe que no pseudocdigo, somos obrigados a utilizar algumas estruturas bsicas de controle
(sequncia, seleo e repetio), de forma a estruturar e organizar melhor os passos do algoritmo.
15
Lgica de Programao
16
Lgica de Programao
Todo dado a ser tratado num algoritmo deve pertencer a algum tipo, que ir determinar o domnio
de seu contedo. Os tipos mais comuns de dados so conhecidos como tipos primitivos de dados,
so eles: numrico, texto (ou caracter) e lgico1.
Neste curso, usaremos para a construo de nossos exerccios somente estes trs tipos, mas
saiba que existem vrios outros e que, em outras bibliografias sero mais detalhistas.
Numrico: todos os valores do tipo numrico seja ele positivo, negativo, zero, ponto flutuante,
decimal, etc.
Texto: todo e qualquer dado composto por um conjunto de caracteres alfanumricos (nmeros,
letras e caracteres especiais), desde que estejam entre aspas.
Lgico: todo e qualquer dado que s pode assumir duas situaes verdadeiro ou falso
(biestveis).
variaveis
tipo: nome_variavel, nome2_variavel, etc
inicio
Na Unidade 14 encontram-se maiores explicaes sobre a linguagem PHP, e na Unidade 15 sobre a linguagem C.
17
Lgica de Programao
<desenvolvimento>
fim
Onde:
Tipo pode ser numrico, caracter ou lgico.
Nome_variavel o identificador da varivel.
Operadores (aritmticos, relacionais e lgicos)
Quando construmos algoritmos comum trabalharmos com expresses matemticas para a
resoluo de alguns problemas. As expresses matemticas podem fazer uso de operadores
aritmticos e relacionais.
Chamamos de operadores aritmticos o conjunto de smbolos que representa as operaes
bsicas da matemtica, conforme tabela a seguir:
Operaes
Operadores
Linguagem C
Adio
Subtrao
Multiplicao
Diviso
Potenciao
Mdulo (resto da
diviso)
Resto(x,y)
Linguagem
PHP
No possuem um smbolo,
fazem por funo da linguagem
%
H tambm um operador aritmtico especial para obter o resto de uma diviso inteira. Usaremos
para essa operao a funo "resto".
Exemplo: resto(20, 3) = 2.
Um outro grupo importante de operadores formado pelos operadores relacionais. Quando
queremos fazer comparaes entre valores, ou entre expresses (tanto matemticas como
lgicas), precisamos utilizar esta categoria de operadores. Os operadores relacionais so:
==
Diferena
<>
!=
Maior
>
Menor
<
Maior
ou >=
18
Lgica de Programao
igual
Menor ou <=
igual
O resultado de uma relao sempre um valor lgico (verdadeiro ou falso).
Exemplos:
a) 2+5 = 3+2 F (falso)
b) 3*5 <> 2*3 V (verdadeiro)
Uma terceira categoria de operadores que podemos utilizar na construo de algoritmos
chamada de operadores lgicos. Estes operadores funcionam como conectivos para a formao
de novas proposies.
Os principais operadores lgicos so:
Operaes
Operadores
Linguagem C
Conjuno (e)
&&
Disjuno (ou)
OU
||
Negao
(no)
NAO
Linguagem
PHP
AEB
A OU B
F
19
Lgica de Programao
NO( A)
Exemplos:
a) 3 > 6 OU 4 < 5
F OU V
Resultado: V
b) 4 < 7 E 5 > 9
V E F
Resultado: F
Na resoluo das expresses aritmticas, lgicas e relacionais, os operadores e as funes
matemticas possuem uma hierarquia de prioridade.
Parnteses mais internos
Funes matemticas
^
*
/
resto
+
operadores relacionais
no
e
ou
20
Lgica de Programao
Exemplo:
No( 2^3 < 4^2) ou abs(int(15/-2)) < 10
No
No
No
8 < 16
ou
No( V )
F
ou
ou
<
<
10
10
V
Exerccios Sugeridos
1) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou falsas.
(A+C) > B ( )
B >= (A+2) ( )
C = (B-C) ( )
(B+A) <= C ( )
(C+A) > B ( )
2) Sabendo que A=5, B=4, C=3 e D=6, informe se as expresses abaixo so verdadeiras ou
falsas.
(A>C) AND (C<=D)
( )
( )
21
Lgica de Programao
Nas linguagens C e PHP o smbolo de atribuio =, por exemplo, x = 5. J, nestas linguagens a igualdade
representada por ==.
22
Lgica de Programao
variaveis
numerico x, y, a, res
caracter nome
INICIO
Escrever "Entre com o primeiro valor:"
Ler x
Escrever "Entre com o segundo valor:"
Ler y
Escrever "Entre com o nome da pessoa:"
Ler nome
a:= x * 3 / y
res := (a * 2.4)/3
23
Lgica de Programao
5.2 Seleo
Uma estrutura de seleo permite a escolha de um conjunto de aes e/ou estruturas que sero
executadas a partir do resultado de uma condio (simples ou composta), representada por uma
expresso lgica.
Utilizaremos a seguinte representao para estruturas de seleo:
se (condio) entao
comando 1
comando 2
comando 3
...
fim_se
No caso acima, os comandos somente sero executados se a condio for verdadeira, caso
contrrio, o programa continua executando os prximos passos logo aps o smbolo de
fechamento de chaves.
Temos ainda a possibilidade de outras representaes mais elaboradas, como as que seguem:
24
Lgica de Programao
se (condio) entao
comandos
...
senao
comandos
...
fim_se
ou
se (condio) entao
comandos
...
senao
se (condio) entao
comandos
...
senao
se (condio)entao
comandos
...
senao
comandos
...
fim_se
fim_se
fim_se
Nesses dois casos descritos acima, sero executados os comandos apenas de uma das
condies e somente se ela for verdadeira. Caso no haja condies verdadeiras sero
executados os comandos definidos dentro do bloco seno.
Teste de Mesa
uma simulao da execuo de um programa ou plano, usando para isso simplesmente papel e
lpis para registrar o que teoricamente ocorre em cada passo. Serve para visualizarmos todas as
etapas que o computador realiza durante a execuo do algoritmo.
Exemplo de Algoritmo
Receba a nota da prova1
25
Lgica de Programao
Exerccios
1) Identifique os dados de entrada, processamento e sada no algoritmo abaixo.
Receba cdigo da pea
Receba valor da pea
Receba quantidade de peas
Calcule o valor total da pea
Mostre o cdigo da pea e seu valor total
2) Faa um algoritmo para calcular o estoque mdio de uma pea, sendo informado o estoque
mnimo e o estoque mximo.
3) Construa um algoritmo que leia a cotao do dlar, leia valores em dlar, converta esse
valor para real e mostre o resultado.
4) Desenvolva um algoritmo que leia 4 nmeros, calcule o quadrado de cada um, some todos
os resultados e mostre o resultado.
5) Construa um algoritmo para pagamento de comisso de vendedores de peas, levando em
considerao que sua comisso ser de 5% do total da venda e que voc tem os seguintes
dados: preo unitrio da pea e quantidade vendida.
6) Joo comprou um microcomputador para controlar o rendimento dirio de seu trabalho.
Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de
pesca do Estado (50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente. Joo
precisa que voc faa um algoritmo que leia a varivel P (peso do peixe) e verifique se h
26
Lgica de Programao
5.3 Repetio
Laos Condicionais e Contados
A estrutura de repetio permite que uma sequncia de comandos seja executada um certo
nmero de vezes at que uma determinada condio seja satisfeita. Por exemplo, pode-se citar o
caso em que se deseja realizar o mesmo processamento para um conjunto de dados diferentes,
como a folha de pagamento de uma empresa de 100 funcionrios. Neste caso o mesmo clculo
efetuado para cada um dos funcionrios. Para solucionar este problema precisaramos escrever o
algoritmo em questo uma vez para cada funcionrio, ou seja, sendo 100 funcionrios teramos
que escrev-lo 100 vezes.
Outro modo de resolver essa questo seria utilizar a mesma sequncia de comandos, ou seja,
fazer a repetio de um conjunto de comandos 100 vezes sem ter que reescrev-lo novamente.
27
Lgica de Programao
28
Lgica de Programao
Caracteriza-se por uma estrutura que permite que um lao seja executado at que o resultado do
teste lgico seja verdadeiro. Neste caso o lao executado pelo menos uma vez e ento a
condio testada, se o resultado for falso o lao executado novamente e este processo
repetido at que o resultado da condio seja verdadeiro. A diferena que existe dessa estrutura
para a anterior o fato de ser executada pelo menos uma vez antes de passar pela condio de
teste3.
Sintaxe:
faca
comando 1
comando 2
...
enquanto (cond)
No AMBAP implementada somente repetio teste condicional no incio, porm, em vrias linguagens de
programao existem as duas formas apresentadas, por isso constam na apostila.
29
Lgica de Programao
proximo
Exerccios Sugeridos
1) Escreva um algoritmo que leia as notas finais dos alunos de uma disciplina e calcule a mdia
da turma.
2) Escreva um algoritmo que leia o nome o sexo a altura e o peso de um grupo de 250 pessoas e
informe: Mdia das alturas das mulheres e o nome do homem mais pesado.
3) Escreva um algoritmo que leia dois nmeros inteiros (inicial e final) e mostre os nmeros pares
desse intervalo. Alm disso, deve mostrar tambm quantos so e qual a soma desses
nmeros.
4) Construa um algoritmo que leia 500 valores inteiros positivos e encontre o maior valor, o
menor valor e calcule a mdia dos nmeros lidos.
30
Lgica de Programao
variaveis
matriz numerico vet[50]
numerico soma, i, val
INICIO
val := 50
escrever "entre com ", val, " valores"
para i de 1 ate val
ler vet[ i ]
proximo
soma:=0
Observando o cdigo anterior, o uso do vetor razoavelmente claro. Inicialmente ele utilizado
para armazenar os valores que vo sendo lidos, e em seguida utilizado no clculo da varivel
Soma.
31
Lgica de Programao
Obviamente o exemplo acima poderia ser reproduzido sem o uso de vetores, com o clculo da
varivel Soma durante a leitura. Porm, isto pode no ser possvel em exemplos mais complexos,
como os sugeridos a seguir.
6.1 Matrizes
A matriz mais comum a de duas dimenses (linha e coluna), por se relacionar diretamente com
a utilizao de tabelas. Trabalharemos somente com matrizes de 2 dimenses, por serem mais
comuns, mas podem ser necessrias, em algum momento, matrizes de 3 ou mais dimenses.
Uma matriz de 2 dimenses estar sempre fazendo meno a linhas e colunas e ser
representada por seu nome e tamanho. Dessa forma, uma matriz Tabela[8,5] indica que tem 8
linhas e 5 colunas, conforme a figura.
Exerccios Sugeridos
1)
Crie uma novo algoritmo, com base no algoritmo sobre vetores, em que aps a leitura de
todos os dados, pergunte ao usurio se ele deseja a multiplicao dos dados lidos, sua soma ou o
clculo de sua mdia. Conforme a entrada informada pelo usurio, uma resposta diferente
fornecida pelo sistema.
2)
Faa um algoritmo tambm baseado no exemplo, que aps terminada a entrada de dados,
exiba todos os nmeros do vetor de forma ordenada.
32
Lgica de Programao
33
Lgica de Programao
7.2 Procedimentos
So, na realidade, trechos de programas independentes mas que, para serem processados,
devem ser solicitados pelo programa principal. Exemplo:
procedimento NomeProcedimento ( lista de parmetros )
inicio
<comandos>
fim
7.3 Funes
um caso particular de procedimentos. A diferena porm, que apenas uma informao
retornada ao programa que a chamou, ou seja, os parmetros, se existentes, so todos de entrada
e obrigatoriamente h uma e somente uma sada ou retorno para o programa principal.
Algumas linguagens obrigam que a chamada de funo nunca seja sozinha, como os
procedimentos, mas sim fazendo parte de um comando de atribuio ou de uma expresso. A sua
declarao segue o seguinte formato:
Funcao NomeFuno ( lista de parmetros)
inicio
<comandos>
retornar ( parmetro )
fim
34
Lgica de Programao
numerico A,B
denomina-se
35
Lgica de Programao
36
Lgica de Programao
8.2 Linguagens:
Entre as linguagens mais populares atualmente no desenvolvimento de sites dinmicos podemos
citar o ASP (Active Server Pages, mantido pela Microsoft), JSP (Java Server Pages, mantido pela
SUN) e o PHP (PHP Hypertext Preprocessor, mantido pelo PHP Group).
Resumo:
- Websites dinmicos possuem como principal caracterstica pginas que tm contedos que
podem variar de acordo com fatores externos ao cdigo HTML.
- As duas principais linguagens utilizadas no desenvolvimento de websites dinmicos so o ASP,
da Microsoft e o PHP, do PHP Group.
37
Lgica de Programao
38
Lgica de Programao
</head>
<body bgcolor=#FFFFFF>
Ol, Usurio!
</body>
</html>
Exemplo 2: index.php
<html>
<head>
<title>Teste 1</title>
</head>
<?php $usuario = Paulo; ?>
<body bgcolor=#FFFFFF>
Ol, <?php echo $usuario; ?>!
</body>
</html>
Note que temos dois pares de tags que no so HTML, representados pela tag <?php e a sua tag
de fechamento, ?>. Tudo o que estiver entre estas duas tags automaticamente processado pelo
interpretador PHP como cdigo, enquanto que o restante tratado como HTML comum, e por
consequncia, ignorado pelo interpretador.
Lgica de Programao
- Para separar linhas de comandos utilizamos o ponto e vrgula, como no exemplo abaixo:
Exemplo: Delimitando comandos
<?php
$usuario = Paulo;
echo Ol, $usuario!;
?>
- Para delimitar blocos de cdigos em Estruturas de Controle (que veremos mais adiante)
utilizamos chaves:
Exemplo: Delimitando blocos
if ($usuario == Paulo)
{
echo Ol, $usuario!;
}
Note que o comando que define o bloco de cdigo no terminado por ponto e vrgula.
9.5 Comentrios
Comentrios servem, principalmente para auxiliar o programador ou equipe de programadores a
se orientar dentro de um cdigo e para ajudar na tarefa de debug de um arquivo PHP.
Comentrios so absolutamente ignorados pelo interpretador.
Existem duas formas de comentrios disponveis em PHP:
- Comentrios de uma linha ou linhas comentadas: So comentrios curtos que comeam e
terminam na mesma linha. Para comentar uma linha utilizamos duas barras:
Exemplo: Comentrio de uma linha
<?php
// Este um comentrio de uma linha.
?>
40
Lgica de Programao
9.7 Variveis
Variveis so a estrutura de dados mais comumente utilizada. Uma varivel uma estrutura de
dado que nos permite guardar apenas um valor por vez. Variveis, assim como os arrays em PHP
so denominadas pelo sinal de dlar.
Veja o exemplo, ainda utilizando a varivel $usuario:
Exemplo: Utilizando variveis
<?php
$usuario = Paulo; // Inicializamos a varivel usuario com o valor
Paulo
$usuario = Joo; /* A partir deste momento a varivel usuario troca
completamente de valor, contendo o valor Joo.*/
?>
9.8 Constantes
Constantes, ao contrrio das variveis, so estruturas de dados cujo valor definido apenas uma
vez, no podendo ser modificado. Embora o PHP aceite o nome de constante escrito em
caracteres minsculos, uma boa prtica de programao definirmos o nome de uma constante
sempre utilizando apenas caracteres maisculos.
Constantes so declaradas atravs do comando define,
define(nome_da_constante, valor [, insensibilidade__caixa]);
com
seguinte
sintaxe:
Veja o exemplo:
Exemplo: Declarando constantes
<?php
define (USUARIO, Paulo);
define (Pais, Brasil, FALSE);
?>
41
Lgica de Programao
9.9 Arrays
Arrays so vetores ou matrizes, estruturas de dados chamada compostas, pois tm como
caracterstica a possibilidade de armazenar mais de um dado ao mesmo tempo.
Estes dados so acessados atravs do que chamamos de ndice.
Em PHP os arrays so definidos de uma forma mista: ao mesmo tempo em que declaramos o
nome do array com o sinal de dlar, devemos utilizar o comando array para indicar que esta
estrutura de fato uma matriz.
Veja o exemplo de uma definio de array:
Exemplo: Definindo um array
<?php
$usuarios = array(Paulo, Joo);
?>
Neste exemplo definimos um array chamado usuarios contendo dois elementos: Paulo e Joo.
Como no definimos explicitamente os ndices deste array, eles so automaticamente definidos
pelo interpretador de acordo com a ordem dos elementos.
importante notar que, ao contrrio do uso coloquial, o primeiro elemento de um array ordenado
sempre definido pelo ndice zero. Caso queiramos chamar um elemento especfico deste array,
Joo, por exemplo, utilizamos a seguinte notao:
$nome_do_array[indice];
Assim sendo nosso exemplo de saudao ao usurio, utilizando um array, poderia ser escrito da
seguinte forma:
Exemplo: Acessando um elemento de um array
42
Lgica de Programao
<html>
<head>
<title>Teste 1</title>
</head>
<?php $usuarios = array(Paulo, Joo); ?>
<body bgcolor=#FFFFFF>
Ol, <?php echo $usuarios[1]; ?>!
</body>
</html>
Podemos tambm criar o que chamamos de arrays associativos, ou seja, arrays cujo ndice
explicitamente definido por ns:
Exemplo: Declarando um array associativo
<?php
$usuarios = array( Paulo => Paulo da Silva, Joo => Joo Paulo
da Costa);
?>
E para chamarmos algum dos elementos deste array utilizamos exatamente mesma forma
mencionada anteriormente:
Exemplo: Acessando um elemento de um array associativo
<?php
echo $usuarios[Paulo];
?>
Resumo:
- Para delimitarmos comandos em PHP utilizamos o ponto e vrgula, enquanto que para blocos de
cdigos em estruturas de controle usamos as chaves.
- Comentrios em PHP so marcados por duas barras quando forem comentrios de apenas uma
linha ou delimitados por barra e asterisco e asetrisco e barra quando forem comentrios em mais
de uma linha.
- Em PHP possumos trs estruturas bsicas de dados: Variveis, Constantes e Arrays, sendo
estes ltimos chamados de estruturas compostas, pois podem armazenar mais de um dado ao
mesmo tempo. Todas as estruturas de dados em PHP so representadas pelo sinal de dlar.
Lgica de Programao
Strings podem ser compreendidas como texto. Este texto pode conter qualquer tipo de caractere,
sejam nmeros, letras, acentos, caracteres especiais, etc.
Strings so sempre delimitadas por aspas, que podem ser tanto duplas quanto simples. Os dois
exemplos abaixo so variveis que contm strings em seu valor:
Exemplo: Declarando strings
<?php
$var1 = Teste;
$var2 = Teste;
?>
A diferena no uso das aspas simples ou duplas est na forma como o interpretador PHP tratar o
contedo da string. No caso das aspas duplas poder ocorrer o que chamamos de interpolao,
ou seja, se uma string contiver uma varivel, o interpretador PHP automaticamente converter a
varivel para seu valor. As aspas duplas tambm permitem ao interpretador reconhecer caracteres
especiais, como o caractere de nova linha, por exemplo.
No caso da utilizao de aspas simples a interpolao no ocorre, assim como no ocorre o
reconhecimento de caracteres especiais. Veja o seguinte exemplo para uma melhor compreenso
das diferenas:
Exemplo: Utilizao de aspas simples e duplas
<?php
$var1 = teste;
$var2 = teste;
echo Isto um $var2;
echo Isto um $var1;
?>
44
Lgica de Programao
<?php
$var1 = 10;
$var2 = 0.5;
$var3 = -5;
?>
Booleanos
Um tipo booleano o que representa apenas dois valores possveis: verdadeiro ou falso.
Normalmente estes valores so representados pelas palavras reservadas TRUE e FALSE:
Exemplo: Declarando uma varivel booleana
<?php
$ativo = TRUE;
?>
importante ressaltar que o interpretador PHP sempre considerar um valor como sendo
verdadeiro, a no ser nos seguintes casos:
- O booleano FALSE
- O inteiro 0 (zero)
- O float 0.0
- A string vazia ou
- A string 0 ou 0
- Um array vazio
Converso de tipos
A exemplo de outras linguagens web, PHP procura fazer a converso de tipos automaticamente.
Exemplo: converso automtica de tipos
<?php
$var1 = 1;
$var1 += 5;
$var1 += 2.7;
?>
Neste exemplo nossa varivel $var1 comea contendo uma string. Na segunda linha ela passa a
conter um inteiro, enquanto que a partir da terceira linha seu valor passa a ser um float.
Tambm possvel alterar o tipo de dado de uma varivel utilizando-se o comando settype, que
possui a seguinte sintaxe:
settype(varivel, tipo);
O parmetro tipo deve conter um destes possveis valores:
45
Lgica de Programao
- Boolean
- integer
- float
- string
Sendo assim, nosso exemplo de transformao de tipos poderia ser reescrito de forma no ser
necessrio modificar o valor da varivel:
Exemplo: modificando o tipo de uma varivel com a funo settype
<?php
$var1 = 1;
settype($var1, integer);
settype($var1, float);
?>
Resumo
- PHP suporta os seguintes tipos bsicos: string, numrico e booleano.
- Para realizar a converso entre tipos efetuamos operaes com a varivel ou utilizamos o
comando settype.
Descrio:
O if a estrutura condicional mais simples. Os comandos contidos no bloco delimitado pelas
chaves s sero executados no caso da condio ser verdadeira.
Exemplo: Utilizando uma condicional if
46
Lgica de Programao
if ($usuario == Paulo)
{
echo Ol, Paulo.;
}
O if suporta, ainda, mltiplas condies e o que fazer se a condio for falsa. Isto feito atravs
das condies else if e else:
if (condio1)
{
comandos
}
else if (condio2)
{
comandos
}
else
{
comandos
}
Switch sintaxe:
switch(varivel)
{
case valor1:
comandos
break;
case valor2:
comandos
break;
default:
comandos
}
Descrio:
O condicional switch comumente utilizado para evitar instrues if-else if muito longas, ou seja,
quando queremos testar uma gama muito grande de condies.
Cada instruo case testa pela igualdade da varivel com o valor. Note que a limitao que ocorre
com o condicional switch que apenas a igualdade testada. A instruo break obrigatria entre
cases, pois ela que separa os blocos de instrues que sero executadas dependendo de cada
condio.
A instruo default opcional e diz para o interpretador PHP o que fazer se todas as condies
expostas nas instrues case forem falsas.
Exemplo: Utilizando uma condicional switch
47
Lgica de Programao
switch($usuario)
{
case Paulo:
echo Ol Paulo.;
break;
case Joo:
echo Ol Joo;
break;
default:
echo Usurio desconhecido;
}
Descrio:
Um loop for uma estrutura de controle que causar a repetio de comandos com um nmero
finito de iteraes. Para isso criamos uma varivel contadora, testamos uma condio e a
incrementamos ou decrementamos para que o loop tenha continuidade.
Exemplo: Utilizando um loop for
48
Lgica de Programao
Descrio:
Um loop while executado quantas vezes forem necessrias at que a condio especificada seja
satisfeita (seja verdadeira).
Exemplo: Utilizando um loop while
$c = 0;
while ($c < 10)
{
echo Esta a $c iterao de nosso loop de teste.;
$c++;
}
Note que para reproduzir o comportamento de nosso loop for com um loop while precisamos
incluir duas instrues explcitas:
Na primeira linha inicializamos nossa varivel com o valor zero. Se esta linha estivesse dentro do
bloco a ser executado pelo loop teramos o que chamamos de loop infinito, pois a cada iterao a
varivel seria reinicializada com o valor zero e, portanto, seria sempre menor do que 10.
Na ltima linha de nosso bloco de instrues incrementamos a varivel (o equivalente operao
$c = $c + 1;). Se esta linha estivesse fora do bloco a ser executado pelo loop tambm teramos um
loop infinito, pois o incremento jamais aconteceria e a varivel seria sempre menor do que 10.
do-while sintaxe:
do
{
comandos
}
while (condio)
Descrio:
O loop do-while extremamente parecido com o loop while, mas possui uma diferena
importantssima: o bloco de comandos ser executado sempre pelo menos uma vez, j que a
condio testada apenas no final da primeira iterao.
Exemplo: Utilizando um loop do-while
$c = 0;
do
{
echo Esta a $c iterao de nosso loop de teste.;
$c++;
}
while ($c < 10)
Note que se tivssemos inicializado a nossa varivel contadora com o valor 1 e testssemos
condio $c < 1 ainda assim teramos uma execuo do loop, pois a condio s comea a ser
testada aps a primeira iterao.
49
Lgica de Programao
Note que esta forma de percorrer um array, ao contrrio do loop foreach, s funcionar com arrays
de ndices numricos.
Funes (subrotinas)
A sintaxe bsica para definir uma funo :
function nome_da_funo([arg1, arg2, arg3]) {
Comandos;
... ;
[return <valor de retorno>];
}
50
Lgica de Programao
Qualquer cdigo PHP vlido pode estar contido no interior de uma funo. Como a checagem de
tipos em PHP dinmica, o tipo de retorno no deve ser declarado, sendo necessrio que o
programador esteja atento para que a funo retorne o tipo desejado. recomendvel que esteja
tudo bem documentado para facilitar a leitura e compreenso do cdigo. Para efeito de
documentao, utiliza-se o seguinte formato de declarao de funo:
tipo function nome_da_funcao(tipo arg1, tipo arg2, ...);
Este formato s deve ser utilizado na documentao do script, pois o PHP no aceita a declarao
de tipos. Isso significa que em muitos casos o programador deve estar atento ao tipos dos valores
passados como parmetros, pois se no for passado o tipo esperado no emitido nenhum alerta
pelo interpretador PHP, j que este no testa os tipos.
51
Lgica de Programao
Unidade 10 -
Linguagem C
A linguagem C foi primeiramente criada por Dennis M. Ritchie e Ken Thompsom no laboratrio
Bell em 1972, baseada na linguagem B de Thompson que era uma evoluo da antiga linguagem
BCPL.
A linguagem ficou contida nos laboratrios at o final da dcada de 70, momento que comeou a
popularizao do sistema operacional UNIX e consequentemente o C (o UNIX desenvolvido em
C).
As principais caractersticas da linguagem C so:
Linguagem compilada;
Linguagem estruturada;
Toda funo deve ser iniciada por uma chave de abertura { e encerrada por uma chave de
fechamento };
A formatao dos programas completamente livre, mas temos por convenincia manter a
legibilidade;
Os comentrios devem ser delimitados por /* no incio e */ no final. Podem ser usados
tambm os caracteres // para comentrios de uma linha.
Sintaxe bsica:
52
Lgica de Programao
Exemplo de um programa em C:
#include <stdio.h>
#include <conio.h>
float processa(float r); //declarao da funo processa
void main (void) // funo principal main
{
float raio, area; //delcarao de variveis locais
clrscr (); // comando para limpar a tela
printf(Raio: );
scanf(%f, &raio);
area = processa(raio);
printf(Area: %f, rea);
getche();
}
float processa (float r) //implementao da funo processa
{
float a; //declarao de variveis locais
a=3.1415*r*r;
return(a);
}
10.2 Comando if
O comando if instrui o computador a tomar uma deciso simples. Se o valor entre parnteses da
expresso de controle for verdadeiro ele executa as instrues, caso seja falso, as instrues
sero ignoradas, ou executadas as que esto contidas no bloco do else.
O comando if encadeado e o comando switch possuem a mesma sintaxe da linguagem PhP.
Exemplo:
if (x%2)
53
Lgica de Programao
printf (x impar);
else
printf (x par );
Exemplo:
for (a=1; a<100; a++)
{
printf(\n %i, a);
}
Exemplo:
while (conta < 10)
{
total = total + conta;
printf(conta = %i, total = %i, conta, total);
conta++
}
Comando do..while:
do
{
comandos;
} while (expresso teste);
Exemplo:
do
{
y--;
x++;
} while (y);
54
Lgica de Programao
Um vetor ou matriz um tipo de dado usado para representar uma certa quantidade de valores
homogneos.
A linguagem C no valida limites dos vetores, cabe ao programador verificar o correto
dimensionamento. O primeiro ndice o zero. Vetores possuem uma ou mais dimenses, como
conveno, os vetores bidimensionais so chamados de matrizes.
Declarao:
tipo variavel [tamanho]; //vetor
tipo variavel [tamanho] [tamanho]; //matriz
O tipo de uma funo determinado pelo tipo de valor que ela retorna pelo comando return e no
pelo tipo de seus argumentos.
55
Lgica de Programao
Unidade 11 -
Fundamentos Orientao a
Objetos
Lgica de Programao
57
Lgica de Programao
58
Lgica de Programao
Os tipos de objeto so importantes porque eles criam os elementos conceituais bsicos para se
projetar os sistemas. Na programao baseada em objetos, esses elementos bsicos orientam o
projetista na definio de classes e suas estruturas. Alm disso, os tipos de objeto fornecem os
ndices para a operao do sistema. Por exemplo, operaes tais como Contratar, Promover e
Demitir esto intimamente ligadas ao tipo de objeto Empregado, porque elas alteram o estado de
um empregado. Em outras palavras, um objeto s deve ser manipulado via operaes associadas
ao seu tipo. Sem tipos de objeto, portanto, as operaes no podem ser definidas
adequadamente.
Modularizao
Modularizar juntar partes com algumas semelhanas. Para melhor entendermos um sistema
complexo, juntamos categorias com algumas caractersticas comuns em mdulos.
Este conceito bem empregado na fase de projeto do software. atravs da aplicao dele que
conseguimos organizar melhor os componentes de sistema, auxiliando no entendimento da
construo, da manuteno e, muitas vezes, na implantao do software.
Relacionamento
Para o funcionamento do todo, necessrio que as partes funcionem separadamente, mas em
conjunto. Este funcionamento em conjunto (cooperao) possvel porque as partes se
relacionam entre si. O relacionamento entre os objetos feito atravs de mensagens, passadas de
uma parte para outra. Uma empresa, por exemplo, composta de diversos departamentos,
funcionando autonomamente. Mas, para que a empresa como um todo atinja seu objetivo (ou seja,
lucre), necessrio um relacionamento entre estes departamentos, para que funcionem em
conjunto. Este relacionamento possvel atravs da troca de mensagens entre os integrantes dos
departamentos.
No paradigma da Orientao a Objetos, as mensagens trocadas entre os objetos podem ser
entendidas como solicitaes. Essa solicitao faz com que uma determinada operao seja
ativada. A operao executa o mtodo adequado e, opcionalmente, devolve uma resposta. A
mensagem que constitui a solicitao contm o nome do objeto, o nome da operao e, s vezes,
um grupo de parmetros. Dessa forma, possvel realizar uma modelagem que espelha, o mais
fiel possvel, a realidade. Afinal, empresas, departamentos, setores e pessoas relacionam-se
atravs de mensagens enviadas uns aos outros, ou seja, atravs de solicitaes.
Objetos podem ser muito complexos, porque objetos podem ser feitos de outros objetos, que, por
sua vez, podem ser feitos de outros objetos, e assim por diante. O usurio de um objeto no
precisa tomar conhecimento de sua complexidade interna, apenas precisa saber como se
comunicar com ele e como ele reage.
11.2 Classe
O termo classe se refere implementao, no software, do tipo de objeto. Tipo de objeto uma
noo conceitual. Ele especifica uma famlia de objetos, sem estipular como eles so
implementados. Os tipos de objeto so identificados durante as fases de Levantamento de
Requisito e Anlise. Os detalhes das classes so determinados na Anlise e no Projeto.
Uma classe uma implementao de um tipo de objeto. Ela tem uma estrutura de dados e
mtodos que especificam as operaes que podem ser feitas com aquela estrutura de dados.
59
Lgica de Programao
11.3 Colaborao
Os objetos colaboram entre si, a fim de disponibilizar as funcionalidades requeridas pelo sistema.
Esta disponibilizao de funcionalidades se d atravs de troca de mensagens entre os objetos.
Se um objeto precisa de uma informao que no sua, ou seja, que est em outro objeto, este
deve pedir para ele enviando uma mensagem. Um objeto Aluno, por exemplo, no pode cancelar
sua prpria matrcula. Ele deve enviar uma mensagem ao objeto Setor de Matrculas, solicitando o
cancelamento de sua matrcula.
A seguir, veremos os tipos de colaborao que podem existir entre objetos.
Agregao
Agregar significa juntar, colar, grudar. Neste contexto, dizemos que agregao o ato de agregar
duas ou mais classes para formar uma nova classe, onde podemos identificar um relacionamento
do tipo Todo-Parte. Esse relacionamento (todo-parte) pode ser visto de duas formas:
Composio: quando o todo no existe sem as partes. Por exemplo: um objeto da classe Aluno, para uma
universidade, no existe sem seu Currculo. O Currculo de um Aluno algo pessoal e intransfervel. Se um
Aluno for excludo, seu Currculo deve ser excludo junto.
Referncia: quando o todo somente faz referncia s partes. Por exemplo: um objeto da classe Nota Fiscal
faz referncia a objetos do tipo Produto. A Nota Fiscal composta, entre outras coisas, de uma lista de
produtos, mas se ela for excluda os produtos no precisam ser excludos de seu cadastro original.
Generalizao/Especializao
Especializao quando, dada uma determinada classe ou categoria, criamos uma outra, com
novos atributos ou servios que a tornam mais restrita. Generalizao a operao inversa, ou
seja, a remoo de uma ou mais caractersticas de determinada classe, de modo a formar uma
classe mais abrangente.
importante entender que generalizao o mecanismo para expressar a similaridade entre
classes. Esse princpio permite representar membros comuns, servios e atributos uma s vez.
Permite a reutilizao de especificaes comuns. Por exemplo: uma empresa possui o seu
cadastro de Clientes. Podemos especializar a classe Cliente em Pessoa Fsica e Pessoa Jurdica.
Em programao, o conceito de generalizao visto como herana. Podemos, ento, identificar
basicamente dois tipos de herana: herana de INTERFACE e de IMPLEMENTAO. Herdar uma
interface significa assumir o compromisso de oferecer as operaes definidas pela interface, ou
seja, todos os mtodos declarados. Dessa forma, diz-se que se herda a interface da classe.
Herdar a implementao significa que instncias da classe especializada tero parte de seus
estados definidos e tambm controlados pela classe mais geral, mas em compensao, as
operaes definidas na classe mais geral tambm se aplicam classe especializada, o que
permite reaproveitamento de cdigo.
Polimorfismo
60
Lgica de Programao
Muito provavelmente em alguns dos primeiros programas estruturados que criamos nos
deparamos com uma pequena dvida: ...ser que eu poderia criar um procedimento em que o
nmero de parmetros modificasse em tempo de execuo?. A questo anterior na verdade que
saber se possvel criar uma operao que mude seu cdigo em tempo de execuo. Esse tipo
de questionamento o princpio do polimorfismo. Ou seja, fazer a mesma coisa de vrias formas
ou de forma diferente (poli = muito; morfismo = formas).
A grande vantagem de serem permitidas implementaes de polimorfismo a flexibilidade. Por
exemplo: Levando em considerao o desenho abaixo Um Aluno comunica-se com o Setor de
Matrculas podemos entender que um Aluno pode solicitar a realizao de sua matrcula, em um
determinado curso ou disciplinas, para o Setor de Matrculas. Contudo, a forma com que sua
matrcula vai se realizar vai depender do nvel de ensino do curso em que ele quer se matricular:
extenso, especializao, graduao, etc.
61
Lgica de Programao
Extensibilidade Dizemos que quanto maior for a extensibilidade do software, maior ser sua
capacidade em adequar-se as especificaes definidas pelos analistas.
Reutilizao A capacidade de se otimizar a produtividade do programador depende diretamente
da maneira como o software disponibiliza a reutilizao do cdigo gerado. De fato, a maioria dos
programadores profissionais j reutiliza cdigos criados, porm a perfeita reutilizao consiste na
utilizao COMPLETA de um cdigo gerado para algum sistema SEM qualquer outra adaptao
prvia.
Exerccios
Descrever os atributos de uma classe Pessoa.
Descrever os atributos de uma classe Carro.
Descrever os atributos de uma classe ContaCorrente.
Descrever os mtodos de uma classe Pessoa.
Descrever os mtodos de uma classe Carro.
Descrever os mtodos de uma classe ContaCorrente.
62
Lgica de Programao
Unidade 12 -
Exerccios de Fixao
1.
2.
final.
3.
Escreva um algoritmo para calcular o valor de y como funo de x, segundo a
funo y(x)=3x+2, num domnio real.
4.
Escreva um algoritmo para efetuar a leitura de um nmero inteiro e apresentar o
resultado do quadrado deste nmero.
5.
Escreva um algoritmo para ler dois nmeros quaisquer, calcular a soma deles e
aps mostrar os nmeros lidos e o resultado da soma precedido da palavra "Resultado:".
6.
Escreva um algoritmo para ler dois nmeros quaisquer, dividir o primeiro pelo
segundo. Mostrar os nmeros lidos e o resultado calculado.
7.
Escreva um algoritmo para ler trs nmeros quaisquer e calcular a mdia aritmtica
entre eles. Escrever os nmeros lidos e a mdia calculada.
8.
Escreva um algoritmo para ler dois inteiros (variveis OP1 e OP2) e efetuar as
operaes de adio, subtrao, multiplicao e diviso de OP1 por OP2 apresentando ao
final os quatro resultados obtidos.
9.
Escreva um algoritmo para ler dois inteiros (variveis OP1 e OP2) e imprimir o
resultado do quadrado da diferena do primeiro valor pelo segundo.
10.
Escreva um algoritmo para ler dois nmeros. Multiplicar o primeiro por 4 e o
segundo por 6. Calcule a mdia aritmtica dos resultados obtidos. Escrever os valores lidos,
os calculados e a mdia aritmtica.
11.
Escreva um algoritmo para ler os seguintes nmeros: OP1, OP2 e OP3. Aps,
calcular o valor de RESULTADO segundo a expresso:
12.
13.
Escreva um algoritmo para calcular e escrever o consumo mdio de um automvel
(medido em Km/l), fornecida a distncia total percorrida e o volume do combustvel
consumido para percorr-la (medido em litros).
14.
Escreva um algoritmo para calcular a mdia de quatro nmeros inteiros e exibir o
resultado final.
15.
Faa um algoritmo que leia trs notas de um aluno e calcule e escreva a mdia final
deste aluno. Considerar que a mdia ponderada e que os pesos das notas so 2, 3 e 5,
respectivamente.
16.
63
Lgica de Programao
17.
Escreva um algoritmo que efetue e clculo do salrio lquido de um professor. Para
fazer este programa voc dever possuir alguns dados, tais como: valor da hora aula,
nmero de aulas dadas no ms e percentual de desconto do INSS. Em primeiro lugar, devese estabelecer qual ser o seu salrio bruto para efetuar o desconto e ter o valor do salrio
lquido. Ao final do algoritmo deve ser mostrado o salrio bruto e o salrio lquido do
professor.
18.
Faa um algoritmo que calcule a mdia ponderada de um aluno, a partir de suas 3
notas obtidas no curso, sabendo-se que a primeira avaliao tem peso 2, a segunda tem
peso 4 e a terceira tem peso 4. Mostre, ao final, a mensagem : A MEDIA FINAL DE ... FOI
... . Informar tambm se o aluno foi aprovado, mostrando a mensagem APROVADO caso
a nota final seja maior ou superior a 7,0.
19.
operao de soma
operao de subtrao
operao de multiplicao
operao de diviso
21.
Dados 3 valores A, B, C, verifique se podem ser valores de lados um tringulo e, se
for, determine se o tringulo equiltero, issceles ou escaleno.
22.
Sejam 3 nmeros distintos A, B, C. Coloque-os em ordem crescente, utilizando
seleo encadeada (ou aninhada).
23.
Faa um programa que l dois valores, o primeiro servindo de indicador de
operao e o segundo correspondendo ao raio de uma circunferncia. Caso o primeiro valor
lido seja igual a 1, calcular e imprimir a rea desta circunferncia. Se o valor lido for 2,
calcular e imprimir o permetro da circunferncia. E se o valor lido for diferente destes dois
valores, imprimir uma mensagem dizendo que o indicador de operao foi mal fornecido.
24.
Uma loja fornece 5% de desconto para funcionrios e 10% de desconto para
clientes especiais. Faa um programa que calcule o valor total a ser pago por uma pessoa. O
programa dever ler o valor total da compra efetuada e um cdigo que identifique se o
comprador um cliente comum ou um dos dois tipos de clientes que recebem desconto.
25.
Construa um programa que receba os nomes de 5 clientes de uma loja e o valor
(em reais) que cada um destes clientes pagou por sua compra. O programa dever informar:
a)
o
valor
total
pago
pelos
5
b)
o
valor
da
compra
mdia
c) nome dos clientes que efetuaram compras superiores a
d) o nmero de clientes que efetuaram compras inferiores a 50 reais.
clientes;
efetuada;
20 reais;
64
Lgica de Programao
26.
A partir do preo vista de um determinado produto, calcular o preo total a pagar e
o valor da prestao mensal, referentes ao pagamento parcelado. Se o pagamento for
parcelado em trs vezes dever ser dado um acrscimo de 10% no total a ser pago. Se for
parcelado em 5 vezes, o acrscimo de 20%.
27.
O departamento que controla o ndice de poluio do meio ambiente fiscaliza 3
grupos de indstrias que so altamente poluidoras do meio ambiente. O ndice de poluio
aceitvel varia de 0.05 at 0.25. Se o ndice sobe para 0.3 as indstrias do 1 grupo so
intimadas a suspenderem suas atividades; se o ndice sobe para 0.4, as do 1 e do 2 grupos
so intimadas a suspenderem suas atividades; e se o ndice sobe para 0.5, todos os trs
grupos devem ser notificados a paralisarem suas atividades. Escreva um programa que l o
ndice de poluio medido e emite a notificao adequada aos diferentes grupos de
empresas.
28.
Faa um programa que l 4 valores I, A, B e C onde I um nmero inteiro e positivo
e A, B, e C so quaisquer valores reais. O programa deve escrever os valores lidos e:
a) se I = 1, escrever os trs valores A, B e C em ordem crescente;
b) se I = 2, escrever os trs valores A, B e C em ordem decrescente;
c) se I = 3, escrever os trs valores A, B, e C de forma que o maior valor fique entre os
outros dois;
d) se I no for um dos trs valores acima, dar uma mensagem indicando isto.
29.
Fazer um programa para imprimir o conceito de um aluno, dada a sua nota. Supor
notas inteiras somente. O critrio para conceitos o seguinte:
nota
inferiores
nota de 3 a 5 - conceito D
notas
6
notas
8
nota 10 - conceito A
a
e
e
3
7
9
conceito
conceito
conceito
E
C
B
30.
Elabore um algoritmo que verifique se um dado nmero inteiro positivo PAR ou
MPAR.
31.
Escreva um algoritmo que leia um nmero n (nmero de termos de uma progresso
aritmtica), a1 (o primeiro termo da progresso) e r (a razo da progresso) e escreva os n
termos desta progresso, bem como a soma dos elementos.
32.
soma:
65
Lgica de Programao
35.
Faa um algoritmo que mostre os conceitos finais dos alunos de uma classe de 75
alunos, considerando:
i.
ii.
de 5,0 a 6,9
de 7,0 a 8,9
de 9,0 a 10,0
36.
Foi feita uma estatstica nas 20 principais cidades brasileiras para coletar dados
sobre acidentes de trnsito. Foram obtidos os seguintes dados:
b.
cdigo da cidade
c.
d.
e.
Deseja-se saber:
i.
ii.
iii.
Lgica de Programao
42.
Leia oito elementos de um vetor A. Construa um vetor B de mesma dimenso com
os elementos do vetor A multiplicados por trs. Apresente o vetor B.
43.
Leia dois vetores A e B com quinze elementos cada. Construa um vetor C, sendo
este a juno dos dois vetores. Desta forma, C dever ter o dobro de elementos de A e B.
44.
Leia vinte elementos de um vetor A e construa um vetor B de mesma dimenso com
os mesmos elementos de A, sendo que estes devero estar invertidos, ou seja, o primeiro
elemento de A passa a ser o ltimo de B. O segundo elemento de A passa a ser o penltimo
de B e assim por diante. Apresente os dois vetores.
45.
Leia doze elementos de um vetor coloc-los em ordem decrescente e apresente os
elementos ordenados.
46.
Leia um vetor A com doze elementos. Aps sua leitura, coloque os seus elementos
em ordem crescente. Depois leia um vetor B tambm com doze elementos. Coloque os
elementos de B em ordem crescente. Construa um vetor C, onde cada elemento de C a
soma do elemento correspondente de A com B. Apresente os valores de C.
47.
Escreva uma matriz que leia uma matriz M(6,6) e calcule as somas das partes
indicadas:
a.
b.
c.
d.
a.
b.
c.
d.
e.
67
Lgica de Programao
68