Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
22 de outubro de 2013
Introduo
Plano de aula
Introduo Ementa
Computao eletrnica
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
Ementa Computadores e algoritmos O computador Algoritmos Organizao de um computador Linguagens de programao A linguagem C
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 ...
Como fazer?
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 ...
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.
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
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)
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.
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
7 8 9
Passe o molho pela peneira. Leve o molho de volta panela. Junte os cubos de carne.
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!
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
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:
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).
Organizao de um computador
Tela
CPU
Teclado
Memoria
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
Entradas/sadas
Interaes com o usurio Apresentao dos resultados Fonte de dados Exemplos Teclado Mouse Tela Disco Impressora Placa de rede ...
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
Conjunto de instrues
Conjunto de instrues que a CPU entende limitado Dependncia da arquitetura do computador Binrio: pouco prtico
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, . . .
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
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
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
Introduo A linguagem C
Introduo A linguagem C
HelloWorld.c
Compilacao
HelloWorld.exe