Buscar

Introdução à Programação Estruturada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Module Introduction 
Programação 
 5374 : Engenharia Informática 
 6638 : Tecnologias e Sistemas de Informação 
 9099 : Bioengenharia 
10135 : Ciências Biomédicas 
Cap. 4 — Algoritmos e Programação Estruturada	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Objectivos:	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Problemas e Algoritmos	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Noção de Problema���
Exemplo: como fazer um bolo? 	
Farinha de Trigo	
Ovos	
Manteiga	
Açúcar	
receita	
Fermento	
 Leite	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Noção de Algoritmo	
Farinha de Trigo	
Ovos	
Manteiga	
Açúcar	
algoritmo	
Fermento	
 Leite	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Desenho ou Concepção de Algoritmos���
para a Resolução de Problemas	
PROBLEMA ALGORITMO PROGRAMA 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Passos na Concepção e Construção de Algoritmos	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Método Cartesiano de Dividir-para-Conquistar	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Características Fundamentais dum Algoritmo	
Pode haver mais do que um algoritmo para resolver um problema.	
Por exemplo, para ir de casa até o trabalho, podemos escolher diversos 	
meios de transportes em função do preço, conforto, rapidez, etc..	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Representações de Algoritmos	
Não existe consenso entre os especialistas sobre qual é a melhor maneira de representar um algoritmo. 	
Actualmente a maneira mais comum de representar algoritmos é através de uma pseudo-linguagem ou 
pseudo-código. Esta forma de representação tem a vantagem de o algoritmo seja escrito de uma forma 
que está próxima de uma linguagem de programação de computadores.	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Codificação em Linguagem Natural (1)	
1.  Início	
2.  Ler X, Y	
3.  Calcular a média M de X e Y	
4.  Escrever M	
5.  Fim	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Codificação em Fluxograma (2)	
Ler X	
Ler Y	
M=(X+Y)/2	
Escreve M	
Início	
Fim	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Codificação em Pseudo-código (3)	
1.  Início	
2.  Ler X, Y	
3.  Calcular a média M=(X+Y)/2	
4.  Escrever M	
5.  Fim	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Codificação em C (4)	
#include <stdio.h> 
main(){ 
 float X, Y, M; 
 printf(Introduza o valor de X:\n”); 
 scanf("%f", &X); 
 printf(Introduza o valor de Y:\n”); 
 scanf("%f", &Y); 
 M=(X+Y)/2; 
 printf(”A media M = %f\n”,M); 
} 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Programação Visual com Fluxogramas	
início e fim de fluxograma	
entrada e saída de dados	
teste e decisão	
outras acções/instruções	
conector na mesma página	
conector para outra página	
inicialização	
teste e actualização	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Estruturas Lógicas de Programação ���
(estruturas de controlo)	
•  Uma estrutura (de controlo) é a unidade básica da lógica de programação.	
•  Em meados da década de 60, alguns matemáticos provaram que qualquer programa podia 
ser construído através da combinação de 3 estruturas básicas: sequência, selecção e 
repetição.	
entrance	
 entrance	
entrance	
exit	
exit	
exit	
SEQUÊNCIA	
 SELECÇÃO	
 REPETIÇÃO	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Sequência	
entrance	
exit	
{…} 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Selecção de 2-vias	
•  Uma estrutura de selecção é também 
designada por estrutura de decisão.	
•  Neste caso, o fluxo de processamento 
segue por 1 das 2 vias, dependendo do 
valor lógico (verdadeiro ou falso) da 
expressão avaliada no início da estrutura.	
•  Se o fluxo de processamento só passa por 
1 via, então só uma das acções é realizada 
ou processada.	
•  Em C, uma estrutura de selecção com 2 
vias é a instrução if-else.	
if-else 
false	
 true	
?	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Exemplo em C: if-else	
int main() 
{ 
 int x, y, M; 
 printf(”Introduza x e y: \n”); 
 scanf("%d%d", &x, &y); 
 if (x > y) 
 M = x; 
 else 
 M = y; 
 printf("O valor maior = %d\n", M); 
 return 0; 
} 
 #include <stdio.h> 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Selecção de 1-via	
•  Neste caso, se a expressão lógica tiver 
resultado false, nenhuma acção é 
processada dentro da estrutura de 
selecção.	
•  Só é processada uma acção dentro da 
estrutura de selecção se a expressão lógica 
for true; daí, o nome de selecção com 1 
via.	
•  Em C, uma estrutura de selecção com 1 
via é a instrução if.	
if 
false	
 true	
