linguagem c, a. barão, 20021 linguagem c conteúdos já desenvolvidos estrutura de um programa em c...
TRANSCRIPT
![Page 1: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/1.jpg)
Linguagem C, A. Barão, 2002 1
Linguagem C Conteúdos já desenvolvidos
Estrutura de um programa em C
Identificadores, variáveis, constantes, operadores e expressões
![Page 2: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/2.jpg)
Linguagem C, A. Barão, 2002 2
Linguagem C Estrutura de um programa em C
#include <bibliotecas>#define <funções de macros>#define <constantes>
declaração de funções ou protótipos de funções;definição de novos tipos de dados;declaração de variáveis globais;
tipo de dado da função main (argumentos){ definição e declaração de variáveis locais; código de execução da função;}
tipo de dado da função identificador (argumentos){ definição e declaração de variáveis locais; código de execução da função;}
![Page 3: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/3.jpg)
Linguagem C, A. Barão, 2002 3
Linguagem C Estrutura de um programa em C
Exemplos:
#include <stdio.h>
void main(void) { printf(“Linguagem C”);}
#include <stdio.h>
void main(void){ int numeroAluno = 12; printf(“O número do aluno é %d”, numeroAluno);}
![Page 4: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/4.jpg)
Linguagem C, A. Barão, 2002 4
Linguagem C Estrutura de um programa em C
Caracteres especiais no código fonte:
; (após cada instrução), (para separar identificadores)/* */ (para incluir comentários numa ou mais linhas// (incluir comentários numa linha)“ (delimitar grupos de caracteres)= (atribuição){ (início de um bloco de instruções)} (fim de um bloco de instruções)
Palavras reservadas: auto double if static
break else int struct
case entry long switch
char extern register typedef
continue float return union
default for sizeof unsigned
do goto short while
![Page 5: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/5.jpg)
Linguagem C, A. Barão, 2002 5
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Identificador
Deve começar por uma letra ou underscore (a..z, A..Z ou _ );
Não pode conter espaços;
Não é possível utilizar acentuação;
É case-sensitive
Exemplos
mediaAlunototalVendasMAXIMOctd_enderecoSistema...
![Page 6: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/6.jpg)
Linguagem C, A. Barão, 2002 6
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Variável
Entidade que pode assumir vários valores durante a execução do programa
Declaração de variáveis (exemplos)
int numeroAluno;
char sexo;
Tipo de dado Identificador da variável
![Page 7: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/7.jpg)
Linguagem C, A. Barão, 2002 7
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Declaração de variáveis, continuação
int numeroAluno;
char sexo;
Outro exemplo:
int numeroAluno;int numeroContribuinte;
é o mesmo que:
int numeroAluno, numeroContribuinte;
quando os tipos de atributo são iguais.
As declarações terminam com ponto e vírgula
![Page 8: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/8.jpg)
Linguagem C, A. Barão, 2002 8
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Declaração de variáveis, conclusão.
As variáveis podem ser inicializadas no momento da declaração
Exemplos:
int numeroAluno = 12;
char sexo = ‘M’;Tipos de dados básicos
char – carácter int – inteirofloat – vírgula flutuantefouble – vírgula flutuante de precisão duplavoid – vazio ou sem valor definido
![Page 9: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/9.jpg)
Linguagem C, A. Barão, 2002 9
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Capacidade dos tipos de dados
char (-128 .. 127, 8 bits)
int (-32768 .. 32767, 16 bits)unsigned int ( 0 .. 65535, 16 bits)signed int (-32768 .. 32767, 16 bits)short int (-32768 .. 32767, 16 bits)unsigned short int ( 0 .. 65535, 16 bits)signed short int (-32768 .. 32767, 16 bits)long int (-2 147 483 648 .. 2 147 483 647, 32 bits)unsigned long int (0 .. 4 294 967 295, 32 bits)
float (3,4x10E-38..3,4x10E38, 32 bits)
double (1,7x10E-308 .. 1,7x10E308, 64 bits)long double (3,4x10E-4932 .. 3,4x10E4932)
Importante:O operador sizeof devolve o espaço de memóriaQue um determinado tipo de dado ocupa
![Page 10: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/10.jpg)
Linguagem C, A. Barão, 2002 10
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Conversão de tipos de dados
Em expressões com diferentes tipos de dados podem existir promoções
Exemplos:
•Todos os char e short int são convertidos para int•Todos os float são convertidos para double
Caso concreto numa expressão:
char c;int i;float f;double d;
resultado = ( c / i ) + ( f * d ) + ( f – i )
int double float
Int double float
double
![Page 11: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/11.jpg)
Linguagem C, A. Barão, 2002 11
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Conversão de tipos de dados
Casts
• É possível forçar a conversão de tipos através da técnica de cast
Exemplo:
float f = 17.5;
float g;
g = (int) f;
g fica com 17
![Page 12: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/12.jpg)
Linguagem C, A. Barão, 2002 12
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Variáveis globais e locais
• Uma variável global é conhecida por todas as funções do programa
• Uma variável local só é conhecida dentro da função que a declara
Como optar?
Depende do problema a resolver... Mas deve-se optar por variáveis locais sempre que possível.
• Quando um nome de uma variável local é o mesmo que uma variável global, o sistema dá preferência à variável local. Ou seja, variáveis locais têm precedência sobre variáveis globais
![Page 13: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/13.jpg)
Linguagem C, A. Barão, 2002 13
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Variáveis globais e locais
#include <stdio.h>
Int numeroAlunos = 30;
void main(void) { int numeroProfessores = 8;}
void X(){ int numeroMonitores = 16; }
A função X() pode usar a variável numeroAlunos (global) mas não conhece a variável numeroProfessores (local noutra função)
Só a função main conhece esta variável
Esta variável só é conhecida pela função X()
![Page 14: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/14.jpg)
Linguagem C, A. Barão, 2002 14
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Constantes
• O valor de uma constante permanece por definição inalterado durante a execução do programa.
Exemplos:
#define ALUNOS_DA_TURMA 30
Outro tipo de constante:
const alunosDaTurma = 30;
Palavra reservada para declarar uma constante
![Page 15: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/15.jpg)
Linguagem C, A. Barão, 2002 15
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Constantes
Exemplos:
#define mensagem = “Seja bem vindo ao sistema”
ou
const mensagem = “Seja bem vindo ao sistema”;
Atenção: aspas e plicas são diferentes!
letra = ‘b’;
frase = “Seja bem vindo...”;
Constante do tipo caractere (plicas)
Constante do tipo string (aspas)
![Page 16: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/16.jpg)
Linguagem C, A. Barão, 2002 16
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Constantes de barra
Código Significado
/? Ponto de interrogação
// Barra invertida
/’ Plica ou apóstrofo
/” Aspas
\b backspace
\f Form feed
\n New line
\r Carriage return
\t Tabulação horizontal
\v Tabulação vertical
\xValor Código Valor ASCII em hexadecimal
![Page 17: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/17.jpg)
Linguagem C, A. Barão, 2002 17
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Constantes e variáveis
Exemplo 1:
#include <stdio.h>#include <conio.h>
#define mensagemEntrada "Seja bem vindo ao sistema"#define mensagemSaida "Obrigado por ter escolhido o nosso Banco"
#define TAXA_JURO 15.5
void main(void){ clrscr(); printf("\nBanco X\n"); printf("%s\n", mensagemEntrada); printf("A nossa taxa de juro é muito boa: %.2f", TAXA_JURO); printf("\n%s", mensagemSaida);}
![Page 18: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/18.jpg)
Linguagem C, A. Barão, 2002 18
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Constantes e variáveis
Exemplo 2:#include <stdio.h> // necessário para printf#include <conio.h> // necessário para clrscr() e getch()
void x(); // protótipo da função X()
int numeroAluno = 10; // variável global
void main(void){ int numeroAluno; // variável local com mesmo nome da global para ver a diferença.. char turma;
clrscr(); // limpar ecrã
turma = 'A';
printf("\nTurma %c", turma);
numeroAluno = 20; printf("\nO numero do aluno da variável local é: %d", numeroAluno); numeroAluno = 21; printf("\nAgora o numero do aluno da variável local é‚: %d", numeroAluno); x(); getch(); // aguardar uma tecla para terminar programa}
/* Função X() que usa a variável global e tem uma variável local */void x(){ int numeroProfessor = 8; // esta variável só é conhecida nesta função printf("\nO valor da variável numeroAluno global é: %d", numeroAluno ); printf("\nO valor da variável numeroProfessor é: %d", numeroProfessor );}
![Page 19: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/19.jpg)
Linguagem C, A. Barão, 2002 19
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Operadores
+ Adição
- Subtracção
* Multiplicação
/ Divisão
% Resto da divisão inteira
++ Incremento
-- Decremento
= Atribuição
== Igual
> Maior
< Menor
>= Maior ou igual
<= Menor ou igual
!= Diferente
&& Conjunção (E)
|| Disjunção (OU)
! Negação
& Conjunção (E)
| Disjunção (OU)
^ Disjunção Exclusiva (XOR)
~ Complemento
>> Deslocamento para a direita
<< Deslocamento para a esquerda
Aritméticos Relacionais Lógicos
Manipulação de bits
Em C existem formas abreviadas de codificar, exemplos:
k = k + 1; é o mesmo que ++k;k = k – 1; é o mesmo que --k;
Ou
k = k + 10; é o mesmo que k+=10;
a = b = c = 25; // atribuição múltipla do mesmo valoretc...
![Page 20: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/20.jpg)
Linguagem C, A. Barão, 2002 20
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Operadores Aritméticos (exemplo) #include <stdio.h>#include <conio.h>
void main(void){ float valor1, valor2, resultado; int resto;
clrscr();
printf("\nDigite um valor: "); scanf("%f", &valor1);
printf("\nDigite outro valor: "); scanf("%f", &valor2);
resultado = valor1 + valor2; printf("\nSoma: %f", resultado);
resultado = valor1 - valor2; printf("\nSubtraccao: %f", resultado);
resultado = valor1 * valor2; printf("\nMultiplicacao: %f", resultado);
resultado = valor1 / valor2; printf("\nDivisao: %f", resultado);
resto = (int) valor1 % (int) valor2; printf("\nResto da divisao inteira: %d", resto);
getch();}
O resto da divisão inteira não podeser efectuado com floats daí a necessidadede efectuar o cast para int
![Page 21: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/21.jpg)
Linguagem C, A. Barão, 2002 21
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Operadores Relacionais (exemplo)
#include <stdio.h>#include <conio.h>
void main(void){ int valor1, valor2;
clrscr();
printf("\nDigite um valor: "); scanf("%d", &valor1);
printf("\nDigite outro valor: "); scanf("%d", &valor2);
printf("\n0 - Falso, 1 - Verdade");
printf("\nvalor1 igual a valor2? %d", (valor1 == valor2) ); printf("\nvalor1 maior que valor2? %d", (valor1 > valor2) ); printf("\nvalor1 menor que valor2? %d", (valor1 < valor2) ); printf("\nvalor1 maior ou igual que valor2? %d", (valor1 >= valor2) ); printf("\nvalor1 menor ou igual que valor2? %d", (valor1 <= valor2) ); printf("\nvalor1 diferente que valor2? %d", (valor1 != valor2) );
getch();}
O resultado da expressão lógica (0/1)será impresso por printf
![Page 22: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/22.jpg)
Linguagem C, A. Barão, 2002 22
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Operadores de manipulação de bits (exemplo #1)
#include <stdio.h>#include <conio.h>
void main(void){ int valor;
clrscr();
printf("\nDigite um valor: "); scanf("%d", &valor);
printf("\nValor digitado: %d", valor); printf("\nValor depois de deslocar todos os bits uma posicao para a esquerda: %d", ( valor << 1 ) ); printf("\nValor depois de deslocar todos os bits duas posicoes para a esquerda: %d", ( valor << 2 ) ); printf("\nValor depois de deslocar todos os bits tres posicoes para a esquerda: %d", ( valor << 3 ) );
getch();}
![Page 23: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/23.jpg)
Linguagem C, A. Barão, 2002 23
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Operadores de manipulação de bits (exemplo #2)
#include <stdio.h>#include <conio.h>
void main(void){ int a = 45; // em binario 101110 int b = 28; // em binario 011100
clrscr();
printf("\na E b = %d", ( a & b ) ); // resultado 12 (1100) printf("\na OU b = %d", ( a | b ) ); // resultado 61
getch();}
Nota:
As técnicas de manipulação debits são muito importantesPara acesso e configuração dehardware...
![Page 24: Linguagem C, A. Barão, 20021 Linguagem C Conteúdos já desenvolvidos Estrutura de um programa em C Identificadores, variáveis, constantes, operadores e](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc119497959413d8c936d/html5/thumbnails/24.jpg)
Linguagem C, A. Barão, 2002 24
Linguagem C Identificadores, variáveis, constantes, operadores e expressões
Prioridade dos operadores
( ) [ ] ->
! - ++ -- & (cast) sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
?:
= += -= /= %= &= ^= != <<= >>=
,
Maior prioridade
Menor prioridade