Você está na página 1de 16

Organizac

ao de um computador
Algoritmos
A linguagem C

Roteiro

Organizacao de um computador

Algoritmos

A linguagem C

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

O que e um computador?

Computador: o que computa, calculador, calculista.


(dicionario Houaiss).
Os primeiros computadores eram humanos que calculavam
tabelas de logaritmos ou trajet
orias pra canhoes, seguindo
procedimentos bem definidos.
Um computador e uma maquina que, a partir de uma entrada,
realiza um n
umero muito grande de calculos matematicos e
l
ogicos, gerando uma sada.

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Hardware e dispositivos
A linguagem nativa do computador e codificada numericamente,
de forma binaria:
Bit Pode assumir valores 0 ou 1.
Byte Agrupamento de 8 bits em uma palavra.
Letras e smbolos sao representados por n
umeros.
Monitor

CPU

Memory

Video
controller

Keyboard

Floppy
disk drive

Hard
disk drive

Keyboard
controller

Floppy
disk
controller

Hard
disk
controller

Bus

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Organizacao basica de um ambiente computacional

Computadores realizam tarefas complexas por meio de um


n
umero enorme de operacoes simples.
Para gerenciar a complexidade das solucoes, existe uma
hierarquia de funcoes, onde cada uma apresenta uma interface
mais simples.
Programas de Aplicacao
Shell Compiladores Editores
Sistema operacional
Hardware

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Programando computadores

Como usuarios, interagimos com os programas de aplicacao.


Neste curso iremos descer nesta hierarquia, para construirmos
novos programas de aplicacao.
Estaremos interessados em algoritmos e em linguagens de
programacao, particularmente a linguagem C.

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Algoritmos

Seq
uencia de passos, precisos e bem definidos, para a
realizacao de uma tarefa.
Algoritmos podem ser especificados de varias formas, inclusive
em portugues.
Exemplo de algoritmo
Como calcular 2345 + 4567 usando lapis, papel e uma tabuada?

MC-102 Aula 01

Organizac
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.
Nao pode ser ambgua.

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Um pouco de historia
Programacao em c
odigo absoluto ou binario (apenas 0s e 1s).

ENIAC

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Linguagem Assembly

Um programa, chamado montador ou assembler, faz a


transformacao em c
odigo absoluto.
LOOP:

MOV A, 3
INC A
JMP LOOP

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Linguagens de alto nvel

Mais distantes da maquina e mais pr


oximas de linguagens
naturais (ingles, portugues, etc.).
Mesmo mais compreensveis, elas nao sao ambguas.
Um compilador as transforma em c
odigo executavel.
Exemplos de linguagens
C
Pascal
Java

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Primeiro programa em C

Um programa em C e um arquivo texto, contendo declaracoes e


operacoes da linguagem. Isto e chamado de c
odigo fonte.
#include <stdio.h>
main() {
printf("Hello, world!\n");
}

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

Como executar este programa

Para executar um programa a partir do seu c


odigo fonte e
necessario compila-lo, gerando c
odigo binario ou executavel. Este
pode ser executado como qualquer outro programa de aplicacao.
$ gcc hello.c -o hello
$ hello
Hello, world!

MC-102 Aula 01

Organizac
ao de um computador
Algoritmos
A linguagem C

O que sao erros de compilacao?


Caso o programa nao esteja de acordo com as regras da
linguagem, erros de compilacao ocorrerao. 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

Organizac
ao de um computador
Algoritmos
A linguagem C

O que sao erros de execucao?


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

Organizac
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 execucao (bugs).
Exemplo
gdb

MC-102 Aula 01

Organizac
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

Você também pode gostar