Você está na página 1de 18

Algoritmos e Fundamentos de uma Linguagem de Programao Prof.

Eduardo 1

1 INTRODUO AOS ALGORITMOS

Desde o incio de sua existncia, o homem procurou criar mquinas que o auxiliassem em seu
trabalho, diminuindo esforo e economizando tempo. Dentre essas mquinas, o computador vem se
mostrando uma das mais versteis, rpidas e seguras.
Como j vimos no incio das nossas aulas, a tecnologia atual de computadores est baseada na
construo de equipamentos formados por circuitos eletrnicos, cabos e fontes de alimentao que so
precisos na identificao distinta entre dois tipos de sinais eltricos, caracterizados pela passagem de
corrente eltrica em um sentido, ou no seu sentido inverso. Por isso, os computadores representam dados e
operaes por meio de dois smbolos, constituindo a linguagem binria, usualmente descrita com 0 e 1 (zero
e um).
A seqncia descritiva de um conjunto de smbolos (0 e 1) em linguagem de binria, tambm
chamada de linguagem de mquina, pode representar dados e/ou operaes a serem executadas pelo
computador. Cada um dos smbolos existentes neste conjunto chamado de bit (a menor unidade de
armazenamento de dados), onde a juno de oito bits forma o conhecido byte. Por exemplo:

O conjunto de smbolos representado no exemplo acima pode estar descrevendo, em linguagem de
mquina, um simples dado a ser armazenado na memria do computador ou ainda uma operao a ser
realizada por este (por exemplo, uma adio entre dois valores numricos), onde seu resultado ser
armazenado pelo computador.
A utilizao desta linguagem permite ao computador realizar o armazenamento e a manipulao dos
dados entre os diversos dispositivos eletrnicos que o compe. Suponha a necessidade do armazenamento
de dois valores numricos a serem somados (operao aritmtica de adio entre eles), para na seqncia ser
apresentado o resultado desta operao (resultado da adio).


Primeiramente, o computador necessitar armazenar estes dois valores numricos, quando estes lhe
forem informados. Em seguida, ele efetuar a operao de adio entre os valores, armazenando o seu
resultado, que posteriormente poder ser apresentado ao usurio (pessoa que utiliza o computador).
Mas para que isto acontea, precisamos desenvolver a lgica humana e computacional, ou seja, as
instrues passadas ao computador, atravs dos programas, so passadas da linguagem de programao para
a linguagem de mquina. O nossa tarefa aqui desenvolver o algoritmo e codific-lo em uma linguagem de
programao.
Portanto, o computador pode auxili-lo em qualquer tarefa. consciente, trabalhador, possui muita
energia, mas no tem iniciativa, nenhuma independncia, no criativo nem inteligente, por isso precisa
receber instrues nos mnimos detalhes.
A finalidade de um computador receber, manipular e armazenar dados. Visto somente como um
gabinete composto de circuitos eletrnicos, cabos e fontes de alimentao, certamente ele parece no ter
nenhuma utilidade. O computador s consegue armazenar dados em discos, imprimir relatrios, gerar
grficos, realizar clculos, entre outras funes, por meio de programas. Portanto, sua finalidade principal
realizar a tarefa de processamento de dados, isto , receber dados por um dispositivo de entrada (por
exemplo, teclado, mouse, scanner, entre outros), realizar operaes com esses dados e gerar uma resposta
que ser expressa em um dispositivo de sada (por exemplo, impressora, monitor de vdeo, entre outros).
Assim, um computador possui duas partes diferentes que trabalham juntas: o hardware, composto
pelas partes fsicas, e o software, composto pelos programas.
Quando queremos criar ou desenvolver um software para realizar determinado tipo de
processamento de dados, devemos escrever um programa ou vrios programas interligados. No entanto, para
que o computador compreenda e execute esse programa, devemos escrev-lo usando uma linguagem que
tanto o computador quanto o criador de software entendam. Essa linguagem chamada de linguagem de
programao.
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 2

As etapas para o desenvolvimento de um programa so:
Anlise Nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o
processamento e os dados de sada.
Algoritmo Ferramentas do tipo descrio narrativa, fluxograma ou portugus estruturado so
utilizadas para descrever o problema com suas solues.
Codificao O algoritmo transformado em cdigos da linguagem de programao escolhida para
se trabalhar.


Portanto, um programa a codificao de
um algoritmo em uma linguagem de programao.


2 - NOES DE LGICA

Caractersticas computacionais da Lgica consistem em um esquema sistemtico que define as
interaes de sinais no equipamento automtico do processamento de dados, ou computador cientfico com
critrio e princpios formais de raciocnio e pensamento. (Manzano, 2000, p.3).
Uma definio no to computacional de lgica seria: a cincia que estuda as leis e critrios de
validade que regem o pensamento e a demonstrao, ou seja, a cincia de princpios formais do raciocnio
(Manzano, 2000, p.3).
O uso da lgica para alguns profissionais essencial e inseri um ponto divisor entre estes indivduos,
principalmente naqueles da subrea de Programao. Observe, por exemplo, a simples constatao lgica
proposta no exemplo abaixo:
Hoje sbado.
Todo sbado que no feriado tem aula.
Hoje no feriado.
Logo, hoje tem aula.
(uma concluso lgica)


