Você está na página 1de 14

ALGORITMOS II

Algoritmo
O que Algoritmo?
... conjunto de comportamento que, obedecidos resultam em uma
secesso finita de aes ..., Harry Farrer
...um processo de clculo, ou de resoluo de um grupo de problemas
semelhantes..., Manzano J., Oliveira J.
Instrues com o objetivo de estabelecer um comportamento previsvel
O que Algoritmo Computacional?
Na cincia da computao (informtica) est associada a um conjunto de
regras e operaes bem definidas e ordenadas, destinadas soluo de um
problema. ou de uma classe de problemas, em um nmero finito de
passos., Manzano J., Oliveira J.
Dados + Operaes
Descrevendo Algoritmos
Linguagem Natural: Os algoritmos so expressos diretamente em
linguagem natural.
Fluxograma Convencional: Esta um representao grfica que
emprega formas geomtricas padronizadas para indicar as diversas
aes e decises que devem ser executadas para resolver o
problema.
Pseudo-linguagem: Emprega uma linguagem intermediria entre a
linguagem natural e uma linguagem de programao para descrever
os algoritmos.
Exemplo
Calcule a rea de uma mesa retangular
Clculo da rea de uma mesa.
Medir a largura da mesa e anotar o resultado.
Medir o comprimento da mesa e anotar o resultado.
Multiplicar o comprimento pela largura e anotar o resultado.
ALGORITMOS II


O valor da rea da mesa o resultado anotado no passo anterior.
Fim do clculo da rea da mesa.
Exerccio 1
Faa um algoritmo da matricula da faculdade
Escreva um algoritmo em que uma pessoas saia do trabalho e chegue
na sala de aula da faculdade
Faa a some de dois nmeros e imprima o resultado
Faa um algoritmo que um aluno perca 20 kg
Faa um algoritmo que informe a quantidade o nmero de dias para
uma data informada.
Faa um algoritmo que leia um valor N e imprimir todos os valores
inteiros entre 1 (inclusive) e N (inclusive). Considere que o N ser
sempre maior que ZERO.
Linguagem C
Caractersticas
Programas C so compilados e geram executveis
Estruturalmente mais simples e seu compilador gera cdigos mais
enxutos e velozes do que muitas linguagens
Combina elementos de linguagens de alto nvel com a funcionalidade
da linguagem assembly, permitindo a manipulao de bits, bytes e
endereos
C muito portvel, pode ser recompilado em vrias plataformas
No possui muitos tipos de dados mas permite converso de quase
todos os tipos
C uma linguagem estruturada , diviso do programa em mdulos
(funes)
C uma linguagem para programadores (criada, influenciada e
testada por programadores)
Os fabricantes de compiladores fornecem vrias bibliotecas
ALGORITMOS II


Oferece somente estruturas simples de controle de fluxos
Estrutura de um Programa C
Cabealho
Espao do programa onde informado as estruturas que sero utilizadas no
decorrer do programa. Segue abaixo as estruturas mais utilizadas:
Include: utilizado para importar funes pr-construdas localizadas
em outro arquivo;
Variveis Globais: so variveis que podem ser manipuladas em
qualquer lugar do ser programa;
Prottipos: so assinaturas das funes utilizadas no seu programa.
Exemplo
#include <stdio.h>
Int total;
Void calcular(int i, int j);
Main{

}
Variveis
A varivel o local onde se armazena informaes que sero manipuladas
pelo programa. As informaes das variveis so armazenadas em memria
e a fim de facilitar o uso delas dado um nome que representa o endereo
de memria de onde est armazenada a varivel.
As variveis podem ser globais se forem declaradas no cabealho, locais se
forem declaradas dentro de uma funo e parmetros formais se forem
declaradas como parmetros de uma funo.
Declarao Variveis
As variveis so declaradas informando seu tipo seguido do nome.
Exemplo
ALGORITMOS II


Int total;
Atribuio
Quando se precisa informar um valor para uma varivel utiliza-se o smbolo
= para fazer a referncia da atribuio.
Exemplo:
Total = 10;
Total = total + 15;
Printf
Comando utilizado para imprimir alguma informao no console.
Exemplo
Printf(Ol Mundo!);
Printf(Eu tenho %i reais, total);

