SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
C1105 - Introdução à Programação em C                               1º Trabalho de Laboratório

Algoritmos, Fluxogramas e Pseudo-Código
Objectivo
O objectivo deste trabalho é introduzir a noção de algoritmo, bem como duas formas alternativas
que podem ser utilizadas para a sua representação.

O que é um Algoritmo?
Um algoritmo é uma sequência bem definida de passos (ou acções) que devem ser levados a cabo
(executados) para resolver um determinado problema.
Um algoritmo:
   1. Possui um ponto de entrada (passo inicial) e um ponto de saída (passo final) bem definidos.
   2. É composto de passos individuais.
   3. Cada passo está bem definido, pode ser executado, e o seu resultado é previsível. Isto é,
       repetidas execuções de um determinado passo produzirão sempre o mesmo resultado.
   4. Existe uma ordem (sequência) adequada para a execução dos passos. Essa sequência é
       fundamental para a obtenção de um resultado final correcto. Em geral, depois de
       executado um determinado passo, a execução prossegue no passo seguinte.
   5. O número de passos a executar é finito.
   6. Quando executado com um conjunto de dados válido um algoritmo termina
       garantidamente, produzindo o resultado esperado.

Do ponto de vista da forma como decorre o fluxo de execução num algoritmo (qual a
sequência de execução dos passos), pode ser demonstrado que qualquer algoritmo de computador
pode ser construído com recurso a apenas três tipos de construções:
   1. Sequência - Salvo outra indicação, os passos são executados um a seguir ao outro, de cima
                     para baixo.
   2. Decisão      - Uma forma de decidir entre a execução de duas instruções ou dois conjuntos
                     de instruções.
   3. Repetição - Uma forma de repetir, várias vezes, a execução de uma dada instrução ou
                     conjunto de instruções.
Isto é, qualquer método de representação que permita representar as três noções acima descritas
é suficiente para representar qualquer tipo de algoritmo.

Para além das construções acima referidas, relacionadas com o controlo da execução, para
que seja possível representar qualquer algoritmo num computador, o método de representação
tem ainda de permitir:
   1. Ler e escrever valores (fornecer dados e receber resultados do algoritmo);
   2. Realizar as 4 operações aritméticas básicas;
   3. Fornecer uma forma de armazenar quantidades (também designadas por variáveis).
   4. Permitir a atribuição de valores a variáveis.
Como é evidente existem inúmeras maneiras de expressar estes conceitos numa quantidade de
linguagens de programação diferentes. Por outro lado, existem também muitas outras
características que são incluídas nas linguagens como forma de tornar mais simples a expressão de
determinados conceitos.
No entanto, em termos de conceitos básicos, os acima indicados são tudo o que precisa saber!
Qualquer que seja o método de representação que utilizemos para descrever um algoritmo, caso
este se destine a ser implementado com um computador, temos de ter em atenção que o conjunto
de operações elementares que este é capaz de realizar é bastante restrito e composto por pouco
mais do que as operações acima descritas.


1º Semestre 2011/2012                         Carlos Limão                                  1/5
C1105 - Introdução à Programação em C                               1º Trabalho de Laboratório

O que é um Fluxograma?
Um fluxograma não é mais do que uma representação gráfica de um algoritmo.
A figura seguinte ilustra um fluxograma que representa um algoritmo hipotético composto por três
passos.
                                           Início

                                          Passo 1

                                          Passo 2

                                          Passo 3

                                            Fim

O início e o fim do algoritmo são representados por rectângulos com os cantos arredondados. Estes
não representam acções mas funcionam antes como delimitadores da sequência de acções que
compõem o algoritmo.
Cada passo da sequência que constitui o algoritmo é representado por um rectângulo. A sequência
pela qual os passos são executados é explicitamente indicada por linhas e setas.
No âmbito desta disciplina todos os fluxogramas que nos iremos confrontar utilizarão apenas os
seguintes símbolos, que possuem o significado indicado:

      Terminador                Acção                Interacção                Decisão


