Vous êtes sur la page 1sur 11

Curso:Engenharia Mecnica

Disciplina:Algoritmo e Programao

* Sergio Henrique Ribeiro Dias RA-9020377161


* Lucas Paulo do Nascimento Sousa RA-8828393821
* Thiago Ferreira Gomes RA-2997566287
ACADMICOS

* Mrcio Guedes de Lima RA-9858512836


* Thiago Alencar Brito
* Danilo dos Santos Fernandes
* Douglas Alves Martins

Professor:
Mestre Rovilson Mezncio

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao

Elaborao de Software, para otimizao de cortes de bobinas de Papel


Celulose para Industria

Trabalho desenvolvido para a disciplina Algoritmo


e

Programao,

apresentado

Anhanguera

Educacional como exigncia para a avaliao na


Atividade Prtica Supervisionada.

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao

INTRODUO

Nesta ATPS vamos desenvolver um software para gerenciar o corte visando um


aproveitamento sobre corte em bobina de papel jumbo eliminando o mximo possvel de
refugos e perdas.

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao

ETAPA 2
PASSO 2
2.2.1 DESENVOLVIMENTO DE ALGORITMO UTILIZANDO A LINGUAGEM C.
Ao desenvolver um algoritmo usando como uma ferramenta genrica para
representar a soluo de tarefas independente do desejo de automatiz-las, estaremos
associando processamento eletrnico de dados, onde representa o rascunho para
programas(Software).
Servir como modelo para programas, pois sua linguagem intermediria
linguagem humana e as linguagens de programao, sendo ento, uma boa ferramenta
na validao da lgica de tarefas a serem automatizadas.Desenvolver um algoritmo
realizar uma receita para um processo. Recomenda-se que os algoritmos sejam
estruturados partindo-se de uma descrio geral e que, gradativamente, sejam
acrescentadas particularidades e detalhes soluo do problema.
Esta tcnica chamada refinamentos sucessivos, construo hierrquica ou
desenvolvimento topdown (de cima para baixo).
Exemplo:
Efetuar a diviso de dois nmeros.
Primeira Etapa:
Descrio geral
Algoritmo Diviso
Fornecer o denominador
Fornecer o divisor
Diviso = Denominador / Divisor
Segunda Etapa:
Controle de erro
Algoritmo Diviso
Fornecer o denominador
Fornecer o divisor
Se o divisor for diferente de zero : Diviso = Denominador / Divisor
Se o divisor for igual a zero: Diviso no existe.
O refinamento sucessivo dos algoritmos permite abordar o problema de
maneira mais objetiva diminuindo-se a probabilidade de erros e facilitando a
sua reparao quando ocorrerem.
Existem diversas tcnicas que ajudam no desenvolvimento de algoritmos
facilitando seu entendimento para as pessoas.As mais utilizadas so o portugol
e o fluxograma.
Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao

2.2.2 APLICAO DOS CONCEITOS DE ESTRUTURAS DE CONTROLE DE ANALISE


DE CONDIES:
Estruturas de Controle
Estrutura Seqencial:
Conjunto de comandos que so executados numa seqncia linear, de cima para baixo,
na mesma ordem que aparecem.
Sintaxe: comando1;
comando2;
comandoN;
Estruturas de controle:
A linguagem C permite uma ampla variedade de estruturas de controle de fluxo de
processamento. Duas das estruturas bsicas (deciso e repetio) so muito semelhantes
as estruturas usadas nas Pseudo-linguagem algortmicas:
Estrutura de Deciso:
Permite direcionar o fluxo lgico para dois blocos distintos de instruesbconforme
uma condio de controle.

Pseudo-linguagem Linguagem C
se condio if(condio){
ento bloco 1 bloco 1;
seno bloco 2 }else{
fim se bloco 2;
};
Estrutura de Repetio:
Permite executar repetidamente um bloco de instrues ate que uma
condio de controle seja satisfeita.
Pseudo-linguagem Linguagem C
faa do{
blocobloco;
at condio }while(condio);
2.2.3 DESENVOLVIMENTO DE LAOS DE REPETIO:
As estruturas de repetio so usadas para controlar a execuo de cdigos

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao


