Beruflich Dokumente
Kultur Dokumente
Centro de Informtica
Introduo Programao
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
Unidade de entrada;
Unidade de sada;
Unidade de processamento central;
Memria.
Organizao bsica de um
computador
Organizao bsica de um
computador
Ilustrao
Organizao bsica de um
computador
Componentes
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
Linguagens de Programao
Linguagem de alto nvel
Linguagem de baixo nvel
(montagem)
Linguagem de Mquina
C, Pascal, Java.
Assembly
00010111000100
Ex:
MOV AX,0006
MOV BX,0004
ADD AX,BX
INT 20
(finalize o programa)
MOV AX,0006
MOV BX,0004
ADD AX,BX
INT 20
Instrues em
assembly
Assembler
(ou montador)
Instrues em
Linguagem de
Alto nvel
Compilador ou
interpretador
Instrues em LM
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
Compiladores x Interpretadores
Compiladores geram cdigo
intermedirio, interpretadores no.
O processo de interpretao precisa ser
refeito toda vez que o programa for
reexecutado.
Compiladores x Interpretadores
Ambientes de Programao
Editor
Compilador ou Interpretador
Linker
Depurador
Ferramenta para modelagem
Ambientes de Programao
Ambientes de Programao
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.
Linguagem C
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.
Linguagem C
Histrico
1983: ANSI (EUA) inicia a padronizao do C.
Padronizao homologada em 1989 (C89).
Linguagem C
34
Linguagem C
Estrutura de um programa em C
#include <nome_da_biblioteca>
int main() {
bloco_de_comandos;
return 0;
}
Memria e Variveis
Identificadores
Identificadores
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
Tipos de Dados
Tipo derivado
Pode ser criado pelo programador ou provido
pela biblioteca padro de C
Funo
(em bytes)
int
float
double
char
Armazenar um caractere.
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
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
0 a 216 1
0 a 232 1
signed char
-27 a 27 1
unsigned char
0 a 28 1
-263 a 263 1
0 a 264 1
TIPO
Nem
sempre
tm este
tamanho
Sempre
tm este
tamanho
Introduo Programao
meuCaractere = A
meuCaractere = 65;
printf("meuCaractere = %c\n", meuCaractere);
getchar();
return 0;
}
Introduo Programao
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
PI
3.14
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 (/* */)
Comentrio e indentao
Indentao
Forma de organizar o cdigo de modo a
refletir a hierarquia entre as instrues.
Indentao
Indentao
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.
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
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;
Entrada e Sada em C
Funo scanf()
Especificadores de formato:
ESPECIFICADOR DE
FORMATO
%c
Caractere
%s
%d ou %i
%u
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;
Entrada e Sada em C
Funo printf()
Especificadores de formato
ESPECIFICADOR DE
FORMATO
%c
Caractere
%s
%d ou %i
%ld ou %li
%u
%f e %Lf
%e (ou %E) e
%Le (ou %LE)
Primeiro programa
#include
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.