O que é o Pseudocódigo?
Enquanto as linguagens de programação permitem expressar um algoritmo de um modo formal, o
pseudocódigo permite fazê-lo de um modo mais informal, sem a preocupação de obedecer a um
léxico e a uma gramática rígida. No entanto, apesar desta liberdade, dois programadores distintos
devem ser capazes de estar de acordo quanto a um dado algoritmo escrito em pseudocódigo e ser
capazes de escrever dois programas funcionalmente equivalentes.
O pseudocódigo pode ser escrito em qualquer linguagem natural (humana) na forma de uma lista
ordenada (ou numerada) de passos.
O algoritmo acima descrito na forma de um fluxograma pode ser escrito em pseudocódigo como:
       1. Início
       2. Passo 1
       3. Passo 2
       4. Passo 3
       5. Fim
Onde se admite a convenção habitual nas linguagens naturais de ler de cima para baixo.

Como é evidente esta forma informal de expressão dos algoritmos oferece uma grande
flexibilidade do ponto de vista da sua utilização. No entanto, nas secções que se seguem serão
apontados exemplos de pseudocódigo para as situações mais comuns que iremos encontrar, de
modo a facilitar a leitura dos algoritmos descritos em pseudocódigo no âmbito desta disciplina.

Controlo da Sequência de Execução - Decisões
Uma instrução de decisão, também designada por instrução condicional ou instrução de selecção,
permite seleccionar, de entre várias acções possíveis, a acção seguinte a executar dependendo da
avaliação de uma determinada condição.


1º Semestre 2011/2012                         Carlos Limão                                  2/5
C1105 - Introdução à Programação em C                                                   1º Trabalho de Laboratório
Na sua forma mais simples, este tipo de instruções permite escolher uma de entre duas acções
possíveis a executar seguidamente, isto é, entre dois caminhos de execução distintos, dependendo
de uma condição (a resposta a uma pergunta) que é avaliada.
Em pseudocódigo, uma instrução de decisão pode ser representada da seguinte forma:
                            Se (condição)
                              <acção a executar se condição é verdadeira>
                            Caso Contrário
                              < acção a executar se condição é falsa>
                            Fim Se
Podemos, evidentemente, representar a mesma instrução com recurso a um fluxograma:

                                                  S       Condição       N
                                                             ?


                               Acção a executar se a                 Acção a executar se a
                               condição for verdadeira                 condição for falsa




Note que introduzimos uma nova forma, um losango, para representar o local onde se decide entre
dois caminhos de execução possíveis. Note que uma instrução de decisão caracteriza-se por possuir
apenas um caminho de entrada e dois de saída.
Note quer no pseudocódigo, quer no fluxograma, que apenas uma das acções pode ser executada.

Controlo da Sequência de Execução - Repetições
O ingrediente final necessário é a capacidade para realizar a repetição de uma ou várias
instruções. A repetição pode ser por um determinado número de vezes (bater 20 vezes com as
mãos) ou enquanto uma determinada condição for verdadeira (p.e.: Enquanto houver degraus,
subir.). Por uma questão de generalidade vamos considerar esta última.
Em pseudocódigo pode ser representada da seguinte forma:
                            Enquanto (condição for verdadeira)
                              <acção a executar se condição é verdadeira>
                            Fim Enquanto
Com recurso a um fluxograma teremos:

                                                  Condição           N
                                                     ?

                                                      S

                                          Acção a executar enquanto
                                           a condição for verdadeira




1º Semestre 2011/2012                                 Carlos Limão                                            3/5
C1105 - Introdução à Programação em C                                  1º Trabalho de Laboratório

