Algoritimos
Artigo: Algoritimos. Pesquise 862.000+ trabalhos acadêmicosPor: kallsons • 11/3/2015 • 499 Palavras (2 Páginas) • 246 Visualizações
Fundamentos de Programação Estruturada em C
Luiz Fernando Martha
Referências Básicas
• Gries, D., The Science of Programming, Springer-Verlag, New York, 1985.
• Hehl, M.E., Linguagem de Programação Estruturada FORTRAN 77, McGraw-Hill, 1986.
• Arakaki, R. et. alli., Fundamentos de Programação em C, Livros Técnicos e Científicos.
• Kernighan, B.W.; Ritchie, D.M., The C Programming Language, Prentice-Hall, Second Edition,
1988.
• Savitch, W.J., Pascal: An Introduction of the Art and Science of Programming, The Benjamin /
Cummings Publishing Company, 1984.
Introdução
Principal desafio:
“Como escrever eficientemente programas
grandes?”
Um enfoque:
1. Pegue uma tarefa longa, quebre em pedaços
(blocos) menores.
2. Repita 1. até que os pedaços sejam unidades
inteligíveis e fáceis de serem manipuladas.
Programa bem projetado:
Unidades pequenas, independentes e bem documentadas.
Programação estruturada:
Formaliza a idéia de dividir em blocos. Isto
força o programador a saber exatamente o estado
do programa antes e depois de cada bloco
e evita o chamado “código espaguete”, onde
não se tem noção em que estágio da execução
o programa se encontra em uma determinada
instrução.
Diagrama de blocos:
• Utilizado para mostrar graficamente o fluxo
de controle de um programa.
• Adotado a notação de diagrama de blocos
N-S (Nassi-Schneiderman) [Arakaki, Apêndice
B].
Comentários em C:
/* Este é um comentário no meio de um
código em C */
Programação seqüencial
O fluxo de controle de um programa estruturado
é feito de bloco em bloco, seqüencialmente,
onde cada bloco pode ser:
• uma instrução;
• um conjunto de instruções;
• um aninhamento de outros blocos;
• uma rotina (função);
• um programa.
Diagrama N-S:
Bloco 1
Bloco 2
Bloco n
• • •
Para se poder garantir que o fluxo de controle
é feito de forma seqüencial, associado a cada
bloco existe uma asserção de pré-condição e
uma asserção de pós-condição:
/* pre: asserção de pré-condição */
/* pos: asserção de pós-condição */
Uma asserção é um comentário que afirma
alguma coisa que o programador espera ser
verdadeira quando a execução do programa
atinge a asserção.
Exemplo:
/* pre: x + 1 > 0 */
x = x + 1;
/* pos: x > 0 */
2
Uma “tripla” pre-bloco-pos diz que se a asserção
pre é verdadeira antes da execução do
bloco, então a asserção pos é verdadeira após a
execução. A “tripla” não diz absolutamente
coisa alguma a respeito da execução do bloco
quando pre é falsa.
Estruturas de controle
Na programação estruturada, a estruturação
está baseada em um pequeno número de estruturas
de controle:
• controle seqüencial;
• controle de decisão;
• controle de seleção múltipla;
•
...