Вы находитесь на странице: 1из 57

Estruturas de Dados

Reviso de C
Professor: Felipe Pontes Guimares 1 Semestre 2013

Que veremos?
Conceitos Compilador de C
Processo Etapas Funo

Reviso de C
Variveis e Constantes Operadores Atribuies Entrada e Sada Estruturas condicionais Estruturas de Repetio

Compiladores
Codeblocks (Windows)
http://www.codeblocks.org/downloads

Anjuta (Linux)
apt-get install build-essentials anjuta

GCC (Linux)
apt-get install build-essentials Utiliza editor de texto Linux (Gedit, Kedit, nano, vi...) Para compilar, no terminal digite
gcc -o <arquivo_binrio a ser gerado> <arquivo_fonte>

Eclipse-CDT (Windows ou Linux)


http://www.eclipse.org/cdt/downloads.php

Conceitos
Programao de Computadores
Sintaxe Semntica

Programa Algoritmo Linguagem de Programao


Linguagens de Alto Nvel
Compiladas Interpretadas

Linguagens de Baixo Nvel Linguagem de mquina

Conceitos
Compiladores
Interpretadores Erros
Sintaxe Lgica

Algoritmo

Reviso de C
Linguagens de Programao Compiladas
Conjunto de regras sintticas e semnticas que definem um programa O conjunto de palavras e smbolos compostos com essa regra formam o cdigo-fonte Para executar o programa, o compilador converte o cdigo-fonte em cdigo binrio (ou de mquina) que o processador capaz de eecutar

Compilando

Linguagens

Linguagem C
Criada em 1972 nos EUA
Linguagem de Alto nvel Compilada Estruturada Possui instrues muito prximas s de linguagens de baixo nvel

Palavras Reservadas
32 palavras so reservadas pelo padro ANSI para a linguagem C

Comentrios
Comentrios de linha
// Qualquer coisa entre o // e o final da linha ser o comentrio

Comentrios de bloco
/* <trecho comentado> */ Qualquer coisa entre o /* e o */ ser o comentrio. Pode se extender por diversas linhas

Comentrios

Variveis e Constantes
Suponha que:
a=3 b=a/2 c = b + 3.1

Qual o valor de c ???

Variveis e Constantes

Constantes
Valor fixo
Armazenado na memria Seu tipo determinado pela sintaxe da constante

Variveis
Espao de memria para armazenar um dado
Possui um nome e um tipo
Nome: Identifica o espao de memria Tipo: Determina a natureza do dado (inteiro, float, string, etc)

Declarao de Variveis
Variveis devem ser explicitamente declaradas

Variveis s armazenam valores do mesmo tipo com que elas foram declaradas

Nota: Isto NO uma boa prtica de programao

Cuidado!
Nada de POG
(Programao Orientada a Gambiarras)

Declarao de Variveis
Variveis devem ser inicializadas
int a = 5, b = 10; float c = 5.3;

Variveis com valor indefinido


Se uma varivel no tiver sido inicializada ela ir conter lixo

Operadores
Operadores Aritmticos
+-*/%

Operaes so feitas na preciso dos operandos


O operando de menor expressividade convertido para o tipo do operando com maior expressividade Diviso entre inteiros trunca a parte fracionria (arredonda para baixo)

Operador %
O operador % (mdulo) se aplica a inteiros e retorna o resto da diviso

Precedncia das Operaes


Precedncia dos operadores
Multiplicao e diviso Adio e subtrao Havendo mltiplas operaes de mesma precedncia, avalia da esquerda para a direita

Operadores Atribuio
Operador de atribuio
= Atribui o valor da expresso no lado direito varivel no lado esquerdo a = b + 1;

COMANDO PERIGOSO!!!!

Operadores Atribuio
Notao compacta para atribuies
Quando a mesma varivel aparece dos dois lados, h uma notao compacta

Nota: Em geral, mais claro utilizar a notao comum. Facilita a leitura do cdigo.