Exercícios
Nos exercícios que se seguem, é proposto o desenvolvimento de um determinado algoritmo e,
seguidamente, sugerida uma forma de abordar a resolução desse problema.
O objectivo é ilustrar o modo como deve abordar a resolução deste tipo de problemas.
De forma a que comece a familiarizar-se com as duas formas de representações de algoritmos que
abordámos é-lhe pedido, em cada um dos exercícios, que utilize uma das formas de representação
para descrever o algoritmo desenvolvido.

Exercício 1 – Sequência
Escreva o pseudocódigo de um algoritmo para calcular a área de um círculo. Deve incluir todos os
passos necessários para obter os dados e fornecer os resultados ao utilizador.
Nota: Recorde que a área de um círculo vale π x r2
Vejamos uma possível forma de abordar o problema:
Dados Iniciais:
É necessário pedir ao utilizador um valor para a medida do raio, ou do diâmetro, da circunferência.
Primeira Abordagem – Descrição em Linguagem Natural
Antes de mais necessitamos de pedir ao utilizador o valor do raio (ou do diâmetro) da
circunferência. Em seguida temos de ler o valor fornecido. Depois podemos calcular o valor da área
como sendo 3,14159 x Valor do Raio x Valor do Raio. Por fim temos de mostrar o valor calculado
ao utilizador
Segunda Abordagem – Aproveitar apenas o essencial da descrição
1.   Pedir ao utilizador o valor do raio do círculo
2.   Ler o valor fornecido pelo utilizador para uma variável raio
3.   Fazer uma variável área = 3,14159 x raio x raio
4.   Mostrar o valor da área ao utilizador
Terceira Abordagem – Pseudocódigo
1. INÍCIO Cálculo da área de um Círculo
2.    ESCREVER “Introduza o raio do círculo: ”
3.    LER Raio
4.    FAZER Área = 3,14159 x Raio x Raio
5.    ESCREVER “A área do seu círculo é ”, seguido do valor de Área
6. FIM DO ALGORITMO

 Desenhe um fluxograma do algoritmo acima descrito.
Exercício 2 – Decisão
Escreva o pseudocódigo de um algoritmo que indique ao utilizador se um determinado número
inteiro não nulo é positivo ou negativo.
Dados Iniciais:
É necessário pedir ao utilizador um valor inteiro para o podermos avaliar.
Primeira Abordagem – Descrição em Linguagem Natural
Antes de mais necessitamos pedir ao utilizador um inteiro. Em seguida temos de ler o inteiro
fornecido. Se o inteiro for maior do que zero, dizemos ao utilizador que o número é positivo, caso
contrário dizemos ao utilizador que o número é negativo.
Segunda Abordagem – Aproveitar apenas o essencial da descrição
1.   Pedir ao utilizador um inteiro
2.   Ler o valor fornecido pelo utilizador para uma variável chamada número
3.   Se o valor de número for maior que zero dizer ao utilizador que é positivo
4.   Se o valor de número for menor que zero dizer ao utilizador que é negativo
1º Semestre 2011/2012                            Carlos Limão                                  4/5
C1105 - Introdução à Programação em C                               1º Trabalho de Laboratório
Terceira Abordagem – Pseudocódigo
1. INÍCIO Número positivo ou negativo
2.    ESCREVER “Introduza um inteiro não nulo: ”
3.    LER Número
4.    SE (Número > 0)
5.      ESCREVER “O número é positivo”
6.    CASO CONTRÁRIO
7.      ESCREVER “O número é negativo”
8.    FIM DO SE
13. FIM DO ALGORITMO

 Desenhe um fluxograma do algoritmo acima descrito.
 O que teria de fazer para detectar também as situações em que o valor fornecido é nulo?
Exercício 3 - Repetição
O pseudocódigo seguinte permite calcular P = K n e descreve um algoritmo devido ao matemático
árabe Al-Kashi que o descobriu em 1414.
1.    INÍCIO Cálculo de P = Kn
2.    P = 1
3.    ENQUANTO (N ≥ 1 )
4.       SE (N é PAR)
5.          N = N/2
6.          k = k × k
7.       CASO CONTRÁRIO
8.          N = N - 1
9.          P = P × k
10.      FIM DO SE
11.   FIM ENQUANTO
12.   ESCREVER (P)
13.   FIM DO ALGORITMO

