Você está na página 1de 36

Introduo

Computao eletrnica: Introduo


yGurvan Huiban Pricles Miranda pbcm@cin.ufpe.br

22 de outubro de 2013

Slides fornecidos pelo prof. Gurvan Huiban

Introduo

Plano de aula

Ementa Computadores e algoritmos A linguagem C

Introduo Ementa

Computao eletrnica

Objetivo Conceitos bsicos e prtica de programao usando a linguagem C

Introduo Ementa

Contedo programtico
Variveis, tipos de Dados Expresses (aritmticas, lgicas e relacionais) Funes pr-denidas, estrutura de programa Comandos de entrada/sada, comando de atribuio Estruturas condicionais (comandos if, else, case) Estruturas de repetio (comandos for, while, repeat ) Subprogramas (funes e procedimentos) Vetores e matrizes (arrays uni- e bidimensionais) Estruturas Ponteiros, alocao dinmica de memria Arquivos texto

Introduo Ementa

Avaliao
Metodologia de ensino Aulas tericas Aulas prticas (Exerccios em sala e no laboratrio) Listas de exerccios e Monitores Avaliao 3 Provas Mdia = (Prova 1 + Prova 2)/2 Pgina do curso, com calendrio
http://cin.ufpe.br/~ghuiban/teaching/if165/ index.html

Introduo Ementa

Referncias bibliogrcas
C: Como Programar, 6a ed., Paul Deitel et al. Editora Makron Books, 2011. Aprendendo a Programar Programando na Linguagem C, 3a ed., Jaime Evarista http://professor.ic.ufal.br/jaime/. Treinamento em Linguagem C: mdulo 1, Victorine V. Mizrahi. Editora McGraw-Hill, 1995. Treinamento em Linguagem C: mdulo 2, Victorine V. Mizrahi. Editora McGraw-Hill, 1995. A Book on C, 4a ed., Al Kelley and Ira Pohl. Editora Addison Wesley, 1998. C - completo e total. 3a ed., H. Schildt. Editora Makron Books, 2005. Learn C/C++ today, V. Carpenter. http://www.cyberdiem.com/vin/learn.html: Uma coleo de referncias e tutoriais sobre as linguagens C e C++ disponveis na Internet.

Introduo Ementa

Ambiente de Desenvolvimento - IDE

Code::Blocks - http://www.codeblocks.org MinGW - http://www.mingw.org/ Dev C++ http://sourceforge.net/projects/dev-cpp/

Introduo Computadores e algoritmos

Ementa Computadores e algoritmos O computador Algoritmos Organizao de um computador Linguagens de programao A linguagem C

Introduo Computadores e algoritmos O computador

O computador

Um computador uma mquina que pode mudar de comportamento: Tocar msica Comunicar Gerar documentos Simular o funcionamento de um sistema Calcular solues de problema ...

Introduo Computadores e algoritmos O computador

Como fazer?

Como modicar o comportamento do computador? Programando o computador.

Introduo Computadores e algoritmos O computador

Por que?

Importncia da programao Aproveitar do poder oferecido pelo computador sem depender de um software em particular Escrever software correspondendo s suas exigncias Alguns softwares so sosticados e exigem conhecimentos em programao:
Automao de tarefas Excel, Word Software matemticos ...

Introduo Computadores e algoritmos Algoritmos

Algoritmos
Como se programa um computador? Atravs de uma sequncia de comandos chamada de algoritmo. Um algoritmo Um conjunto nito de comandos Bem denidos (no ambguos) Que soluciona um problema (sada) partir de dados (entrada) Em um tempo nito.

Introduo Computadores e algoritmos Algoritmos

Buf bourguignon!1
Limpe a pea de carne, retirando os nervos. Corte em cubos. Tempere com sal e pimenta-do-reino. Coloque o leo em uma panela grande e leve ao fogo. Quando ferver, doure a carne. Junte a cebola, a cenoura e o alho e refogue mais um pouco. Polvilhe com a farinha e deixe cozinhar em fogo baixo por mais 5 minutos. Acrescente o extrato de tomate, o vinho tinto e o bouquet garni. Cozinhe por mais 10 minutos. Adicione o caldo de carne, tampe a panela e deixe cozinhar at a carne car macia, em fogo baixo. Quando a carne estiver cozida, separe os cubos de carne e o bouquet garni. Passe o molho pela peneira. Leve o molho de volta panela e junte os cubos de carne.
1

Receita adaptada do blog CLGourmet do site CLmais

Introduo Computadores e algoritmos Algoritmos

Linguagem

Entretanto, um computador no consegue compreender uma receita escrita livremente. Um computador trabalha com uma linguagem mais precisa: Comandos bem denidos Sequncia bem denida Testes para denir qual o prximo passo a ser executado (se-ento-seno) Repetio de comandos at que uma condio seja satisfeita (enquanto)

Introduo Computadores e algoritmos Algoritmos

Buf bourguignon: algoritmo


1

Se a carne tiver nervos ento


1

Limpe a carne.

2 3 4 5 6 7 8 9 10 11

Corte em cubos. Tempere com sal e pimenta-do-reino. Coloque o leo em uma panela grande. Leve ao fogo. Espere at ferver. Doure a carne. Junte a cebola, a cenoura e o alho. Refogue mais um pouco. Polvilhe com a farinha. Deixe cozinhar em fogo baixo por mais 5 minutos.

Introduo Computadores e algoritmos Algoritmos

Buf bourguignon: algoritmo (2)


1

Acrescente o extrato de tomate, o vinho tinto e o bouquet garni. Cozinhe por mais 10 minutos. Adicione o caldo de carne. Tampe a panela. Enquanto a carne no estiver macia
1

2 3 4 5

