Anda di halaman 1dari 58

CCO 013

FUNDAMENTOS DE
PROGRAMAÇÃO

Prof. Dr. Edison Oliveira de Jesus

Universidade Federal de Itajubá


AULA 01

– Introdução ao curso
– Sistema de programação
– Bases de numeração
Prof. Dr. Edison Oliveira de Jesus

edison@unifei.edu.br

http://www.edison.unifei.edu.br

(35) 3629.1444

Instituto de Ciências Exatas


Departamento de Matemática e Computação
Laboratório de Visão Computacional Aplicada
Atendimento ao Aluno

• Segunda feira

– Das 14:00 às 16:00 horas

– Sala do professor ( LabVis – DMC – ICE )


O curso
• Tipo de aulas
– Expositivas no quadro negro
– Apresentação de transparências
– Apresentação de slides

• Avaliação
– 2 notas bimestrais ( 70% de prova escrita )
– 1 exame final
– Trabalhos individuais nas aulas práticas
( 30% da nota bimestral )
Datas Importantes
• Primeira prova bimestral
– 30 de setembro de 2010

• Segunda prova bimestral


– 25 de novembro de 2010

• Exame final
– 09 de dezembro de 2010

– As duas primeiras provas serão as 19:00 horas


– O exame será as 14:00 horas
Sugestão de Bibliografia
1. Edison Oliveira de Jesus
Notas de Aulas
www.edison.unifei.edu.br

1. Dirceu Douglas Salvetti , Lisbete Madsen Barbosa


Algoritmos
Markron Books – 1998

1. Brian W. Kernighan, Dennis M. Ritchie


C – A Linguagem de Programação
Editora Campus – 2002

1. Ascencio, A. F. G. e Campos, E. A. V.
Fundamentos de Programação de Computadores – Algoritmos, Pascal
e C/C++
Editora Prentice Hall, 2003
Sugestões para seu bom
desempenho no curso
• Não falte às aulas;
• Não tenha vergonha de fazer perguntas para
tirar suas dúvidas durante as aulas;
• Não deixe para estudar às vésperas das
provas;
• Procure seu professor em sua sala, sempre
que uma dúvida não tiver sido bem
esclarecida;
• O aluno não será atendido pelo professor às
vésperas das provas;
• O aluno não terá permissão para ingressar
em sala de aula ou qualquer outra atividade
da disciplina, se chegar atrasado ( tolerância
zero neste caso );
• Sempre que possível, utilize o computador
para tirar suas dúvidas;
• Procure também os alunos monitores de
ensino, para ser ajudado nas tarefas
escolares ( horários disponíveis nos quadros
de avisos );
• Jamais tente colar ou passar cola para outros
durante as atividades escolares; as penas
institucionais são muito rígidas a este
respeito. O aluno, se pego nestas situações,
é punido com a perda da disciplina.

• Qualquer dúvida com relação à disciplina,


procure o professor da mesma ou leia
diariamente os quadros de avisos oficiais;
não confie em boatos ou “fiquei sabendo”, ou
“disseram” etc.
A importância da disciplina no
currículo da engenharia
Preparar os alunos do curso, para programa-
ção de computadores digitais através de uma
linguagem de alto nível. Dessa forma, ao
finalizarem este curso, os alunos estarão ha-
bilitados a conceber, definir, projetar, imple-
mentar e validar programas envolvendo as
atividades naturais de seu aprendizado em
outras disciplinas, ou outras atividades, tais
como por exemplo, pesquisas e iniciação
cientifica.
• Além disso, o engenheiro é usuário obrigató-
rio desta ferramenta, principalmente na área
de engenharia, onde inúmeras aplicações
utilizam o computador como instrumento
para resolver as atividades relativas à área.
• Trabalhos complexos e freqüentes, atual-
mente só podem ser realizados com a
utilização de computadores.
• Daí a grande importância do aprendizado
desta disciplina no seu currículo.
Introdução

