Sie sind auf Seite 1von 71

Universidade Federal da Paraba

Centro de Informtica
Introduo Programao

Prof. Bruno Jefferson


bruno@ci.ufpb.br

Bruno Jefferson (2014)

Roteiro
Organizao bsica de um computador
 Nveis das Linguagens de Programao
 Tradutores
 Compiladores x Interpretadores
 Ambientes de Programao
 Paradigmas de Programao
 Linguagem C


Organizao bsica de um
computador


Um computador composto por quatro


unidades bsicas:

Unidade de entrada;
Unidade de sada;
Unidade de processamento central;
Memria.

Os dispositivos de entrada permitem


que o usurio interaja com o computador,
fornecendo-lhe dados a serem
processados.

Organizao bsica de um
computador


Os dispositivos de sada tm a utilidade


apresentar ao usurio o resultado do
processamento realizado.
A memria, por sua vez, armazena os
dados que sero utilizados no
processamento, alm dos programas que
manipularo esses dados.
A unidade central de processamento
a responsvel por executar as instrues dos
programas e os clculos aritmticos bsicos.

Organizao bsica de um
computador


Ilustrao

Organizao bsica de um
computador
 Componentes

Hardware: parte fsica.


Software: parte lgica (programas).


Linguagem de Programao
Ferramenta utilizada para desenvolver um
software (programa).
Mtodo padronizado para passar instrues
para um computador.

Organizao bsica de um
computador
Como h fluxo de dados entre os
diversos componentes de um
computador, surge a necessidade de se
estabelecer uma linguagem de
comunicao entre eles.
 Os seres humanos se comunicam
basicamente atravs de duas linguagens: a
linguagem escrita e a falada.


Organizao bsica de um
computador
Smbolos criados a partir de fenmenos
fsicos.
 O resultado foi a criao de uma
linguagem de mquina composta por dois
smbolos, cada um deles denominado de
bit (binary digit) e representados por 0
(zero) e 1 (um).


Organizao bsica de um
computador


Como o homem vai se comunicar com a


mquina? Atravs da linguagem binria?

Nveis das Linguagens de


Programao


Linguagens de Programao
Linguagem de alto nvel
Linguagem de baixo nvel
(montagem)
Linguagem de Mquina

C, Pascal, Java.
Assembly

00010111000100

Nveis das Linguagens de


Programao


Linguagem de Baixo Nvel


Exemplo de programa em linguagem de mquina:
111 0000000 0001 (carregue &x para o reg AX)
111 00000000 0101
111 00000010 0100
101 1111 1100 0110
000 1110 1101 1101

(mova 6 para posio AX)


(mova 4 para posio BX)
(some AX com BX)
(finaliza o programa)

Programas difceis de escrever, ler e modificar.


Programao considerada de baixo nvel.

Nveis das Linguagens de


Programao


Linguagem de Montagem (Assembly)


Tambm considerada de baixo nvel.
Usa mnemnicos para representar as instrues
em LM
 Ex: 101 1111 identificada como ADD em Assembly

Ex:
MOV AX,0006

(mova 6 para a posio AX)

MOV BX,0004

(mova 4 para a posio BX)

ADD AX,BX

(some o valor de AX com BX)

INT 20

(finalize o programa)

Nveis das Linguagens de


Programao


Linguagem de Montagem (Assembly)


At a dcada de 1950 era usado em quase
todos os programas.
Linguagem Assembly (LA) estranha ao
computador
 Computador s entende linguagem binria: 0s e
1s

Nveis das Linguagens de


Programao


Linguagem de Montagem (Assembly)


Programas em Assembly requerem um tradutor
(assembler ou montador).
 Programa especial que traduz as instrues em Assembly
para instrues em linguagem de mquina.

MOV AX,0006
MOV BX,0004
ADD AX,BX
INT 20
Instrues em
assembly

Assembler
(ou montador)

111 00000000 0101


111 00000010 0100
101 1111 1100 0110
000 1110 1101 1101
Instrues em LM

Nveis das Linguagens de


Programao


Linguagem de Alto Nvel


Linguagem mais prxima da linguagem humana
Muito prximas da linguagem algortmica que
aprendemos;
Requerem tradutores mais complicados: os
compiladores e interpretadores.

Instrues em
Linguagem de
Alto nvel

Compilador ou
interpretador

Instrues em LM

Nveis das Linguagens de


Programao


Linguagem de Alto Nvel


Linguagens de alto nvel necessitam de
tradutores mais complexos, pois

1(uma) Instruo em
Assembly

1(uma) Instruo em
LM