No exemplo acima os dados conhecidos (fatos) so que hoje sbado e que no feriado, alm de que todo
sbado tem aula, menos nos feriados. Assim, possvel concluir que hoje tem aula.

A palavra lgica relaciona-se com a idia de racionalidade e coerncia.
Exemplo:
Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele
mesmo e mais uma das trs cargas que so: um lobo, um bode e um mao de alfafas. Observe as leis
naturais: o lobo carnvoro e o bode herbvoro. O que o homem deve fazer para conseguir atravessar o
rio sem perder suas cargas.
O Homem leva o bode da margem 1 para a margem 2.
O Homem navega da margem 2 para a margem 1.
O Homem leva o lobo da margem 1 para a margem 2.
O Homem leva o bode da margem 2 para a margem 1.
O Homem leva a alfafa da margem 1 para a margem 2.
O Homem navega da margem 2 para a margem 1.
O Homem leva o bode da margem 1 para a margem 2.
Algumas definies:
o "a lgica a arte de bem pensar"
o "a lgica a cincia das formas do pensamento"
o "a lgica nos ensina a colocar ordem no pensamento"


Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 3

Exemplo:
o Nova Andradina uma cidade do estado de Mato Grosso do Sul.
o Asdrbal nasceu em Nova Andradina.
o Portanto, Asdrbal Sul-matogrossense.
A lgica no dia-a-dia
o Quando queremos escrever, falar ou agir corretamente, precisamos colocar ordem no
pensamento, isto , utilizar a lgica.
o Exemplo 1:
O guarda-roupa est fechado.
O terno est dentro do guarda-roupa.
Preciso primeiro abrir o guarda-roupa, para depois pegar o terno.
A lgica de programao
o Em que consiste?
A lgica de programao consiste no uso correto das leis do pensamento, da "ordem da razo", de
processos de raciocnio e de simbolizao formal na programao de computadores.
o Qual o objetivo?
Permitir a resoluo de problemas especficos com solues de boa qualidade.
o O raciocnio lgico pode ser expresso atravs de vrias linguagens:
no contexto humano - utiliza-se a palavra escrita/falada que, por sua vez, se baseia
num determinado idioma, mas, independente do idioma, tem-se o mesmo raciocnio.
no contexto computacional - utilizam-se as linguagens de programao
o Vamos utilizar uma forma de representao mais genrica (livre de detalhes computacionais)
e que traduza mais fielmente o raciocnio da lgica de programao: ALGORITMOS
o Ento ...
O objetivo da lgica de programao a construo de algoritmos corretos e vlidos.

O estudo na rea de Informtica, mas especificamente na subrea de Programao, no tem o
objetivo de ensinar ningum a pensar, pois todas as pessoas normais j desenvolveram esta habilidade
durante o seu processo de evoluo (criana jovem adulto velho). Porm, seu principal objetivo
apresentar, desenvolver e aperfeioar o raciocnio lgico possvel de ser implementado em computadores e
utilizados por seus usurios.

Veja os exemplos... Deseja-se escrever um algoritmo, usando portugus coloquial, para resolver um
problema bastante simples, qual seja: trocar uma lmpada queimada por uma lmpada nova no queimada e
o outro para fazer um sanduche de queijo.

Exemplo1: Trocar uma lmpada queimada
Algoritmo 1.1 - Trocar uma lmpada queimada
pegar uma escada;
posicionar a escada debaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada queimada;
colocar lmpada nova;

Reexaminando o algoritmo 1.1, notamos que ele tem um objetivo bem definido:
trocar uma lmpada queimada. Porm o algoritmo no atingir seu objetivo se a lmpada nova estiver
queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva).

Algoritmo 1.2 - Trocar uma lmpada queimada (uso de teste condicional)
pegar uma escada;
posicionar a escada debaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada queimada;
colocar lmpada nova;
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 4

se a lmpada nova no acender, ento:
o retirar a lmpada queimada;
o colocar lmpada nova;
o se a lmpada nova no acender, ento:
retirar a lmpada queimada;
colocar a lmpada nova;
se a lmpada nova no acender, ento:
retirar a lmpada queimada;
colocar a lmpada nova;
. . .
at quando????

O Algoritmo 1.2 no est terminado. As aes cessaro quando conseguirmos colocar uma lmpada que
acenda (objetivo do algoritmo). Ao invs de reescrevermos vrias vezes um conjunto de aes podemos,
alterar o fluxo seqencial de execuo para permitir que aes sejam re-executadas quantas vezes forem
necessrias. Precisamos expressar essa repetio (estrutura de repetio) garantindo uma condio de
parada.

