Você está na página 1de 27

Algoritmia e Programação

Docente : Engº. Dércio Benjamim Obra


AULAS

Modelo:
Teóricas (aulas de exposição + exemplos)
Práticas (exemplos + resolução de exercícios)

Frequência às aulas:
Obrigatória
Faltas equivalentes a mais que 25% da carga horária =
Exclusão!
AVALIAÇÕES

AVALIAÇÕES

Datas a anunciar
Exame Final:
Vai ao exame o Estudante que tiver nota de frequência
>= 10.0valores
Para garantir a passagem, a nota de exame do Estudante
deve ser >= 10.0valores
Despensado do exame o Estudante que tiver nota de
frequência > =14.0valores
BIBLIOGRAFIA

Slides das aulas teóricas disponibilizadas pelo Docente.


Luís Damas, LinguagemC, FCA - editora de informática
Lda. [disponível na Biblioteca]
João Seixas, Introdução à programação em ciência e
Engenharia explorando a natureza com a Linguagem C,
Editora Escolar, 2005
s

O QUE É UMA LINGUAGEM DE PROGRAMAÇÃO?

Ferramenta usada para escrever programas de


computador.
Programa de computador: Sequência de instruções do
processador concebida para efectuar uma dada tarefa.
Conjunto de regras de descrição de cálculos (a ser
efectuado por um computador) para o qual existe
documento de referência.
EXEMPLOS DE LINGUAGENS DE PROGRAMAÇÃO

Linguagem máquina: Sequência de bits (uns e zeros)


que descrevem, de uma forma inequívoca, a realização de
uma dada instrução, pelo processador. Cada processador
possue a sua própria linguagem máquina!
Linguagens de baixo nível:
Linguagem Assembly: Composta por mnemónicas
descrevendo instruções a executar pelo processador. Cada
processador possue a sua própria linguagem Assembly!
Linguagens de alto nível:
Linguagens Interpretadas: Java, Perl, bashscript,etc
O programa é traduzido para linguagemmáquina passo a
passo durantea sua execução.
Linguagens Compiladas: Fortran, Pascal, C, C++, etc
O programa é integralmente traduzido para linguagem
máquinaantes da sua execução.
MOTIVO DA EXISTÊNCIA DE VÁRIAS LINGUAGENS DE
PROGRAMAÇÃO

Diferentes objectivos ⇒ diferentes linguagens de


programação!
LinguagemPascal: geralmente usada apenas para fins
didáticos.
Linguagem C:
Inicialmente concebida para programar sistemas
operativos. Inicialmente o SO Unix. Hoje, a grande maioria
dos sistemas operativosestão escritos nesta linguagem.
É uma linguagem extremamente poderosa mas complexa!
LINGUAGEM (COMPILADA) C

Ciclo de produção de um programa em C:


Edição do programa (prog.c)
Compilação programa editado:
Resultando num código objecto (prog.o)
Ligação do código objecto com outros semelhantes:
Resultando num código executável.
Introdução à linguagem C
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

ESTRUTURA DO PROGRAMA EM C

ESTRUTURA BÁSICA EXEMPLO


<directivas> #include <stdio.h>
<tipo retorno> main() int main()
{ {
<declarações>; int ano = 2010;
<instruções>; printf("Bom %d!\n", ano);
} return 0;
}

compilação ligação (linha de comandos)


$ gcc prog.c -o prog

execução (linha de comandos)


$ ./prog
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

COMENTÁRIOS

Comentários são linhas de texto inseridas no código por


forma a facilitar-nos a leitura e compreensão do mesmo.
Linhas de texto comentadas são completamente
ignoradas pelo compilador.
Em C os comentários podem ser feitos de duas formas:
Numa mesma linha, pode-se usar o caracter "/"duplicado:
// Comentário em C
Ao longo de várias linhas,usa-se a combinação dos
caracteres "/"e "*": /*Comentário em C*/
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados

PALAVRAS RESERVADAS DA LINGUAGEM C


Como qualquer linguagem de programação, a linguagem
C tem um conjunto de palavras reservadas. Estas
palavras não podem ser usadas a não ser nos seus propósitos
originais.

auto break case char


