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

Anhanguera Educacional

Faculdade de Osasco
ATPS: Construo de Algoritmos

Osasco
2013

Construo de Algoritmos
Trabalho de aprendizado para concorrer ao
concurso de criao de software pela a
Universidade Bandeirante Anhanguera
(Campos Osasco), curso: Sistemas de
Informao, 1 Semestre.
Professor:
Osasco
2013
Introduo
O desenvolvimento neste trabalho abordar dois programas com a
complexidade baixa
e mdia, sendo propostas solues entre a equipe de alto padro para que os
softwares
desenvolvidos sejam usados por todos os alvos e sendo assim atingindo os
nossos objetivos.
Contedo
Sistema
01 ..........................................................................................................................
............................ 5
Primeiro
Desafio:..................................................................................................................
............................ 5
1.1 Dados de

Entrada: ................................................................................................................
....... 5
1.2 Resultados
Alcanados ...........................................................................................................
............. 5
1.3 O Programa em Portugol
(sistema01) ........................................................................................ 6
1.4 Teste do
algoritmo.............................................................................................................
........ 7
1.5 Entrada e saida do algoritmo
................................................................................................... 7
1.6 Representao em linguagem c++...
.................................................................................... 8
1.7 Diagrama de Blocos (fluxograma)
.......................................................................................... 9
1.8 Estudo do Problema
............................................................................................................... 10
Sistema 02
...........................................................................................................................
....................... 11
Segundo
Desafio: .................................................................................................................
.......................... 11
2.1 Dados de
Entrada: ................................................................................................................
..... 11
2.2 Resultados
Alcanados ...........................................................................................................
... 11
2.3 O Programa em Portugol

(sistema01)........................................................................................ 12
2.4 Teste de
Algoritmo ...............................................................................................................
..... 13
2.5 Entrada e saida do algoritmo
................................................................................................. 13
2.6 Representao em linguagem c++
........................................................................................ 14
2.7 Diagrama de Blocos (fluxograma)
........................................................................................ 15
2.8 Estudo do
Problema............................................................................................................
............... 16
Concluso..............................................................................................................
............................................ 17
Notao Utilizada
...........................................................................................................................
.......... 18
Desenvolvimento Algoritmo
............................................................................................. 22
Bibliografia
...........................................................................................................................
....................... 24
Sistema 01 Programa media.
O problema proposto nos pede para elaborar um algoritmo, que defina um
nmero inteiro N que ser o nmero de casos de teste. Cada caso de teste
uma
linha que contm dois nmeros inteiros X e Y . O problema se resume em
imprimir a soma de todos os valores mpares entre os dois nmeros inteiros.
O primeiro passo identificar os dados de entrada do problema, os
processamentos necessrios para encontrar o que pedido e os dados de

sada.
Primeiro Desafio:
Dados de Entrada:
Definir o nmero inteiros N.
Definir valor de entrada para x .
Definir valor de entrada para y.
Processamento:
Intervalo entre x e y e.
Soma dos valores de x e y.
Dados de Sada:
Imprimir a soma de todos os mpares entre x e y.
Resultados Alcanados
Com o usufruto de vrias alternativas de solues de problemas, foi possvel
cria um arquivo executvel capaz de informar e somar todos os nmeros
mpares entre x e y, excetuando-os.
Pagina 5
O programa em Portugol ou em pseudolinguagem de programao
Sistema 01
Nome: Programa_ soma_ de_ nmeros_impares.
Var x, y , soma ,calculo: real
Soma=0;
Inicio
Escreval (Digite um valor para o primeiro valor do calculo: )
Leia x
Escreva (Digite um valor para o segundo valor do calculo: )
Leia y
Se X >= Y
Escreval (O valor de Y no pode ser menor que o Valor de X )
Se No
Calculo = x;
Enquanto calculo for menor que y

Fim se;
Se ((Calculo % 2 )!= 0)
Escreva O resultado e: ",Calculo
Soma = Soma + Calculo;
Calculo++;
Fim se;
Escreva O Valor da soma dos nmeros impares: , Soma
Fim
Pagina 6
Teste do algoritmo
Nome do arquivo: distancia.cpp
Executvel: distancia.exe
Entrada e sada do algoritmo
Exemplo de Entrada Exemplo de Entrada
05
10 15
25 50
50 100
100 200
4
24
481
1875
7500
Pagina 7
Representao em Linguagem C++
programa Media
Pagina 8
Diagrama de blocos ou fluxograma (SISTEMA01).
Pagina 9
Estudo do Problema