Deixe cozinhar em fogo baixo. Separe os cubos de carne e o bouquet garni.

Se A carne estiver cozida ento


1

7 8 9

Passe o molho pela peneira. Leve o molho de volta panela. Junte os cubos de carne.

Introduo Computadores e algoritmos Algoritmos

Exerccio

Consideremos a seguinte questo: como obter exatamente 4 litros de gua dispondo de dois recipientes com capacidades de 3 litros e 5 litros? Como 4 = 3 + 1 ou 4 = 5 1 conseguiremos resolver a questo se conseguirmos obter 1 litro. Mas isto fcil, pois 1 = 3 + 3 5!

Introduo Computadores e algoritmos Algoritmos

1 2

Encha o recipiente de 3 litros. Transra o contedo do recipiente de 3 litros para o recipiente de 5 litros. Encha o recipiente de 3 litros. Com o contedo do recipiente de 3 litros, complete o recipiente de 5 litros. Esvazie o recipiente de 5 litros. Transra o contedo do recipiente de trs litros para o recipiente de 5 litros. Encha o recipiente de 3 litros. Transra o contedo do recipiente de 3 litros para o recipiente de 5 litros.

3 4

5 6

7 8

Introduo Computadores e algoritmos Algoritmos

Explicao:

Para compreender o algoritmo, sejam A e B os recipientes de 3 litros e de 5 litros, respectivamente, e indiquemos por (X , n) o fato de o recipiente X conter n litros de gua. No incio temos (A, 0) e (B , 0) e, aps a execuo de cada instruo, teremos:

Introduo Computadores e algoritmos Algoritmos

1 2 3 4 5 6 7 8

(A, 3), (B , 0); (A, 0), (B , 3); (A, 3), (B , 3); (A, 1), (B , 5); (A, 1), (B , 0); (A, 0), (B , 1); (A, 3), (B , 1); (A, 0), (B , 4).

Introduo Computadores e algoritmos Organizao de um computador

Organizao de um computador

Tela

CPU

Teclado

High Speed Disk

Memoria

Introduo Computadores e algoritmos Organizao de um computador

CPU/Memria
CPU (Central Processing Unit ) Unidade de Processamento Central Crebro do computador Coordenao das atividades de entrada e sada Coordenao do armazenamento em memria Realizao dos processamentos Memria RAM (Random Access Memory ) Memria de acesso aleatrio Armazenamento das informaes utilizadas no processamento Armazenamento os programas

Introduo Computadores e algoritmos Organizao de um computador

Entradas/sadas
Interaes com o usurio Apresentao dos resultados Fonte de dados Exemplos Teclado Mouse Tela Disco Impressora Placa de rede ...

Introduo Computadores e algoritmos Organizao de um computador

Representao da informao

bit (binary digit ) 0 ou 1 magnetizado ou no corrente elctrica passa/no passa Comunicao com o usurio Smbolos codicados em sequncia de bit Ex: ASCII: 1 byte = 8 bits: um caractere a : 01100001

Introduo Computadores e algoritmos Organizao de um computador

Conjunto de instrues

Conjunto de instrues que a CPU entende limitado Dependncia da arquitetura do computador Binrio: pouco prtico

Introduo Computadores e algoritmos Linguagens de programao

Linguagens de programao

Linguagem de alto nvel Usam caracteres, palavras e expresses de um idioma Mais fcil escrever e entender Ex. C/C++, Pascal, Basic, Java, HTML, . . .

Introduo Computadores e algoritmos Linguagens de programao

Compilador
Tradutor Programas escritos em uma linguagem de programao Para programas em linguagem de mquina Uma vez convertido, a execuo no depende mais do compilador ou do cdigo fonte.
Programa fonte Compilador Programa executavel Programa executavel

OS/CPU

OS/CPU

Introduo Computadores e algoritmos Linguagens de programao

Interpretador

O interpretador um programa que traduze em tempo real os programas escritos em alguma linguagem de programao, e manda executar. A execuo de um programa interpretado em geral mais lenta que o programa compilado.

Programa fonte

Interpretador

OS/CPU

Introduo A linguagem C

A linguagem C

Ementa Computadores e algoritmos A linguagem C

Introduo A linguagem C

A origem de C

Histrico Criada por Dennis Ritchie nos anos setenta Linguagem do sistema Unix Padro descrito em: The C Programming Language, Brian Kernighan & Dennis Ritchie Grande nmero de compiladores C com a popularizao dos PCs Standard C, ANSI (American National Standards Institute) Inicialmente: programao de sistemas

Introduo A linguagem C

Caractersticas

Linguagem compilada Simplicidade: 32 palavras chaves Eciente Portvel Grande variedade de tipos de dados (inteiro, real, array etc.) Linguagem estruturada

Introduo A linguagem C

Linguagem Estruturada

Agrupamento de informaes e instrues necessrias uma tarefa especca Uso de sub-rotinas (funes) e variveis locais Compartilhamento de uma funo entre diferentes sees do cdigo Implementao escondida do resto do programa

Introduo A linguagem C

Por que o C?

Muito usada Ecincia Portabilidade Compiladores na grande maioria das arquiteturas Se encontra em todo tipo de sistema (sistemas embutidos at grandes sistemas) Sintaxe aparece em outras linguagens (C++, Java, PHP, . . . ) Existem bibliotecas em vrias reas

Introduo A linguagem C

Hello World

int main(void) { printf("Hello world!\n"); return 0; }

Introduo A linguagem C

Hello World: Edio

Introduo A linguagem C

Hello World: Compilao

HelloWorld.c

Compilacao

HelloWorld.exe

001001011101101001010101010111110 100001110100101110101000111001010 011110001001011000101101011101001

Você também pode gostar