Algoritmo 1.3 - Trocar uma lmpada queimada (uso de estruturas de repetio)
pegar uma escada;
posicionar a escada debaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada queimada;
colocar lmpada nova;
enquanto lmpada nova no acender, faa
retirar a lmpada queimada;
colocar lmpada nova;


3 CONCEITO DE ALGORITMO E ESTRUTURAS DE DADOS

especificao da seqncia ordenada de passos que deve ser seguida para a realizao de uma
tarefa, garantindo a sua repetibilidade, d-se o nome de algoritmo.

A seguir alguns conceitos de algoritmos segundo autores da nossa bibliografia:

Algoritmo uma sequncia de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999)
Algoritmo uma sequncia finita de instrues ou operaes cuja execuo, em tempo finito, resolve um
problema computacional, qualquer que seja sua instncia. (SALVETTI, 1999)
Algoritmo so regras formais para a obteno de um resultado ou da soluo de um problema, englobando
frmulas de expresses aritmticas. (MANZANO, 1997)
Ao um acontecimento que, a partir de um estado inicial, aps um perodo de tempo finito, produz um
estado final previsvel e bem definido. Portanto, um algoritmo a descrio de um conjunto de comandos
que, obedecidos, resultam numa sucesso finita de aes. (FARRER, 1999)
Informalmente, um algoritmo qualquer procedimento computacional bem definido que toma algum valor
ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como sada. Portanto, um
algoritmo uma sequncia de passos computacionais que transformam a entrada na sada. (CORMEN,
2002)

Tambm podemos visualizar um algoritmo como uma ferramenta para resolver um problema
computacional bem especificado. O enunciado do problema especifica em termos gerais o relacionamento
entre a entrada e a sada desejada. O algoritmo descreve um procedimento computacional especfico para se
alcanar esse relacionamento da entrada com a sada.

Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 5

Uma estruturas de dados um meio para armazenar e organizar dados com o objetivo de facilitar o
acesso e as modificaes. (CORMEN, 2002)

Na Cincia da Computao, uma estrutura de dados um modo particular de armazenamento e
organizao de dados em um computador de modo que possam ser usados eficientemente. (WIKIPDIA,
2010).


Para que um computador possa desempenhar uma tarefa
necessrio que esta seja detalhada passo a passo, numa forma
compreensvel pela mquina, utilizando aquilo que se chama de
programa. Neste sentido, um programa de computador nada mais
que um algoritmo escrito numa forma compreensvel pelo
computador.



3.1 Mtodo para a construo de qualquer algoritmo

Para a construo de qualquer tipo de algoritmo, necessrio seguir estes passos:
Definir o processamento, ou seja, quais clculos sero efetuados e quais as restries para esses
clculos.
Definir os dados de sada, ou seja, quais dados sero gerados.
Definir os dados de entrada, ou seja, quais dados sero fornecidos.
Construir o algoritmo utilizando um dos tipos.
Compreender completamente o problema a ser resolvido, destacando os objetos que o compem.
Testar o algoritmo realizando simulaes.


4 TIPOS DE ALGORITMOS

Os trs tipos mais utilizados de algoritmos so: descrio narrativa, fluxograma e pseudocdigo ou
portugol.


4.1 Descrio narrativa

A descrio narrativa consiste em analisar o enunciado do problema e escrever, utilizando uma
linguagem natural (por exemplo, a lngua portuguesa), os passos a serem seguidos para sua resoluo.
Vantagem: no necessrio aprender nenhum conceito novo, pois uma lngua natural, neste ponto, j bem
conhecida.
Desvantagem: a lngua natural abre espao para vrias interpretaes, o que posteriormente dificultar a
transcrio desse algoritmo para programa.

Exemplo:
Algoritmo para somar trs nmeros

Receber os trs nmeros. (passo1)
Somar os trs nmeros. (passo2)
Mostrar o resultado obtido. (passo 3)


4.2 - Fluxograma

O fluxograma consiste em analisar o enunciado do problema e escrever, utilizando smbolos grficos
predefinidos, os passos a serem seguidos para sua resoluo.

Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 6

Vantagem: o entendimento de elementos grficos mais simples que o entendimento de textos.
Desvantagem: necessrio aprender a simbologia dos fluxogramas e, alm disso, o algoritmo resultante no
apresenta muitos detalhes, dificultando sua transcrio para um programa.

Smbolos utilizados:

Exemplo:
Algoritmo para multiplicar dois nmeros



4.3 - Pseudocdigo ou Portugol