const continue default do
double else enum extern
float for goto if
int long register return
short signed sizeof static
struct switch typedef union
unsigned void volatile while
VARIÁVEIS EM C

Principais regras a seguir na declaração de variáveis


(continuação):
Nomes das variáveis não podem coincidir com palavras
reservadas da própria Linguagem C.
É aconselhável criar nomes de variáveis que, de alguma
forma, reflitam a utilidade da variável.
Não é aconselhável usar acentos no nome de uma
variável, certos compiladores não permitemesta situação.
Caso o nome da variável tenha mais que uma palavra,
deve ser usado o caracter underscore ( _ ) ou a diferença
entre maiúsculas e minúsculas para as separare nunca o
caracter espaço.
Podem existir variáveis com o mesmo nome ao longo do
programa mas, estas variáveisdevem estar em contextos
diferentes.
VARIÁVEIS EM C

A declaração de variáveis na Linguagem C é feita


indicando-se o tipo e o nome da variável. A sintaxe é a
seguinte:
tipovariavel1[,variavel2,..., variaveln]; ⇐= declaraçãosem
inicialização.
tipovariavel1= valorx[,variavel2= valory ,..., variaveln =
valorz ]; ⇐= declaração com inicialização.
Exemplos:
int soma, aux, temp; ⇐= declaraçãosem inicialização.
float media = 10.8, resultado = 0.0; ⇐= declaração com
inicialização.
O tipo define o espaço, em memória, que deve ser
reservado para armazenar a variável. Estudaremos os
vários tipos de dados da Linguagem C mais em frente.
CONSTANTES EM C

São valores que fazem parte do programa. Como o seu


nome indica, são valores que não podem ser modificados
ao longo da execução do programa.
É boa regra de programação, para facilitar a leitura do
código, declarar os nomes das variáveis em minúsculas
(usar maiúsculas apenas para separar palavras) e os
nomes das constantes em maiúsculas.
A declaração de uma constante é feita de duas formas:
Usando a palavra reservada const:
const tipo NOME = valor; ⇐= se o tipo não for indicado, o
compilador decide o mesmo com base nos símbolos
encontrados na constante
Usando a directiva de compilação #define :
# define NOME valor ⇐= o compilador decide o tipo com
base nos símbolos encontrados na constante.
O ficheiro math.h define várias constantes matemáticas.
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

CONSTANTES NUMÉRICAS

Por omissão são constantes inteiras


Se tiverem um ponto ou um e/E são constantes reais
Exemplos: 12345, 12345E1, 1234.5, 12.345E2
Por omissão têm a dimensão de int ou double
A dimensão pode ser forçada com as letras H/h, L/l, F/f
short ⇒ 12345H
long ⇒ 12345L
float ⇒ 1234.5F
long double ⇒ 1234.5L
Por omissão têm um tipo com sinal mas, a ausência de
sinal pode ser forçada com a letra U/u: 12345U
Por omissão são indicadas em decimal mas podem-se
usar outras notações
Octal ⇒ 0125
Hexadecimal ⇒ 0x125
Apresentação da Disciplina Introdução à linguagem C

CONSTANTES TEXTUAIS
Caracteres individuais normais.
Símbolo gráfico entre plicas. Exemplo: ’W’ Código
ASCII entre plicas: ’\127’, ’\x57’ Caracteres
individuais especiais: \ + letra do alfabeto
minúsculo, tudo entre plicas:
\a Bell(sinalsonorodocomputador)
\b Backspace
\n NewLine(Novalinha)
\r CarriageReturn
\t Tabulaçãohorizontal
\v Tabulaçãovertical
\\ caracter\
\’ caracter’(plica)
TIPOS DE DADOS EM C

Nos computadores, toda a informação que se pretenda


guardar ou tratar tem de ser associada a um dado tipo.
A linguagem C possue quatro tipos de dados básicos:
char, int, float e double
Outro tipo a considerar é o void - um tipo especial que
representa o vazio. Falaremosdeste tipo mais adiante.
char: ocupa 1 byte de memória.
int: pode ocupar 2 ou 4 bytes dependendo da arquitectura.
float: ocupa 4 bytes.
double: ocupa 8 bytes.
Modificadores:signed unsigned short long
TIPOS DE DADOS EM C
TIPOS DE DADOS EM C

