A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagens de programação

Apresentações semelhantes


Apresentação em tema: "Linguagens de programação"— Transcrição da apresentação:

1 Linguagens de programação
Introdução ao C

2 Sumário Execução de programas Linguagem Erros em programação
interpretadores, compiladores Linguagem Manipulação de informação Variáveis tipos de dados Operadores aritméticos, lógicos Leitura e escrita entrada e saída de dados Selecção de instruções Instrução if Instrução Switch Erros em programação

3 Interpretação de Programas
interpretador Programa que converte as instruções da linguagem de alto nível em instruções máquina e as executa. Basic, Java, Portugol

4 Compilação de programas
Compilador (compiler) Programa que converte as instruções da linguagem de alto nível em instruções máquina formando um programa objecto Ligador (linker) Programa que reúne todos os programas objecto e faz um programa executável C,C++, Pascal Programas Executados pelo sistema operativo

5 Introdução à linguagem C

6 Porquê C++ É a base de linguagens de programação modernas
É um investimento Linguagem estandardizada Muitos programas escritos em C / C++ È uma linguagem genérica Serve para vários fins É disciplinadora Programar com método É eficiente Existem bons compiladores

7 Ola mundo #include <stdio.h> int main(int argc, char* argv[])
Biblioteca de funções de entrada e saida de dados int main(int argc, char* argv[]) Função principal { } Definição de um bloco de instruções printf("ola mundo"); escrever return 0; Retorno do programa Olá mundo #include <stdio.h> int main(int argc, char* argv[]) { printf("ola mundo"); return 0; }

8 Algoritmos computacionais
Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

9 Tipos de dados em C Variáveis Simples Compostos Um nome Um Tipo
Numéricos inteiros reais Caracter Lógico Compostos Matrizes Estruturas Uniões Variáveis Um nome Um Tipo Um só valor

10 Declaração de variáveis
Tipo_de_dado nome_da_variável; Tipo_de_dado nome_da_variável = valor_inicial; Tipo_de_dado nome_da_variável1, nome_da_variável2, . . .; Exemplos int soma; float saldo = 0.0; doule x, y, z; NOTA A declaração das variáveis deve ser feita antes da sua utilização

11 Regras dos nomes de variáveis
Pode ser constituído por letras do alfabeto por dígitos e pelo caracter _ (underscore) O primeiro caracter não pode ser um dígito As letras maiúsculas e minúsculas representam caracteres diferentes Não pode ter o nome de uma palavra reservado da linguagem Deve ser descritivo daquilo que armazena Caso tenha mais que uma palavra utilizar o caracter _ para unir as palavras ou capitular as iniciais Não é aconselhado A utilização de caracteres acentuados Começar por _ Ter apenas letras maiúsculas

12 Palavras reservadas do C

13 Atribuição de Valores – operador =
variavel = expressão; Exemplos soma = 10 ; saldo = soma + 1; area = lado1 * lado2; NOTA O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol) O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol)

14 Atribuição de valores Valores na Base: 00 02 077 0123
Decimal numeração normal Octal Começam por 0 (zero) Hexadecimal Começam por 0x (zero xis) 0x0 0x2 0x3f 0x53 atribuição do valor doze a x X = 12; X = 014; X = 0xC;

15 Inteiros - int NOTA Sinal Tamanho Exemplos
signed – positivos e negativos 1 bit para representar o sinal unsigned – apenas números positivos Tamanho short – menor dimensão em bytes 2 bytes long – maior dimensão em bytes 4 bytes Exemplos unsigned short int x; signed short int y; unsigned long int total; long int votos; int nota; NOTA por defeito os inteiros são: signed 16 bits short 32 bits long

16 Alcance dos inteiros

17 exemplos Nota final da disciplina de IP
unsigned short int nota; unsigned short nota; Soma das notas das disciplinas de uma aluno unsigned short int somaNotas; unsigned short somaNotas; Número de segundos de vida de uma pessoa unsigned long int numMinutos; unsigned long numMinutos; Diferença entre o número de segundos de duas pessoas signed long difSegundos; long difsegundos; Diferença entre o número de anos de duas pessoas signed short int difAnos; short difAnos;

18 Números Reais notação Tipo Representação
float double Representação Base e Mantissa notação Notação corrente Notação científica 1.2E e-15 Modificadores long NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação Exemplo float raio = .50; long double taxa = 5E-2 ;

19 Erro nos Números Reais NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação

20 Caracteres (char) Caracteres especiais Modificadores \a Sinal sonoro
Ocupam um byte 256 caracteres disponíveis Representados por um número Tabela ASCII Atribuição Utilização do caracter plica (‘) char sexo = ‘m’; char enter =‘\n’ Utilização directa do código ASCII char letra = 98; Modificadores signed unsigned \a Sinal sonoro \n New line \r Carriage return \v Vertical tabulation \t Horizontal tabulation \\ Caracter \ \’ Caracter ‘ \” Caracter “ \b Backspace \0xff Caracter 0xff ASCII

21 Tabela ASCII Exemplo char sexo; Sexo = ‘M’; Sexo = 77;

22 Definição de tipos - Enumerações
Definição de nomes para valores Cores , Dias da semana , Meses, etc. enum semana{ segunda=2, terca=3, quarta=4, quinta=5, sexta=6, sabado=7, domingo=8 }; Exemplo enum semana teoricaIP, praticaIP; teoricaIP = segunda; praticaIP = teoricaIP +1 ;

23 Definição de tipos - Enumerações
enum novo_tipo {nome_1=valor_1, nome_2, . . .,nome_n}; novo_tipo nome_variavel = nome_x; enum Cores {verde= 0 , amarelo = 1, vermelho =2 }; enum Cores semaforo = verde; enum logica {falso, verdadeiro }; enum logica condicao=verdadeiro; NOTAS Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade. Por defeito começam em zero

24 Valores lógicos (bool)
Dois valores definidos false (valor zero) true (um ou qualquer outro valor) Exemplo bool aprovado, trabEstudante; aprovador = true; trabEstudante = false;

25 Definição de tipos - Typedef
Definição de nomes para tipos typedef tipo_de_dado novo_nome_do_tipo ; Exemplos typedef unsigned long int int32; definição de um novo tipo chamado int32 int32 somatorio; definicao de uma variável do tipo int32

26 Tipos de dados do c++ Builder
tamanho (bits) Mínimo Máximo unsigned char 8 255 char -128 127 short int 16 -32,768 32,767 unsigned int 32 4,294,967,295 int -2, 2,147,483,647 unsigned long enum long float 1.18  10^-38 < |X| < 3.40  10^38 double 64 2.23  10^-308 < |X| < 1.79  10^308 long double 80 3.37  10^-4932 < |X| < 1.18  10^4932

27 Exercícos Defina variáveis em C para manipular
A média das notas de um ano lectivo O salário de um trabalhador O número de alunos de um país O saldo de uma conta bancária Número de dias entre duas datas O sexo de um aluno Factor rhesus do sangue (+ e -) A situação de uma aluno relativo à aprovação A situação de uma aluno relativo á matrícula.

28 Entrada e saída de dados

29 Entrada e saida de dados
scanf Entrada de dados pelo teclado printf Saída de dado para a consola scanf(“string de formato”, &variavel , &variavel ,…); scanf(“%f", &altura); scanf(“%d", &idade); scanf(“%f %d", &altura, &idade); printf(“string de formato”, variavel , variavel ,…); printf(“ a altura é %f :", altura); printf(“ a idade é %d :", idade); printf(“\n altura: %f idade :%d \n", altura, idade);

30 Formato de dados (I/O) c u s l d h f o e x caracter sem sinal
cadeia de caracteres d inteiro f real no formato numérico e real no formato cientifico u sem sinal l grande h pequeno o octal x Hexadecimal

31 Programa gentil Exemplo #include <stdio.h>
int main(int argc, char* argv[]) { int idade; printf(“qual a sua idade:”); scanf(“ %d ” , &idade); printf(“parabens, voce tem %d anos“, idade); }

32 Ficheiros gerados

33 Algoritmos computacionais
Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

34 Operadores

35 Qualquer operação entre inteiros devolve um inteiro
Operadores unários - (sinal) Operadores binários + (Soma) - (Subtracção) / (Divisão inteira) % (Módulo) Exemplo = = -5 25 / 2 = = 27 25 % 2 = * 2 = 50 NOTA Qualquer operação entre inteiros devolve um inteiro

36 Operadores unários – Pós fixo
++ (incremento) -- (decremento) Nota X++ X = X+1 Nota X-- X = X-1 Nota y = x++ y = x x = x+1 Nota y = x-- y = x x = x-1 x 3 y expressão y = x++; 4

37 Operadores unários – Pré fixo
++ (incremento) -- (decremento) Nota ++X X = X+1 Nota --X X = X-1 Nota y = ++x x = x+1 y = x Nota y = --x x = x-1 y = x x 3 y expressão y = --x; 2

38 Operadores bit a bit Manipulam directamente a representação binária dos números e (and) & ou (or) | ou exclusivo (Xor) ^ Deslocamento à esquerda << Deslocamento à direita >> E 1 OU 1 Multiplicação Lógica Soma Lógica xor 1 diferença Lógica