O Pseudocdigo ou Portugol o tipo que utilizaremos para as solues dos exerccios das nossas
aulas e consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos s
serem seguidos para sua resoluo.
Vantagem: a passagem do algoritmo para qualquer linguagem de programao quase imediata, bastando
conhecer as palavras reservadas dessa linguagem que sero utilizadas.
Desvantagem: necessrio aprender as regras do pseudocdigo.
Exemplo:
Algoritmo para dividir dois nmeros

algoritmo dividir
declarao de variveis
inteiro numero1,numero2;
incio
escreva(Digite o primeiro nmero: );
leia(numero1);
escreva(Digite o segundo nmero: );
leia(numero2);
se(numero2 = 0)
ento
escreva(Impossvel dividir);
fim se
seno
resultadonumero1/numero2;
escreva(A diviso : , resultado);
fim seno
fim_algoritmo
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 7

Exerccios:

1 Faa um algoritmo em descrio narrativa para:
a) Ir para a escola (ou universidade).
b) Sacar dinheiro no caixa eletrnico.

2 Faa um algoritmo em fluxograma para mostrar o resultado da diviso de dois nmeros.


5 CONCEITO DE VARIVEL

Um algoritmo, e posteriormente, um programa, recebem dados, que precisam ser armazenados no
computador para serem utilizados no processamento. Esse armazenamento feito na memria.
Assim, uma varivel representa uma posio de memria. Possui nome e tipo e seu contedo pode
variar ao longo do tempo, durante a execuo de um programa. Embora uma varivel possa assumir
diferentes valores, ela s pode armazenar um valor a cada instante.


6 TIPOS DE DADOS

Definem os tipos de informaes a serem processadas. Os tipos de dados mais utilizados so:
numricos e literais ou caracteres.

Numricos: inteiros e reais
Inteiros podem ser positivos ou negativos e no possuem parte fracionria.
Exemplo: 15 irmos, -2 graus.

Real - podem ser positivos ou negativos e possuem parte fracionria.
Exemplo: 1.73 de altura, 3.5 litros.

Literais ou Caracteres
So dados formados por um nico caractere ou por uma cadeia de caracteres. Esses caracteres podem
ser as letras e os nmeros (no podem ser usados para clculos).
Exemplo: aluno, 12345.


7 FORMAO DE IDENTIFICADORES

Os identificadores so os nomes das variveis, dos programas, das constantes, das rotinas etc. As
regras bsicas so:
Os caracteres que voc pode utilizar so: os nmeros, as letras maisculas, as letras minsculas e o
caractere sublinhado.
O primeiro caractere deve ser sempre uma letra ou caractere sublinhado.
No so permitidos espaos em branco e caracteres especiais (@,$,+,-,%,!).
No podemos usar palavras reservadas nos identificadores, ou seja, palavras que pertenam a uma
linguagem de programao.

Exemplos:
Vlidos
A
a
nota
numero_1
x4
No vlidos
5b por comear com nmero
E 39 por conter espao em branco
Case por ser palavra reservada

Exerccio: defina os identificadores abaixo se so vlidos ou no vlidos, neste caso justifique:
a) dia b) prova 2 c) idade_1 d) 4y
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 8

8 ESTRUTURA SEQUENCIAL

algoritmo Nome_do_algoritmo
declarao de variveis
variveis
inicio
bloco de comandos;
fim_algoritmo


8.1 Declarao de variveis

As variveis so declaradas aps a palavra declarao de variveis e os tipos mais utilizados so:
numrico (inteiro ou real) e literal (caracteres).
Exemplo:
inteiro x;
real y;
literal i;


8.2 Comando de atribuio

O comando de atribuio utilizado para conceder valores ou operaes a variveis, sendo
representado pelo smbolo .
Exemplo:
x 4;
y 2.5;
i A;


8.3 Comando de Entrada

O comando de entrada utilizado para receber dados digitados pelo usurio, que sero armazenados
em variveis. Esse comando representado pela palavra leia.
Exemplo:
leia(x);
Um valor digitado pelo usurio ser armazenado na varivel x.


8.4 Comando de sada

O comando de sada utilizado para mostrar dados na tela. Esse comando representado pela
palavra escreva, e os dados podem ser contedos de variveis ou mensagens.
Exemplo:
escreva(x);
Mostra o valor armazenado na varivel x.
escreva(Contedo de Y: ,y);
Mostra a mensagem Contedo de Y: e em seguida o valor armazenado na varivel y.









Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 9

Exerccio resolvido:
1 Faa um algoritmo que receba dois nmeros inteiros, calcule e mostre a soma desses nmeros.

algoritmo Somar
declarao de variveis
inteiro num1,num2,soma;
incio
escreva(Digite o nmero 1: );
leia(num1);
escreva(Digite o nmero 2: );
leia(num2);
somanum1+num2;
escreva(Resultado: ,soma);
fim_algoritmo

Exerccios:
1 Faa um algoritmo que receba trs notas e seus respectivos pesos, calcule e mostre a mdia ponderada.