Lgica usada para resolver o sistema01


Dado um nmero qualquer a maneira mais simples de determinar se ele
mpar ou par
dividir por 2 e verificar se a diviso foi ou no exata. Esta a operao mdulo
e em C o
operador %.Assim a%b resulta no resto da diviso de a por b.
Pela matematica se um numero for divisivel por 2 e resultar em um numero
inteiro esse
numero um numero PAR, caso contrario impar.
Pagina 10
Sistema 02 - Programa Distancia.
O problema proposto nos pede para elaborar um algoritmo, que calcule a
distancia entre as casas dos amigos de Andria.
A primeira e segunda recebe o nome e a distancia. O problema se resume em
imprimir a mdia entre as casas.
Segundo Desafio:
Dados de Entrada:
Recebe o nome.
Recebe a distancia.
Processamento:
Soma as distancias e divide pela quantidade
Dados de Sada:
Imprimir a mdia entre as distancias.
Resultados Alcanados
Com o usufruto de vrias alternativas de solues de problemas, foi possvel
cria um arquivo executvel capaz de calcular a mdia entre os pontos das
distancias.
Pagina 11
O programa em Portugol ou em pseudolinguagem de programao
Sistema 02
Programa_distancia.

Var nome1, nome2, nome3, nome4:


texto.
Distancia1, distancia2, distancia3,
distacia4
Inicio
Escreva Informe o seu nome
Leia nome1
Escreva Informe a distancia
Leia distancia1
Escreva Informe o seu nome
Leia nome2
Escreva Informe a distancia
Leia distancia2
Escreva Informe o seu nome
Leia nome3
Escreva Informe a distancia
Leia distancia3
Escreva Informe o seu nome
Leia nome4
Escreva Informe a distancia
Leia distancia4.
Escreva Nome e distancia, nome1,
distancia1
Escreva Nome e distancia, nome2,
distancia2
Escreva Nome e distancia, nome3,
distancia3
Escreva as media das e, (distancia1+
distancia2+ distancia3+ distancia4+) /2
Fim.
Pagina 12

Teste do algoritmo
Nome do arquivo: media.cpp
Executvel: media.exe
Entrada e sada do algoritmo
Exemplo de Entrada Exemplo de Entrada
Danilo Leandro
350
Emerson Silva
900
Roberto Oliveira
120
Horacio Dias
10
345.0
Pagina 13
Representao em Linguagem C++
Programa Distancia
Pagina 14
Diagrama de blocos ou fluxograma (SISTEMA02).
Pagina 15
Estudo do Problema
Lgica usada para resolver o sistema02
Foi usado a mdia aritmtica simples, que tambm conhecida apenas por
mdia. a
medida de posio mais utilizada e a mais intuitiva de todas. A mdia de um
conjunto de
valores numricos calculada somando-se todos estes valores e dividindo-se o
resultado pelo
nmero deelementos somados, que igual ao nmero de elementos do
conjunto, ou seja, a
mdia de n nmeros sua soma dividida por n. A funo da mdia

justamente esta,
transformar um conjunto de nmeros diversos em um nico valor, a fim de que
se possa ter
uma viso global sobre os dados.
Pagina 16
CONCLUSO
Algoritmos um dos processos mais importantes na rea da programao,
pois atravs dele
conseguimos criar uma lgica funcional para um problema especfico.
Com isso ganhamos portabilidade em nosso cdigo, pois uma vez criada,
podemos import
- la para qualquer linguagem de programao, tendo apenas a necessidade de
programar de
acordo com as sintaxes que a ferramenta de programao prope, tendo o
algoritmo como
base de escopo para o cdigo.
Pagina 17
Notao Utilizada
Comando printf
Formato: printf("mensagem", lista de expresses);
O que faz o comando: imprime na tela a mensagem, substituindo caracteres de
controles.
A lista de expresses uma lista de expresses separadas por vrgulas.
Os caracteres de controle so:
%d tem a funo de imprimir na tela o contedo da prxima expresso da lista
de
expresses. O valor impresso como decimal. Mais tarde veremos que
podemos usar
tambm o %f e o %c.
\n pula uma linha na tela. Ou seja, a prxima mensagem ser mostrada na
linha