Tipos de dados escalares:


São sempre tipos numéricos (guardam sempre números)
Estes númerospodem ter diferentes significados: Números
inteiros ou reais, Valores lógicos, Códigos de símbolos
gráficos ou mesmo endereços de memória.
A interpretação do significado dos números depende do
contexto
O mesmo conjunto de bits pode ter interpretações
diferentes consoante o contexto em que é usado.
s

TIPOS DE DADOS EM C: CHAR

char: É um tipo escalar e é guardado como inteiro.


Ocupa 1 byte (8 bits) de memória.
Tipo sem sinal por omissão.
O tipo signed char força a existência de sinal
O valor guardado é o código numérico do caracter: Código
ASCII (American Standard Code for Information
Interchange)
Podem ser usados como números ou letras.
Exemplo de caracteres: ’a’, ’Z’, ’\n’, ’\x56’
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

TIPOS DE DADOS EM C: INT

int: Guarda valores inteiros de forma exacta.


Pertence a uma gama de valores (subconjunto de N0 ou
Z)
Valores fora da gama =⇒ erro de transbordamento
(overflow)
O tamanho do tipo int dependem do compilador e do
hardware
Esta informação é indicada no ficheiro limits.h do ambiente
de desenvolvimento
Os modificadores:signed, unsigned, short e long
modificam a gama de valores do tipo int.
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

INT: DIMENSÕES

Tipo Tipo dimensão


Com sinal Sem sinal (bits)
signed char unsigned char 8
signed short unsigned short 16
int unsigned int 16/32
long unsigned long 32/64
Tipo de Variável No bytes Valor Mínimo Valor Máximo
int 2 -32 768 32 767
short int 2 -32 768 32 767
long int 4 -2 147 483 648 2 147 483 647
unsigned 2 0 65 535
unsigned short 2 0 65 535
unsigned long 4 0 4 294 967 295
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

TIPOS DE DADOS EM C: FLOAT E DOUBLE


Aproximação da representação de números reais
Permitemguardar apenas alguns valores reais, não todos
Valores guardados em notação de vírgula flutuante
mantissa x 2expoente
Ambos os valores podem ser positivos ou negativos
A mantissa pode ser fraccionária, o expoente é inteiro
Estes valorespodem representar quantidades abstractas
Infinitos (positivos e negativos), outros (ver float.h)

Quantidade dimensão Gamavalores

float 32 1.2E-38 3.4E+38


double 64 2.2E-308 1.8E+308
longdouble 96 3.4E-4932 1.2E+4932
OPERADOR SIZEOF()

Este operador fornece a dimensão em bytes de algo que


possui um valor.
tipo: sizeof(float)
variável: sizeof(media)
constante: sizeof(PI)
resultado de expressão: sizeof(2.0+ x -z) ⇐= devolve o
tamanho do espaço ocupado pelo resultado e não o
resultado da expressão propriamentedito.
ENTRADAS E SAIDAS PADRONIZADAS

Principais funções de entrada e saída padronizadas:


fscanf: Leitura em ficheiros,
fprintf: Escrita em ficheiros,
gets: Leitura de uma string,
puts: Escrita de uma string,
getchar: Leitura de um caracter,
putchar: Escrita de um caracter
printf: Função genérica de escrita,

printf("%formato1 [%formato2]", variavel1 [, variavel


scanf: Função genérica de leitura,
scanf(""%formato", &variavel);
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

FORMATOS DE LEITURA E ESCRITA


Tipo Formato Observações

char %c Um único caracter


int %dou%i Um inteiro (decimal)
int %o Um inteiro(octal)

int %xou%X Um inteiro(hexadecimal)


Short int %hd Um short inteiro(decimal)

Long int %ld Um long inteiro(decimal)


Unsigned short int %hu Short inteiro positivo
Unsigned int %u Inteiro positivo

Unsigned long int %lu Long inteiro positivo


float %f,%e,%E

double %f,%e,%E
Apresentação da Disciplina Introdução à linguagem C Armazenamento de dados entrada e saidas padronizadas

Contribuições ,Duvidas????

Você também pode gostar