2 Faa um programa que receba o salrio de um funcionrio e o percentual de aumento, calcule e mostre o
valor do aumento e o novo salrio.

3 O custo ao consumidor de um carro novo a soma do preo de fbrica com o percentual de lucro do
distribuidor e dos impostos aplicados ao preo de fbrica. Faa um programa que receba o preo de fbrica
de um veculo, o percentual de lucro do distribuidor e o percentual de impostos, calcule e mostre:
a) o valor correspondente ao lucro do distribuidor;
b) o valor correspondente aos impostos;
c) o preo final do veculo.

4 Faa um programa que calcule e mostre a rea de um tringulo. Sabe-se que: A=(base*altura)/2.

5 Faa um programa que calcule e mostre a rea de um crculo. Sabe-se que: .
6 Faa um programa que receba um nmero positivo e maior que zero, calcule e mostre:
a) o nmero digitado ao quadrado;
b) o nmero digitado ao cubo;
c) a raiz quadrada do nmero digitado;

7 Faa um programa que receba a medida do ngulo formado
por uma escada apoiada no cho e encostada na parede e a altura
da parede onde est a ponta da escada, calcule e mostre a medida
desta escada.

8 Uma pessoa deseja pregar um quadro em uma parede. Faa
um programa para calcular e mostrar a que distncia a escada deve estar da parede. A pessoa deve fornecer o
tamanho da escada e a altura em que deseja pregar o quadro.
Lembre-se de que o tamanho da escada deve ser maior que a altura que se deseja alcanar.

X Altura em que deseja pregar o quadro
Y Distncia em que dever ficar a escada
Z Tamanho da escada



9 - Faa um programa que receba o salrio base de um funcionrio, calcule e mostre o salrio a receber,
sabendo-se que o funcionrio tem gratificao de 5% sobre o salrio base e paga imposto de 7% sobre este
salrio.

Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 10

10 Sabe-se que o quilowatt de energia custa um quinto do salrio mnimo. Faa um programa que receba o
valor do salrio mnimo e a quantidade de quilowatts consumida por uma residncia, calcule e mostre:
a) o valor de cada quilowatt;
b) o valor a ser pago por essa residncia;
c) o valor a ser pago com desconto de 15%.



9 ESTRUTURA CONDICIONAL

Este tipo de estrutura utilizada para representar o desvio no fluxo normal de um programa, ou seja,
utilizada para indicar que deve ser tomada uma deciso, apontando a possibilidade de desvios.
O teste lgico segue a seguinte estrutura (ou fluxo):




9.1 Estrutura Condicional Simples

se(condio)
ento
comando;

O comando s ser executado se a condio for verdadeira. Uma condio uma comparao que
possui dois valores possveis: verdadeiro ou falso.

se(condio)
ento incio
comando1;
comando2;
comando3;
fim se

Os comandos 1, 2 e 3 s sero executados se a condio for verdadeira. As palavras incio e fim se
sero necessrias apenas quando dois ou mais comandos forem executados.


Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 11

9.2 - Estrutura Condicional Composta



se(condio)
ento comando1;
seno comando2;

Se a condio for verdadeira, ser executado o comando1; caso contrrio, ser executado o
comando2.


se(condio)
ento incio
comando1;
comando2;
fim se
seno incio
comando3;
comando4;
fim seno

Se a condio for verdadeira, o comando1 e o comando2 sero executados, caso contrrio, o comando3 e o
comando4 sero executados.


9.3 Operadores Condicionais ou Relacionais

Os operadores condicionais ou relacionais so operadores binrios que devolvem os valores lgicos
verdadeiro e falso.

Sinal Funo
= Igual
!= Diferente
> Maior que
>= Maior que ou igual a
< Menor que
<= Menor que ou igual a
Estes valores so somente usados quando se deseja efetuar comparaes. Comparaes s podem ser
feitas entre objetos de mesma natureza, isto variveis do mesmo tipo de dado. O resultado de uma
comparao sempre um valor lgico
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 12

9.4 Operadores Lgicos

Os operadores lgicos ou booleanos so usados para combinar expresses relacionais. Tambm
devolvem como resultado valores lgicos verdadeiro ou falso.

Tabela E Tabela OU
V e V = V V ou V = V
V e F = F V ou F = V
F e V = F F ou V = V
F e F = F F ou F = F

Uma expresso relacional ou lgica retornar falso para o valor lgico falso e verdadeiro para o
valor lgico verdade.
Fornecendo dois valores ou expresses lgicas, representadas por expresso1 e expresso2,
podemos descrever as operaes lgicas a seguir:

expresso1 E expresso2 verdadeiro somente se ambas, expresso1 e expresso2, forem verdadeiras. Se
uma for falsa, ou se ambas forem falsas, a operao E tambm ser falsa.