• Processamento de dados
– O que é
– O que significa a palavra ‘dados’

• Lógica
– O que é
– Lógica humana
– Lógica matemática
O Computador
• O que é
• Depende de alguém para comandá-lo

• Vantagens:
– Velocidade
– Memória
• Guardar a informação
• Buscar a informação
Componentes do Computador
• Unidade central de processamento ( CPU )
– Unidade lógica aritmética
– Unidade de armazenamento
– Unidade de controle

• Periféricos
– Unidade de entrada
– Unidade de saída
– Memória auxiliar
Definições básicas
• HARDWARE
– Parte física do computador

• SOFTWARE
– Parte lógica ( programas, instruções, etc )
Aplicações
• Todas as áreas de nossa vida:
– Alto nível
– Diversão
– Bancária
– Medicina
– Industrial
– Comercial
– Doméstico
– Etc.
Programação

• O que é
conjunto de instruções com o objetivo de ordenar
ao computador a execução de tarefas bem defini-
das

• Exemplo Numérico
Calcular a média aritmética de 3 números
inteiros dados
Solução

1. Obter o primeiro número


1. Obter o segundo número
1. Obter o terceiro número
1. Somar os números obtidos
1. Dividir por 3, a soma obtida no item anterior
1. Mostrar o resultado obtido no item anterior
Comentários
• Quem obtém os números?
• Onde eles são guardados, no computador,
depois de obtidos?
• Onde a soma dos números é armazenada?
• E da mesma forma, a divisão da soma dos
números?
• Como é mostrada a informação desejada?
Outro Exemplo

Dados os valores de A, B, C e D, calcular o


resultado da expressão seguinte:

A+ B
x=
C−D
Solução

1. Obter o primeiro número e guardá-lo em A


1. Obter o segundo número e guardá-lo em B
1. Obter o terceiro número e guardá-lo em C
1. Obter o quarto número e guardá-lo em D

1. Somar o número armazenado em A com o


número armazenado em B e armazenar o
resultado obtido em NUM
1. Subtrair o número armazenado em C do
número armazenado em D e armazenar o
resultado obtido em DEN
1. Dividir o valor armazenado em NUM pelo
valor armazenado em DEN e armazenar o
valor obtido em X
1. Mostrar o valor armazenado em X.
Comentários
Dados os valores de A, B, C e D,

dados por quem estes valores?

Obter o primeiro número e guardá-lo em A


obter A

A ordem de entrada se dá pela própria seqüência em


que as informações são fornecidas.
Logo, os valores dos números seguintes necessários
ao cálculo são obtidos com as instruções:
obter B
obter C
obter D
Comentários
Somar o número armazenado em A com o
número armazenado em B e armazenar o
resultado obtido em NUM :

guardar em NUM a soma de A com B


Comentários
Subtrair o número armazenado em C do
número armazenado em D e armazenar o
resultado obtido em DEN :

guardar em DEN a diferença entre C e D


Comentários
Dividir o valor armazenado em NUM pelo
valor armazenado em DEN e armazenar o
valor obtido em X

guardar em X a divisão de NUM por DEN

esta divisão pode ser realizada para qual-


quer valor de DEN?
Comentários

Mostrar o valor armazenado em X.

mostrar X
Solução atualizada
1. obter A
2. obter B
3. obter C
4. obter D
5. guardar em NUM a soma de A com B
6. guardar em DEN a diferença entre C e D
7. Verificar o valor de DEN
Se igual a zero
então
7.0 mostrar mensagem ao usuário informando-o desta
situação
senão
7.1 guardar em X a divisão de NUM por DEN
7.2 mostrar X
Outros exemplos mais
complexos

• Colocar em ordem crescente e imprimir uma


relação de nomes;
• Elaborar uma folha de pagamento;
• Obter a solução de uma equação do
segundo grau;
• Imprimir uma tabela com os 1000 primeiros
números primos.
Técnicas de Programação
• Uma metodologia de programação é consti-
tuída dos seguintes passos:

– Análise do problema;

– Projeto do programa;

– Implementação do programa;

– Verificação do programa
Análise do problema

• Compreender corretamente e sem am-


bigüidade o problema a ser resolvido;

• Especificação correta das entradas e


saídas;
Projeto do programa
• Algoritmos

– Uma seqüência finita de instruções básicas


cuja execução, em tempo finito, resolve um
problema computacional, qualquer que seja
sua instância ( os valores fornecidos ao
programa )

– É a forma de transformar um problema


qualquer num programa computacional
• Estrutura de dados

– Durante a execução do programa as informa-


ções ( dados ) são armazenadas na memória do
computador.

– As localizações de memória ( endereços ) em


que estes dados estão armazenados e a forma
como estes dados são recuperados ( numa nova
utilização ) dependem de como eles são arran-
jados. Estes arranjos, são denominados estru-
turas de dados.
Implementação

• Corresponde à codificação do algoritmo


numa linguagem de programação

• Linguagem de programação
– Meio de comunicação entre o usuário e a
máquina
Verificação

• Também chamado de testes ou depuração;

• Visa verificar ser o programa implementado


está correto, para qualquer entrada proposta
a ele;
Linguagens
• Humana
– Idiomas
– Escrita

• Computacional
– De alto nível
– De baixo nível
Linguagem de baixo nível
• É a linguagem de comunicação entendida
apenas pelo computador;
• É denominada linguagem binária pois é
constituída apenas dos dígitos zero e um;
• Exemplo de uma instrução binária:
– 0101 0011 1111 0001

• Esta linguagem é também conhecida como


linguagem Assembler
Linguagem de alto nível
• É a linguagem de comunicação entre o usuário hu-
mano e o computador;

• Existem várias linguagens disponíveis hoje em dia,


cada uma com uma característica específica:
– Fortran
– Cobol
– Lisp
– Ada
– Pascal
– C
– C++
– Java
– etc
Compilação
• É a tradução de um programa escrito em
linguagem de alto nível para sua correspon-
dente linguagem em baixo nível

• Compilador
– Software responsável pela compilação de um
programa

– Para cada linguagem de programação em alto


nível, existe um compilador correspondente.
Sistema de programação
• É o sistema computacional responsável pela tarefa
completa de programação;

• Geralmente esta tarefa envolve os passos:


– Edição do programa em linguagem de alto nível;
– Armazenamento em arquivos, deste programa editado;
– Compilação do programa
– Se houver erros na escrita do programa compilado, este
deve ser novamente reeditado;
– Execução do programa;
– Verificação do programa pelo usuário.
• Estes sistemas de programação podem
ser integrados ou não.

– Quando não integrados, cada tarefa tem um


software responsável pela sua realização ;

– Quando integrado, todas as tarefas são ge-


renciadas por um único software chamado
ambiente de programação.
Editar
Corresponde utilizar um software que permite
ao usuário escrever ( editar ) um texto,
modificar um texto, salvar um texto na
memória da máquina ou recuperar um texto
da memória da máquina.

Um software conhecido para esta tarefa é o


NOTE PAD ou Bloco de Notas presentes no
sistema operacional Windows ou Linux.
Arquivos
• É o local da memória da máquina onde as
informações são armazenadas em pacotes
ou grupos;

• Um arquivo pode ter qualquer tipo de infor-


mação, no entanto, esta deve ser conhecida
e controlada pelo usuário e pelo programa
que utiliza este arquivo;
• Tipos de arquivos:
– Os arquivos podem armazenar os programas de
computador;
– Os arquivos podem armazenar também os dados
dos programas;
– Extensões aos nomes dos arquivos são utiliza-
das para identificar o tipo do arquivo. Exemplos:
.c  armazena um programa em linguagem C;
.for  armazena um programa em linguagem Fortran;
.dat  armazena dados para um programa;
.txt  armazena textos, que também podem ser
dados
de um programa;
.java  armazena um programa em linguagem Java.
Valores decimais