?	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Exemplo em C: if	
int main() 
{ 
 int x, y, M; 
 printf(”Introduza x e y: \n”); 
 scanf("%d%d", &x, &y); 
 M = x; 
 if (y > M) 
 M = y; 
 printf("O valor maior = %d\n", M); 
 return 0; 
} 
 #include <stdio.h> 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Selecção de n-vias	
•  Neste caso, a decisão não é feita com base 
numa expressão lógica porque há mais do 
que 2 resultados possíveis. 	
•  Também só são processadas a acção ou as 
acções encontradas numa via.	
•  Em C, uma estrutura de selecção com n 
vias é a instrução switch com break. No 
entanto, se não usarmos o break, há a 
possibilidade de executar as acções de 
várias vias.	
switch 
. . . 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Exemplo em C: switch	
int main() 
{ 
 int x, y, resultado; 
 char operacao; 
 printf(”Introduza x operador y: \n”); 
 scanf("%d %c %d", &x, &operacao, &y); 
 switch (operacao) { 
 case ‘+’ : resultado = x + y; 
 break; 
 case ‘-’ : resultado = x - y; 
 break; 
 case ‘*’ : resultado = x * y; 
 break; 
 case ‘/’ : resultado = x / y; 
 } 
 printf("O resultado = %d\n", resultado); 
 return 0; 
} 
 #include <stdio.h> 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Repetição com Teste à Cabeça	
•  Neste caso, também há a necessidade de 
tomar uma decisão com base no valor 
lógico duma expressão.	
•  No entanto, a mesma acção será 
executada repetidamente enquanto o 
resultado da expressão lógica se mantiver 
verdadeiro (true).	
•  O teste (da expressão lógica) precede a 
acção. Diz-se, por isso, que o teste é à 
cabeça. 	
•  O teste é importante porque funciona 
como uma condição de paragem (a false) 
dos ciclos or repetições.	
•  Em C, uma estrutura de repetição deste 
tipo é a instrução while.	
true 
false 
? 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Exemplo em C: while	
intmain() 
{ 
 int soma, n=1; 
 soma = 0; // inicialização da variável soma 
 while (n <= 100) // teste de paragem 
 { 
 soma = soma + n; // actualização da variável soma	
 n = n + 1; // actualização da variável de controlo 
 } 
 printf("O valor da soma = %d\n", soma); 
 return 0; 
} 
 #include <stdio.h> 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Repetição com Teste à Cauda	
•  Esta estrutura de repetição é em tudo 
idêntica à anterior. A diferença é que o 
teste é feito após o processamento da 
acção	
•  O teste (da expressão lógica) sucede a 
acção. Diz-se, por isso, que o teste é à 
cauda. 	
•  Em C, uma estrutura de repetição deste 
tipo é a instrução do-while.	
true 
false 
? 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Exemplo em C: do-while	
int main() 
{ 
 int soma, n=1; 
 soma = 0; // inicialização da variável soma 
 do 
 { 
 soma = soma + n; // actualização da variável soma	
 n = n + 1; // actualização da variável de controlo 
 } 
 while (n <= 100); // teste de paragem 
 printf("O valor da soma = %d\n", soma); 
 return 0; 
} 
 #include <stdio.h> 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Repetição com Nº Pré-definido de Ciclos���
•  Esta estrutura de repetição é em tudo 
idêntica às anteriores. 	
•  O teste é feito à cabeça. 	
•  A diferença é que à partida se especifica o 
número de ciclos (ou iterações) que serão 
efectuados, i.e. o número de vezes que a 
acção será processada.	
•  Em C, uma estrutura de repetição deste 
tipo é a instrução for.	
true 
false 
? 
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Exemplo em C: for	
int main() 
{ 
 int soma, n=1; 
 soma = 0; // inicialização da variável soma 
 for (n=1; n<=100; n++) 
 soma = soma + n; // actualização da variável soma	
 printf("O valor da soma = %d\n", soma); 
 return 0; 
} 
 #include <stdio.h> 
inicialização	
 teste de paragem	
 actualização	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Programação Estruturada	
Algoritmos e Programação Estruturada	
5375, 6619, 9099, 10135 	
Programação	
Sumário:	
FIM

Outros materiais