expresso1 OU expresso2 verdadeiro se tanto a expresso1 como a expresso2 forem verdadeiras. As
operaes OU s resultam em valores falsos se ambas, expresso1 e expresso2, forem falsas.

Exerccio resolvido
1 Faa um algoritmo que receba duas notas de aluno, calcule e mostre a mdia aritmtica das notas e a
mensagem de Aprovado, se a mdia obtida for maior ou igual a 6.0 ou, caso contrrio, Reprovado.

algoritmo media
declarao de variveis
real n1,n2,media;
incio
escreva(Digite a nota 1: );
leia(n1);
escreva(Digite a nota 2: );
leia(n2);
media(n1+n2)/2;
se(media >= 6)
escreva(Aprovado);
seno
escreva(Reprovado);
fim_algoritmo

Exerccios:
1 Uma agncia de empregos precisa de um programa para analisar as caractersticas dos candidatos e
determinar as suas funes, conforme a tabela abaixo:
IDADE SEXO FUNO
At 30 anos M Guia Turstico
Mais que 30 anos M Gerente Administrativo
At 40 anos F Recepcionista
Mais que 40 anos F Gerente de Compras

2 A nota final de um estudante calculada a partir de trs notas atribudas, respectivamente, a um trabalho
de laboratrio, a uma avaliao semestral e a um exame final. A mdia das trs notas mencionadas obedece
aos pesos a seguir:
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 13


Faa um programa que receba as trs notas, calcule e mostre a mdia ponderada e o conceito que
segue a tabela:

3 Faa um programa que receba um nmero inteiro e verifique se par ou impar.

4 Criar um programa para criar um menu de opes na tela, assim:

De acordo com a opo desejada, leia os dados necessrios para calcular a
rea da respectiva opo.
Mostrar a rea calculada.

5 Uma agncia bancria possui dois tipos de investimentos, conforme o quadro a seguir. Faa um programa
que receba o tipo de investimento e o valor do investimento e que calcule e mostre o valor corrigido de
acordo com o tipo de investimento.



6 - Faa um programa que receba a altura e o sexo de uma pessoa e que calcule e mostre o seu peso ideal,
utilizando as seguintes frmulas:


7 - Um supermercado deseja reajustar os preos de seus produtos usando o seguinte critrio: o produto
poder ter seu preo aumentado ou diminudo. Para o preo ser alterado, o produto deve preencher pelo
menos um dos requisitos a seguir:
VENDA MDIA
MENSAL
PREO ATUAL % DE AUMENTO % DE DIMINUIO
< 500 < R$ 30,00 10 -
>= 500 E < 1200 >= R$ 30,00 e < R$ 80,00 15 -
>= 1200 >= 80,00 - 20

8 - Faa um programa que apresente o menu a seguir, permita ao usurio escolher a opo desejada, receba
os dados necessrios para executar a operao e mostre o resultado. Verifique a possibilidade de opo
invlida e no se preocupe com restries, como salrio negativo.

Menu de opes
1. Imposto
2. Novo salrio
3. Classificao
Digite a opo desejada.
1 Quadrado
2 Retngulo
3 Tringulo
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 14

Na opo 1: receber o salrio de um funcionrio, calcular e mostrar o valor do imposto usando as regras a
seguir:
SALRIO PERCENTUAL DO IMPOSTO
Menor que R$ 500,00 5%
De R$ 500,00 a R$ 850,00 10%
Acima de R$ 850,00 15%
Na opo 2: receber o salrio de um funcionrio, calcular e mostrar o valor do novo salrio, usando as regras
a seguir:
SALARIO AUMENTO
Maior que R$ 1500,00 R$ 25,00
De R$ 750,00 (inclusive) a R$ 1500,00 (inclusive) R$ 50,00
De R$ 450,00 (inclusive) a R$ 750,00 R$ 75,00
Menor que R$ 450,00 R$ 100,00
Na opo 3: receber o salrio de um funcionrio e mostrar sua classificao usando a tabela a seguir:
SALARIO CLASSIFICAO
At R$ 700,00 (inclusive) Mal remunerado
Maiores que R$ 700,00 Bem remunerado

9 - Faa um programa para resolver equaes do 2 grau.

ax
2
+ bx + c= 0
=b
2
4 * a * c
< 0 no existe raiz real
= 0 existe uma raiz real
x = (-b) / (2 * a)
> 0 existem duas razes reais
x1 = (-b + ) / (2 * a)
x2 = (-b - ) / (2 * a)



Exerccios complementares (est. Condicional)

10 - Faa um programa que receba a medida de um ngulo em graus. Calcule e mostre o quadrante em que se
localiza esse ngulo. Considere os quadrantes da trigonometria e, para ngulos maiores que 360 ou menores
que -360, reduzi-los, mostrando tambm o nmero de voltas, o sentido da volta (horrio ou anti-horrio) e
tambm se est sobre algum dos eixos.
2o. quadrante
90<ngulo<180