Scanf
Comando utilizado para ler alguma informao do console e atribuir a uma
varivel.
Exemplo:
ALGORITMOS II


Scanf(%i, total);

Operadores

Precedncia

ALGORITMOS II


Prtica
Imprima a frase "Estou programando em C!"
Faa a Mdia aritmtica dos valores 20, 26, 32
Calcule a rea e o volume de uma esfera de Raio igual 3. Sabendo
que: A= 4 x pi x R2 e V= 4/3 x PI x R3
Escreva um programa que calcule a mdia de aproveitamento de um
aluno. O Aluno possuem trs avaliaes sendo que a Av1 possui peso
1, Av2 possui peso 3 e Av3 possui peso 2. A MA igual soma das
avaliaes levando em considerao os seus respectivos pesos
somado a mdia das notas dividindo tudo isso por 7.
Exerccio 2
Escreva um programa que leia a temperatura em Fahrenheit e calcule
o valor em Celsius e vice-versa. Segue a formula: C/5 = (F-32)/9
Escreva um programa para ler o nmero de alunos existentes em
uma turma, ler as notas destes alunos, e calcular a mdia aritmtica
destas notas.
Escreva um programa que informe a quantidade de anos existente
nos nmero de dias informado pelo usurio.
Sabendo que o preo da gasolina R$ 2,50 faa um programa que o
usurio informe a quantidade de gasolina desejada e o programa
imprima o preo final.
Faa um programa que o usurio informe o salrio do funcionrio e o
sistema informa o valor de 10% desse salrio.
O custo de um carro novo ao consumidor a soma do custo de
fbrica com a porcentagem do distribuidor e dos impostos (aplicados
ao custo de fbrica). Supondo que o percentual do distribuidor seja
de 28% e os impostos de 45%, escrever um algoritmo para ler o
custo de fbrica de um carro, calcular e escrever o custo final ao
consumidor.

Estrutura Condicional
ALGORITMOS II


As estruturas condicionais permitem tomar decises diferentes a partir de
uma condio. A condio um teste que poder retonar o valor
VERDADEIRO ou FALSO. Uma condio pode ser composta de vrios
termos, por exemplo, se a idade for maior que 18 anos e nascido no estado
da Bahia.
Estrutura
A estrutura condicional pode ser representada coforme abaixo. O IF
significa que em seguida vir o teste de uma condio, caso o resultado
seja verdadeiro o programa irpa executar os comando existentes entre {
} .
If (condio)
{
....
}
A estrutura IF possui a variao IF/ELSE onde caso o teste da condio
seja VERDADEIRO o programa ir executar o comando existente entre { }
logo abaixo. Se o resultado do teste da condio for FALSO o programa ir
executar o comando existente entre { } da estrutura ELSE.
If (condio)
{
....
}else
{
...
}
Outra variao a estrutura ELSE IF onde primeiramente testado a
condio IF, caso a execuo seja VERDADEIRA o programa ir executar o
cdigo existente entre { }, seno ir fazer um novo teste na estrutura
ELSE IF, caso no novo teste seja VERDADEIRO o programa ir executar o
cdigo existente entre { } abaixo, se o segundo teste for FALSO ser
executado o cdigo do ELSE.
ALGORITMOS II


If (condio)
{
....
}else if (codio)
{
...
}else
{
...
}
A estrutura Switch/Case utilizada para fazer diferentes teste para uma
mesma varivel. Caso o valor da varivel teste verdadeiro para algum
Case o programa ir executar o cdigo existente nesse Case. Se
nenhum Case possuir o valor da varivel o programa ir executar o cdigo
do Default.
Switch(Aux)
{
Case 1: ... break;
Case 2: ... break;
Case 3: ... break;
Default: ...
}

Prtica
Ler um valor e escrever a mensagem MAIOR QUE 10! se o valor
lido for maior que 10, caso contrrio escrever NO MAIOR QUE 10!
ALGORITMOS II


