Você está na página 1de 17

MC-102 Aula 01 Introdu c ao ` a Programa c ao de Computadores

Instituto de Computa c ao Unicamp

Primeiro Semestre de 2006

Organiza c ao de um computador Algoritmos A linguagem C

Roteiro

Organiza c ao de um computador

Algoritmos

A linguagem C

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

O que e um computador?

Computador: o que computa, calculador, calculista. (dicion ario Houaiss). Os primeiros computadores eram humanos que calculavam tabelas de logaritmos ou trajet orias pra canh oes, seguindo procedimentos bem denidos. Um computador e uma m aquina que, a partir de uma entrada, realiza um n umero muito grande de c alculos matem aticos e l ogicos, gerando uma sa da.

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Hardware e dispositivos
A linguagem nativa do computador e codicada numericamente, de forma bin aria: Bit Pode assumir valores 0 ou 1. Byte Agrupamento de 8 bits em uma palavra. Letras e s mbolos s ao representados por n umeros.
Monitor Keyboard Floppy disk drive Hard disk drive

CPU

Memory

Video controller

Keyboard controller

Floppy disk controller

Hard disk controller

Bus

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Organiza c ao b asica de um ambiente computacional

Computadores realizam tarefas complexas por meio de um n umero enorme de opera co es simples. Para gerenciar a complexidade das solu co es, existe uma hierarquia de fun co es, onde cada uma apresenta uma interface mais simples. Programas de Aplica c ao Shell Compiladores Editores Sistema operacional Hardware

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Programando computadores

Como usu arios, interagimos com os programas de aplica c ao. Neste curso iremos descer nesta hierarquia, para construirmos novos programas de aplica c ao. Estaremos interessados em algoritmos e em linguagens de programa c ao, particularmente a linguagem C.

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Algoritmos

Seq u encia de passos, precisos e bem denidos, para a realiza c ao de uma tarefa. Algoritmos podem ser especicados de v arias formas, inclusive em portugu es. Exemplo de algoritmo Como calcular 2345 + 4567 usando l apis, papel e uma tabuada?

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

De algoritmos a programas

Como transformar um algoritmo em linguagem que o computador entenda? Deve ser capaz de expressar tudo o que o computador pode fazer. N ao pode ser amb gua.

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Um pouco de hist oria


Programa c ao em c odigo absoluto ou bin ario (apenas 0s e 1s).

ENIAC

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Linguagem Assembly

Um programa, chamado montador ou assembler, faz a transforma c ao em c odigo absoluto. LOOP: MOV A, 3 INC A JMP LOOP

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Linguagens de alto n vel

Mais distantes da m aquina e mais pr oximas de linguagens naturais (ingl es, portugu es, etc.). Mesmo mais compreens veis, elas n ao s ao amb guas. Um compilador as transforma em c odigo execut avel. Exemplos de linguagens C Pascal Java

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Primeiro programa em C

Um programa em C e um arquivo texto, contendo declara co es e opera co es da linguagem. Isto e chamado de c odigo fonte. #include <stdio.h> main() { printf("Hello, world!\n"); }

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Como executar este programa

Para executar um programa a partir do seu c odigo fonte e necess ario compil a-lo, gerando c odigo bin ario ou execut avel. Este pode ser executado como qualquer outro programa de aplica c ao. $ gcc hello.c -o hello $ hello Hello, world!

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

O que s ao erros de compila c ao?


Caso o programa n ao esteja de acordo com as regras da linguagem, erros de compila c ao ocorrer ao. Ler e entender estes erros e muito importante. #include <stdio.h> main() { printf("Hello, world!\n");

$ gcc hello.c -o hello hello.c: In function main: hello.c:5: error: syntax error at end of input

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

O que s ao erros de execu c ao?


Acontecem quando o comportamento do programa diverge do esperado e podem acontecer mesmo quando o programa compila corretamente. #include <stdio.h> main() { printf("Hello, world! $#%#@%\n"); } $ gcc hello.c -o hello $ hello Hello, world! $#%#@%

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

O que e um depurador?

Ferramenta que executa um programa passo a passo. Ajuda a encontrar erros de execu c ao (bugs). Exemplo gdb

MC-102 Aula 01

Organiza c ao de um computador Algoritmos A linguagem C

Um exemplo mais complexo


#include <stdio.h> main() { int x, y; printf("x: "); scanf("%d", &x); printf("y: "); scanf("%d", &y); if (x > y) printf ("O maior n umero e x = %d\n", x); else printf ("O maior n umero e y = %d\n", y); }

MC-102 Aula 01