Você está na página 1de 57

CCO 013 FUNDAMENTOS DE PROGRAMAO

Prof. Dr. Edison Oliveira de Jesus

Universidade Federal de Itajub

AULA 01
Introduo ao curso Sistema de programao Bases de numerao

Prof. Dr. Edison Oliveira de Jesus


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

Instituto de Cincias Exatas


Departamento de Matemtica e Computao Laboratrio de Viso Computacional Aplicada

O curso
Tipo de aulas
Expositivas no quadro negro Apresentao de transparncias Apresentao de slides

Avaliao
2 notas bimestrais ( 70% de prova escrita ) 1 exame final Trabalhos individuais nas aulas prticas ( 30% da nota bimestral )

Datas Importantes

Consultar a pgina do professor

Sugesto de Bibliografia

Consultar a pgina do professor

Sugestes para seu bom desempenho no curso


No falte s aulas; No tenha vergonha de fazer perguntas para tirar suas dvidas durante as aulas; No deixe para estudar s vsperas das provas; Procure seu professor em sua sala, sempre que uma dvida no tiver sido bem esclarecida;

O aluno no ser atendido pelo professor s vsperas das provas; O aluno no ter permisso para ingressar em sala de aula ou qualquer outra atividade da disciplina, se chegar atrasado ( tolerncia zero neste caso ); Sempre que possvel, utilize o computador para tirar suas dvidas; Procure tambm os alunos monitores de ensino, para ser ajudado nas tarefas escolares ( horrios disponveis nos quadros de avisos );

Jamais tente colar ou passar cola para outros durante as atividades escolares; as penas institucionais so muito rgidas a este respeito. O aluno, se pego nestas situaes, punido com a perda da disciplina. Qualquer dvida com relao disciplina, procure o professor da mesma ou leia diariamente os quadros de avisos oficiais; no confie em boatos ou fiquei sabendo, ou disseram etc.

A importncia da disciplina no currculo da engenharia


Preparar os alunos do curso, para programao de computadores digitais atravs de uma linguagem de alto nvel. Dessa forma, ao finalizarem este curso, os alunos estaro habilitados a conceber, definir, projetar, implementar e validar programas envolvendo as atividades naturais de seu aprendizado em outras disciplinas, ou outras atividades, tais como por exemplo, pesquisas e iniciao cientifica.

Alm disso, o engenheiro usurio obrigatrio desta ferramenta, principalmente na rea de engenharia, onde inmeras aplicaes utilizam o computador como instrumento para resolver as atividades relativas rea. Trabalhos complexos e freqentes, atualmente s podem ser realizados com a utilizao de computadores. Da a grande importncia do aprendizado desta disciplina no seu currculo.

Introduo
Processamento de dados
O que O que significa a palavra dados

Lgica
O que Lgica humana Lgica matemtica

O Computador
O que Depende de algum para comand-lo

Vantagens:
Velocidade Memria
Guardar a informao Buscar a informao

Componentes do Computador
Unidade central de processamento ( CPU )
Unidade lgica aritmtica Unidade de armazenamento Unidade de controle

Perifricos
Unidade de entrada Unidade de sada Memria auxiliar

Definies bsicas
HARDWARE
Parte fsica do computador

SOFTWARE
Parte lgica ( programas, instrues, etc )

Aplicaes
Todas as reas de nossa vida:
Alto nvel Diverso Bancria Medicina Industrial Comercial Domstico Etc.

Programao
O que
conjunto de instrues com o objetivo de ordenar ao computador a execuo de tarefas bem definidas

Exemplo Numrico
Calcular a mdia aritmtica de 3 nmeros inteiros dados

Soluo
1. Obter o primeiro nmero 2. Obter o segundo nmero 3. Obter o terceiro nmero 4. Somar os nmeros obtidos

5. Dividir por 3, a soma obtida no item anterior


6. Mostrar o resultado obtido no item anterior

Comentrios
Quem obtm os nmeros?
Onde eles so guardados, no computador, depois de obtidos? Onde a soma dos nmeros armazenada?

E da mesma forma, a diviso da soma dos nmeros?


Como mostrada a informao desejada?

Outro Exemplo
Dados os valores de A, B, C e D, calcular o resultado da expresso seguinte:

A B x CD

Soluo
1. Obter o primeiro nmero e guard-lo em A 2. Obter o segundo nmero e guard-lo em B 3. Obter o terceiro nmero e guard-lo em C 4. Obter o quarto nmero e guard-lo em D

5. Somar o nmero armazenado em A com o nmero armazenado em B e armazenar o resultado obtido em NUM

6. Subtrair o nmero armazenado em C do nmero armazenado em D e armazenar o resultado obtido em DEN


7. Dividir o valor armazenado em NUM pelo valor armazenado em DEN e armazenar o valor obtido em X 8. Mostrar o valor armazenado em X.

Comentrios
Dados os valores de A, B, C e D, dados por quem estes valores? Obter o primeiro nmero e guard-lo em A obter A

A ordem de entrada se d pela prpria seqncia em que as informaes so fornecidas. Logo, os valores dos nmeros seguintes necessrios ao clculo so obtidos com as instrues: obter B obter C obter D

Comentrios
Somar o nmero armazenado em A com o nmero armazenado em B e armazenar o resultado obtido em NUM : guardar em NUM a soma de A com B

Comentrios
Subtrair o nmero armazenado em C do nmero armazenado em D e armazenar o resultado obtido em DEN : guardar em DEN a diferena entre C e D

Comentrios
Dividir o valor armazenado em NUM pelo valor armazenado em DEN e armazenar o valor obtido em X

guardar em X a diviso de NUM por DEN


esta diviso pode ser realizada para qualquer valor de DEN?

Comentrios

Mostrar o valor armazenado em X.


mostrar X

Soluo atualizada
1. 2. 3. 4. 5. 6. 7. obter A obter B obter C obter D guardar em NUM a soma de A com B guardar em DEN a diferena entre C e D Verificar o valor de DEN
Se igual a zero ento 7.0 mostrar mensagem ao usurio informando-o desta situao seno 7.1 guardar em X a diviso de NUM por DEN 7.2 mostrar X

Outros exemplos mais complexos


Colocar em ordem crescente e imprimir uma relao de nomes; Elaborar uma folha de pagamento; Obter a soluo de uma equao do segundo grau; Imprimir uma tabela com os 1000 primeiros nmeros primos.

Tcnicas de Programao
Uma metodologia de programao constituda dos seguintes passos:
Anlise do problema; Projeto do programa; Implementao do programa; Verificao do programa

Anlise do problema
Compreender corretamente e sem ambigidade o problema a ser resolvido; Especificao correta das entradas e sadas;

Projeto do programa
Algoritmos
Uma seqncia finita de instrues bsicas cuja execuo, em tempo finito, resolve um problema computacional, qualquer que seja sua instncia ( os valores fornecidos ao programa ) a forma de transformar um problema qualquer num programa computacional

Estrutura de dados
Durante a execuo do programa as informaes ( dados ) so armazenadas na memria do computador.

As localizaes de memria ( endereos ) em que estes dados esto armazenados e a forma como estes dados so recuperados ( numa nova utilizao ) dependem de como eles so arranjados. Estes arranjos, so denominados estruturas de dados.

Implementao
Corresponde codificao do algoritmo numa linguagem de programao Linguagem de programao
Meio de comunicao entre o usurio e a mquina

Verificao
Tambm chamado de testes ou depurao; Visa verificar ser o programa implementado est correto, para qualquer entrada proposta a ele;

Linguagens
Humana
Idiomas Escrita

Computacional
De alto nvel De baixo nvel

Linguagem de baixo nvel


a linguagem de comunicao entendida apenas pelo computador;
denominada linguagem binria pois constituda apenas dos dgitos zero e um; Exemplo de uma instruo binria:
0101 0011 1111 0001

Esta linguagem tambm conhecida como linguagem Assembler

Linguagem de alto nvel


a linguagem de comunicao entre o usurio humano e o computador; Existem vrias linguagens disponveis hoje em dia, cada uma com uma caracterstica especfica:
Fortran Cobol Lisp Ada Pascal C C++ Java etc

Compilao
a traduo de um programa escrito em linguagem de alto nvel para sua correspondente linguagem em baixo nvel