Desenhe um fluxograma deste algoritmo.
Construa uma tabela que mostre em cada linha os valores de P, K e N. Na primeira linha os
valores iniciais, e na última os valores finais.

Entrega do trabalho
A entrega do trabalho deve ser feita até às 24:00 da véspera do dia da 1ª aula prática da semana
seguinte aquela em que o trabalho é realizado.
Os três exercícios deverão ser entregues num documento PDF, chamado IPLAB1.PDF. Note que
pode fazer os fluxogramas com o programa Word (existe uma página no site da cadeira que explica
como pode fazê-lo), ou qualquer outro com que esteja familiarizado, desde que converta o
resultado final para PDF.
O documento deve ser depois anexado a uma mensagem cujo ASSUNTO deve ser IPLAB1 e enviada
para o endereço que lhe foi fornecido no início do semestre.
O corpo da mensagem deve incluir os nomes, os números, a turma e o curso dos elementos do
grupo.
Exemplo:          Para: xyz@mail.pt
                  Assunto: IPLAB1

                  João Manuel Silva, nº123456 - 1T1 Eng. Electrotécnica
                  Francisco Costa Lino, nº 454332 - 1P1 Eng. Industrial
                         Turma EED
                  teste.cpp
1º Semestre 2011/2012                              Carlos Limão                             5/5

Más contenido relacionado

Destacado

102773154 exercicios-de-fluxograma
102773154 exercicios-de-fluxograma102773154 exercicios-de-fluxograma
102773154 exercicios-de-fluxogramaMarcelo Ferreira
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoRegis Magalhães
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Aula03 exercicio fluxograma casa
Aula03   exercicio fluxograma casaAula03   exercicio fluxograma casa
Aula03 exercicio fluxograma casaGrupo Tiradentes
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 

Destacado (20)

102773154 exercicios-de-fluxograma
102773154 exercicios-de-fluxograma102773154 exercicios-de-fluxograma
102773154 exercicios-de-fluxograma
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Fluxogramas
FluxogramasFluxogramas
Fluxogramas
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Modelo caso uso
Modelo caso usoModelo caso uso
Modelo caso uso
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Aula03 exercicio fluxograma casa
Aula03   exercicio fluxograma casaAula03   exercicio fluxograma casa
Aula03 exercicio fluxograma casa
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 

Más de Gabriel Faustino

Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 
Conceito de metodologia orientada a objetos
Conceito de metodologia orientada a objetosConceito de metodologia orientada a objetos
Conceito de metodologia orientada a objetosGabriel Faustino
 
Especificação caso de uso
Especificação caso de usoEspecificação caso de uso
Especificação caso de usoGabriel Faustino
 
Sistemas Inteligentes de Apoio a Decisão
Sistemas Inteligentes de Apoio a DecisãoSistemas Inteligentes de Apoio a Decisão
Sistemas Inteligentes de Apoio a DecisãoGabriel Faustino
 
Uso do auto preenchimento para inserir dados
Uso do auto preenchimento para inserir dadosUso do auto preenchimento para inserir dados
Uso do auto preenchimento para inserir dadosGabriel Faustino
 
Sobre data e os Sistemas de Data
Sobre data e os Sistemas de DataSobre data e os Sistemas de Data
Sobre data e os Sistemas de DataGabriel Faustino
 
Funçoes de Planilha listadas por categoria
Funçoes de Planilha listadas por categoriaFunçoes de Planilha listadas por categoria
Funçoes de Planilha listadas por categoriaGabriel Faustino
 
Sistema de Informação para e-Commerce
Sistema de Informação para e-CommerceSistema de Informação para e-Commerce
Sistema de Informação para e-CommerceGabriel Faustino
 