seguinte.
Exemplos:
Imprime na tela Testando 3, 2, 1 e pula de linha
i = 1;
printf("Testando $d, %d, %d\n", i+2, i+1, i);
Imprime na tela soma = 84 e pula de linha. O valor de soma permanece
inalterado,
igual a 42.
soma = 42;
printf("soma = $d\n", 2*soma);
Comando scanf
Formato: scanf("caracteres de controle", lista de variveis);
O que faz o comando: interrompe o programa e espera que ousurio digite
dados de
entradas. Os dados de entrada devem ser terminados com a digitao da tecla
enter. A
cada carctere de controle deve corresponder uma varivel a qual ter o valor
que for digitado
pelo usurio.
Pagina 18
A lista de variveis uma lista de identificadores de variveis separadas por
vrgulas. Cada identificador deve ser precedido pelo caractere &, tambm
conhecido como o
"e comercial".
Os caracteres de controle so uma seqncia de %d . Mais tarde veremos que
podemos
usar tambm o %f e o %c.
Exemplos:
Espera que o usurio digite um inteiro. O valor digitado ser o contedo da
varivel n.
scanf("%d", &n);

Espera que o usurio digite dois inteiros. O primeiro valor digitado ser o
contedo da
varivel m e o segundo valor ser o contedo da varivel n.
scanf("%d %d", &m, &n);
O usurio deve digitar n nmeros. Note que o printf tem como finalidade
somente
orientar o usurio para a digitao dos nmeros.
for (i = 0; i < n; i++){
printf("Digite mais um nmero: ");
scanf("%d", &num);
}
Comando while
Formato:
while (condio)
comando
O que faz o comando:
1. o valor de condio calculado como verdadeiro ou falso
2. se a condio verdadeira:
i. o comando executado
ii. volte ao passo (1.)
3. se a condio falsa, ento o while encerrado.
Exemplos:
Imprime os nmeros 0 1 2 3 4 um em cada linha:
i = 0;
while (i < 5){
Pagina 19
printf("%d\n",i);
i = i + 1;
}
L e imprime 10 nmeros:
i = 0;

while (i < 10) {


printf("Digite um nmero: ");
scanf("%d", &num);
printf("Nmero lido: %d\n",num);
i = i + 1;
}
Comando if else
Permite executar alguns comandos se uma condio for verdadeira e outros se
ela for falsa.
if ( condio ) {comandos a serem executados se a condio for verdadeira;
}
else {
comandos a serem executados se a condio for falsa;
}
De acordo com a lgica a ser implementada, pode haver necessidade de
utilizar no apenas um, mas
um conjunto de ifs subordinados uns aos outros. Dizemos que neste caso os
comandos devem estar
aninhados.
Importando uma biblioteca
A importao de uma biblioteca dada pelo comando INCLUDE (incluir)
seguido da biblioteca entre
os sinais de menor ().
Porm, devemos notar que existem diferenas entre a importao de
bibliotecas de C e de C++.
Importando uma biblioteca em C
Em C, a importao de bibliotecas so mais simples, bastando acrescentar
para cada biblioteca um
include em uma linha diferente e o nome da biblioteca seguido de ponto H (.h) .h a extenso do
arquivo da biblioteca que vem da palavra inglesa HEADER (cabealho) - se

voc esquecer de coloc-lo