Compilador
Software responsvel pela compilao de um programa Para cada linguagem de programao em alto nvel, existe um compilador correspondente.

Sistema de programao
o sistema computacional responsvel pela tarefa completa de programao; Geralmente esta tarefa envolve os passos:
Edio do programa em linguagem de alto nvel; Armazenamento em arquivos, deste programa editado; Compilao do programa Se houver erros na escrita do programa compilado, este deve ser novamente reeditado; Execuo do programa; Verificao do programa pelo usurio.

Estes sistemas de programao podem ser integrados ou no.


Quando no integrados, cada tarefa tem um software responsvel pela sua realizao ; Quando integrado, todas as tarefas so gerenciadas por um nico software chamado ambiente de programao.

Editar
Corresponde utilizar um software que permite ao usurio escrever ( editar ) um texto, modificar um texto, salvar um texto na memria da mquina ou recuperar um texto da memria da mquina. Um software conhecido para esta tarefa o NOTE PAD ou Bloco de Notas presentes no sistema operacional Windows ou Linux.

Arquivos
o local da memria da mquina onde as informaes so armazenadas em pacotes ou grupos; Um arquivo pode ter qualquer tipo de informao, no entanto, esta deve ser conhecida e controlada pelo usurio e pelo programa que utiliza este arquivo;

Tipos de arquivos:
Os arquivos podem armazenar os programas de computador; Os arquivos podem armazenar tambm os dados dos programas; Extenses aos nomes dos arquivos so utilizadas para identificar o tipo do arquivo. Exemplos:
armazena um programa em linguagem C; armazena um programa em linguagem Fortran; armazena dados para um programa; armazena textos, que tambm podem ser dados de um programa; .java armazena um programa em linguagem Java. .c .for .dat .txt

Valores decimais
Digito decimal
0123456789

Utilizado para a representao numrica entendida pelo usurio humano Operaes disponveis:
Todas aquelas conhecidas na aritmtica humana

Valores Binrios
Assim como os humanos representam as informaes numricas atravs dos dgitos decimais, a mquina representa todas as suas informaes atravs dos dgitos binrios. Isto se deve ao fato de que a mquina do estado binrio, ou seja, verdadeiro ou falso, aceso ou apagado, etc.

Isto significa que qualquer tipo de informao armazenada, obtida, processada pelo computador sempre do tipo binrio, ou seja, constituda dos dgitos 0 ( zero ) ou 1 ( hum ). Por isto importante o entendimento de como feita a representao da informao em termos binrios.

Transformao Binrio para decimal


3 2 1 0

Os nmeros acima dos valores binrios indicam as posies dos mesmos; o valor binrio mais a direita tem posio zero, o prximo a esquerda tem posio um, e assim por diante.

O valor decimal correspondente obtido:


-Para cada valor binrio, toma-se seu correspondente decimal e o multiplica pela base elevada ao valor correspondente de sua posio; -soma-se todos os resultados obtidos no passo anterior

No exemplo, tem-se:
1 x 20 + 0 x 21 + 1 x 22 + 1 x 23

1+0+4+8
(13 )10

Valores Hexadecimais
Digito Hexadecimal
Utilizado na representao 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

Representao
( 4A2F )16 ou 4A2F h

Transformao Hexadecimal para decimal


3 2 1 0

Os nmeros acima dos valores hexadecimais indicam as posies dos mesmos; o valor hexadecimal mais a direita tem posio zero, o prximo a esquerda tem posio 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 posio;

-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 = 1899110

Transformao 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 so colocados em hexadecimal em forma inversa: Ou seja : 4A2F h

Transformaes quaisquer
possvel fazer-se qualquer tipo de transformao, ou seja, de qualquer base para qualquer base. Lembre-se que estas representaes so realizadas para simplificar o entendimento pelo humano, enquanto a maquina entende e processa apenas o modo binrio.

A transformao de uma base para outra realizada exatamente da mesma forma mostradas nos exemplos anteriores, modificandose apenas as bases.
Na base binria, os dgitos constituintes so 0 e 1; Na base octal, os dgitos constituintes so 0, 1, ..., 7 Na base hexadecimal, os dgitos constituintes so, 0, 1, ..., 9, A, B, ...., F