repetidamente at que uma condio seja verdadeira.
Veja os tipos de estrutura de repetio que vamos aprender neste artigo:
Lao for
Lao while
Laodo..while
Laoforeach
Lao for exemplo:
for (int i = 0; i < 20; i++)
Neste caso vai mostrar na tela o valor de "i" multiplicado por 2 enquanto "i" for menor
que 20.
Lao while exemplo:
while" apenas coloca-se a condio que queremos testar, ate que ela seja verdadeira ou
falsa
lao do while exemplo:
Quando o lao apenas while tem a funo apenas de fazer uma vez e em ordem no
programa , j o do while apresenta o enquanto junto ao faa at que o programa chegue
ao fim.
Lao foreach
O loop "foreach" usado para interagir (percorrer) listas, seja nomes ou nmeros
entre outros.
PASSO 3
2.3.1 Porque usar funes ?
Para permitir o reaproveitamento de cdigo j construdo(por voc ou por outros
programadores);
Para evitar que um trecho de cdigo que seja repetido vrias vezes dentro de um mesmo
programa;
Para permitir a alterao de um trecho de cdigo de uma forma mais rpida. Com o uso
de uma funo preciso alterar apenas dentro da funo que se deseja;
Para que os blocos do programa no fiquem grandes demais e, por conseqncia, mais
difceis de entender;
Para facilitar a leitura do programa-fonte de uma forma mais fcil;
Para separar o programa em partes(blocos) que possam ser logicamente compreendidos
de forma isolada.

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao


2.3.2 Quando usamos Switch Case?
Foi uma forma que encontramos de reduzir a complexidade de utilizar vrios if e else
encadeados. Fizemos uso deste mecanismo principalmente pela estrutura do nosso programa que
em menu.
O contedo de uma varivel comparado com um valor constante, e caso a comparao seja
verdadeira, um determinado comando executado.

ETAPA 3
PASSO 2
3.2.1Definio de vetores e a sua utilizao na soluo de problemas de armazenamento de
valores do mesmo tipo.
Vetores, tambm chamados arrays (do ingls) ou arranjo ou ainda matrizes, so uma
maneira de armazenar vrios dados num mesmo nome de varivel atravs do uso de
ndices numricos.
Em C, vetores devem sempre conter dados do mesmo tipo de varivel. Declaramos
vetores de maneira muito semelhante declarao de variveis normais. A nica
diferena que depois do nome da varivel deve ser informada a quantidade de
elementos do vetor. Para declarar um vetor chamado vetor, com cinco elementos
inteiros, escrevemos: intvetor[5];
Como quaisquer variveis simples para usarmos vetores precisaram antes declar-lo.
:[]
Onde poder ser qualquer dos tipos vlidos, qualquer nome de uma varivel
simples representativa do conjunto e um nmero inteiro positivo que limita o valor
mximo para o ndice da varivel indexada, ou seja, nmero mximo de elementos do
vetor.
Exemplos:
Real: vetor1[10],vetor2[20]
Inteiro: pares [30], impares [50]
Lgico: opes [20]
Literal: [30]: nomes [10], datas [20], cidades [30]

3.2.2 Implementao de vetores e matrizes na linguagem c.


Definir parmetros e funes no programa.
Exemplos:
Colocar os nmeros de 1 a 5 num vetor:
for (i=0; i0)||(pesoteorico>0))

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao


getch();
}
3.2.3 Vantagens e limitaes da utilizao de vetores e matrizes.
Tais matrizes e vetores possui a vantagem de que os seus elementos so acessveis
de forma rpida mas, vem tambm uma notvel limitao: so de tamanho fixo, mas
podem ser incrementados ou diminudos com determinados algoritmos, geralmente
envolvendo a cpia de elementos de um arranjo para outro e reiniciar o original com a
nova dimenso. Os vetores podem ser implementados desta forma.
3.2.4 Modularizao e decomposio de programas.
A modularizao Conjunto de comandos agrupados em um bloco que recebe um nome, e
atravs deste pode ser ativado.Ela visa reduzir a complexidade dos problemas atravs da
modularizao de algoritmos, ou seja, da decomposio de problemas em partes menores,
simplificando as solues.
Vantagens:
Permitem o reaproveitamento de cdigo j construdo;Evitam que um trecho de cdigo
que seja repetido vrias vezes dentro de um mesmo programa;Permitem a alterao de um trecho de
cdigo de uma forma mais rpida. Com o uso de uma funo preciso alterar apenas dentro
da funo que se deseja, Simplificam os blocos do programa para que no fiquem grandes demais e,
por conseqncia, mais difceis de entender, Facilitam a leitura do programa fonte,
Decompem o programa em partes(blocos) que possam ser logicamente compreendidos de forma
isolada.
Na modularizao utilizada a tcnica de Refinamentos Sucessivos, conhecida tambm como
Top-Down, que parte da decomposio dos problemas, sucessivamente, at conseguir o nvel de
detalhamento desejado e, ento,desenvolver um subalgoritmo ou mdulo para cada
subproblema.
3.2.5 Passagem de parmetros para funes.
A linguagem de programao C permite que os parmetros sejam passados para as
funes de duas maneiras, por valor e por referncia. Na passagem por valor, o valor da expresso
calculado, e o valor resultante passado para a execuo da funo. Na passagem por referncia, o
endereo de uma varivel deve ser passado na chamada da funo. Dessa forma, a funo pode
modificar a varivel diretamente, o que em geral no recomendvel, mas h situaes onde esse
recurso necessrio, por exemplo, para a criao de funes que devolvem mais de um valor.
Passagem por Valor
A funo recebe uma cpia da varivel que fornecida quando invocada. Todas as
alteraes feitas dentro da funo no vo afetar os valores originais. Na passagem por valor, os
parmetros de uma funo funcionam como variveis suas, ou seja nada tem a ver com as variveis

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao


da funo que a chamou. Desta forma alteraes nos valores desses parmetros no interferem nos
valores das variveis da funo chamadora.
Exemplo:
int soma (int x1, int x2)
{
x1+= x2;
return x1;
}
void main (void)
{
int v1, v2;
scanf(%d %d,&v1,&v2);
printf(%d,soma(v2,v1));
}

Passagem por referncia


No entanto pode ser interessante que uma varivel na funo chamadora possa ser alterada (ex:
funo que troque o valor de duas variveis). Ou mesmo haja a necessidade de se retornar mais de
um valor da funo (pois com o return s possvel retornar um nico valor), por exemplo funo
que retorne as horas e minutos dados apenas os minutos.
Para esses casos, algumas linguagens permitem a passagem de parmetros por referncia, onde uma
varivel passada como parmetro ao ser alterada dentro da funo tem seu valor alterado tambm na
funo chamadora ( na verdade uma nica varivel usada por ambas as fues).
Na linguagem C na teoria existe apenas passagem de parmetros por valor, mas atravs do uso de
ponteiros se consegue na prtica a passagem de parmetros por referncia.
Exemplo:
void troca(int *x, int *y)
{

Anhanguera Educacional
2014

Disciplina de Algoritmo e Programao


int aux;
aux=*x;
*x=*y;
*y=aux;
}
void main(void)
{
int a=10,b=20;
troca(&a,&b);
printf(%d %d,a,b);
}

Anhanguera Educacional
2014

10

Disciplina de Algoritmo e Programao


Referncias Bibliogrficas:

*https://docs.google.com/a/aedu.com/file/d/0Bx2ZnHfyWt9QN1JyTy0xaU9tVTA/preview
*https://docs.google.com/a/aedu.com/file/d/0Bx2ZnHfyWt9QRTM1bVBOYllSYlk/preview
*http://www.inf.ufpr.br/nicolui/grad/ci067/Docs/NotasAula/notas-27_Estruturas.html
*https://docs.google.com/open?id=0B9e1nJ9U5ACjcTFWUVNmbVdOZXc
*http://issuu.com/normalizacao/docs/normaliza____o_de_trabalhos_acad__m

Anhanguera Educacional
2014

11

Vous aimerez peut-être aussi