o programa no ser compilado.
No exemplo abaixo, vamos incluir duas bibliotecas padres de C.
Pagina 20
1.#include
2.#include
Como podem ver, cada biblioteca foi includa em uma linha.
Variveis
Variveis so endereos de mmoria na qual podemos atribuir ou mudar o
valor.
A declarao da varivel deve proceder da seguinte maneira:
1 especificar o tipo de varivel
2 nomear a varivel
* No podemos esquecer que o C / C++ case sensitive, ou seja, ele
diferencia as letras maisculas
das minsculas.
Por exemplo, x no a mesma coisa de X.
Um outro cuidado que devemos ter no comear uma varivel por nmero,
mas podemos terminla.
Exemplo: errado declarar 2x, mas podemos declarar x2 ou _2x.
Como uma ltima precauo, no podemos usar espaos, pois o compilador
pode entender como
sendo outravriavel no separada por vrgula e acusar um erro. No lugar do
espao, pode-se usar
underline (_).
Exemplo: errado digitar resultado da raiz, mas correto, resultado_da_raiz.
Tipos de variveis
A linguagem C aceita os tipos mais comuns de variveis e com possibilidade de
modificar o alcance.
Para saber a diferena entre os tipos de dados consulte a seo algoritmo no
link Tipo de dados

comuns.
O primeiro tipo o inteiro. Declara-se como int nomedavarivel.
O tipo inteiro em C/C++ uma varivel de 16 bits (2 btyes) e tem o alcance
entre -32768 a +32767.
O segundo o inteiro longo. Declara-se como long int nomedavarivel.
Ele uma melhoria do inteiro comum, pois dobra o nmero de bits aumentado
considervelmente
seu alcance, que aqui fica entre -2147483648 a +2147483647.
O outro tipo o real ou decimal, que tambm chamamos de ponto flutuante.
Declara-se como float nomedavarivel.
O tipo flutuante uma varivel que tem uma preciso de 7 digitos, consome 4
bytes de memria
assim como o inteiro longo e tem um alcance de 1E-36 a 1E+36
Mais um tipo uma melhoria do ponto flutuante, o dobro. Declaramos double
nomedavarivel.
O double consome incrveis 8 bytes de memria para o seu armazenamento.
Esse consumo
explicado pela alta preciso de seu nmero (cerca de 14 dgitos aps a vrgula)
e tem um alcance
imenso que vai de 1E-303 a 1E+303.
Pagina 21
Se voc no conhece nmero cientfico, isso seria como se depois do nmero
1 tivessem mais uma
seqncia de 303 nmeros zeros, nem sei se existe uma palavra que descreva
tamanho nmero.
O ltimo tipo, e talvez o mais complexo, o caracter. O caracter serve tanto
para descrever um
smbolo como tambm pode retornar um inteiro,pois ele baseia-se na tabela
ASCII. Ou seja, se
declararmos uma varivel de caracter podemos fazer tanto mostrar na sada a
letra A como tambm

65, seu nmero da tabela ASCII.


Declaramos como char nomedavarivel. Apesar de letras consumirem 1 byte
teoricamente, os
caracteres em C/C++ so baseados, como j foi dito, na tabela ASCII, onde
cada letra tem 2 bytes. Isso
foi necessrio para que conseguissemos usar letras de linguagens latinas que
contm acentos. Seu
total 256 divididos em dois: 127 positivos, onde praticamente esto todas as
letras necessrias; e
128 negativos onde encontramos muitos smbolos matemticos e letras
acentuadas. Trataremos
melhor a questo de caracteres, tabela ASCII e corrente de caracteres (string)
em pginas adiante.
Pagina 22
DESENVOLVIMENTO ALGORITMO
Portugus Estruturado: o algoritmo em forma de texto, escrito de uma forma
simplificada, contendo os passos de execuo, sendo restrito a poucas
palavras,
ou seja, executando o essencial ao entendimento humano. Tambm
conhecido
como pseudocdigo.
Diagrama de Blocos: a representao do algoritmo em uma forma grfica,
concebida atravs de formas geomtricas padronizadas, ligadas atravs de
setas
de fluxos de dados, indicando as diversas aes no sistema.
Algoritmo em C: o algoritmo nos mostrando o que foi proposto no inicio do
trabalho.
Pagina 23
BIBLIOGRAFIA
PLT Lgica de Programao: Andr Luiz Villar Forbellone; Henri Frederico
Eberspcher; 3

Edio.
Algoritmos Lgica para Desenvolvimento de Programap de Computadores:
Jos Augusto N.G.
Manzano; Jayr Figueiredo de Oliveira; 16 Edio Editora Erica.
Estudo Dirigido Linguagem C: Jos Augusto N.G. Manzano; Editora Erica.
Pagina 24