ADM - Modelos organizacionais
ADM - Modelos organizacionaisADM - Modelos organizacionais
ADM - Modelos organizacionaisGabriel Faustino
 
ADM - O ambiente organizacional
ADM - O ambiente organizacionalADM - O ambiente organizacional
ADM - O ambiente organizacionalGabriel Faustino
 
ADM - Evolução do pensamento em administração
ADM - Evolução do pensamento em administraçãoADM - Evolução do pensamento em administração
ADM - Evolução do pensamento em administraçãoGabriel Faustino
 

Más de Gabriel Faustino (20)

Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Conceito de metodologia orientada a objetos
Conceito de metodologia orientada a objetosConceito de metodologia orientada a objetos
Conceito de metodologia orientada a objetos
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Exerciciosde treino
Exerciciosde treinoExerciciosde treino
Exerciciosde treino
 
Exercicio venda livros
Exercicio venda livrosExercicio venda livros
Exercicio venda livros
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Especificação caso de uso
Especificação caso de usoEspecificação caso de uso
Especificação caso de uso
 
Sistemas Inteligentes de Apoio a Decisão
Sistemas Inteligentes de Apoio a DecisãoSistemas Inteligentes de Apoio a Decisão
Sistemas Inteligentes de Apoio a Decisão
 
Uso do auto preenchimento para inserir dados
Uso do auto preenchimento para inserir dadosUso do auto preenchimento para inserir dados
Uso do auto preenchimento para inserir dados
 
Sobre data e os Sistemas de Data
Sobre data e os Sistemas de DataSobre data e os Sistemas de Data
Sobre data e os Sistemas de Data
 
Resumo de Tipo de Dados
Resumo de Tipo de DadosResumo de Tipo de Dados
Resumo de Tipo de Dados
 
Funçoes de Planilha listadas por categoria
Funçoes de Planilha listadas por categoriaFunçoes de Planilha listadas por categoria
Funçoes de Planilha listadas por categoria
 
Funçao msgBox
Funçao msgBoxFunçao msgBox
Funçao msgBox
 
Função inPutbox
Função inPutboxFunção inPutbox
Função inPutbox
 
Sobre as Macros
Sobre as MacrosSobre as Macros
Sobre as Macros
 
Sistema de Informação para e-Commerce
Sistema de Informação para e-CommerceSistema de Informação para e-Commerce
Sistema de Informação para e-Commerce
 
ADM - Modelos organizacionais
ADM - Modelos organizacionaisADM - Modelos organizacionais
ADM - Modelos organizacionais
 
ADM - O ambiente organizacional
ADM - O ambiente organizacionalADM - O ambiente organizacional
ADM - O ambiente organizacional
 
ADM - Evolução do pensamento em administração
ADM - Evolução do pensamento em administraçãoADM - Evolução do pensamento em administração
ADM - Evolução do pensamento em administração
 

Último

Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 

Último (20)

Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 