Enquanto que
1(uma) Instruo em
Ling. de Alto nvel

1(uma) ou mais
instrues em LM

Tradutores
Softwares responsveis por traduzir um
cdigo escrito em linguagem uma
linguagem fonte para uma linguagem alvo.
 Se a linguagem fonte for de alto nvel, o
tradutor chamado de compilador.
 Se a linguagem fonte for uma linguagem
de montagem, o tradutor chamado de
montador.


Tradutores


Compiladores
Linguagem de alto nvel
Linguagem de baixo nvel
(montagem)
Linguagem de mquina

Tradutores


Montadores
Linguagem de baixo nvel
(montagem)

Linguagem de mquina

Interpretadores


Traduzem um cdigo escrito em


linguagem de alto nvel para cdigo de
mquina e o executa.

Compiladores x Interpretadores
Compiladores geram cdigo
intermedirio, interpretadores no.
 O processo de interpretao precisa ser
refeito toda vez que o programa for
reexecutado.


 Uma vez gerado o cdigo executvel, no mais


necessrio que haja outra compilao para a
execuo do mesmo cdigo.

Compiladores x Interpretadores


A interpretao permite que partes de


um programa sejam testados enquanto
implementado.

Ambientes de Programao


Tambm conhecido Ambiente de


Desenvolvimento Integrado (Integrated
Development Environment).
Programa que contm vrias ferramentas
para dar suporte ao desenvolvimento de
software. Exemplos de ferramentas:

Editor
Compilador ou Interpretador
Linker
Depurador
Ferramenta para modelagem

Ambientes de Programao


Ambientes de Programao para C


Devc++ (Windows)

Ambientes de Programao


Ambientes de Programao para C


CodeBlocks (Linux e Windows)

Paradigmas de Programao


Paradigma Imperativo
Consiste na elaborao de programas a partir
de comandos que dizem o computador deve
fazer a cada momento.

Paradigma Estruturado
Soluciona problemas a partir de sua quebra
em problemas menores, de mais fcil soluo,
denominados de sub-rotinas ou
subprogramas.

Paradigmas de Programao


Paradigma Declarativo
Descreve as caractersticas da soluo
desejada sem especificar como o algoritmo
em si deve agir.

Paradigma Orientado a Objetos


Enxerga o problema como uma coleo de
objetos que se comunicam por meio da troca
de mensagens.

Linguagem C


Linguagem de propsito geral, estruturada


e imperativa.

Linguagem de alto nvel com


caractersticas de baixo nvel.

Linguagem C
 Histrico
Desenvolvida entre 1971 e 1973 por Denis
Rittchie nos laboratrios da AT&T.
A inteno era criar uma linguagem para
implementar SO e outros programas
bsicos.
Antes dela, SOs eram desenvolvidos usando
Assembly.
 Mais lento pra implementar
 Menos legvel
 No portvel

Linguagem C


Histrico
1973: Ritchie escreveu boa parte do Unix
usando C.
 C at ento era vista como uma linguagem restrita
para implementao do Unix.

1980: C passou a ser reconhecida como uma


linguagem de propsito geral.
 Ganhou popularidade
 Vrios compiladores comerciais foram
desenvolvidos.
 Falta de padronizao

Linguagem C


Histrico
1983: ANSI (EUA) inicia a padronizao do C.
 Padronizao homologada em 1989 (C89).

1990: ISO aprova a padronizao do ANSI C


(C90)
 Um conjunto de correes aplicada durante a
dcada de 1990 (1994, 1995, 1996)

1999: ISO aprova um novo padro o C99.

Linguagem C


Popularidade das Linguagens de


Programao

34

Linguagem C


Estrutura de um programa em C
#include <nome_da_biblioteca>
int main() {
bloco_de_comandos;
return 0;
}

Memria e Variveis


Uma varivel em programao representa


o contedo de uma ou mais posies de
memria.

Identificadores



So usados para rotular os componentes de


um programa: variveis, funes, etc.
Regras para definio:
Os caracteres utilizados so os nmeros, letras
maisculas, minsculas e o caractere especial
sublinha (_);
O primeiro caractere deve ser uma letra ou o
sublinha;
No so permitidos espaos em branco;
Palavras reservadas no podem ser utilizadas
como identificadores.

Identificadores


Exemplos de identificadores invlidos


3B
 No pode comear com nmero.

X2
 No pode conter espao em branco.

Computaao
 No permitido utilizar o caractere cedilha.

COMPUTACO
 Caracteres especiais como o til (~) no so permitidos.

while
 while uma palavra reservada.

Identificadores