1o. quadrante

0<ngulo<90
3o. quadrante
180<ngulo<270
4o. quadrante
270<ngulo<360

12 - Faa um programa que receba um nico inteiro de 5 dgitos e verifique se o dgito d est presente no
nmero recebido.

13 - Efetuar a leitura de quatro nmeros inteiros e apresentar os que so divisveis por 5.

14 - Efetuar a leitura de quatro nmeros inteiros e apresentar os que so divisveis por 2 e 3.

15 - Faa um algoritmo que l o preo de uma caixa de fsforos e o preo de um isqueiro. Sabendo-se que
um isqueiro pode ser acionado 1300 vezes e que uma caixa de fsforos contm 40 palitos, escreva qual dos
recursos mais barato.
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 15

16 - Faa um algoritmo que l as dimenses A, B e C de uma sala retangular. Imagine que o piso ser
trocado e as paredes internas e externas pintadas. Leia tambm o tipo de piso a ser utilizado, bem como os
tipo de tinta a ser utilizada dentro e fora da sala. Baseado na tabela de preos abaixo, calcule o custo de
material desta reforma. Sabe-se que um litro de tinta cobre 3 m2 de parede.
Tabela de Pisos
Tipo Preo por m. quadrado
1 24.00
2 31.00
3 55.00

Tabela de Tintas
Tipo Preo por litro
1 22.00
2 47.00






FUNDAMENTOS DE LINGUAGEM DE PROGRAMAO

Uma linguagem de programao um mtodo padronizado para expressar instrues para um
computador. um conjunto de regras sintticas e semnticas usadas para definir um programa de
computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um
computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas
sob vrias circunstncias.
Portanto, um tipo de linguagem usada pelo homem para desempenhar comunicao com a
mquina, pois essa no reconhece a linguagem normal do ser humano. Para que a relao homem versus
mquina pudesse evoluir, fez-se necessrio a criao de uma linguagem que tornasse a mquina operacional.
A partir do desenvolvimento da linguagem de programao que o ser humano passou a obter grandes
resultados com a mquina. Atualmente possvel encontrar diversos tipos de linguagem de programao,
sendo as principais: Java, C, C++, C#, Php, Delphi, entre outras.

LINGUAGEM C/C++

Em nossas aulas utilizaremos a linguagem C++ para implementar nossos algoritmos. Os programas
so: Turbo C++, Code::Blocks e freecommandtools.
O C nasceu na dcada de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando
um DEC PDP-11 rodando o sistema operacional UNIX. O C derivado de uma outra linguagem: o B, criado
por Ken Thompson. O B, por sua vez, veio da linguagem BCPL, inventada por Martin Richards.
Durante alguns anos, o padro da linguagem C foi aquele fornecido com a verso 5 do sistema
operacional Unix. Com a popularizao dos microcomputadores, vrias implementaes de C foram criadas,
gerando, assim, muitas discrepncias. Para resolver tal situao, o ANSI (American National Standards
Institute) estabeleceu, em 1983, um comit para definir um padro que guiasse todas as implementaes da
linguagem C.
A linguagem C++ uma extenso da linguagem C. As instrues que fazem parte desta ltima
representam um subconjunto da primeira. Os incrementos encontrados na linguagem C++ foram feitos para
dar suporte programao orientada a objetos. A sintaxe basicamente a mesma da linguagem C.

#include <nome_da_biblioteca>
void main()
{
Bloco de comandos;
}
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 16


Bibliotecas so arquivos contendo vrias funes que podem ser incorporadas aos programas escritos
em C/C++. A diretiva #include faz com que o texto contido na biblioteca especificada seja inserido no
programa.
As bibliotecas iostream.h e conio.h permitem a utilizao de diversos comandos de entrada e sada.
importante salientar que a linguagem C/C++ sensvel as letras maisculas e minsculas,
ou seja, considera que letras maisculas so diferentes de minsculas (por exemplo, a diferente de A).
Sendo assim, todos os comandos devem, obrigatoriamente, ser escritos em letras minsculas. Portanto, o C
"Case Sensitive", isto , maisculas e minsculas fazem diferena. Se declarar uma varivel com o nome
soma ela ser diferente de Soma, SOMA, SoMa ou sOmA. Da mesma maneira, os comandos do C if e for,
por exemplo, s podem ser escritos em minsculas pois seno o compilador no ir interpret-los como
sendo comandos, mas sim como variveis.
Um programa em C++ consiste em um ou mais arquivos. Um arquivo uma poro de texto contendo
cdigo fonte em C++ e comandos do pr-processador. Em outras palavras, ele corresponde a um arquivo
fonte em um sistema tradicional. A extenso dos nomes dos arquivos fonte em C++, normalmente, ".cpp".
Quando o programa comea, ele executa o cdigo de inicializao e chama uma funo especial
main(), onde colocado o cdigo primrio para o programa
Um programa C++ mnimo consiste em:
main() { }
Este programa define a funo main, que no possui argumentos e no faz nada. As chaves, { e },
so usadas para expressar agrupamentos em C++; no exemplo anterior, estas indicam o incio e o fim do
corpo da funo (vazia) main. Cada programa em C++ deve ter uma funo main.
CARACTERSTICAS DA LINGUAGEM C/C++