Escreva um programa que o usurio informe a tamanho dos
lados de trs tringulos e o sistema exiba se ele : isosseles,
escaleno e equiltero.
Faa um diagrama que o usurio informe 3 nmeros e o algoritmo
exiba os dois maiores nmeros.
Ler dois valores e imprimir uma das trs mensagens a seguir:
o Nmeros iguais, caso os nmeros sejam iguais
o Primeiro maior, caso o primeiro seja maior que o segundo;
o Segundo maior, caso o segundo seja maior que o primeiro.
Ler o nome de 2 times e o nmero de gols marcados na partida
(para cada time). Escrever o nome do vencedor. Caso no haja
vencedor dever ser impressa a palavra EMPATE.
Ler 3 valores (considere que no sero informados valores iguais) e
escrev-los em ordem crescente.
Exerccio 3
Escreva um algoritmo para ler o nmero total de eleitores de um
municpio, o nmero de votos brancos, nulos e vlidos. Calcular e
escrever o percentual que cada um representa em relao ao total de
eleitores.
Ler um valor e escrever se positivo ou negativo (considere o valor
zero como positivo).
As mas custam R$ 1,30 cada se forem compradas menos de uma
dzia, e R$ 1,00 se forem compradas pelo menos 12. Escreva um
programa que leia o nmero de mas compradas, calcule e escreva
o custo total da compra.
Ler as notas da 1a. e 2a. avaliaes de um aluno. Calcular a mdia
aritmtica simples e escrever uma mensagem que diga se o aluno foi
ou no aprovado (considerar que nota igual ou maior que 6 o aluno
aprovado). Escrever tambm a mdia calculada.
Ler o ano atual e o ano de nascimento de uma pessoa. Escrever uma
mensagem que diga se ela poder ou no votar este ano (no
necessrio considerar o ms em que a pessoa nasceu).
ALGORITMOS II


Ler 3 valores (considere que no sero informados valores iguais) e
escrever o maior deles.
Ler 3 valores (considere que no sero informados valores iguais) e
escrever a soma dos 2 maiores.
Ler a hora de incio e a hora de fim de um jogo de Xadrez (considere
apenas horas inteiras, sem os minutos) e calcule a durao do jogo
em horas, sabendo-se que o tempo mximo de durao do jogo de
24 horas e que o jogo pode iniciar em um dia e terminar no dia
seguinte.
Ler 3 valores (considere que no sero informados valores iguais) e
escrever o maior deles.
Ler 3 valores (considere que no sero informados valores iguais) e
escrever a soma dos 2 maiores.
Ler 3 valores (considere que no sero informados valores iguais) e
escrev-los em ordem crescente.
Ler 3 valores (A, B e C) representando as medidas dos lados de um
tringulo e escrever se formam ou no um tringulo. OBS: para
formar um tringulo, o valor de cada lado deve ser menor que a
soma dos outros 2 lados.
Faa um programa que mostre o menu abaixo, receba a opo do
usurio e os dados necessrios para executar cada operao.
o Somar dois nmeros
o Multiplicar dois nmeros
Faa um programa que determine a data cronologicamente maior
entre duas datas fornecidas pelo usurio. Cada data deve ser
composta por trs valores inteiros, em que o primeiro representa o
dia, o segundo, o ms e o terceiro, o ano.

Laos
Os laos so estruturas que permitem a execuo de um bloco de cdigo
diversas vezes, portanto que uma condio seja satisfeita. As condies so
testadas para iterao executada, se a condio for FALSA o lao para de se
testado.
ALGORITMOS II


A estrutura FOR utilizada normalmente quando se tem um lao
caracterizado pelo controle a partir de um contador. Quando se sabe o
estado inicial e final da contagem. Por exemplo, faa a soma de todos os
nmeros entre 1 e 10. Sabemos que a contagem comear em 1 e
terminar em 10. A estrutura do FOR possui 3 termos. O primeiro
executado somente no incio inicializando a varivel utilizada para ser o
contador. O segundo termo onde se tem a condio para poder executar o
cdigo existente dentro do FOR. Por fim, o terceiro termo onde
incrementado/decrementado a varivel contador. Abaixo segue o formato
da estrutura FOR.
For(i =0; i<10; i++)
{
...
}
A estrutura WHILE utilizada normalmente quando se tem um lao
caracterizado pelo controle a partir de uma condio lgica. Quando no se
sabe a quantidade de vezes que ir ser executado o lao porm sabe-se da
condio de parada do lao. A esrtutura WHILE possui somente um termo
que a condio.
While (condio)
{
...
}
A estrutura do DO/WHILE parecida com a estrutura WHILE, exceto
que o cdigo existente dentro dos { } executado pelo menos uma vez e
ir ser executado novamente se a condio for testada VERDADEIRO.
Do
{
...
} While (condio);
Pratica
ALGORITMOS II