Incrementos
Muitas vezes as variveis incrementam ou decrementam em uma unidade (no for por exemplo) Existe uma notao simples e prtica para esses casos
i++; i - -; - - i; ++i;

A diferena entre colocar o ++ ou o - - antes ou depois da varivel diz respeito ao momento do incremento.
++i: primeiro incremente o valor de i em uma unidade, depois utiliza o valor com o incremento. i++: primeiro utiliza o valor original de i depois o incremente em uma unidade.

Incrementos

Operadores Relacionais
< ; <= ; == ; >= ; > ; !=
Resultado ser 0 (Falso) ou 1 (Verdadeiro) Booleanos no existem em C

Operadores Lgicos
&& ; || ; !
A avaliao da esquerda para a direita Pra quando o resultado j for conhecido

Imprimindo na tela
printf( <formato> , <valores>)
printf(%d %g, 33, 5.3) 33 5.3 printf(Inteiro: %d Real: %g, 33, 5.3) Inteiro = 33 Real = 5.3

%c Char %d int %u unsigned int %f float %e double ou float (notao cientfica) %g double ou float no formato mais apropriado (comum ou cientfico) %s cadeia de caracteres (string)

Caracteres Especiais
No podemos usar quebra de linha ou numa string comum.
printf (isto um abre aspas a); ERRO!

Em geral o caractere \ usado para imprimir caracteres especiais.


\n Quebra de linha (enter ) \t tabulao (tab) \r Retrocesso do carro \ Caractere \\ Caractere \

Entrada do teclado
Funo scanf
Captura valores fornecidos do teclado scanf( <formato>, <endereos das variveis>);
O endereo das variveis acessvel utilizando o caractere & antes do nome. Endereo da varivel i &i

Especificao de formato
Igual da funo printf

Deciso
If

Se expr for diferente de 0 (Falso), executa Bloco 1. Se expr for diferente de 0 (Falso), executa Bloco 1. Seno, executa Bloco 2

Ateno nos Blocos!


Se no puser as chaves { ... } o bloco ser de apenas um comando.

Ateno nos Blocos!

Identao
Identao a arte de explicitar blocos de cdigo Sempre que se inicia um novo bloco de cdigo bom aumentar a distncia da borda para que fique claro onde ele comea e onde acaba
if (expr) {
Comando; Comando; if (expr) { Comando; Comando;}}

Identao
Identao a arte de explicitar blocos de cdigo Sempre que se inicia um novo bloco de cdigo bom aumentar a distncia da borda para que fique claro onde ele comea e onde acaba
if (expr) {
if (expr) {
Comando; Comando; if (expr) { Comando; Comando;}} } Comando; Comando; if (expr) { Comando; Comando; }

Else If Encadeados e Identao

Else If Encadeados e Identao

Blocos de Cdigo
Declaraes de Variveis:
s podem ocorrer no incio do corpo da funo ou do bloco

Escopo:
S vlida dentro do bloco onde foi declarada Depois do trmino, ela deixa de existir (aquele espao de memria liberado)

Laos
While
Executado o bloco de comandos enquanto expr for verdadeira

Fatorial usando While

For
Forma compacta para exprimir laos

Equivale a:

Em geral, o modo do for fica muito mais claro e simples de entender

Fatorial usando For

Ateno!

Do While
Parece com o while, mas executa o teste depois do bloco, no antes dele!

COMANDO PERIGOSO!!!!

Comando Break
Termina a execuo de um lao

COMANDO PERIGOSO!!!!

Comando Continue
Termina a iterao atual e vai para o prximo valor

Comando Continue
Cuidado para no criar loops infinitos!

Comando switch
Similar a vrios IFs encadeados

O valor de expr ser avaliado. Se for op1, executa o Bloco 1, se for op2 o Bloco 2, etc. Se no for nenhum dos valores listados cai para o default Nota: expr deve ser inteiro ou char No esquea do break; seno ele vai executar todos os blocos subsequentes.

Comando switch

Comando switch
Neste programa, o que aconteceria com a entrada
12 + 3

At dia 19! Bom carnaval!

DVIDAS?

Вам также может понравиться