39 Operadores bit a bit - OR
OU 1 x 91 y 128 expressão z = x | y ; z 219 Soma Lógica

40 Operadores bit a bit - AND
1 x 90 y 20 expressão z = x & y ; z 16 Multiplicação Lógica

41 Operadores bit a bit - XOR
1 x 90 y 20 expressão z = x ^ y ; z 78 diferença Lógica

42 Operadores bit a bit - Deslocamento
x 20 y expressão y = x << 2; 80 Algoritmo deslocam-se os bites para a esquerda os últimos bites perdem-se introduzem-se zeros no inicio

43 Operadores bit a bit - Deslocamento
x 20 y expressão y = x >> 2; 5 Algoritmo deslocam-se os bites para a direita os primeiros bites perdem-se introduzem-se zeros no fim

44 Operadores sobre reais
Aritméticos multiplicação divisão soma subtracção expoente mantissa

45 Operadores compostos Variavel = variavel operador expressão
+= , -=,%=, *=, /=, >>=, <<=, &=, |=, ^= variável Operador= expressão Variavel = variavel operador expressão exemplos X+= 3; X = X+3; exemplos x/=y; x = x /y; exemplos X*= 3; X = X*3; exemplos X|= y; X = X | y;

46 Operadores sobre lógicos
RELACIONAIS Maior > Menor < Igual == Maior ou igual >= Menor ou igual <= Diferente != LÒGICOS Conjunção && Disjunção || Negação !

47 Associatividade z 4 r 1 x 2 y 1 Associatividade direita => esquerda
matriculado teste x 2 y 1 false false Associatividade direita => esquerda r =x + y + z 7 r = 7 teste = !matriculado teste = true x = -z x=-4 Associatividade esquerda=> direita x + y + z 3 + z 7 z / x * y 2 * z 2

48 Prioridade dos operadores

49 Algoritmos computacionais
Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

50 Exercícios Construa um programa que calcule a área de um rectangulo
Inicio Ler lado1 Programa Área do rectângulo #include <stdio.h> int main(int argc, char* argv[]) { double Lado1, lado2, area; scanf(“%lf”, &lado1); scanf(“%lf”, &lado2); area = lado1 * lado2; printf(“ area = %lf ”, area); } Ler lado2 Area := lado1*lado2 Escrever Area fim

51 Exercícios Construa um programa que leia a nota teórica e a nota prática e imprima a nota final (não arredondada) da disciplina de IP Inicio Ler nTeorica Nota de IP #include <stdio.h> int main(int argc, char* argv[]) { float nTeorica, nPratica, nFinal; printf(“ introduza a nota teórica :“); scanf(“%f”, &nTeorica); printf(“ introduza a nota prática:“); scanf(“%f”, &nPratica); nFinal = nTeorica * nPratica * 0.4; printf(“A nota final e: %f “,nFinal); } Ler nPratica nFinal = nTeorica*0.6 + nPratica * 0.4 Escrever nFinal fim

52 Selecção de intruções

53 Linguagem estruturada
Selecção Simples Linguagem estruturada C++ If (condição) { intrução; . . . } . . . Se <condição> então Instruções fim_se Fluxograma Condição V Exemplo Se x > 0 então escrever “numero:” ler numero fim_se Bloco de Instruções Um “Bloco de instruções” é limitado por chavetas { }

54 Selecção Simples (exemplo)
Inicio Exemplo Ler totalFactura A empresa X faz um desconto de 15% em todas as facturas cujo total ultrapasse 1000 euros. Construa um programa que receba o total da factura e imprima o valor a pagar totalFactura >10000 v totalFactura = totalFactura *0.85 totalFactura Fim

55 Selecção Simples (exemplo)
Calculo do total da factura #include <stdio.h> int main(int argc, char* argv[]) { float totalFactura; scanf(“%f”, &totalFactura); if( totalFactura > ) totalFactura*= 0.85; } printf(“ %f “, totalFactura); NOTA Se o bloco tiver apenas uma instrução podem omitir-se as chavetas