Algoritmos, fluxogramas e pseudocódigos

  • 1. C1105 - Introdução à Programação em C 1º Trabalho de Laboratório Algoritmos, Fluxogramas e Pseudo-Código Objectivo O objectivo deste trabalho é introduzir a noção de algoritmo, bem como duas formas alternativas que podem ser utilizadas para a sua representação. O que é um Algoritmo? Um algoritmo é uma sequência bem definida de passos (ou acções) que devem ser levados a cabo (executados) para resolver um determinado problema. Um algoritmo: 1. Possui um ponto de entrada (passo inicial) e um ponto de saída (passo final) bem definidos. 2. É composto de passos individuais. 3. Cada passo está bem definido, pode ser executado, e o seu resultado é previsível. Isto é, repetidas execuções de um determinado passo produzirão sempre o mesmo resultado. 4. Existe uma ordem (sequência) adequada para a execução dos passos. Essa sequência é fundamental para a obtenção de um resultado final correcto. Em geral, depois de executado um determinado passo, a execução prossegue no passo seguinte. 5. O número de passos a executar é finito. 6. Quando executado com um conjunto de dados válido um algoritmo termina garantidamente, produzindo o resultado esperado. Do ponto de vista da forma como decorre o fluxo de execução num algoritmo (qual a sequência de execução dos passos), pode ser demonstrado que qualquer algoritmo de computador pode ser construído com recurso a apenas três tipos de construções: 1. Sequência - Salvo outra indicação, os passos são executados um a seguir ao outro, de cima para baixo. 2. Decisão - Uma forma de decidir entre a execução de duas instruções ou dois conjuntos de instruções. 3. Repetição - Uma forma de repetir, várias vezes, a execução de uma dada instrução ou conjunto de instruções. Isto é, qualquer método de representação que permita representar as três noções acima descritas é suficiente para representar qualquer tipo de algoritmo. Para além das construções acima referidas, relacionadas com o controlo da execução, para que seja possível representar qualquer algoritmo num computador, o método de representação tem ainda de permitir: 1. Ler e escrever valores (fornecer dados e receber resultados do algoritmo); 2. Realizar as 4 operações aritméticas básicas; 3. Fornecer uma forma de armazenar quantidades (também designadas por variáveis). 4. Permitir a atribuição de valores a variáveis. Como é evidente existem inúmeras maneiras de expressar estes conceitos numa quantidade de linguagens de programação diferentes. Por outro lado, existem também muitas outras características que são incluídas nas linguagens como forma de tornar mais simples a expressão de determinados conceitos. No entanto, em termos de conceitos básicos, os acima indicados são tudo o que precisa saber! Qualquer que seja o método de representação que utilizemos para descrever um algoritmo, caso este se destine a ser implementado com um computador, temos de ter em atenção que o conjunto de operações elementares que este é capaz de realizar é bastante restrito e composto por pouco mais do que as operações acima descritas. 1º Semestre 2011/2012 Carlos Limão 1/5
  • 2. C1105 - Introdução à Programação em C 1º Trabalho de Laboratório O que é um Fluxograma? Um fluxograma não é mais do que uma representação gráfica de um algoritmo. A figura seguinte ilustra um fluxograma que representa um algoritmo hipotético composto por três passos. Início Passo 1 Passo 2 Passo 3 Fim O início e o fim do algoritmo são representados por rectângulos com os cantos arredondados. Estes não representam acções mas funcionam antes como delimitadores da sequência de acções que compõem o algoritmo. Cada passo da sequência que constitui o algoritmo é representado por um rectângulo. A sequência pela qual os passos são executados é explicitamente indicada por linhas e setas. No âmbito desta disciplina todos os fluxogramas que nos iremos confrontar utilizarão apenas os seguintes símbolos, que possuem o significado indicado: Terminador Acção Interacção Decisão O que é o Pseudocódigo? Enquanto as linguagens de programação permitem expressar um algoritmo de um modo formal, o pseudocódigo permite fazê-lo de um modo mais informal, sem a preocupação de obedecer a um léxico e a uma gramática rígida. No entanto, apesar desta liberdade, dois programadores distintos devem ser capazes de estar de acordo quanto a um dado algoritmo escrito em pseudocódigo e ser capazes de escrever dois programas funcionalmente equivalentes. O pseudocódigo pode ser escrito em qualquer linguagem natural (humana) na forma de uma lista ordenada (ou numerada) de passos. O algoritmo acima descrito na forma de um fluxograma pode ser escrito em pseudocódigo como: 1. Início 2. Passo 1 3. Passo 2 4. Passo 3 5. Fim Onde se admite a convenção habitual nas linguagens naturais de ler de cima para baixo. Como é evidente esta forma informal de expressão dos algoritmos oferece uma grande flexibilidade do ponto de vista da sua utilização. No entanto, nas secções que se seguem serão apontados exemplos de pseudocódigo para as situações mais comuns que iremos encontrar, de modo a facilitar a leitura dos algoritmos descritos em pseudocódigo no âmbito desta disciplina. Controlo da Sequência de Execução - Decisões Uma instrução de decisão, também designada por instrução condicional ou instrução de selecção, permite seleccionar, de entre várias acções possíveis, a acção seguinte a executar dependendo da avaliação de uma determinada condição. 1º Semestre 2011/2012 Carlos Limão 2/5
  • 3. C1105 - Introdução à Programação em C 1º Trabalho de Laboratório Na sua forma mais simples, este tipo de instruções permite escolher uma de entre duas acções possíveis a executar seguidamente, isto é, entre dois caminhos de execução distintos, dependendo de uma condição (a resposta a uma pergunta) que é avaliada. Em pseudocódigo, uma instrução de decisão pode ser representada da seguinte forma: Se (condição) <acção a executar se condição é verdadeira> Caso Contrário < acção a executar se condição é falsa> Fim Se Podemos, evidentemente, representar a mesma instrução com recurso a um fluxograma: S Condição N ? Acção a executar se a Acção a executar se a condição for verdadeira condição for falsa Note que introduzimos uma nova forma, um losango, para representar o local onde se decide entre dois caminhos de execução possíveis. Note que uma instrução de decisão caracteriza-se por possuir apenas um caminho de entrada e dois de saída. Note quer no pseudocódigo, quer no fluxograma, que apenas uma das acções pode ser executada. Controlo da Sequência de Execução - Repetições O ingrediente final necessário é a capacidade para realizar a repetição de uma ou várias instruções. A repetição pode ser por um determinado número de vezes (bater 20 vezes com as mãos) ou enquanto uma determinada condição for verdadeira (p.e.: Enquanto houver degraus, subir.). Por uma questão de generalidade vamos considerar esta última. Em pseudocódigo pode ser representada da seguinte forma: Enquanto (condição for verdadeira) <acção a executar se condição é verdadeira> Fim Enquanto Com recurso a um fluxograma teremos: Condição N ? S Acção a executar enquanto a condição for verdadeira 1º Semestre 2011/2012 Carlos Limão 3/5
  • 4. C1105 - Introdução à Programação em C 1º Trabalho de Laboratório Exercícios Nos exercícios que se seguem, é proposto o desenvolvimento de um determinado algoritmo e, seguidamente, sugerida uma forma de abordar a resolução desse problema. O objectivo é ilustrar o modo como deve abordar a resolução deste tipo de problemas. De forma a que comece a familiarizar-se com as duas formas de representações de algoritmos que abordámos é-lhe pedido, em cada um dos exercícios, que utilize uma das formas de representação para descrever o algoritmo desenvolvido. Exercício 1 – Sequência Escreva o pseudocódigo de um algoritmo para calcular a área de um círculo. Deve incluir todos os passos necessários para obter os dados e fornecer os resultados ao utilizador. Nota: Recorde que a área de um círculo vale π x r2 Vejamos uma possível forma de abordar o problema: Dados Iniciais: É necessário pedir ao utilizador um valor para a medida do raio, ou do diâmetro, da circunferência. Primeira Abordagem – Descrição em Linguagem Natural Antes de mais necessitamos de pedir ao utilizador o valor do raio (ou do diâmetro) da circunferência. Em seguida temos de ler o valor fornecido. Depois podemos calcular o valor da área como sendo 3,14159 x Valor do Raio x Valor do Raio. Por fim temos de mostrar o valor calculado ao utilizador Segunda Abordagem – Aproveitar apenas o essencial da descrição 1. Pedir ao utilizador o valor do raio do círculo 2. Ler o valor fornecido pelo utilizador para uma variável raio 3. Fazer uma variável área = 3,14159 x raio x raio 4. Mostrar o valor da área ao utilizador Terceira Abordagem – Pseudocódigo 1. INÍCIO Cálculo da área de um Círculo 2. ESCREVER “Introduza o raio do círculo: ” 3. LER Raio 4. FAZER Área = 3,14159 x Raio x Raio 5. ESCREVER “A área do seu círculo é ”, seguido do valor de Área 6. FIM DO ALGORITMO  Desenhe um fluxograma do algoritmo acima descrito. Exercício 2 – Decisão Escreva o pseudocódigo de um algoritmo que indique ao utilizador se um determinado número inteiro não nulo é positivo ou negativo. Dados Iniciais: É necessário pedir ao utilizador um valor inteiro para o podermos avaliar. Primeira Abordagem – Descrição em Linguagem Natural Antes de mais necessitamos pedir ao utilizador um inteiro. Em seguida temos de ler o inteiro fornecido. Se o inteiro for maior do que zero, dizemos ao utilizador que o número é positivo, caso contrário dizemos ao utilizador que o número é negativo. Segunda Abordagem – Aproveitar apenas o essencial da descrição 1. Pedir ao utilizador um inteiro 2. Ler o valor fornecido pelo utilizador para uma variável chamada número 3. Se o valor de número for maior que zero dizer ao utilizador que é positivo 4. Se o valor de número for menor que zero dizer ao utilizador que é negativo 1º Semestre 2011/2012 Carlos Limão 4/5
  • 5. C1105 - Introdução à Programação em C 1º Trabalho de Laboratório Terceira Abordagem – Pseudocódigo 1. INÍCIO Número positivo ou negativo 2. ESCREVER “Introduza um inteiro não nulo: ” 3. LER Número 4. SE (Número > 0) 5. ESCREVER “O número é positivo” 6. CASO CONTRÁRIO 7. ESCREVER “O número é negativo” 8. FIM DO SE 13. FIM DO ALGORITMO  Desenhe um fluxograma do algoritmo acima descrito.  O que teria de fazer para detectar também as situações em que o valor fornecido é nulo? Exercício 3 - Repetição O pseudocódigo seguinte permite calcular P = K n e descreve um algoritmo devido ao matemático árabe Al-Kashi que o descobriu em 1414. 1. INÍCIO Cálculo de P = Kn 2. P = 1 3. ENQUANTO (N ≥ 1 ) 4. SE (N é PAR) 5. N = N/2 6. k = k × k 7. CASO CONTRÁRIO 8. N = N - 1 9. P = P × k 10. FIM DO SE 11. FIM ENQUANTO 12. ESCREVER (P) 13. FIM DO ALGORITMO Desenhe um fluxograma deste algoritmo. Construa uma tabela que mostre em cada linha os valores de P, K e N. Na primeira linha os valores iniciais, e na última os valores finais. Entrega do trabalho A entrega do trabalho deve ser feita até às 24:00 da véspera do dia da 1ª aula prática da semana seguinte aquela em que o trabalho é realizado. Os três exercícios deverão ser entregues num documento PDF, chamado IPLAB1.PDF. Note que pode fazer os fluxogramas com o programa Word (existe uma página no site da cadeira que explica como pode fazê-lo), ou qualquer outro com que esteja familiarizado, desde que converta o resultado final para PDF. O documento deve ser depois anexado a uma mensagem cujo ASSUNTO deve ser IPLAB1 e enviada para o endereço que lhe foi fornecido no início do semestre. O corpo da mensagem deve incluir os nomes, os números, a turma e o curso dos elementos do grupo. Exemplo: Para: xyz@mail.pt Assunto: IPLAB1 João Manuel Silva, nº123456 - 1T1 Eng. Electrotécnica Francisco Costa Lino, nº 454332 - 1P1 Eng. Industrial Turma EED teste.cpp 1º Semestre 2011/2012 Carlos Limão 5/5