Boas prticas na definio de


identificadores
soma, ano, idade, media, dataNascimento,
numero_filhos, nota1, nota2, notaFinal, salario.
Obs.:
 A linguagem C faz distino entre letras maisculas
e minsculas (ex. : soma
).

Tipos de Dados


Tipo primitivo (ou embutido)


Incorporado na prpria linguagem
Representado por uma palavra-chave

Tipo derivado
Pode ser criado pelo programador ou provido
pela biblioteca padro de C

Tipos de dados primitivos




Tipos de dados primitivos


Tamanho
Tipo

Funo
(em bytes)

int

Armazenar um nmero inteiro.

float

Armazenar nmeros de ponto flutuante.

double

Armazenar nmeros de ponto flutuante com


maior preciso.

char

Armazenar um caractere.

Tipos de dados primitivos




Qualificadores de tipos inteiros primitivos


short ou long:
 Referem-se ao tamanho do tipo int (apenas)

signed ou unsigned:
 Referem-se ao fato de o tipo ser com sinal ou sem sinal
 Podem ser usados com int, char e long long

Antepe-se o qualificador ao nome do


tipo
Ex: signed char, unsigned long int

Tipos de dados primitivos


TAMANHO
(em bytes)

INTERVALO DE VALORES

int

-231 a 231 1

short int

-215 a 215 1

long int

-231 a 231 1

unsigned int

0 a 232 1

unsigned short int

0 a 216 1

unsigned long int

0 a 232 1

signed char

-27 a 27 1

unsigned char

0 a 28 1

long long int

-263 a 263 1

unsigned long long int

0 a 264 1

TIPO

Nem
sempre
tm este
tamanho

Sempre
tm este
tamanho

Introduo Programao


Tipos de dados primitivos


Resultado
#include <stdio.h>
int main() {
char meuCaractere;

meuCaractere = A

meuCaractere = 65;
printf("meuCaractere = %c\n", meuCaractere);
getchar();
return 0;
}

Introduo Programao


Tipos de dados primitivos


Resultado
#include <stdio.h>
int main() {
int meuInteiro;

meuInteiro = 65

meInteiro = A;
printf("meuInteiro = %d\n", meuInteiro);
getchar();
return 0;
}

Tabela ASCII

Introduo Programao


Declarao de variveis
tipo_da_varivel identificador;

Exemplo
int idade, numeroFilhos;
float altura;
char sexo;

Introduo Programao


Declarao de variveis
tipo_da_varivel identificador;

Exemplo
int idade, numeroFilhos;
float altura;
char sexo;

Introduo Programao


Atribuio
Permite a atribuio de um valor a uma
varivel.
Exemplo em pseudocdigo:
DECLARE altura : NUMRICO;
altura  1.80;

Equivalente em C:
float altura;
altura = 1.80;

Leitura: altura
recebe 1.80.

Introduo Programao


Atribuio (Incremento)

int main() {
int x;
x = 10;
x = x + 1;
printf(%d, x);
return 0;
}

Comando

Valor atual de x

int x;

x = 10;

10

x = x + 1;

11

Constantes Simblicas


Identificador associado a um valor


constante
So tipicamente escritos em letras maisculas

Definida por meio da diretiva #define


#define

PI

3.14

Pode ser usada no programa:


double raio = 2.5;
double area;
area = PI*raio*raio;

Comentrio e indentao
Contribuem para a legibilidade de um
programa.
 Os comentrios servem para explicar o
cdigo trechos de cdigo-fonte.


Comentrio e indentao