Tipos de dados

Definem os tipos de informaes a serem processadas. Os tipos de dados mais utilizados so:
numricos e literais ou caracteres.
Numricos:

Algoritmo Em C++
inteiro int
real float

Literais ou Caracteres

Algoritmo Em C++
literal char

Declarao de variveis

As variveis so declaradas aps a especificao de seus tipos. Os tipos mais utilizados so:
int (inteiro)
float (real)
char (literal)


Comandos:

O comando de atribuio utilizado para conceder valores ou operaes a variveis, sendo
representado por = (sinal de igualdade).
Exemplo:
x = 4;
y = 2.5;
i = A;

Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 17

O comando de entrada utilizado para receber dados digitados pelo usurio, que sero armazenados
em variveis.
Exemplo:
cin>>x;

O comando de sada utilizado para mostrar dados na tela.
Exemplos:
cout<<x;


Alguns operadores e funes predefinidas em C++

OPERADOR EXEMPLO COMENTRI O
= x = y O contedo da varivel y atribudo varivel x. (A uma varivel pode
ser atribudo o contedo de outra, um valor constante ou, ainda, o
resultado de uma funo.
+
-
x + y
x - y
Soma o contedo de x e de y.
Subtrai o contedo de y do contedo de x.
* x * y Multiplica o contedo de x pelo contedo de y.
/ x / y Obtm o quociente da diviso de x por y.
% x % y Obtm o resto da diviso de x por y.
O operador % s pode ser utilizado com operandos do tipo inteiro.
Os operadores matemticos de atribuio so utilizados para representar de maneira sinttica uma
operao aritmtica e, posteriormente, uma operao de atribuio. Por exemplo, na tabela anterior, o operador +=
est sendo usado para realizar a operao x + y e, posteriormente, atribuir o resultado obtido varivel x.


FUNES MATEMTICAS
(utilizar a biblioteca math.h, ou seja, #include<math.h>)
FUNO EXEMPLO COMENTRI O
ceil ceil(x) Arredonda um nmero real para cima.
Ex.: ceil(3.2) 4.
floor floor(x) Arredonda um nmero real para baixo.
Ex.: floor(3.2) 3.
abs abs(x) Obtm o valor absoluto de x.
cos cos(x) Calcula o cosseno de x (x deve estar representado em radianos)
sin sin(x) Calcula o seno de x (x deve estar representado em radianos)
tan tan(x) Calcula tangente de x (x deve estar representado em radianos)
M_PI M_PI Retorna o valor de .
modf z = modf(x,&y) Decompe o nmero real armazenado em x em duas partes: y recebe a
parte fracionria e z, a parte inteira do nmero.
pow pow(x,y) Calcula a potncia de x elevado a y.
sqrt sqrt(x) Calcula a raiz quadrada de x.
(para raiz cbica de x, por exemplo, faramos x elevado a 1/3, no entanto,
1/3 deve ser indicado com 1.0/3.0 diviso entre nmeros reais, pois em
C++, 1/3 indica uma diviso entre nmeros inteiros, o que resulta um
valor inteiro, isto , 0, pois em C++, a diviso entre nmeros inteiros
sempre resulta em inteiro. Ento: = x
1/3
= pow(x,1.0/3.0)
Algoritmos e Fundamentos de uma Linguagem de Programao Prof. Eduardo 18

Exerccios resolvidos:
Faa um algoritmo que receba dois nmeros inteiros, calcule e mostre a soma desses nmeros.

#include <iostream.h>
#include <conio.h>
void main ()
{
clrscr();
int n1, n2, resultado;
cout<<\n Digite o nmero 1: :
cin>>n1;
cout<<\n Digite o nmero 2: :
cin>>n2;
resultado = n1 + n2;
cout << "\nA soma :" << resultado;
getch();
}

Faa um algoritmo que receba duas notas de aluno, calcule e mostre a mdia aritmtica das notas e a
mensagem de Aprovado, se a mdia obtida for maior ou igual a 6.0 ou, caso contrrio, Reprovado.

#include <iostream.h>
#include <conio.h>
void main ()
{
clrscr();
float n1, n2, media;
cout<<\n Digite a nota 1: :
cin>>n1;
cout<<\n Digite a nota 2: :
cin>>n2;
media = (n1 + n2)/2;
cout << "\nMdia das notas:" << media;
if(media >= 6)
cout<<"\nAPROVADO!"
else
cout<<"\nREPROVADO!"

getch();
}