56 Visibilidade das variáveis
int main(int argc, char* argv[]) { float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000){ double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0; Visibilidade das variáveis: Desde que são declaradas Até final do bloco

57 Selecção em Alternativa
Linguagem estruturada Fluxograma C++ if (condição) { intrução1; . . . } else intrução2; . . . Se <condição> entao Instruções Senao Fim_se Condição V F Instruções Instruções Exemplo Se numero>0 então escreve “positivo” Senão escreve “negativo” Fim_se

58 Selecção em Alternativa (exemplo)
Exercício Construa um programa que imprima “Par” ou “Impar” consoante o número introduzido pelo utilizador o é ou não.

59 Selecção Simples (exemplo)
Programa par ou impar main() { int numero; printf( “ numero :”); scanf(“%d”,&numero); if( numero % 2 == 0) printf(“ O numero é par”); else printf(“ o número é impar”); } Inicio Ler n n % 2 = 0 V F Impar Par Fim

60 Selecção encadeada Exercício
V1 > v2 e V1 > v3 Maior=v1 V2>v3 Maior=v2 Maior=v3 s n Exercício Construa um programa que imprima o maior de três número introduzido pelo utilizador

61 Selecção encadeada (exemplo)
Programa maior de três int main(int argc, char* argv[]) { int v1, v2; v3; int maior; scanf(“ %d %d %d “, &v1, &v2, &v3); if( v1 > v2 && v1 > v3) maior= v1; else if( v2 > v3) maior= v2; maior=v3; } printf(“ O maior é %d :”, maior); return 0;

62 Exercício Contrua um programa que solicite ao utilizador a letra correspondente ao estado civil (S C D V ) e imprima por extenso o mesmo ou erro no caso de não ser um caractér válido

63 Exercício Estado civil main() { char ECivil; scanf(“%c”,&ECivil);
if( ECivil ==‘S’) printf( “ Solteiro”); else if (ECivil ==‘C’ ) printf(“ Casado”); if ( ECivil == ‘D) printf(“Divorciado”); if(ECivil == ‘V’) printf(“Viuvo”); printf(“ERRO”); }

64 Selecção Múltipla switch switch ( expressão) { case constante1 :
intruções; break; case constante2 : . . . case constanten : default: }

65 Exercício Estado civil #include <iostream.h> main(){
char ECivil; scanf(“%c”,&ECivil); switch ( ECivil) { case ‘S’ : printf( “solteiro”); break; case ‘C’ : printf(“casado”); case ‘D’ : printf(“Divorciado”); case ‘V’ : printf(“Viuvo”); default : printf(“ERRO”); }

66 Exercício Estado civil NOTA . . . case ‘d’ : switch ( ECivil) {
printf( “Divorciado”); break; } NOTA A escolha termina: quando chegar ao fim quando encontrar a instrução break

67 Exercícios Construa um programa que indique se dois números introduzidos pelo utilizador são múltiplos um do outro. Construa um programa que calcule as raízes de uma equação de 2º grau. Altere o programa anterior para calcular as raízes reais e imaginárias.

68 Erros

69 Erros programas Os erros são a base da experiência.
Erros de especificação Não compreendemos o problema Erros Lógicos O algoritmo está errado Erros de sintaxe O algoritmo está mal programado Erros de ligação Bibliotecas referenciadas que não existem Erros de execução Dados mal introduzidos Os erros são a base da experiência.

70 Erros de especificação
Construir um programa que as calcule as interacções do spin de um electrão num campo gravitacional desconhecido dado o número de mesões e fermiões pertencentes ao meio. Não compreendo o problema !!!

71 Algoritmo ERRADO !!! Erros Lógicos Solteiro casado ou erro sim não não
Inicio Solteiro casado ou erro ecivil sim ecivil=s não Estado = Solteiro Algoritmo ERRADO !!! não sim ecivil=c Estado = casado Estado = casado estado Fim

72 Erros de sintaxe mais comuns
Escrita ambígua if(m == 0)     if(n == 0)         printf("m e n são zero.“); else     printf("m não é zero.“); Má identação

73 Erros de sintaxe mais comuns
Esquecer as chavetas int main(int argc, char* argv[]) { float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000) double desconto = totalFactura* 0.85; totalFactura -= desconto; printf(“%f”, totalFactura); return 0; }

74 Erros de sintaxe mais comuns
Colocar um ; a seguir ao if ou else int main(int argc, char* argv[]) { float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000) ; double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0;

75 Erros de sintaxe mais comuns
Esquecer o break; no ciclo switch Estado civil switch ( ECivil) { case ‘S’ : printf( “solteiro”); case ‘C’ : printf(“casado”); case ‘D’ : printf(“Divorciado”); case ‘V’ : printf(“Viuvo”); default : printf(“ERRO”); }

76 Conclusão

77 Construção de programas
Especificação do problema Compreender o problema Desenvolvimento do algoritmo Especificar as entradas, saídas e uma forma de transformar as entradas em saídas Tradução do algoritmo para uma linguagem de programação programar Tradução do programa para linguagem máquina Compilar e linkar Executar o programa testar


Carregar ppt "Linguagens de programação"

Apresentações semelhantes


Anúncios Google