• Digito decimal
–0123456789

• Utilizado para a representação numérica en-


tendida pelo usuário humano

• Operações disponíveis:
– Todas aquelas conhecidas na aritmética huma-
na
Valores Binários

• Assim como os humanos representam as


informações numéricas através dos dígitos
decimais, a máquina representa todas as
suas informações através dos dígitos biná-
rios.

• Isto se deve ao fato de que a máquina é do


estado binário, ou seja, verdadeiro ou falso,
aceso ou apagado, etc.
• Isto significa que qualquer tipo de informação
armazenada, obtida, processada pelo
compu-tador é sempre do tipo binário, ou
seja, é constituída dos dígitos 0 ( zero ) ou 1
( hum ).

• Por isto é importante o entendimento de


como é feita a representação da informação
em termos binários.
Transformação Binário para
decimal
3 2 1 0

1 1 0 1
Os números acima dos valores binários indicam as posições dos
mesmos; o valor binário mais a direita tem posição zero, o próximo a
esquerda tem posição um, e assim por diante.

O valor decimal correspondente é obtido:


-Para cada valor binário, toma-se seu correspondente decimal e o
multiplica pela base elevada ao valor correspondente de sua
posição;
-soma-se todos os resultados obtidos no passo anterior
• No exemplo, tem-se:

1 x 20 + 0 x 2 1 + 1 x 2 2 + 1 x 2 3

1+0+4+8

(13 )10
Valores Hexadecimais

• Digito Hexadecimal

– Utilizado na representação dos valores decimais


na base 16

–0 1 2 3 4 5 6 7 8 9 A B C D E F

– Correspondem respectivamente a:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
• Exemplo
– 4A2F corresponde ao valor decimal 18991

• Representação
– ( 4A2F )16 ou 4A2F h
Transformação Hexadecimal
para decimal
3 2 1 0

4 A 2 F
Os números acima dos valores hexadecimais indicam as posições dos
mesmos; o valor hexadecimal mais a direita tem posição zero, o próximo
a esquerda tem posição um, e assim por diante.

O valor decimal correspondente é obtido:


-Para cada valor hexadecimal, toma-se seu correspondente decimal
e o multiplica pela base elevada ao valor correspondente de sua
posição;
-soma-se todos os resultados obtidos no passo anterior
• Exemplo: 4A2F

F x 160 = 15 x 160 = 15 x 1 = 15
2 x 161 = 2 x 16 = 32
A x 162 = 10 x 16 x 16 = 2560
4 x 163 = 4 x 16 x 16 x 16 = 16384

Total : 15 + 32 + 2560 + 16384 = 18991 10


Transformação decimal para
Hexadecimal
1899110

Divide-se sucessivamente o valor inteiro decimal pela base


16 e toma-se os restos obtidos:

18991 / 16 = 1186 com resto 15


1186 / 16 = 74 com resto 2
74 / 16 = 4 com resto 10
4 / 16 = 0 com resto 4

Desta forma, os restos obtidos 15 / 2 / 10 / 4 são colocados


em hexadecimal em forma inversa:
Ou seja : 4A2F h
Transformações quaisquer

• É possível fazer-se qualquer tipo de transfor-


mação, ou seja, de qualquer base para qual-
quer base.

• Lembre-se que estas representações são


realizadas para simplificar o entendimento
pelo humano, enquanto a maquina entende e
processa apenas o modo binário.
• A transformação de uma base para outra é
realizada exatamente da mesma forma mos-
trada no exemplo anterior, modificando-se
apenas as bases.
• Na base binária, os dígitos constituintes são
0 e 1;
• Na base octal, os dígitos constituintes são 0,
1, ..., 7
• Na base hexadecimal, os dígitos
constituintes são, 0, 1, ..., 9, A, B, ...., F

Anda mungkin juga menyukai