Programa¸c˜
ao Estruturada I
Introdu¸c˜ao a Linguagens de Programa¸c˜aoProf. Thiago Caproni Tavares 1 Prof. Mateus dos Santos2
1thiago.tavares@ifsuldeminas.edu.br 2mateus.santos@ifsuldeminas.edu.br
´
Ultima Atualiza¸c˜ao: 15 de mar¸co de 2015
Conte´
udo
1 Introdu¸c˜ao 2 Classifica¸c˜ao 3 Caracter´ısticas 4 Escrevendo Programas Programa¸c˜ao Estruturada I 2 / 29Conte´
udo
1 Introdu¸c˜ao 2 Classifica¸c˜ao 3 Caracter´ısticas 4 Escrevendo Programas Programa¸c˜ao Estruturada I 3 / 29Linguagens de Programa¸c˜
ao
Nota¸c˜ao formal; Estrutura interpret´avel; Comandos e instru¸c˜oes.
Algoritmos vs Linguagens
Algoritmos devem ser expressados em linguagem de m´aquina: Ativam diretamente componentes eletrˆonicos.
M´
etodos de Tradu¸c˜
ao
Compila¸c˜ao:
Lˆe, analisa e traduz todos os comandos do programa fonte, criando o programa objeto.
Interpreta¸c˜ao:
Traduz ou interpreta cada comando ao execut´a-lo.
M´
etodos de Tradu¸c˜
ao
Compila¸c˜ao:
Lˆe, analisa e traduz todos os comandos do programa fonte, criando o programa objeto.
Interpreta¸c˜ao:
Traduz ou interpreta cada comando ao execut´a-lo.
M´
etodos de Tradu¸c˜
ao
Compila¸c˜ao:
Lˆe, analisa e traduz todos os comandos do programa fonte, criando o programa objeto.
Interpreta¸c˜ao:
Traduz ou interpreta cada comando ao execut´a-lo.
M´
etodos de Tradu¸c˜
ao
Compila¸c˜ao:
Lˆe, analisa e traduz todos os comandos do programa fonte, criando o programa objeto.
Interpreta¸c˜ao:
Traduz ou interpreta cada comando ao execut´a-lo.
M´
etodos de Tradu¸c˜
ao
Fam´ılias de Linguagens de Programa¸c˜
ao
Fam´ılias de Linguagens de Programa¸c˜
ao
Fam´ılias de Linguagens de Programa¸c˜
ao
Exemplo
ASSEMBLY:
Objetivo: substituir as sequˆencias de 0 e 1 por mnemˆonicos; Grande potencialidade;
Dependente do processador;
Confec¸c˜ao de softwares b´asicos e de apoio;
M´
etodos de Tradu¸c˜
ao
Exemplo
BASIC:
1963/65: objetivos acadˆemicos;
Linguagem bastante difundida no mundo dos PCs; Facilitou a populariza¸c˜ao dos micros.
Exemplo
COBOL:
Aplicativos comerciais / ambiente de grande porte; Poderosa na manipula¸c˜ao de grandes volumes de dados; Extin¸c˜ao: assunto bastante polˆemico.
Exemplo
FORTRAN:
Manipula¸c˜ao de n´umeros: aplica¸c˜oes cient´ıficas e de engenharia; Primeira linguagem de alto n´ıvel.
Exemplo
Linguagem C:
Fun¸c˜oes: programas eficientes sem detalhes de hardware; Altamente port´avel;
Linguagem de grande popularidade e possui um grande n´umero de aplica¸c˜oes;
O sistema operacional UNIX foi desenvolvido em C.
Conte´
udo
1 Introdu¸c˜ao 2 Classifica¸c˜ao 3 Caracter´ısticas 4 Escrevendo Programas Programa¸c˜ao Estruturada I 15 / 29Quanto ao n´ıvel
Linguagem Caracter´ıstica
Linguagem de M´aquina
´
Univa compreendida pelo computador. Espec´ıfica de cada computador. Linguagem de
Baixo N´ıvel
Utiliza mnemˆonicos para representar instru¸c˜oes elementares. Ex: Assembly.
Linguagem de Alto N´ıvel
Utiliza instru¸c˜oes pr´oximas da linguagem humana de forma a facilitar o racioc´ınio. * Exemplos:
Uso cient´ıfico: Fortran
Prop´osito Geral: Pascal, C, Basic, Java. Uso espec´ıfico: Prolog, Lisp.
Quanto a gera¸c˜
ao
1 Nota¸c˜ao bin´aria com mnemˆonicos
2 Assembly simb´olico
3 Linguagem de alto n´ıvel; (Fortran, Algol, Cobol)
4 CASE, prototipa¸c˜ao, SQLs; voltada para SGBDs, ambientes
comerciais
5 IA (Lisp, Prolog)
Quanto ao paradigma
Imperativo: sequˆencia de opera¸c˜oes; orientada a comandos Procedural: modulariza¸c˜ao de c´odigo;;
Orientada a Objetos: troca de mensagens;
Declarativo: descri¸c˜ao do conjunto da solu¸c˜ao; sem algoritmo expl´ıcito.
L´ogico: rela¸c˜oes entre valores atrav´es de regras. Funcional: sa´ıda como uma fun¸c˜ao.
( d e f u n f a t o r i a l ( n ) ( if (= n 0)
1
(* n ( f a t o r i a l ( - n 1 ) ) ) ) )
Conte´
udo
1 Introdu¸c˜ao 2 Classifica¸c˜ao 3 Caracter´ısticas 4 Escrevendo Programas Programa¸c˜ao Estruturada I 19 / 29Caracter´ısticas de uma linguagem
Abstra¸c˜ao de dados; Confiabilidade; Corre¸c˜ao;
Suporte para manuten¸c˜ao; Bom ambiente de programa¸c˜ao; Eficiˆencia;
Portabilidade;
Caracter´ısticas de um programa
Integridade; Clareza; Simplicidade; Eficiˆencia; Modularidade; Generalidade. Programa¸c˜ao Estruturada I 21 / 29Conte´
udo
1 Introdu¸c˜ao 2 Classifica¸c˜ao 3 Caracter´ısticas 4 Escrevendo Programas Programa¸c˜ao Estruturada I 22 / 29Ambiente para escrever programas
Computador Hipot´
etico
Opera¸c˜oes de entrada e sa´ıda; Opera¸c˜oes aritm´eticas;
Opera¸c˜oes l´ogicas e relacionais; Movimenta¸c˜ao de dados.
Problema
A partir de dois n´umeros que ser˜ao informados, calcular a adi¸c˜ao dos mesmos.
Solu¸c˜
ao
a) opera¸c˜ao de entrada de dados dos n´umeros;
b1) movimento do valor dos n´umeros entre a mem´oria e a ULA; b2) opera¸c˜ao aritm´etica de somar os 2 n´umeros;
b3) movimenta¸c˜ao do resultado da ULA para guardar na mem´oria; c) opera¸c˜ao de sa´ıda do resultado, que est´a guardado na mem´oria, para o dispositivo de sa´ıda desejado.
Obrigado pela aten¸c˜ao!!! thiago.tavares@ifsuldeminas.edu.br
Referˆ
encias I
ASCENCIO, A.; CAMPOS, E. de. Fundamentos da programa¸c˜ao de computadores: algoritmos, Pascal, C/C++ e Java. Pearson Prentice Hall, 2008. ISBN 9788576051480. Dispon´ıvel em:
<https://books.google.com.br/books?id=p-mTPgAACAAJ>. C: A Reference Manual. Pearson Education, 2007. ISBN 9788131714409. Dispon´ıvel em:
<https://books.google.com.br/books?id=Wt2NEypdGNIC>.
DAMAS, L. LINGUAGEM C. LTC. ISBN 9788521615194. Dispon´ıvel em: <https://books.google.com.br/books?id=22-vPgAACAAJ>. FEOFILOFF, P. Algoritmos Em Linguagem C. CAMPUS - RJ, 2009. ISBN 9788535232493. Dispon´ıvel em:
<http://books.google.com.br/books?id=LfUQai78VQgC>.
Referˆ
encias II
KERNIGHAN, B.; RITCHIE, D. C: a linguagem de programa¸c˜ao padr˜ao ANSI. Campus, 1989. ISBN 9788570015860. Dispon´ıvel em:
<https://books.google.com.br/books?id=aVWrQwAACAAJ>. MIZRAHI, V. Treinamento em linguagem C. Pearson Prentice Hall, 2008. ISBN 9788576051916. Dispon´ıvel em:
<https://books.google.com.br/books?id=7xt7PgAACAAJ>.
SCHILDT, H.; MAYER, R. C completo e total. Makron, 1997. ISBN 9788534605953. Dispon´ıvel em:
<https://books.google.com.br/books?id=PbI0AAAACAAJ>.