Escreva um algoritmo para imprimir os nmeros de 1 (inclusive) a 10
(inclusive) em ordem crescente.
Escreva um algoritmo para imprimir os nmeros de 1 (inclusive) a 10
(inclusive) em ordem decrescente.
Escreva um algoritmo para imprimir os 10 primeiros nmeros inteiros
maiores que 100.
Ler um valor N e imprimir todos os valores inteiros entre 1 (inclusive)
e N (inclusive). Considere que o N ser sempre maior que ZERO.
Modifique o exerccio anterior para aceitar somente valores maiores
que 0 para N. Caso o valor informado (para N) no seja maior que 0,
dever ser lido um novo valor para N.

Exerccio 4
Ler um valor inteiro (aceitar somente valores entre 1 e 10) e
escrever a tabuada de 1 a 10 do valor lido.
Ler 10 valores e escrever quantos desses valores lidos so
NEGATIVOS.
Ler 10 valores e escrever quantos desses valores lidos esto no
intervalo [10,20] (inlcuindo os valores 10 e 20 no intervalo) e
quantos deles esto fora deste intervalo.
Ler 10 valores, calcular e escrever a mdia aritmtica desses valores
lidos.
Ler o nmero de alunos existentes em uma turma e, aps isto, ler as
notas destes alunos, calcular e escrever a mdia aritmtica dessas
notas lidas.
Escreva um algoritmo para ler 10 nmeros e ao final da leitura
escrever a soma total dos 10 nmeros lidos.
Escreva um algoritmo para ler 10 nmeros. Todos os nmeros lidos
com valor inferior a 40 devem ser somados. Escreva o valor final da
soma efetuada.
ALGORITMOS II


Ler 2 valores, calcular e escrever a soma dos inteiros existentes entre
os 2 valores lidos (incluindo os valores lidos na soma). Considere que
o segundo valor lido ser sempre maior que o primeiro valor lido.
Escreva um algoritmo para ler 2 valores e se o segundo valor
informado for ZERO, deve ser lido um novo valor, ou seja, para o
segundo valor no pode ser aceito o valor zero e imprimir o resultado
da diviso do primeiro valor lido pelo segundo valor lido.
o Acrescentar uma mensagem de 'VALOR INVLIDO' no exerccio
anterior caso o segundo valor informado seja ZERO.
o Acrescentar uma mensagem de 'VALOR INVLIDO' no exerccio
[45] caso o segundo valor informado seja ZERO.
Um funcionrio de uma empresa recebe, anualmente, aumento
salarial. Sabe-se que:
o Esse funcionrio foi contratado em 2005, com salrio incial de
R$ 1.000,00
o Em 2006, ele recebeu aumento de 1,5% sobre seu salrio
inicial
o A partir de 2007 (inclusive), os aumentos salariais sempre
corresponderam ao dobro do percentual do ano anterior.
Faa um programa que determine o salrio atual desse
funcionrio.
Faa um programa que leia um nmero N que indica quantos valores
inteiros e positivos devem ser lidos a seguir. Para cada nmero lido,
mostre uma tabela contendo o valor lido e o fatorial desse valor.
Faa um programa que mostre os oito primeiros termos da sequencia
Fibonacci.
Faa um programa qu receba duas notas de seis alunos. Calcule e
mostre:
o A mdia aritmtica das duas notas de cada aluno;e
o Mostre:
A mensagem Reprovado se a nota for menor e igual
que 3;
ALGORITMOS II


A mensagem Final se a nota estiver entre 3 e 67;
Aprovado se for maior e igual a 7;
Em um campeonato de futebol existem cinco times e cada um possui
onze jogadores. Faa um programa que receba a idade, o peso e a
altura de cada um dos jogadores, calcule e mostre:
o a quantidade de jogadores com idade inferior a 18 anos;
o a mdia das idades dos jogadores de cada time;
o a mdia das alturas de todos os jogadores do campeonato; e
o a porcentagem de jogadores com mais de 80 kg entre todos os
jogadores do campeonato.