Comentrios
So totalmente ignorados pelo compilador
Em C, podem ser de 2 tipos:
 Comentrio de Linha: Uma nica linha ( // )
 Comentrio de bloco: Mltiplas linhas (/* */)

z = x + y; /* z o resultado da soma entre x e y


y = 10; // y recebe 10

Comentrio e indentao


Indentao
Forma de organizar o cdigo de modo a
refletir a hierarquia entre as instrues.

Indentao


Exemplo de cdigo NO indentado

Indentao


Exemplo de cdigo indentado

Matemtica Bsica


Operadores Bsicos
Operador

Operao

Adio

Subtrao

Multiplicao

Diviso

Resto da diviso

Matemtica Bsica


Operadores Especiais
Operador

Operao equivalente

x += y

x=x+y

x -= y

x=x-y

x *= y

x=x*y

x /= y

x=x/y

x %= y

x=x%y

x++

x=x+1

++x

x=x+1

x--

x=x-1

--x

x=x-1

Matemtica Bsica


Pr e Ps Incremento e Decremento

x = 0;
y = 6;
z = 2;
(a) x = y / ++z;

x = 0;
y = 6;
z = 2;
(b) x = y / z++;

// y = 6, z = 3, x = 2 // y = 6, z = 3, x = 3

Entrada e Sada em C


Biblioteca <stdio>
Contm funes para operaes de entrada e
sada.

Operaes (funes) de E/S de C


Entrada: getchar(), scanf(),
getch()
Sada: putchar(), printf()
Deve-se incluir o cabealho stdio.h no incio
do programa
#include <stdio.h>

Entrada e Sada em C


Funo putchar()
Recebe um caractere (ou valor do tipo int) e
imprime o caractere correspondente no meio
de sada padro.
Sintaxe:
putchar(expresso-do-tipo-unsigned-char);

Exemplo:

putchar('A');
Resultaria na impresso de A no
meio de sada padro

Entrada e Sada em C


Funo getchar()
Permite a entrada de um nico caractere no
meio de entrada padro (usualmente, o
teclado)
 Execuo espera o usurio digitar um caracter
seguido de [ENTER];
 Retorna o caractere digitado (valor inteiro);

Sintaxe:
varivel-do-tipo-unsigned-char = getchar();

Entrada e Sada em C


Funo getchar()
Exemplo

unsigned char meuCaractere;


meuCaractere = getchar();
A varivel meuCaractere recebe o valor inteiro
correspondente ao caractere digitado pelo usurio
no cdigo de caracteres utilizado

Entrada e Sada em C


Funo scanf()
Permite a entrada de valores de vrios tipos
simultaneamente
 Pode ter um nmero qualquer de parmetros

Sintaxe:
scanf(string-de-formatao, endereo-de-varivel1, ...,
endereo-de-varivelN);

Parmetros:
 String de formatao: Cadeia de caracteres
 Endereos de variveis onde os valores sero lidos
 Obtido precedendo-se o nome da varivel com &

Entrada e Sada em C


Funo scanf()
String de formatao
 Especifica o formato dos dados a serem lidos
 Formado por especificadores de formato
 Constitudos de % seguido de um ou dois
caracteres

Exemplo:
long
float
unsigned

char

inteiroLongo;
numeroReal;
meuCaractere;

scanf("%ld %f %c", &inteiroLongo,&numeroReal,


&meuCaractere);

Entrada e Sada em C


Funo scanf()
Especificadores de formato:

ESPECIFICADOR DE
FORMATO

INTERPRETAO DO VALOR LIDO

%c

Caractere

%s

Cadeia de caracteres (string)

%d ou %i
%u

Inteiro em base decimal


Inteiro sem sinal (unsigned)

%f, %lf e %Lf

Nmero de ponto-flutuante (float, double e


long double, respectivamente)

%e, %le e %Le

Nmero de ponto-flutuante em notao


cientfica (float, double e long double,
respectivamente)

Entrada e Sada em C


Funo printf()
Tem sintaxe similar da funo scanf()
Parmetros finais
 Variveis, constantes ou expresses
 Valores so escritos no meio de sada padro

String de formatao
 Pode conter caracteres que so apresentados no
meio de sada

Entrada e Sada em C


Funo printf()
Exemplo
int

n = 3;

printf("O quadrado de %d e' %d.", n, n*n);

Imprime no meio de sada:


O quadrado de 3 e' 9.

Entrada e Sada em C


Funo printf()
Especificadores de formato

ESPECIFICADOR DE
FORMATO

O VALOR SER IMPRESSO COMO...

%c

Caractere

%s

Cadeia de caracteres (string)

%d ou %i

Inteiro (int) em base decimal

%ld ou %li

Inteiro (long int) em base decimal

%u

Inteiro sem sinal (unsigned)

%f e %Lf

Nmero de ponto-flutuante (double e long


double, respectivamente)

%e (ou %E) e
%Le (ou %LE)

Nmero de ponto-flutuante em notao


cientfica (double e long double,
respectivamente)

Primeiro programa
#include

<stdio.h> // inclui modulo stdio

int main() {
// Escreve Beleza de Creuza na tela
printf(Beleza de Creuza!);
return 0;
}

Referncias
ASCENCIO, A. F. G., CAMPOS, E. A.V.;
Fundamentos da Programao de
Computadores, 3. Ed., So Paulo: Pearson,
2012.
 Schildt, H; C Completo e Total. Makron
Books. 1997.
 Oliveira, U.; Programando em C Fundamentos.Volume I. Editora Cincia
Moderna. 2008.


Das könnte Ihnen auch gefallen